trip) adding support for lodgings
90
scripts/download-airline-logos.ts
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
#!/usr/bin/env bun
|
||||||
|
/**
|
||||||
|
* Download airline logo SVGs from airlinelogos.aero into static/airline-logos/
|
||||||
|
* Run with: bun run scripts/download-airline-logos.ts
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { Database } from 'bun:sqlite';
|
||||||
|
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
||||||
|
import { join, dirname } from 'path';
|
||||||
|
import { fileURLToPath } from 'url';
|
||||||
|
|
||||||
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
const ROOT = join(__dirname, '..');
|
||||||
|
const DB_PATH = process.env.DATABASE_URL?.replace('file:', '') ?? join(ROOT, 'trips.db');
|
||||||
|
const OUTPUT_DIR = join(ROOT, 'static', 'airline-logos');
|
||||||
|
|
||||||
|
const DELAY_MS = 50;
|
||||||
|
|
||||||
|
function sleep(ms: number): Promise<void> {
|
||||||
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
if (!existsSync(OUTPUT_DIR)) {
|
||||||
|
mkdirSync(OUTPUT_DIR, { recursive: true });
|
||||||
|
console.log(`Created ${OUTPUT_DIR}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const db = new Database(DB_PATH, { readonly: true });
|
||||||
|
|
||||||
|
const rows = db
|
||||||
|
.query<
|
||||||
|
{ iata_code: string },
|
||||||
|
[]
|
||||||
|
>(`SELECT DISTINCT iata_code FROM airlines WHERE iata_code IS NOT NULL AND iata_code != '' ORDER BY iata_code`)
|
||||||
|
.all();
|
||||||
|
|
||||||
|
db.close();
|
||||||
|
|
||||||
|
console.log(`Found ${rows.length} distinct IATA codes`);
|
||||||
|
|
||||||
|
let downloaded = 0;
|
||||||
|
let skipped = 0;
|
||||||
|
let failed = 0;
|
||||||
|
|
||||||
|
for (const { iata_code } of rows) {
|
||||||
|
const outPath = join(OUTPUT_DIR, `${iata_code}.svg`);
|
||||||
|
|
||||||
|
if (existsSync(outPath)) {
|
||||||
|
skipped++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const url = `https://airlinelogos.aero/logos/${iata_code}.svg`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await fetch(url, {
|
||||||
|
headers: { 'User-Agent': 'trips-app/1.0 (logo downloader)' }
|
||||||
|
});
|
||||||
|
|
||||||
|
if (res.ok) {
|
||||||
|
const contentType = res.headers.get('content-type') ?? '';
|
||||||
|
if (contentType.includes('svg') || contentType.includes('xml')) {
|
||||||
|
const text = await res.text();
|
||||||
|
writeFileSync(outPath, text, 'utf-8');
|
||||||
|
console.log(` ✓ ${iata_code}`);
|
||||||
|
downloaded++;
|
||||||
|
} else {
|
||||||
|
console.log(` - ${iata_code} (not SVG: ${contentType})`);
|
||||||
|
failed++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log(` - ${iata_code} (HTTP ${res.status})`);
|
||||||
|
failed++;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(` ! ${iata_code} (${err instanceof Error ? err.message : err})`);
|
||||||
|
failed++;
|
||||||
|
}
|
||||||
|
|
||||||
|
await sleep(DELAY_MS);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\nDone: ${downloaded} downloaded, ${skipped} skipped, ${failed} not found`);
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
674
src/lib/components/AddFlightModal.svelte
Normal file
@@ -0,0 +1,674 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { enhance } from '$app/forms';
|
||||||
|
import { base } from '$app/paths';
|
||||||
|
import type { Person } from '$lib/server/travellers.js';
|
||||||
|
|
||||||
|
interface Airport {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
city: string | null;
|
||||||
|
country: string;
|
||||||
|
country_code: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Airline {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FlightSegment {
|
||||||
|
departureDate: string;
|
||||||
|
departureDatetime: string;
|
||||||
|
arrivalDatetime: string;
|
||||||
|
airlineId: number | null;
|
||||||
|
airlineIata: string;
|
||||||
|
airlineName: string;
|
||||||
|
flightNumber: string;
|
||||||
|
departureAirportId: number | null;
|
||||||
|
departureAirportCode: string;
|
||||||
|
arrivalAirportId: number | null;
|
||||||
|
arrivalAirportCode: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
open: boolean;
|
||||||
|
onclose: () => void;
|
||||||
|
people: Person[];
|
||||||
|
tripTravellerIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
let { open, onclose, people = [], tripTravellerIds = [] }: Props = $props();
|
||||||
|
|
||||||
|
let confirmationNumber = $state('');
|
||||||
|
let price = $state('');
|
||||||
|
let currency = $state('USD');
|
||||||
|
let status = $state<'idea' | 'tentative' | 'confirmed'>('idea');
|
||||||
|
let selectedPassengers = $state<string[]>([]);
|
||||||
|
let segments = $state<FlightSegment[]>([
|
||||||
|
{
|
||||||
|
departureDate: '',
|
||||||
|
departureDatetime: '',
|
||||||
|
arrivalDatetime: '',
|
||||||
|
airlineId: null,
|
||||||
|
airlineIata: '',
|
||||||
|
airlineName: '',
|
||||||
|
flightNumber: '',
|
||||||
|
departureAirportId: null,
|
||||||
|
departureAirportCode: '',
|
||||||
|
arrivalAirportId: null,
|
||||||
|
arrivalAirportCode: ''
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Search states
|
||||||
|
let airportQuery = $state('');
|
||||||
|
let airports = $state<Airport[]>([]);
|
||||||
|
let airlineQuery = $state('');
|
||||||
|
let airlines = $state<Airline[]>([]);
|
||||||
|
let loadingAirports = $state(false);
|
||||||
|
let loadingAirlines = $state(false);
|
||||||
|
let activeSearchField: {
|
||||||
|
segmentIndex: number;
|
||||||
|
field: 'departure' | 'arrival' | 'airline';
|
||||||
|
} | null = $state(null);
|
||||||
|
|
||||||
|
let airportDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
let airlineDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
|
||||||
|
function searchAirports(query: string) {
|
||||||
|
clearTimeout(airportDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
airports = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
airportDebounce = setTimeout(async () => {
|
||||||
|
loadingAirports = true;
|
||||||
|
try {
|
||||||
|
const res = await fetch(`${base}/api/airports?q=${encodeURIComponent(query)}`);
|
||||||
|
airports = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingAirports = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchAirlines(query: string) {
|
||||||
|
clearTimeout(airlineDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
airlines = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
airlineDebounce = setTimeout(async () => {
|
||||||
|
loadingAirlines = true;
|
||||||
|
try {
|
||||||
|
const res = await fetch(`${base}/api/airlines?q=${encodeURIComponent(query)}`);
|
||||||
|
airlines = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingAirlines = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectAirport(segmentIndex: number, field: 'departure' | 'arrival', airport: Airport) {
|
||||||
|
if (field === 'departure') {
|
||||||
|
segments[segmentIndex].departureAirportId = airport.id;
|
||||||
|
segments[segmentIndex].departureAirportCode = airport.iata_code || airport.icao_code || '';
|
||||||
|
} else {
|
||||||
|
segments[segmentIndex].arrivalAirportId = airport.id;
|
||||||
|
segments[segmentIndex].arrivalAirportCode = airport.iata_code || airport.icao_code || '';
|
||||||
|
}
|
||||||
|
airports = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectAirline(segmentIndex: number, airline: Airline) {
|
||||||
|
segments[segmentIndex].airlineId = airline.id;
|
||||||
|
segments[segmentIndex].airlineIata = airline.iata_code || '';
|
||||||
|
segments[segmentIndex].airlineName = airline.name;
|
||||||
|
airlines = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addSegment() {
|
||||||
|
segments = [
|
||||||
|
...segments,
|
||||||
|
{
|
||||||
|
departureDate: '',
|
||||||
|
departureDatetime: '',
|
||||||
|
arrivalDatetime: '',
|
||||||
|
airlineId: null,
|
||||||
|
airlineIata: '',
|
||||||
|
airlineName: '',
|
||||||
|
flightNumber: '',
|
||||||
|
departureAirportId: null,
|
||||||
|
departureAirportCode: '',
|
||||||
|
arrivalAirportId: null,
|
||||||
|
arrivalAirportCode: ''
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeSegment(index: number) {
|
||||||
|
segments = segments.filter((_, i) => i !== index);
|
||||||
|
}
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
confirmationNumber = '';
|
||||||
|
price = '';
|
||||||
|
currency = 'USD';
|
||||||
|
status = 'idea';
|
||||||
|
selectedPassengers = [];
|
||||||
|
segments = [
|
||||||
|
{
|
||||||
|
departureDate: '',
|
||||||
|
departureDatetime: '',
|
||||||
|
arrivalDatetime: '',
|
||||||
|
airlineId: null,
|
||||||
|
airlineIata: '',
|
||||||
|
airlineName: '',
|
||||||
|
flightNumber: '',
|
||||||
|
departureAirportId: null,
|
||||||
|
departureAirportCode: '',
|
||||||
|
arrivalAirportId: null,
|
||||||
|
arrivalAirportCode: ''
|
||||||
|
}
|
||||||
|
];
|
||||||
|
airports = [];
|
||||||
|
airlines = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function togglePassenger(personId: string) {
|
||||||
|
if (selectedPassengers.includes(personId)) {
|
||||||
|
selectedPassengers = selectedPassengers.filter((id) => id !== personId);
|
||||||
|
} else {
|
||||||
|
selectedPassengers = [...selectedPassengers, personId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClose() {
|
||||||
|
reset();
|
||||||
|
onclose();
|
||||||
|
}
|
||||||
|
|
||||||
|
let canSubmit = $derived(
|
||||||
|
segments.length > 0 &&
|
||||||
|
segments.every(
|
||||||
|
(s) => s.departureDate && s.flightNumber && (s.airlineId || s.airlineIata || s.airlineName)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if open}
|
||||||
|
<!-- Backdrop -->
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-40 bg-black/30"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
onclick={handleClose}
|
||||||
|
onkeydown={(e) => e.key === 'Escape' && handleClose()}
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<!-- Panel -->
|
||||||
|
<div
|
||||||
|
class="fixed top-0 right-0 z-50 flex h-full w-full max-w-2xl flex-col bg-white shadow-xl"
|
||||||
|
role="dialog"
|
||||||
|
aria-modal="true"
|
||||||
|
aria-label="Add flight"
|
||||||
|
>
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex items-center justify-between border-b border-gray-200 px-6 py-4">
|
||||||
|
<h2 class="text-base font-semibold text-gray-900">Add flight</h2>
|
||||||
|
<button
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Form -->
|
||||||
|
<form
|
||||||
|
method="POST"
|
||||||
|
action="?/addFlight"
|
||||||
|
class="flex flex-1 flex-col overflow-y-auto"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ result, update }) => {
|
||||||
|
update();
|
||||||
|
if (result.type === 'success') handleClose();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div class="flex flex-1 flex-col gap-6 px-6 py-6">
|
||||||
|
<!-- Booking Details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="confirmation_number" class="text-sm font-medium text-gray-700">
|
||||||
|
Confirmation number
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="confirmation_number"
|
||||||
|
name="confirmation_number"
|
||||||
|
type="text"
|
||||||
|
bind:value={confirmationNumber}
|
||||||
|
placeholder="ABC123"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="price" class="text-sm font-medium text-gray-700">Price</label>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
<select
|
||||||
|
name="currency"
|
||||||
|
bind:value={currency}
|
||||||
|
class="rounded-md border border-gray-300 px-2 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="USD">USD</option>
|
||||||
|
<option value="EUR">EUR</option>
|
||||||
|
<option value="GBP">GBP</option>
|
||||||
|
<option value="CAD">CAD</option>
|
||||||
|
<option value="JPY">JPY</option>
|
||||||
|
<option value="AUD">AUD</option>
|
||||||
|
</select>
|
||||||
|
<input
|
||||||
|
id="price"
|
||||||
|
name="price"
|
||||||
|
type="number"
|
||||||
|
step="0.01"
|
||||||
|
bind:value={price}
|
||||||
|
placeholder="0.00"
|
||||||
|
class="flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Status -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Status</span>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
{#each [{ value: 'idea', label: 'Idea', color: 'bg-gray-100 text-gray-700 border-gray-300' }, { value: 'tentative', label: 'Tentative', color: 'bg-yellow-50 text-yellow-800 border-yellow-300' }, { value: 'confirmed', label: 'Confirmed', color: 'bg-green-50 text-green-800 border-green-300' }] as opt}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-all {status ===
|
||||||
|
opt.value
|
||||||
|
? opt.color +
|
||||||
|
' ring-2 ring-offset-1 ' +
|
||||||
|
(opt.value === 'idea'
|
||||||
|
? 'ring-gray-400'
|
||||||
|
: opt.value === 'tentative'
|
||||||
|
? 'ring-yellow-400'
|
||||||
|
: 'ring-green-500')
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="status"
|
||||||
|
value={opt.value}
|
||||||
|
bind:group={status}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{opt.label}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Passengers -->
|
||||||
|
{#if people.length > 0 && tripTravellerIds.length > 0}
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Passengers</span>
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
{#each people.filter((p) => tripTravellerIds.includes(p.id)) as person}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm {selectedPassengers.includes(
|
||||||
|
person.id
|
||||||
|
)
|
||||||
|
? 'border-blue-500 bg-blue-50 text-blue-700'
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={selectedPassengers.includes(person.id)}
|
||||||
|
onchange={() => togglePassenger(person.id)}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{person.first_name}
|
||||||
|
{person.last_name}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#each selectedPassengers as personId}
|
||||||
|
<input type="hidden" name="passenger_ids[]" value={personId} />
|
||||||
|
{/each}
|
||||||
|
|
||||||
|
<!-- Flight Segments -->
|
||||||
|
<div class="flex flex-col gap-4">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Flight segments</span>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={addSegment}
|
||||||
|
class="text-sm text-blue-600 hover:text-blue-700"
|
||||||
|
>
|
||||||
|
+ Add segment
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#each segments as segment, segmentIndex (segmentIndex)}
|
||||||
|
<div class="rounded-lg border border-gray-200 p-4">
|
||||||
|
<div class="mb-4 flex items-center justify-between">
|
||||||
|
<span class="text-xs font-medium text-gray-500">Segment {segmentIndex + 1}</span>
|
||||||
|
{#if segments.length > 1}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => removeSegment(segmentIndex)}
|
||||||
|
class="text-xs text-red-600 hover:text-red-700"
|
||||||
|
>
|
||||||
|
Remove
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col gap-4">
|
||||||
|
<!-- Departure Date -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure date</label>
|
||||||
|
<input
|
||||||
|
type="date"
|
||||||
|
bind:value={segment.departureDate}
|
||||||
|
name="segments[{segmentIndex}][departure_date]"
|
||||||
|
required
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Airline -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Airline</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.airlineIata}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirlines(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'airline' };
|
||||||
|
}}
|
||||||
|
placeholder="Search airline or enter code"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirlines && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'airline'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airlines.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'airline'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airlines as airline}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirline(segmentIndex, airline)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="font-medium text-gray-900">{airline.name}</span>
|
||||||
|
{#if airline.iata_code}
|
||||||
|
<span class="text-gray-500">({airline.iata_code})</span>
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.airlineId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_id]"
|
||||||
|
value={segment.airlineId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.airlineIata}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_iata]"
|
||||||
|
value={segment.airlineIata}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.airlineName}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_name]"
|
||||||
|
value={segment.airlineName}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Flight Number -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Flight number</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.flightNumber}
|
||||||
|
name="segments[{segmentIndex}][flight_number]"
|
||||||
|
required
|
||||||
|
placeholder="1234"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Airports -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure airport</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.departureAirportCode}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirports(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'departure' };
|
||||||
|
}}
|
||||||
|
placeholder="Code or search"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirports && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'departure'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airports.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'departure'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airports as airport}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirport(segmentIndex, 'departure', airport)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="font-medium text-gray-900">{airport.name}</div>
|
||||||
|
<div class="text-xs text-gray-500">
|
||||||
|
{airport.iata_code || airport.icao_code} • {airport.city}, {airport.country}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.departureAirportId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][departure_airport_id]"
|
||||||
|
value={segment.departureAirportId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.departureAirportCode}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][departure_airport_code]"
|
||||||
|
value={segment.departureAirportCode}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Arrival airport</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.arrivalAirportCode}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirports(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'arrival' };
|
||||||
|
}}
|
||||||
|
placeholder="Code or search"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirports && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'arrival'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airports.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'arrival'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airports as airport}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirport(segmentIndex, 'arrival', airport)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="font-medium text-gray-900">{airport.name}</div>
|
||||||
|
<div class="text-xs text-gray-500">
|
||||||
|
{airport.iata_code || airport.icao_code} • {airport.city}, {airport.country}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.arrivalAirportId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][arrival_airport_id]"
|
||||||
|
value={segment.arrivalAirportId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.arrivalAirportCode}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][arrival_airport_code]"
|
||||||
|
value={segment.arrivalAirportCode}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Times -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure time</label>
|
||||||
|
<input
|
||||||
|
type="datetime-local"
|
||||||
|
bind:value={segment.departureDatetime}
|
||||||
|
name="segments[{segmentIndex}][departure_datetime]"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Arrival time</label>
|
||||||
|
<input
|
||||||
|
type="datetime-local"
|
||||||
|
bind:value={segment.arrivalDatetime}
|
||||||
|
name="segments[{segmentIndex}][arrival_datetime]"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<div class="flex justify-end gap-3 border-t border-gray-200 px-6 py-4">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md border border-gray-300 px-4 py-2 text-sm text-gray-700 hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={!canSubmit}
|
||||||
|
class="rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50"
|
||||||
|
>
|
||||||
|
Add flight
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
682
src/lib/components/AddLodgingModal.svelte
Normal file
@@ -0,0 +1,682 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { enhance } from '$app/forms';
|
||||||
|
import { base } from '$app/paths';
|
||||||
|
import type { Person } from '$lib/server/travellers.js';
|
||||||
|
|
||||||
|
interface City {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
country: string;
|
||||||
|
country_code: string;
|
||||||
|
population: number | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Country {
|
||||||
|
name: string;
|
||||||
|
country_code: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
open: boolean;
|
||||||
|
onclose: () => void;
|
||||||
|
people: Person[];
|
||||||
|
tripTravellerIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
let { open, onclose, people = [], tripTravellerIds = [] }: Props = $props();
|
||||||
|
|
||||||
|
const TIMEZONES = [
|
||||||
|
{ label: 'UTC (UTC+0)', value: 'UTC' },
|
||||||
|
{ label: 'London (GMT/BST, UTC+0/+1)', value: 'Europe/London' },
|
||||||
|
{ label: 'Dublin (IST, UTC+0/+1)', value: 'Europe/Dublin' },
|
||||||
|
{ label: 'Lisbon (WET/WEST, UTC+0/+1)', value: 'Europe/Lisbon' },
|
||||||
|
{ label: 'Paris / Berlin / Rome (CET, UTC+1/+2)', value: 'Europe/Paris' },
|
||||||
|
{ label: 'Helsinki / Athens (EET, UTC+2/+3)', value: 'Europe/Helsinki' },
|
||||||
|
{ label: 'Istanbul (TRT, UTC+3)', value: 'Europe/Istanbul' },
|
||||||
|
{ label: 'Moscow (MSK, UTC+3)', value: 'Europe/Moscow' },
|
||||||
|
{ label: 'Dubai (GST, UTC+4)', value: 'Asia/Dubai' },
|
||||||
|
{ label: 'Karachi (PKT, UTC+5)', value: 'Asia/Karachi' },
|
||||||
|
{ label: 'Kolkata (IST, UTC+5:30)', value: 'Asia/Kolkata' },
|
||||||
|
{ label: 'Dhaka (BST, UTC+6)', value: 'Asia/Dhaka' },
|
||||||
|
{ label: 'Bangkok (ICT, UTC+7)', value: 'Asia/Bangkok' },
|
||||||
|
{ label: 'Singapore / Kuala Lumpur (SGT/MYT, UTC+8)', value: 'Asia/Singapore' },
|
||||||
|
{ label: 'Hong Kong (HKT, UTC+8)', value: 'Asia/Hong_Kong' },
|
||||||
|
{ label: 'Shanghai / Beijing (CST, UTC+8)', value: 'Asia/Shanghai' },
|
||||||
|
{ label: 'Perth (AWST, UTC+8)', value: 'Australia/Perth' },
|
||||||
|
{ label: 'Tokyo / Seoul (JST/KST, UTC+9)', value: 'Asia/Tokyo' },
|
||||||
|
{ label: 'Darwin (ACST, UTC+9:30)', value: 'Australia/Darwin' },
|
||||||
|
{ label: 'Brisbane (AEST, UTC+10)', value: 'Australia/Brisbane' },
|
||||||
|
{ label: 'Sydney / Melbourne (AEST/AEDT, UTC+10/+11)', value: 'Australia/Sydney' },
|
||||||
|
{ label: 'Auckland (NZST/NZDT, UTC+12/+13)', value: 'Pacific/Auckland' },
|
||||||
|
{ label: 'Fiji (FJT, UTC+12)', value: 'Pacific/Fiji' },
|
||||||
|
{ label: 'Azores (AZOT/AZOST, UTC-1/0)', value: 'Atlantic/Azores' },
|
||||||
|
{ label: 'Cape Verde (CVT, UTC-1)', value: 'Atlantic/Cape_Verde' },
|
||||||
|
{ label: 'Buenos Aires (ART, UTC-3)', value: 'America/Argentina/Buenos_Aires' },
|
||||||
|
{ label: 'Sao Paulo (BRT/BRST, UTC-3/−2)', value: 'America/Sao_Paulo' },
|
||||||
|
{ label: 'Halifax (AST/ADT, UTC-4/−3)', value: 'America/Halifax' },
|
||||||
|
{ label: 'New York / Toronto (EST/EDT, UTC-5/−4)', value: 'America/New_York' },
|
||||||
|
{ label: 'Chicago / Mexico City (CST/CDT, UTC-6/−5)', value: 'America/Chicago' },
|
||||||
|
{ label: 'Denver (MST/MDT, UTC-7/−6)', value: 'America/Denver' },
|
||||||
|
{ label: 'Phoenix (MST, UTC-7)', value: 'America/Phoenix' },
|
||||||
|
{ label: 'Los Angeles / Vancouver (PST/PDT, UTC-8/−7)', value: 'America/Los_Angeles' },
|
||||||
|
{ label: 'Anchorage (AKST/AKDT, UTC-9/−8)', value: 'America/Anchorage' },
|
||||||
|
{ label: 'Honolulu (HST, UTC-10)', value: 'Pacific/Honolulu' }
|
||||||
|
];
|
||||||
|
|
||||||
|
let name = $state('');
|
||||||
|
let chain = $state('');
|
||||||
|
let status = $state<'idea' | 'tentative' | 'confirmed'>('idea');
|
||||||
|
let checkInDate = $state('');
|
||||||
|
let checkInTime = $state('');
|
||||||
|
let checkInTimezone = $state('');
|
||||||
|
let checkOutDate = $state('');
|
||||||
|
let checkOutTime = $state('');
|
||||||
|
let checkOutTimezone = $state('');
|
||||||
|
let addressLine1 = $state('');
|
||||||
|
let addressLine2 = $state('');
|
||||||
|
let cityName = $state('');
|
||||||
|
let country = $state('');
|
||||||
|
let countryCode = $state('');
|
||||||
|
let postalCode = $state('');
|
||||||
|
let cityQuery = $state('');
|
||||||
|
let cities = $state<City[]>([]);
|
||||||
|
let loadingCities = $state(false);
|
||||||
|
let countryQuery = $state('');
|
||||||
|
let countries = $state<Country[]>([]);
|
||||||
|
let loadingCountries = $state(false);
|
||||||
|
let showCountryDropdown = $state(false);
|
||||||
|
let showCityDropdown = $state(false);
|
||||||
|
let cityDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
let countryDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
|
||||||
|
function flagEmoji(code: string): string {
|
||||||
|
if (!code || code.length !== 2) return '';
|
||||||
|
return code
|
||||||
|
.toUpperCase()
|
||||||
|
.split('')
|
||||||
|
.map((c) => String.fromCodePoint(0x1f1e6 + c.charCodeAt(0) - 65))
|
||||||
|
.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchCities(query: string) {
|
||||||
|
clearTimeout(cityDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
cities = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cityDebounce = setTimeout(async () => {
|
||||||
|
loadingCities = true;
|
||||||
|
try {
|
||||||
|
const params = new URLSearchParams({ q: query.trim() });
|
||||||
|
if (countryCode) params.set('country_code', countryCode);
|
||||||
|
const res = await fetch(`${base}/api/cities?${params}`);
|
||||||
|
cities = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingCities = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchCountries(query: string) {
|
||||||
|
clearTimeout(countryDebounce);
|
||||||
|
countryDebounce = setTimeout(async () => {
|
||||||
|
loadingCountries = true;
|
||||||
|
try {
|
||||||
|
const params = query.trim() ? `?q=${encodeURIComponent(query.trim())}` : '';
|
||||||
|
const res = await fetch(`${base}/api/countries${params}`);
|
||||||
|
countries = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingCountries = false;
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectCity(city: City) {
|
||||||
|
cityName = city.name;
|
||||||
|
country = city.country;
|
||||||
|
countryCode = city.country_code;
|
||||||
|
cities = [];
|
||||||
|
showCityDropdown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectCountry(c: Country) {
|
||||||
|
country = c.name;
|
||||||
|
countryCode = c.country_code;
|
||||||
|
countries = [];
|
||||||
|
showCountryDropdown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCityInput() {
|
||||||
|
showCityDropdown = true;
|
||||||
|
searchCities(cityQuery || cityName);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCountryInput() {
|
||||||
|
showCountryDropdown = true;
|
||||||
|
searchCountries(countryQuery || country);
|
||||||
|
}
|
||||||
|
let confirmationNumber = $state('');
|
||||||
|
let website = $state('');
|
||||||
|
let phone = $state('');
|
||||||
|
let price = $state('');
|
||||||
|
let currency = $state('USD');
|
||||||
|
let selectedGuests = $state<string[]>([]);
|
||||||
|
|
||||||
|
function toggleGuest(personId: string) {
|
||||||
|
if (selectedGuests.includes(personId)) {
|
||||||
|
selectedGuests = selectedGuests.filter((id) => id !== personId);
|
||||||
|
} else {
|
||||||
|
selectedGuests = [...selectedGuests, personId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function reset() {
|
||||||
|
name = '';
|
||||||
|
chain = '';
|
||||||
|
status = 'idea';
|
||||||
|
checkInDate = '';
|
||||||
|
checkInTime = '';
|
||||||
|
checkInTimezone = '';
|
||||||
|
checkOutDate = '';
|
||||||
|
checkOutTime = '';
|
||||||
|
checkOutTimezone = '';
|
||||||
|
addressLine1 = '';
|
||||||
|
addressLine2 = '';
|
||||||
|
cityName = '';
|
||||||
|
country = '';
|
||||||
|
countryCode = '';
|
||||||
|
cityQuery = '';
|
||||||
|
countryQuery = '';
|
||||||
|
cities = [];
|
||||||
|
countries = [];
|
||||||
|
showCityDropdown = false;
|
||||||
|
showCountryDropdown = false;
|
||||||
|
postalCode = '';
|
||||||
|
confirmationNumber = '';
|
||||||
|
website = '';
|
||||||
|
phone = '';
|
||||||
|
price = '';
|
||||||
|
currency = 'USD';
|
||||||
|
selectedGuests = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClose() {
|
||||||
|
reset();
|
||||||
|
onclose();
|
||||||
|
}
|
||||||
|
|
||||||
|
let canSubmit = $derived(name.trim().length > 0);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if open}
|
||||||
|
<!-- Backdrop -->
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-40 bg-black/30"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
onclick={handleClose}
|
||||||
|
onkeydown={(e) => e.key === 'Escape' && handleClose()}
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<!-- Panel -->
|
||||||
|
<div
|
||||||
|
class="fixed top-0 right-0 z-50 flex h-full w-full max-w-2xl flex-col bg-white shadow-xl"
|
||||||
|
role="dialog"
|
||||||
|
aria-modal="true"
|
||||||
|
aria-label="Add lodging"
|
||||||
|
>
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex items-center justify-between border-b border-gray-200 px-6 py-4">
|
||||||
|
<h2 class="text-base font-semibold text-gray-900">Add lodging</h2>
|
||||||
|
<button
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Form -->
|
||||||
|
<form
|
||||||
|
method="POST"
|
||||||
|
action="?/addLodging"
|
||||||
|
class="flex flex-1 flex-col overflow-y-auto"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ result, update }) => {
|
||||||
|
update();
|
||||||
|
if (result.type === 'success') handleClose();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div class="flex flex-1 flex-col gap-6 px-6 py-6">
|
||||||
|
<!-- Property details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="lodging_name" class="text-sm font-medium text-gray-700">
|
||||||
|
Name <span class="text-red-500">*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="lodging_name"
|
||||||
|
name="name"
|
||||||
|
type="text"
|
||||||
|
bind:value={name}
|
||||||
|
required
|
||||||
|
placeholder="Grand Hyatt"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="lodging_chain" class="text-sm font-medium text-gray-700">
|
||||||
|
Chain / Brand
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="lodging_chain"
|
||||||
|
name="chain"
|
||||||
|
type="text"
|
||||||
|
bind:value={chain}
|
||||||
|
placeholder="Hyatt Hotels"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Status -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Status</span>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
{#each [{ value: 'idea', label: 'Idea', color: 'bg-gray-100 text-gray-700 border-gray-300' }, { value: 'tentative', label: 'Tentative', color: 'bg-yellow-50 text-yellow-800 border-yellow-300' }, { value: 'confirmed', label: 'Confirmed', color: 'bg-green-50 text-green-800 border-green-300' }] as opt}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-all {status ===
|
||||||
|
opt.value
|
||||||
|
? opt.color +
|
||||||
|
' ring-2 ring-offset-1 ' +
|
||||||
|
(opt.value === 'idea'
|
||||||
|
? 'ring-gray-400'
|
||||||
|
: opt.value === 'tentative'
|
||||||
|
? 'ring-yellow-400'
|
||||||
|
: 'ring-green-500')
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="status"
|
||||||
|
value={opt.value}
|
||||||
|
bind:group={status}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{opt.label}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Check-in / Check-out -->
|
||||||
|
<div class="grid grid-cols-2 gap-6">
|
||||||
|
<!-- Check-in -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Check-in</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_in_date" class="text-xs font-medium text-gray-500">Date</label>
|
||||||
|
<input
|
||||||
|
id="check_in_date"
|
||||||
|
name="check_in_date"
|
||||||
|
type="date"
|
||||||
|
bind:value={checkInDate}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_in_time" class="text-xs font-medium text-gray-500">Time</label>
|
||||||
|
<input
|
||||||
|
id="check_in_time"
|
||||||
|
name="check_in_time"
|
||||||
|
type="time"
|
||||||
|
bind:value={checkInTime}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_in_timezone" class="text-xs font-medium text-gray-500"
|
||||||
|
>Timezone</label
|
||||||
|
>
|
||||||
|
<select
|
||||||
|
id="check_in_timezone"
|
||||||
|
name="check_in_timezone"
|
||||||
|
bind:value={checkInTimezone}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="">— select —</option>
|
||||||
|
{#each TIMEZONES as tz}
|
||||||
|
<option value={tz.value}>{tz.label}</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Check-out -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Check-out</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_out_date" class="text-xs font-medium text-gray-500">Date</label>
|
||||||
|
<input
|
||||||
|
id="check_out_date"
|
||||||
|
name="check_out_date"
|
||||||
|
type="date"
|
||||||
|
bind:value={checkOutDate}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_out_time" class="text-xs font-medium text-gray-500">Time</label>
|
||||||
|
<input
|
||||||
|
id="check_out_time"
|
||||||
|
name="check_out_time"
|
||||||
|
type="time"
|
||||||
|
bind:value={checkOutTime}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="check_out_timezone" class="text-xs font-medium text-gray-500"
|
||||||
|
>Timezone</label
|
||||||
|
>
|
||||||
|
<select
|
||||||
|
id="check_out_timezone"
|
||||||
|
name="check_out_timezone"
|
||||||
|
bind:value={checkOutTimezone}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="">— select —</option>
|
||||||
|
{#each TIMEZONES as tz}
|
||||||
|
<option value={tz.value}>{tz.label}</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Address -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Address</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="address_line1" class="text-xs font-medium text-gray-500"
|
||||||
|
>Address line 1</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="address_line1"
|
||||||
|
name="address_line1"
|
||||||
|
type="text"
|
||||||
|
bind:value={addressLine1}
|
||||||
|
placeholder="10 Scotts Road"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="address_line2" class="text-xs font-medium text-gray-500"
|
||||||
|
>Address line 2</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="address_line2"
|
||||||
|
name="address_line2"
|
||||||
|
type="text"
|
||||||
|
bind:value={addressLine2}
|
||||||
|
placeholder="Level 3"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="city_name" class="text-xs font-medium text-gray-500">City</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
id="city_name"
|
||||||
|
name="city_name"
|
||||||
|
type="text"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={cityName}
|
||||||
|
oninput={(e) => {
|
||||||
|
cityName = e.currentTarget.value;
|
||||||
|
cityQuery = e.currentTarget.value;
|
||||||
|
onCityInput();
|
||||||
|
}}
|
||||||
|
onfocus={() => {
|
||||||
|
if (cityName) onCityInput();
|
||||||
|
}}
|
||||||
|
onblur={() => setTimeout(() => (showCityDropdown = false), 150)}
|
||||||
|
placeholder="Search or type city name"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingCities}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if showCityDropdown && cities.length > 0}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each cities as city}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectCity(city)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="text-lg leading-none">{flagEmoji(city.country_code)}</span>
|
||||||
|
<div>
|
||||||
|
<span class="font-medium text-gray-900">{city.name}</span>
|
||||||
|
<span class="ml-1.5 text-gray-500">{city.country}</span>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="country" class="text-xs font-medium text-gray-500">Country</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
id="country"
|
||||||
|
name="country"
|
||||||
|
type="text"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={country}
|
||||||
|
oninput={(e) => {
|
||||||
|
country = e.currentTarget.value;
|
||||||
|
countryCode = '';
|
||||||
|
countryQuery = e.currentTarget.value;
|
||||||
|
onCountryInput();
|
||||||
|
}}
|
||||||
|
onfocus={() => {
|
||||||
|
showCountryDropdown = true;
|
||||||
|
if (!countries.length) searchCountries(country || '');
|
||||||
|
}}
|
||||||
|
onblur={() => setTimeout(() => (showCountryDropdown = false), 150)}
|
||||||
|
placeholder="Search or type country"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingCountries}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if showCountryDropdown && countries.length > 0}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each countries as c}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectCountry(c)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="text-lg leading-none">{flagEmoji(c.country_code)}</span>
|
||||||
|
<span class="font-medium text-gray-900">{c.name}</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if countryCode}
|
||||||
|
<input type="hidden" name="country_code" value={countryCode} />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="postal_code" class="text-xs font-medium text-gray-500">Postal code</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="postal_code"
|
||||||
|
name="postal_code"
|
||||||
|
type="text"
|
||||||
|
bind:value={postalCode}
|
||||||
|
placeholder="228211"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Booking details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="confirmation_number" class="text-sm font-medium text-gray-700">
|
||||||
|
Confirmation number
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="confirmation_number"
|
||||||
|
name="confirmation_number"
|
||||||
|
type="text"
|
||||||
|
bind:value={confirmationNumber}
|
||||||
|
placeholder="XYZ999"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="website" class="text-sm font-medium text-gray-700">Website</label>
|
||||||
|
<input
|
||||||
|
id="website"
|
||||||
|
name="website"
|
||||||
|
type="url"
|
||||||
|
bind:value={website}
|
||||||
|
placeholder="https://..."
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Contact + Cost -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="phone" class="text-sm font-medium text-gray-700">Phone</label>
|
||||||
|
<input
|
||||||
|
id="phone"
|
||||||
|
name="phone"
|
||||||
|
type="tel"
|
||||||
|
bind:value={phone}
|
||||||
|
placeholder="+65 6416 7000"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="price" class="text-sm font-medium text-gray-700">Price</label>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
<select
|
||||||
|
name="currency"
|
||||||
|
bind:value={currency}
|
||||||
|
class="rounded-md border border-gray-300 px-2 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="USD">USD</option>
|
||||||
|
<option value="EUR">EUR</option>
|
||||||
|
<option value="GBP">GBP</option>
|
||||||
|
<option value="CAD">CAD</option>
|
||||||
|
<option value="JPY">JPY</option>
|
||||||
|
<option value="AUD">AUD</option>
|
||||||
|
<option value="SGD">SGD</option>
|
||||||
|
<option value="HKD">HKD</option>
|
||||||
|
<option value="NZD">NZD</option>
|
||||||
|
</select>
|
||||||
|
<input
|
||||||
|
id="price"
|
||||||
|
name="price"
|
||||||
|
type="number"
|
||||||
|
step="0.01"
|
||||||
|
bind:value={price}
|
||||||
|
placeholder="0.00"
|
||||||
|
class="flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Guests -->
|
||||||
|
{#if people.length > 0 && tripTravellerIds.length > 0}
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Guests</span>
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
{#each people.filter((p) => tripTravellerIds.includes(p.id)) as person}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm {selectedGuests.includes(
|
||||||
|
person.id
|
||||||
|
)
|
||||||
|
? 'border-blue-500 bg-blue-50 text-blue-700'
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={selectedGuests.includes(person.id)}
|
||||||
|
onchange={() => toggleGuest(person.id)}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{person.first_name}
|
||||||
|
{person.last_name}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#each selectedGuests as personId}
|
||||||
|
<input type="hidden" name="guest_ids[]" value={personId} />
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<div class="flex justify-end gap-3 border-t border-gray-200 px-6 py-4">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md border border-gray-300 px-4 py-2 text-sm text-gray-700 hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={!canSubmit}
|
||||||
|
class="rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50"
|
||||||
|
>
|
||||||
|
Add lodging
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
697
src/lib/components/EditFlightModal.svelte
Normal file
@@ -0,0 +1,697 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { enhance } from '$app/forms';
|
||||||
|
import { base } from '$app/paths';
|
||||||
|
import type { Person } from '$lib/server/travellers.js';
|
||||||
|
import type { FlightBooking, FlightSegment, FlightRoute } from '$lib/server/flights.js';
|
||||||
|
|
||||||
|
interface Airport {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
city: string | null;
|
||||||
|
country: string;
|
||||||
|
country_code: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Airline {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FlightSegmentState {
|
||||||
|
departureDate: string;
|
||||||
|
departureDatetime: string;
|
||||||
|
arrivalDatetime: string;
|
||||||
|
airlineId: number | null;
|
||||||
|
airlineIata: string;
|
||||||
|
airlineName: string;
|
||||||
|
flightNumber: string;
|
||||||
|
departureAirportId: number | null;
|
||||||
|
departureAirportCode: string;
|
||||||
|
arrivalAirportId: number | null;
|
||||||
|
arrivalAirportCode: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
open: boolean;
|
||||||
|
onclose: () => void;
|
||||||
|
flightBooking:
|
||||||
|
| (FlightBooking & {
|
||||||
|
segments: Array<FlightSegment & { route: FlightRoute | null }>;
|
||||||
|
passengerIds: string[];
|
||||||
|
})
|
||||||
|
| null;
|
||||||
|
planStatus?: 'idea' | 'tentative' | 'confirmed';
|
||||||
|
people: Person[];
|
||||||
|
tripTravellerIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
let {
|
||||||
|
open,
|
||||||
|
onclose,
|
||||||
|
flightBooking,
|
||||||
|
planStatus = 'idea',
|
||||||
|
people = [],
|
||||||
|
tripTravellerIds = []
|
||||||
|
}: Props = $props();
|
||||||
|
|
||||||
|
function emptySegment(): FlightSegmentState {
|
||||||
|
return {
|
||||||
|
departureDate: '',
|
||||||
|
departureDatetime: '',
|
||||||
|
arrivalDatetime: '',
|
||||||
|
airlineId: null,
|
||||||
|
airlineIata: '',
|
||||||
|
airlineName: '',
|
||||||
|
flightNumber: '',
|
||||||
|
departureAirportId: null,
|
||||||
|
departureAirportCode: '',
|
||||||
|
arrivalAirportId: null,
|
||||||
|
arrivalAirportCode: ''
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function bookingToState(booking: NonNullable<Props['flightBooking']>): {
|
||||||
|
confirmationNumber: string;
|
||||||
|
price: string;
|
||||||
|
currency: string;
|
||||||
|
status: 'idea' | 'tentative' | 'confirmed';
|
||||||
|
selectedPassengers: string[];
|
||||||
|
segments: FlightSegmentState[];
|
||||||
|
} {
|
||||||
|
return {
|
||||||
|
confirmationNumber: booking.confirmation_number ?? '',
|
||||||
|
price: booking.price != null ? String(booking.price) : '',
|
||||||
|
currency: booking.currency ?? 'USD',
|
||||||
|
status: 'idea', // will be overridden by plan status passed separately
|
||||||
|
selectedPassengers: booking.passengerIds ?? [],
|
||||||
|
segments: booking.segments.map((seg) => ({
|
||||||
|
departureDate: seg.departure_date ?? '',
|
||||||
|
departureDatetime: seg.route?.departure_datetime ?? '',
|
||||||
|
arrivalDatetime: seg.route?.arrival_datetime ?? '',
|
||||||
|
airlineId: seg.airline_id ?? null,
|
||||||
|
airlineIata: seg.airline_iata ?? '',
|
||||||
|
airlineName: seg.airline_name ?? '',
|
||||||
|
flightNumber: seg.flight_number ?? '',
|
||||||
|
departureAirportId: seg.route?.departure_airport_id ?? null,
|
||||||
|
departureAirportCode: seg.route?.departure_airport_code ?? '',
|
||||||
|
arrivalAirportId: seg.route?.arrival_airport_id ?? null,
|
||||||
|
arrivalAirportCode: seg.route?.arrival_airport_code ?? ''
|
||||||
|
}))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
let confirmationNumber = $state('');
|
||||||
|
let price = $state('');
|
||||||
|
let currency = $state('USD');
|
||||||
|
let status = $state<'idea' | 'tentative' | 'confirmed'>('idea');
|
||||||
|
let selectedPassengers = $state<string[]>([]);
|
||||||
|
let segments = $state<FlightSegmentState[]>([emptySegment()]);
|
||||||
|
|
||||||
|
// Pre-populate when the modal opens with a booking
|
||||||
|
$effect(() => {
|
||||||
|
if (open && flightBooking) {
|
||||||
|
const s = bookingToState(flightBooking);
|
||||||
|
confirmationNumber = s.confirmationNumber;
|
||||||
|
price = s.price;
|
||||||
|
currency = s.currency;
|
||||||
|
status = planStatus;
|
||||||
|
selectedPassengers = s.selectedPassengers;
|
||||||
|
segments = s.segments;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Search states
|
||||||
|
let airportQuery = $state('');
|
||||||
|
let airports = $state<Airport[]>([]);
|
||||||
|
let airlineQuery = $state('');
|
||||||
|
let airlines = $state<Airline[]>([]);
|
||||||
|
let loadingAirports = $state(false);
|
||||||
|
let loadingAirlines = $state(false);
|
||||||
|
let activeSearchField: {
|
||||||
|
segmentIndex: number;
|
||||||
|
field: 'departure' | 'arrival' | 'airline';
|
||||||
|
} | null = $state(null);
|
||||||
|
|
||||||
|
let airportDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
let airlineDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
|
||||||
|
function searchAirports(query: string) {
|
||||||
|
clearTimeout(airportDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
airports = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
airportDebounce = setTimeout(async () => {
|
||||||
|
loadingAirports = true;
|
||||||
|
try {
|
||||||
|
const res = await fetch(`${base}/api/airports?q=${encodeURIComponent(query)}`);
|
||||||
|
airports = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingAirports = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchAirlines(query: string) {
|
||||||
|
clearTimeout(airlineDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
airlines = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
airlineDebounce = setTimeout(async () => {
|
||||||
|
loadingAirlines = true;
|
||||||
|
try {
|
||||||
|
const res = await fetch(`${base}/api/airlines?q=${encodeURIComponent(query)}`);
|
||||||
|
airlines = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingAirlines = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectAirport(segmentIndex: number, field: 'departure' | 'arrival', airport: Airport) {
|
||||||
|
if (field === 'departure') {
|
||||||
|
segments[segmentIndex].departureAirportId = airport.id;
|
||||||
|
segments[segmentIndex].departureAirportCode = airport.iata_code || airport.icao_code || '';
|
||||||
|
} else {
|
||||||
|
segments[segmentIndex].arrivalAirportId = airport.id;
|
||||||
|
segments[segmentIndex].arrivalAirportCode = airport.iata_code || airport.icao_code || '';
|
||||||
|
}
|
||||||
|
airports = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectAirline(segmentIndex: number, airline: Airline) {
|
||||||
|
segments[segmentIndex].airlineId = airline.id;
|
||||||
|
segments[segmentIndex].airlineIata = airline.iata_code || '';
|
||||||
|
segments[segmentIndex].airlineName = airline.name;
|
||||||
|
airlines = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addSegment() {
|
||||||
|
segments = [...segments, emptySegment()];
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeSegment(index: number) {
|
||||||
|
segments = segments.filter((_, i) => i !== index);
|
||||||
|
}
|
||||||
|
|
||||||
|
function togglePassenger(personId: string) {
|
||||||
|
if (selectedPassengers.includes(personId)) {
|
||||||
|
selectedPassengers = selectedPassengers.filter((id) => id !== personId);
|
||||||
|
} else {
|
||||||
|
selectedPassengers = [...selectedPassengers, personId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClose() {
|
||||||
|
airports = [];
|
||||||
|
airlines = [];
|
||||||
|
activeSearchField = null;
|
||||||
|
onclose();
|
||||||
|
}
|
||||||
|
|
||||||
|
let canSubmit = $derived(
|
||||||
|
segments.length > 0 &&
|
||||||
|
segments.every(
|
||||||
|
(s) => s.departureDate && s.flightNumber && (s.airlineId || s.airlineIata || s.airlineName)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if open && flightBooking}
|
||||||
|
<!-- Backdrop -->
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-40 bg-black/30"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
onclick={handleClose}
|
||||||
|
onkeydown={(e) => e.key === 'Escape' && handleClose()}
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<!-- Panel -->
|
||||||
|
<div
|
||||||
|
class="fixed top-0 right-0 z-50 flex h-full w-full max-w-2xl flex-col bg-white shadow-xl"
|
||||||
|
role="dialog"
|
||||||
|
aria-modal="true"
|
||||||
|
aria-label="Edit flight"
|
||||||
|
>
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex items-center justify-between border-b border-gray-200 px-6 py-4">
|
||||||
|
<h2 class="text-base font-semibold text-gray-900">Edit flight</h2>
|
||||||
|
<button
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Form -->
|
||||||
|
<form
|
||||||
|
method="POST"
|
||||||
|
action="?/editFlight"
|
||||||
|
class="flex flex-1 flex-col overflow-y-auto"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ result, update }) => {
|
||||||
|
update();
|
||||||
|
if (result.type === 'success') handleClose();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<input type="hidden" name="booking_id" value={flightBooking.id} />
|
||||||
|
|
||||||
|
<div class="flex flex-1 flex-col gap-6 px-6 py-6">
|
||||||
|
<!-- Booking Details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_confirmation_number" class="text-sm font-medium text-gray-700">
|
||||||
|
Confirmation number
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="edit_confirmation_number"
|
||||||
|
name="confirmation_number"
|
||||||
|
type="text"
|
||||||
|
bind:value={confirmationNumber}
|
||||||
|
placeholder="ABC123"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_price" class="text-sm font-medium text-gray-700">Price</label>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
<select
|
||||||
|
name="currency"
|
||||||
|
bind:value={currency}
|
||||||
|
class="rounded-md border border-gray-300 px-2 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="USD">USD</option>
|
||||||
|
<option value="EUR">EUR</option>
|
||||||
|
<option value="GBP">GBP</option>
|
||||||
|
<option value="CAD">CAD</option>
|
||||||
|
<option value="JPY">JPY</option>
|
||||||
|
<option value="AUD">AUD</option>
|
||||||
|
</select>
|
||||||
|
<input
|
||||||
|
id="edit_price"
|
||||||
|
name="price"
|
||||||
|
type="number"
|
||||||
|
step="0.01"
|
||||||
|
bind:value={price}
|
||||||
|
placeholder="0.00"
|
||||||
|
class="flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Status -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Status</span>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
{#each [{ value: 'idea', label: 'Idea', color: 'bg-gray-100 text-gray-700 border-gray-300' }, { value: 'tentative', label: 'Tentative', color: 'bg-yellow-50 text-yellow-800 border-yellow-300' }, { value: 'confirmed', label: 'Confirmed', color: 'bg-green-50 text-green-800 border-green-300' }] as opt}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-all {status ===
|
||||||
|
opt.value
|
||||||
|
? opt.color +
|
||||||
|
' ring-2 ring-offset-1 ' +
|
||||||
|
(opt.value === 'idea'
|
||||||
|
? 'ring-gray-400'
|
||||||
|
: opt.value === 'tentative'
|
||||||
|
? 'ring-yellow-400'
|
||||||
|
: 'ring-green-500')
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="status"
|
||||||
|
value={opt.value}
|
||||||
|
bind:group={status}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{opt.label}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Passengers -->
|
||||||
|
{#if people.length > 0 && tripTravellerIds.length > 0}
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Passengers</span>
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
{#each people.filter((p) => tripTravellerIds.includes(p.id)) as person}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm {selectedPassengers.includes(
|
||||||
|
person.id
|
||||||
|
)
|
||||||
|
? 'border-blue-500 bg-blue-50 text-blue-700'
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={selectedPassengers.includes(person.id)}
|
||||||
|
onchange={() => togglePassenger(person.id)}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{person.first_name}
|
||||||
|
{person.last_name}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#each selectedPassengers as personId}
|
||||||
|
<input type="hidden" name="passenger_ids[]" value={personId} />
|
||||||
|
{/each}
|
||||||
|
|
||||||
|
<!-- Flight Segments -->
|
||||||
|
<div class="flex flex-col gap-4">
|
||||||
|
<div class="flex items-center justify-between">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Flight segments</span>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={addSegment}
|
||||||
|
class="text-sm text-blue-600 hover:text-blue-700"
|
||||||
|
>
|
||||||
|
+ Add segment
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{#each segments as segment, segmentIndex (segmentIndex)}
|
||||||
|
<div class="rounded-lg border border-gray-200 p-4">
|
||||||
|
<div class="mb-4 flex items-center justify-between">
|
||||||
|
<span class="text-xs font-medium text-gray-500">Segment {segmentIndex + 1}</span>
|
||||||
|
{#if segments.length > 1}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => removeSegment(segmentIndex)}
|
||||||
|
class="text-xs text-red-600 hover:text-red-700"
|
||||||
|
>
|
||||||
|
Remove
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col gap-4">
|
||||||
|
<!-- Departure Date -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure date</label>
|
||||||
|
<input
|
||||||
|
type="date"
|
||||||
|
bind:value={segment.departureDate}
|
||||||
|
name="segments[{segmentIndex}][departure_date]"
|
||||||
|
required
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Airline -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Airline</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.airlineIata}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirlines(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'airline' };
|
||||||
|
}}
|
||||||
|
placeholder="Search airline or enter code"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirlines && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'airline'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airlines.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'airline'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airlines as airline}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirline(segmentIndex, airline)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="font-medium text-gray-900">{airline.name}</span>
|
||||||
|
{#if airline.iata_code}
|
||||||
|
<span class="text-gray-500">({airline.iata_code})</span>
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.airlineId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_id]"
|
||||||
|
value={segment.airlineId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.airlineIata}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_iata]"
|
||||||
|
value={segment.airlineIata}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.airlineName}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][airline_name]"
|
||||||
|
value={segment.airlineName}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Flight Number -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Flight number</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.flightNumber}
|
||||||
|
name="segments[{segmentIndex}][flight_number]"
|
||||||
|
required
|
||||||
|
placeholder="1234"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Airports -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure airport</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.departureAirportCode}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirports(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'departure' };
|
||||||
|
}}
|
||||||
|
placeholder="Code or search"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirports && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'departure'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airports.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'departure'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airports as airport}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirport(segmentIndex, 'departure', airport)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="font-medium text-gray-900">{airport.name}</div>
|
||||||
|
<div class="text-xs text-gray-500">
|
||||||
|
{airport.iata_code || airport.icao_code} • {airport.city}, {airport.country}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.departureAirportId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][departure_airport_id]"
|
||||||
|
value={segment.departureAirportId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.departureAirportCode}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][departure_airport_code]"
|
||||||
|
value={segment.departureAirportCode}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Arrival airport</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
bind:value={segment.arrivalAirportCode}
|
||||||
|
oninput={(e) => {
|
||||||
|
searchAirports(e.currentTarget.value);
|
||||||
|
activeSearchField = { segmentIndex, field: 'arrival' };
|
||||||
|
}}
|
||||||
|
placeholder="Code or search"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingAirports && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'arrival'}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle
|
||||||
|
class="opacity-25"
|
||||||
|
cx="12"
|
||||||
|
cy="12"
|
||||||
|
r="10"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="4"
|
||||||
|
></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if airports.length > 0 && activeSearchField?.segmentIndex === segmentIndex && activeSearchField?.field === 'arrival'}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 w-full overflow-hidden rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each airports as airport}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectAirport(segmentIndex, 'arrival', airport)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<div class="flex-1">
|
||||||
|
<div class="font-medium text-gray-900">{airport.name}</div>
|
||||||
|
<div class="text-xs text-gray-500">
|
||||||
|
{airport.iata_code || airport.icao_code} • {airport.city}, {airport.country}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if segment.arrivalAirportId}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][arrival_airport_id]"
|
||||||
|
value={segment.arrivalAirportId}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
{#if segment.arrivalAirportCode}
|
||||||
|
<input
|
||||||
|
type="hidden"
|
||||||
|
name="segments[{segmentIndex}][arrival_airport_code]"
|
||||||
|
value={segment.arrivalAirportCode}
|
||||||
|
/>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Times -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Departure time</label>
|
||||||
|
<input
|
||||||
|
type="datetime-local"
|
||||||
|
bind:value={segment.departureDatetime}
|
||||||
|
name="segments[{segmentIndex}][departure_datetime]"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label class="text-xs font-medium text-gray-700">Arrival time</label>
|
||||||
|
<input
|
||||||
|
type="datetime-local"
|
||||||
|
bind:value={segment.arrivalDatetime}
|
||||||
|
name="segments[{segmentIndex}][arrival_datetime]"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<div class="flex justify-end gap-3 border-t border-gray-200 px-6 py-4">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md border border-gray-300 px-4 py-2 text-sm text-gray-700 hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={!canSubmit}
|
||||||
|
class="rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50"
|
||||||
|
>
|
||||||
|
Save changes
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
688
src/lib/components/EditLodgingModal.svelte
Normal file
@@ -0,0 +1,688 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { enhance } from '$app/forms';
|
||||||
|
import { base } from '$app/paths';
|
||||||
|
import type { Person } from '$lib/server/travellers.js';
|
||||||
|
import type { Lodging } from '$lib/server/lodgings.js';
|
||||||
|
import type { PlanStatus } from '$lib/server/plans.js';
|
||||||
|
|
||||||
|
interface City {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
country: string;
|
||||||
|
country_code: string;
|
||||||
|
population: number | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Country {
|
||||||
|
name: string;
|
||||||
|
country_code: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
open: boolean;
|
||||||
|
onclose: () => void;
|
||||||
|
lodging: (Lodging & { guestIds: string[]; planStatus: PlanStatus }) | null;
|
||||||
|
people: Person[];
|
||||||
|
tripTravellerIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
let { open, onclose, lodging, people = [], tripTravellerIds = [] }: Props = $props();
|
||||||
|
|
||||||
|
const TIMEZONES = [
|
||||||
|
{ label: 'UTC (UTC+0)', value: 'UTC' },
|
||||||
|
{ label: 'London (GMT/BST, UTC+0/+1)', value: 'Europe/London' },
|
||||||
|
{ label: 'Dublin (IST, UTC+0/+1)', value: 'Europe/Dublin' },
|
||||||
|
{ label: 'Lisbon (WET/WEST, UTC+0/+1)', value: 'Europe/Lisbon' },
|
||||||
|
{ label: 'Paris / Berlin / Rome (CET, UTC+1/+2)', value: 'Europe/Paris' },
|
||||||
|
{ label: 'Helsinki / Athens (EET, UTC+2/+3)', value: 'Europe/Helsinki' },
|
||||||
|
{ label: 'Istanbul (TRT, UTC+3)', value: 'Europe/Istanbul' },
|
||||||
|
{ label: 'Moscow (MSK, UTC+3)', value: 'Europe/Moscow' },
|
||||||
|
{ label: 'Dubai (GST, UTC+4)', value: 'Asia/Dubai' },
|
||||||
|
{ label: 'Karachi (PKT, UTC+5)', value: 'Asia/Karachi' },
|
||||||
|
{ label: 'Kolkata (IST, UTC+5:30)', value: 'Asia/Kolkata' },
|
||||||
|
{ label: 'Dhaka (BST, UTC+6)', value: 'Asia/Dhaka' },
|
||||||
|
{ label: 'Bangkok (ICT, UTC+7)', value: 'Asia/Bangkok' },
|
||||||
|
{ label: 'Singapore / Kuala Lumpur (SGT/MYT, UTC+8)', value: 'Asia/Singapore' },
|
||||||
|
{ label: 'Hong Kong (HKT, UTC+8)', value: 'Asia/Hong_Kong' },
|
||||||
|
{ label: 'Shanghai / Beijing (CST, UTC+8)', value: 'Asia/Shanghai' },
|
||||||
|
{ label: 'Perth (AWST, UTC+8)', value: 'Australia/Perth' },
|
||||||
|
{ label: 'Tokyo / Seoul (JST/KST, UTC+9)', value: 'Asia/Tokyo' },
|
||||||
|
{ label: 'Darwin (ACST, UTC+9:30)', value: 'Australia/Darwin' },
|
||||||
|
{ label: 'Brisbane (AEST, UTC+10)', value: 'Australia/Brisbane' },
|
||||||
|
{ label: 'Sydney / Melbourne (AEST/AEDT, UTC+10/+11)', value: 'Australia/Sydney' },
|
||||||
|
{ label: 'Auckland (NZST/NZDT, UTC+12/+13)', value: 'Pacific/Auckland' },
|
||||||
|
{ label: 'Fiji (FJT, UTC+12)', value: 'Pacific/Fiji' },
|
||||||
|
{ label: 'Azores (AZOT/AZOST, UTC-1/0)', value: 'Atlantic/Azores' },
|
||||||
|
{ label: 'Cape Verde (CVT, UTC-1)', value: 'Atlantic/Cape_Verde' },
|
||||||
|
{ label: 'Buenos Aires (ART, UTC-3)', value: 'America/Argentina/Buenos_Aires' },
|
||||||
|
{ label: 'Sao Paulo (BRT/BRST, UTC-3/−2)', value: 'America/Sao_Paulo' },
|
||||||
|
{ label: 'Halifax (AST/ADT, UTC-4/−3)', value: 'America/Halifax' },
|
||||||
|
{ label: 'New York / Toronto (EST/EDT, UTC-5/−4)', value: 'America/New_York' },
|
||||||
|
{ label: 'Chicago / Mexico City (CST/CDT, UTC-6/−5)', value: 'America/Chicago' },
|
||||||
|
{ label: 'Denver (MST/MDT, UTC-7/−6)', value: 'America/Denver' },
|
||||||
|
{ label: 'Phoenix (MST, UTC-7)', value: 'America/Phoenix' },
|
||||||
|
{ label: 'Los Angeles / Vancouver (PST/PDT, UTC-8/−7)', value: 'America/Los_Angeles' },
|
||||||
|
{ label: 'Anchorage (AKST/AKDT, UTC-9/−8)', value: 'America/Anchorage' },
|
||||||
|
{ label: 'Honolulu (HST, UTC-10)', value: 'Pacific/Honolulu' }
|
||||||
|
];
|
||||||
|
|
||||||
|
let name = $state('');
|
||||||
|
let chain = $state('');
|
||||||
|
let status = $state<'idea' | 'tentative' | 'confirmed'>('idea');
|
||||||
|
let checkInDate = $state('');
|
||||||
|
let checkInTime = $state('');
|
||||||
|
let checkInTimezone = $state('');
|
||||||
|
let checkOutDate = $state('');
|
||||||
|
let checkOutTime = $state('');
|
||||||
|
let checkOutTimezone = $state('');
|
||||||
|
let addressLine1 = $state('');
|
||||||
|
let addressLine2 = $state('');
|
||||||
|
let cityName = $state('');
|
||||||
|
let country = $state('');
|
||||||
|
let countryCode = $state('');
|
||||||
|
let postalCode = $state('');
|
||||||
|
let cityQuery = $state('');
|
||||||
|
let cities = $state<City[]>([]);
|
||||||
|
let loadingCities = $state(false);
|
||||||
|
let countryQuery = $state('');
|
||||||
|
let countries = $state<Country[]>([]);
|
||||||
|
let loadingCountries = $state(false);
|
||||||
|
let showCountryDropdown = $state(false);
|
||||||
|
let showCityDropdown = $state(false);
|
||||||
|
let cityDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
let countryDebounce: ReturnType<typeof setTimeout>;
|
||||||
|
|
||||||
|
function flagEmoji(code: string): string {
|
||||||
|
if (!code || code.length !== 2) return '';
|
||||||
|
return code
|
||||||
|
.toUpperCase()
|
||||||
|
.split('')
|
||||||
|
.map((c) => String.fromCodePoint(0x1f1e6 + c.charCodeAt(0) - 65))
|
||||||
|
.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchCities(query: string) {
|
||||||
|
clearTimeout(cityDebounce);
|
||||||
|
if (!query.trim()) {
|
||||||
|
cities = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cityDebounce = setTimeout(async () => {
|
||||||
|
loadingCities = true;
|
||||||
|
try {
|
||||||
|
const params = new URLSearchParams({ q: query.trim() });
|
||||||
|
if (countryCode) params.set('country_code', countryCode);
|
||||||
|
const res = await fetch(`${base}/api/cities?${params}`);
|
||||||
|
cities = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingCities = false;
|
||||||
|
}
|
||||||
|
}, 250);
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchCountries(query: string) {
|
||||||
|
clearTimeout(countryDebounce);
|
||||||
|
countryDebounce = setTimeout(async () => {
|
||||||
|
loadingCountries = true;
|
||||||
|
try {
|
||||||
|
const params = query.trim() ? `?q=${encodeURIComponent(query.trim())}` : '';
|
||||||
|
const res = await fetch(`${base}/api/countries${params}`);
|
||||||
|
countries = await res.json();
|
||||||
|
} finally {
|
||||||
|
loadingCountries = false;
|
||||||
|
}
|
||||||
|
}, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectCity(city: City) {
|
||||||
|
cityName = city.name;
|
||||||
|
country = city.country;
|
||||||
|
countryCode = city.country_code;
|
||||||
|
cities = [];
|
||||||
|
showCityDropdown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function selectCountry(c: Country) {
|
||||||
|
country = c.name;
|
||||||
|
countryCode = c.country_code;
|
||||||
|
countries = [];
|
||||||
|
showCountryDropdown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCityInput() {
|
||||||
|
showCityDropdown = true;
|
||||||
|
searchCities(cityQuery || cityName);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onCountryInput() {
|
||||||
|
showCountryDropdown = true;
|
||||||
|
searchCountries(countryQuery || country);
|
||||||
|
}
|
||||||
|
let confirmationNumber = $state('');
|
||||||
|
let website = $state('');
|
||||||
|
let phone = $state('');
|
||||||
|
let price = $state('');
|
||||||
|
let currency = $state('USD');
|
||||||
|
let selectedGuests = $state<string[]>([]);
|
||||||
|
|
||||||
|
// Pre-populate when the modal opens with a lodging
|
||||||
|
$effect(() => {
|
||||||
|
if (open && lodging) {
|
||||||
|
name = lodging.name;
|
||||||
|
chain = lodging.chain ?? '';
|
||||||
|
status = lodging.planStatus;
|
||||||
|
checkInDate = lodging.check_in_date ?? '';
|
||||||
|
checkInTime = lodging.check_in_time ?? '';
|
||||||
|
checkInTimezone = lodging.check_in_timezone ?? '';
|
||||||
|
checkOutDate = lodging.check_out_date ?? '';
|
||||||
|
checkOutTime = lodging.check_out_time ?? '';
|
||||||
|
checkOutTimezone = lodging.check_out_timezone ?? '';
|
||||||
|
addressLine1 = lodging.address_line1 ?? '';
|
||||||
|
addressLine2 = lodging.address_line2 ?? '';
|
||||||
|
cityName = lodging.city_name ?? '';
|
||||||
|
country = lodging.country ?? '';
|
||||||
|
countryCode = lodging.country_code ?? '';
|
||||||
|
postalCode = lodging.postal_code ?? '';
|
||||||
|
confirmationNumber = lodging.confirmation_number ?? '';
|
||||||
|
website = lodging.website ?? '';
|
||||||
|
phone = lodging.phone ?? '';
|
||||||
|
price = lodging.price != null ? String(lodging.price) : '';
|
||||||
|
currency = lodging.currency ?? 'USD';
|
||||||
|
selectedGuests = [...(lodging.guestIds ?? [])];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function toggleGuest(personId: string) {
|
||||||
|
if (selectedGuests.includes(personId)) {
|
||||||
|
selectedGuests = selectedGuests.filter((id) => id !== personId);
|
||||||
|
} else {
|
||||||
|
selectedGuests = [...selectedGuests, personId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleClose() {
|
||||||
|
onclose();
|
||||||
|
}
|
||||||
|
|
||||||
|
let canSubmit = $derived(name.trim().length > 0);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if open && lodging}
|
||||||
|
<!-- Backdrop -->
|
||||||
|
<div
|
||||||
|
class="fixed inset-0 z-40 bg-black/30"
|
||||||
|
role="button"
|
||||||
|
tabindex="-1"
|
||||||
|
onclick={handleClose}
|
||||||
|
onkeydown={(e) => e.key === 'Escape' && handleClose()}
|
||||||
|
></div>
|
||||||
|
|
||||||
|
<!-- Panel -->
|
||||||
|
<div
|
||||||
|
class="fixed top-0 right-0 z-50 flex h-full w-full max-w-2xl flex-col bg-white shadow-xl"
|
||||||
|
role="dialog"
|
||||||
|
aria-modal="true"
|
||||||
|
aria-label="Edit lodging"
|
||||||
|
>
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="flex items-center justify-between border-b border-gray-200 px-6 py-4">
|
||||||
|
<h2 class="text-base font-semibold text-gray-900">Edit lodging</h2>
|
||||||
|
<button
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="20"
|
||||||
|
height="20"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Form -->
|
||||||
|
<form
|
||||||
|
method="POST"
|
||||||
|
action="?/editLodging"
|
||||||
|
class="flex flex-1 flex-col overflow-y-auto"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ result, update }) => {
|
||||||
|
update();
|
||||||
|
if (result.type === 'success') handleClose();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<input type="hidden" name="lodging_id" value={lodging.id} />
|
||||||
|
|
||||||
|
<div class="flex flex-1 flex-col gap-6 px-6 py-6">
|
||||||
|
<!-- Property details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_lodging_name" class="text-sm font-medium text-gray-700">
|
||||||
|
Name <span class="text-red-500">*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="edit_lodging_name"
|
||||||
|
name="name"
|
||||||
|
type="text"
|
||||||
|
bind:value={name}
|
||||||
|
required
|
||||||
|
placeholder="Grand Hyatt"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_lodging_chain" class="text-sm font-medium text-gray-700">
|
||||||
|
Chain / Brand
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="edit_lodging_chain"
|
||||||
|
name="chain"
|
||||||
|
type="text"
|
||||||
|
bind:value={chain}
|
||||||
|
placeholder="Hyatt Hotels"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Status -->
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Status</span>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
{#each [{ value: 'idea', label: 'Idea', color: 'bg-gray-100 text-gray-700 border-gray-300' }, { value: 'tentative', label: 'Tentative', color: 'bg-yellow-50 text-yellow-800 border-yellow-300' }, { value: 'confirmed', label: 'Confirmed', color: 'bg-green-50 text-green-800 border-green-300' }] as opt}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm transition-all {status ===
|
||||||
|
opt.value
|
||||||
|
? opt.color +
|
||||||
|
' ring-2 ring-offset-1 ' +
|
||||||
|
(opt.value === 'idea'
|
||||||
|
? 'ring-gray-400'
|
||||||
|
: opt.value === 'tentative'
|
||||||
|
? 'ring-yellow-400'
|
||||||
|
: 'ring-green-500')
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="status"
|
||||||
|
value={opt.value}
|
||||||
|
bind:group={status}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{opt.label}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Check-in / Check-out -->
|
||||||
|
<div class="grid grid-cols-2 gap-6">
|
||||||
|
<!-- Check-in -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Check-in</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_in_date" class="text-xs font-medium text-gray-500">Date</label>
|
||||||
|
<input
|
||||||
|
id="edit_check_in_date"
|
||||||
|
name="check_in_date"
|
||||||
|
type="date"
|
||||||
|
bind:value={checkInDate}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_in_time" class="text-xs font-medium text-gray-500">Time</label>
|
||||||
|
<input
|
||||||
|
id="edit_check_in_time"
|
||||||
|
name="check_in_time"
|
||||||
|
type="time"
|
||||||
|
bind:value={checkInTime}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_in_timezone" class="text-xs font-medium text-gray-500"
|
||||||
|
>Timezone</label
|
||||||
|
>
|
||||||
|
<select
|
||||||
|
id="edit_check_in_timezone"
|
||||||
|
name="check_in_timezone"
|
||||||
|
bind:value={checkInTimezone}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="">— select —</option>
|
||||||
|
{#each TIMEZONES as tz}
|
||||||
|
<option value={tz.value}>{tz.label}</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Check-out -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Check-out</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_out_date" class="text-xs font-medium text-gray-500"
|
||||||
|
>Date</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="edit_check_out_date"
|
||||||
|
name="check_out_date"
|
||||||
|
type="date"
|
||||||
|
bind:value={checkOutDate}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_out_time" class="text-xs font-medium text-gray-500"
|
||||||
|
>Time</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="edit_check_out_time"
|
||||||
|
name="check_out_time"
|
||||||
|
type="time"
|
||||||
|
bind:value={checkOutTime}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_check_out_timezone" class="text-xs font-medium text-gray-500"
|
||||||
|
>Timezone</label
|
||||||
|
>
|
||||||
|
<select
|
||||||
|
id="edit_check_out_timezone"
|
||||||
|
name="check_out_timezone"
|
||||||
|
bind:value={checkOutTimezone}
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="">— select —</option>
|
||||||
|
{#each TIMEZONES as tz}
|
||||||
|
<option value={tz.value}>{tz.label}</option>
|
||||||
|
{/each}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Address -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Address</span>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_address_line1" class="text-xs font-medium text-gray-500"
|
||||||
|
>Address line 1</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="edit_address_line1"
|
||||||
|
name="address_line1"
|
||||||
|
type="text"
|
||||||
|
bind:value={addressLine1}
|
||||||
|
placeholder="10 Scotts Road"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_address_line2" class="text-xs font-medium text-gray-500"
|
||||||
|
>Address line 2</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="edit_address_line2"
|
||||||
|
name="address_line2"
|
||||||
|
type="text"
|
||||||
|
bind:value={addressLine2}
|
||||||
|
placeholder="Level 3"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_city_name" class="text-xs font-medium text-gray-500">City</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
id="edit_city_name"
|
||||||
|
name="city_name"
|
||||||
|
type="text"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={cityName}
|
||||||
|
oninput={(e) => {
|
||||||
|
cityName = e.currentTarget.value;
|
||||||
|
cityQuery = e.currentTarget.value;
|
||||||
|
onCityInput();
|
||||||
|
}}
|
||||||
|
onfocus={() => {
|
||||||
|
if (cityName) onCityInput();
|
||||||
|
}}
|
||||||
|
onblur={() => setTimeout(() => (showCityDropdown = false), 150)}
|
||||||
|
placeholder="Search or type city name"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingCities}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if showCityDropdown && cities.length > 0}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each cities as city}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectCity(city)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="text-lg leading-none">{flagEmoji(city.country_code)}</span>
|
||||||
|
<div>
|
||||||
|
<span class="font-medium text-gray-900">{city.name}</span>
|
||||||
|
<span class="ml-1.5 text-gray-500">{city.country}</span>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_country" class="text-xs font-medium text-gray-500">Country</label>
|
||||||
|
<div class="relative">
|
||||||
|
<input
|
||||||
|
id="edit_country"
|
||||||
|
name="country"
|
||||||
|
type="text"
|
||||||
|
autocomplete="off"
|
||||||
|
bind:value={country}
|
||||||
|
oninput={(e) => {
|
||||||
|
country = e.currentTarget.value;
|
||||||
|
countryCode = '';
|
||||||
|
countryQuery = e.currentTarget.value;
|
||||||
|
onCountryInput();
|
||||||
|
}}
|
||||||
|
onfocus={() => {
|
||||||
|
showCountryDropdown = true;
|
||||||
|
if (!countries.length) searchCountries(country || '');
|
||||||
|
}}
|
||||||
|
onblur={() => setTimeout(() => (showCountryDropdown = false), 150)}
|
||||||
|
placeholder="Search or type country"
|
||||||
|
class="w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
{#if loadingCountries}
|
||||||
|
<div class="absolute top-2.5 right-3 text-gray-400">
|
||||||
|
<svg class="h-4 w-4 animate-spin" viewBox="0 0 24 24" fill="none">
|
||||||
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||||
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if showCountryDropdown && countries.length > 0}
|
||||||
|
<ul
|
||||||
|
class="absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border border-gray-200 bg-white shadow-lg"
|
||||||
|
>
|
||||||
|
{#each countries as c}
|
||||||
|
<li>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => selectCountry(c)}
|
||||||
|
class="flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
<span class="text-lg leading-none">{flagEmoji(c.country_code)}</span>
|
||||||
|
<span class="font-medium text-gray-900">{c.name}</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{#if countryCode}
|
||||||
|
<input type="hidden" name="country_code" value={countryCode} />
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_postal_code" class="text-xs font-medium text-gray-500"
|
||||||
|
>Postal code</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
id="edit_postal_code"
|
||||||
|
name="postal_code"
|
||||||
|
type="text"
|
||||||
|
bind:value={postalCode}
|
||||||
|
placeholder="228211"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Booking details -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_confirmation_number" class="text-sm font-medium text-gray-700">
|
||||||
|
Confirmation number
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="edit_confirmation_number"
|
||||||
|
name="confirmation_number"
|
||||||
|
type="text"
|
||||||
|
bind:value={confirmationNumber}
|
||||||
|
placeholder="XYZ999"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_website" class="text-sm font-medium text-gray-700">Website</label>
|
||||||
|
<input
|
||||||
|
id="edit_website"
|
||||||
|
name="website"
|
||||||
|
type="url"
|
||||||
|
bind:value={website}
|
||||||
|
placeholder="https://..."
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Contact + Cost -->
|
||||||
|
<div class="grid grid-cols-2 gap-4">
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_phone" class="text-sm font-medium text-gray-700">Phone</label>
|
||||||
|
<input
|
||||||
|
id="edit_phone"
|
||||||
|
name="phone"
|
||||||
|
type="tel"
|
||||||
|
bind:value={phone}
|
||||||
|
placeholder="+65 6416 7000"
|
||||||
|
class="rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<label for="edit_price" class="text-sm font-medium text-gray-700">Price</label>
|
||||||
|
<div class="flex gap-2">
|
||||||
|
<select
|
||||||
|
name="currency"
|
||||||
|
bind:value={currency}
|
||||||
|
class="rounded-md border border-gray-300 px-2 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
>
|
||||||
|
<option value="USD">USD</option>
|
||||||
|
<option value="EUR">EUR</option>
|
||||||
|
<option value="GBP">GBP</option>
|
||||||
|
<option value="CAD">CAD</option>
|
||||||
|
<option value="JPY">JPY</option>
|
||||||
|
<option value="AUD">AUD</option>
|
||||||
|
<option value="SGD">SGD</option>
|
||||||
|
<option value="HKD">HKD</option>
|
||||||
|
<option value="NZD">NZD</option>
|
||||||
|
</select>
|
||||||
|
<input
|
||||||
|
id="edit_price"
|
||||||
|
name="price"
|
||||||
|
type="number"
|
||||||
|
step="0.01"
|
||||||
|
bind:value={price}
|
||||||
|
placeholder="0.00"
|
||||||
|
class="flex-1 rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 focus:border-blue-500 focus:ring-1 focus:ring-blue-500 focus:outline-none"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Guests -->
|
||||||
|
{#if people.length > 0 && tripTravellerIds.length > 0}
|
||||||
|
<div class="flex flex-col gap-1.5">
|
||||||
|
<span class="text-sm font-medium text-gray-700">Guests</span>
|
||||||
|
<div class="flex flex-wrap gap-2">
|
||||||
|
{#each people.filter((p) => tripTravellerIds.includes(p.id)) as person}
|
||||||
|
<label
|
||||||
|
class="flex cursor-pointer items-center gap-2 rounded-md border px-3 py-2 text-sm {selectedGuests.includes(
|
||||||
|
person.id
|
||||||
|
)
|
||||||
|
? 'border-blue-500 bg-blue-50 text-blue-700'
|
||||||
|
: 'border-gray-200 bg-white text-gray-600 hover:bg-gray-50'}"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={selectedGuests.includes(person.id)}
|
||||||
|
onchange={() => toggleGuest(person.id)}
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
{person.first_name}
|
||||||
|
{person.last_name}
|
||||||
|
</label>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#each selectedGuests as personId}
|
||||||
|
<input type="hidden" name="guest_ids[]" value={personId} />
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<div class="flex justify-end gap-3 border-t border-gray-200 px-6 py-4">
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={handleClose}
|
||||||
|
class="rounded-md border border-gray-300 px-4 py-2 text-sm text-gray-700 hover:bg-gray-50"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={!canSubmit}
|
||||||
|
class="rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-50"
|
||||||
|
>
|
||||||
|
Save changes
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
289
src/lib/components/FlightCard.svelte
Normal file
@@ -0,0 +1,289 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import { base } from '$app/paths';
|
||||||
|
import type { Plan } from '$lib/server/plans.js';
|
||||||
|
import type { FlightBooking, FlightSegment, FlightRoute } from '$lib/server/flights.js';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
plan: Plan;
|
||||||
|
flightBooking: FlightBooking & {
|
||||||
|
segments: Array<FlightSegment & { route: FlightRoute | null }>;
|
||||||
|
};
|
||||||
|
onEdit?: () => void;
|
||||||
|
onDelete?: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
let { plan, flightBooking, onEdit, onDelete }: Props = $props();
|
||||||
|
|
||||||
|
function formatDate(d: string | null): string {
|
||||||
|
if (!d) return '';
|
||||||
|
return new Date(d + 'T00:00:00').toLocaleDateString(undefined, {
|
||||||
|
day: 'numeric',
|
||||||
|
month: 'short',
|
||||||
|
year: 'numeric'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatDuration(mins: number): string {
|
||||||
|
const h = Math.floor(mins / 60);
|
||||||
|
const m = mins % 60;
|
||||||
|
return m === 0 ? `${h}h` : `${h}h ${m}m`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTime(dt: string | null): string {
|
||||||
|
if (!dt) return '';
|
||||||
|
// datetime-local values are stored as "YYYY-MM-DDTHH:MM"
|
||||||
|
// Extract just the time portion for display
|
||||||
|
const timePart = dt.includes('T') ? dt.split('T')[1] : dt;
|
||||||
|
// Format HH:MM — strip seconds if present
|
||||||
|
return timePart.slice(0, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
const statusConfig = {
|
||||||
|
idea: { label: 'Idea', class: 'bg-gray-100 text-gray-600' },
|
||||||
|
tentative: { label: 'Tentative', class: 'bg-yellow-100 text-yellow-800' },
|
||||||
|
confirmed: { label: 'Confirmed', class: 'bg-green-100 text-green-800' }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Derive the airline IATA from the first segment (for the header label)
|
||||||
|
const airlineName = $derived(
|
||||||
|
flightBooking.segments[0]?.airline_name || flightBooking.segments[0]?.airline_iata || 'Flight'
|
||||||
|
);
|
||||||
|
|
||||||
|
// True when every segment is operated by the same airline — logo goes in the header
|
||||||
|
const singleAirline = $derived(
|
||||||
|
flightBooking.segments.length > 0 &&
|
||||||
|
flightBooking.segments.every((s) => s.airline_iata === flightBooking.segments[0].airline_iata)
|
||||||
|
);
|
||||||
|
const sharedIata = $derived(
|
||||||
|
singleAirline ? (flightBooking.segments[0].airline_iata ?? null) : null
|
||||||
|
);
|
||||||
|
|
||||||
|
// Per-segment logo error state (used when airlines differ across segments)
|
||||||
|
let logoErrors = $state<Record<number, boolean>>({});
|
||||||
|
let headerLogoError = $state(false);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="rounded-xl border border-gray-200 bg-white p-5 shadow-sm">
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="mb-4 flex items-start justify-between gap-3">
|
||||||
|
<div class="flex min-w-0 flex-1 items-start gap-3">
|
||||||
|
<!-- Shared airline logo (shown here only when all segments are the same airline) -->
|
||||||
|
{#if sharedIata && !headerLogoError}
|
||||||
|
<img
|
||||||
|
src="{base}/airline-logos/{sharedIata}.svg"
|
||||||
|
alt="{airlineName} logo"
|
||||||
|
width="80"
|
||||||
|
height="40"
|
||||||
|
class="mt-0.5 h-10 w-20 shrink-0 object-contain"
|
||||||
|
onerror={() => (headerLogoError = true)}
|
||||||
|
/>
|
||||||
|
{:else if !sharedIata}
|
||||||
|
<!-- Different airlines per segment — no header logo, segments show their own -->
|
||||||
|
{:else}
|
||||||
|
<!-- Logo load failed — fall back to plane icon -->
|
||||||
|
<svg
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="1.5"
|
||||||
|
class="mt-1 shrink-0 text-gray-300"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M17.8 19.2L16 11l3.5-3.5C21 6 21 4 19.5 2.5S18 2 16.5 3.5L13 7 4.8 5.2l-1.7 1.7 5.5 3.8-2.5 2.5-2.1-.5-1.5 1.5 3.8 2.2 2.2 3.8 1.5-1.5-.5-2.1 2.5-2.5 3.8 5.5z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<div class="flex flex-wrap items-center gap-2">
|
||||||
|
<p class="font-medium text-gray-900">
|
||||||
|
{airlineName}
|
||||||
|
{flightBooking.segments[0]?.flight_number ?? ''}
|
||||||
|
{#if flightBooking.segments.length > 1}
|
||||||
|
<span class="text-sm font-normal text-gray-500">
|
||||||
|
+{flightBooking.segments.length - 1} more
|
||||||
|
</span>
|
||||||
|
{/if}
|
||||||
|
</p>
|
||||||
|
<span
|
||||||
|
class="shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium {statusConfig[
|
||||||
|
plan.status
|
||||||
|
].class}"
|
||||||
|
>
|
||||||
|
{statusConfig[plan.status].label}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="mt-0.5 flex flex-wrap gap-x-3 gap-y-0.5 text-xs text-gray-500">
|
||||||
|
{#if flightBooking.confirmation_number}
|
||||||
|
<span>Confirmation: {flightBooking.confirmation_number}</span>
|
||||||
|
{/if}
|
||||||
|
{#if flightBooking.price}
|
||||||
|
<span>{flightBooking.currency} {flightBooking.price.toFixed(2)}</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex shrink-0 items-center gap-1">
|
||||||
|
{#if onEdit}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={onEdit}
|
||||||
|
class="rounded-md p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Edit flight"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="15"
|
||||||
|
height="15"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||||
|
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
{#if onDelete}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={onDelete}
|
||||||
|
class="rounded-md p-1.5 text-gray-400 hover:bg-gray-100 hover:text-red-600"
|
||||||
|
aria-label="Remove flight"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="15"
|
||||||
|
height="15"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2.5"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Segments -->
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
{#each flightBooking.segments as segment, index}
|
||||||
|
{#if index > 0}
|
||||||
|
<div class="border-t border-gray-100"></div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<!-- Segment content -->
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<!-- Route row -->
|
||||||
|
{#if segment.route?.departure_airport_code || segment.route?.arrival_airport_code}
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<span class="text-lg font-semibold tracking-wide text-gray-900">
|
||||||
|
{segment.route.departure_airport_code || '—'}
|
||||||
|
</span>
|
||||||
|
<svg
|
||||||
|
width="32"
|
||||||
|
height="14"
|
||||||
|
viewBox="0 0 32 14"
|
||||||
|
fill="none"
|
||||||
|
class="shrink-0 text-gray-400"
|
||||||
|
>
|
||||||
|
<line x1="0" y1="7" x2="24" y2="7" stroke="currentColor" stroke-width="1.5" />
|
||||||
|
<polyline
|
||||||
|
points="18,2 24,7 18,12"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="1.5"
|
||||||
|
fill="none"
|
||||||
|
/>
|
||||||
|
<circle cx="10" cy="7" r="2" fill="currentColor" />
|
||||||
|
</svg>
|
||||||
|
<span class="text-lg font-semibold tracking-wide text-gray-900">
|
||||||
|
{segment.route.arrival_airport_code || '—'}
|
||||||
|
</span>
|
||||||
|
{#if flightBooking.segments.length > 1}
|
||||||
|
<span class="ml-1 text-xs text-gray-400">
|
||||||
|
{segment.airline_name || segment.airline_iata || ''}
|
||||||
|
{segment.flight_number}
|
||||||
|
</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Times row -->
|
||||||
|
{#if segment.route.departure_datetime || segment.route.arrival_datetime}
|
||||||
|
<div class="mt-1 flex items-baseline gap-4 text-sm text-gray-700">
|
||||||
|
{#if segment.route.departure_datetime}
|
||||||
|
<span class="font-medium">{formatTime(segment.route.departure_datetime)}</span>
|
||||||
|
{/if}
|
||||||
|
{#if segment.route.departure_datetime && segment.route.arrival_datetime}
|
||||||
|
<span class="text-gray-300">→</span>
|
||||||
|
{/if}
|
||||||
|
{#if segment.route.arrival_datetime}
|
||||||
|
<span class="font-medium">{formatTime(segment.route.arrival_datetime)}</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{:else if flightBooking.segments.length > 1}
|
||||||
|
<div class="text-sm font-medium text-gray-700">
|
||||||
|
{segment.airline_name || segment.airline_iata || 'Flight'}
|
||||||
|
{segment.flight_number}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- Date -->
|
||||||
|
{#if segment.departure_date}
|
||||||
|
<div class="mt-0.5 text-xs text-gray-500">{formatDate(segment.departure_date)}</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Distance + duration stats -->
|
||||||
|
{#if segment.route?.distanceKm || segment.route?.durationMins}
|
||||||
|
<div class="shrink-0 text-right">
|
||||||
|
{#if segment.route.distanceKm}
|
||||||
|
<div class="text-xs text-gray-400">
|
||||||
|
{segment.route.distanceKm.toLocaleString()} km
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
{#if segment.route.durationMins}
|
||||||
|
<div class="text-xs text-gray-400">{formatDuration(segment.route.durationMins)}</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- Per-segment airline logo (only when airlines differ across segments) -->
|
||||||
|
{#if !singleAirline}
|
||||||
|
<div class="shrink-0">
|
||||||
|
{#if segment.airline_iata && !logoErrors[index]}
|
||||||
|
<img
|
||||||
|
src="{base}/airline-logos/{segment.airline_iata}.svg"
|
||||||
|
alt="{segment.airline_name || segment.airline_iata} logo"
|
||||||
|
width="80"
|
||||||
|
height="40"
|
||||||
|
class="h-10 w-20 object-contain"
|
||||||
|
onerror={() => (logoErrors[index] = true)}
|
||||||
|
/>
|
||||||
|
{:else}
|
||||||
|
<svg
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="1.5"
|
||||||
|
class="text-gray-300"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M17.8 19.2L16 11l3.5-3.5C21 6 21 4 19.5 2.5S18 2 16.5 3.5L13 7 4.8 5.2l-1.7 1.7 5.5 3.8-2.5 2.5-2.1-.5-1.5 1.5 3.8 2.2 2.2 3.8 1.5-1.5-.5-2.1 2.5-2.5 3.8 5.5z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
215
src/lib/components/LodgingCard.svelte
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
import type { Plan } from '$lib/server/plans.js';
|
||||||
|
import type { Lodging } from '$lib/server/lodgings.js';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
plan: Plan;
|
||||||
|
lodging: Lodging & { guestIds: string[] };
|
||||||
|
onEdit?: () => void;
|
||||||
|
onDelete?: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
let { plan, lodging, onEdit, onDelete }: Props = $props();
|
||||||
|
|
||||||
|
function formatDate(d: string | null): string {
|
||||||
|
if (!d) return '';
|
||||||
|
return new Date(d + 'T00:00:00').toLocaleDateString(undefined, {
|
||||||
|
day: 'numeric',
|
||||||
|
month: 'short',
|
||||||
|
year: 'numeric'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatTime(t: string | null): string {
|
||||||
|
if (!t) return '';
|
||||||
|
return t.slice(0, 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Short timezone label from IANA (e.g. Asia/Singapore -> Singapore)
|
||||||
|
function tzLabel(tz: string | null): string {
|
||||||
|
if (!tz) return '';
|
||||||
|
const parts = tz.split('/');
|
||||||
|
return parts[parts.length - 1]?.replace(/_/g, ' ') ?? tz;
|
||||||
|
}
|
||||||
|
|
||||||
|
const statusConfig = {
|
||||||
|
idea: { label: 'Idea', class: 'bg-gray-100 text-gray-600' },
|
||||||
|
tentative: { label: 'Tentative', class: 'bg-yellow-100 text-yellow-800' },
|
||||||
|
confirmed: { label: 'Confirmed', class: 'bg-green-100 text-green-800' }
|
||||||
|
};
|
||||||
|
|
||||||
|
const hasAddress = $derived(
|
||||||
|
lodging.address_line1 ||
|
||||||
|
lodging.address_line2 ||
|
||||||
|
lodging.city_name ||
|
||||||
|
lodging.country ||
|
||||||
|
lodging.postal_code
|
||||||
|
);
|
||||||
|
|
||||||
|
const addressParts = $derived(
|
||||||
|
[
|
||||||
|
lodging.address_line1,
|
||||||
|
lodging.address_line2,
|
||||||
|
[lodging.city_name, lodging.postal_code].filter(Boolean).join(' '),
|
||||||
|
lodging.country
|
||||||
|
]
|
||||||
|
.filter(Boolean)
|
||||||
|
.join(', ')
|
||||||
|
);
|
||||||
|
|
||||||
|
const hasCheckIn = $derived(lodging.check_in_date || lodging.check_in_time);
|
||||||
|
const hasCheckOut = $derived(lodging.check_out_date || lodging.check_out_time);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="rounded-xl border border-gray-200 bg-white p-5 shadow-sm">
|
||||||
|
<!-- Header -->
|
||||||
|
<div class="mb-4 flex items-start justify-between gap-3">
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<svg
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="1.5"
|
||||||
|
class="shrink-0 text-gray-400"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"
|
||||||
|
/>
|
||||||
|
<polyline points="9 22 9 12 15 12 15 22" />
|
||||||
|
</svg>
|
||||||
|
<div class="min-w-0 flex-1">
|
||||||
|
<div class="flex flex-wrap items-center gap-2">
|
||||||
|
<p class="font-medium text-gray-900">{lodging.name}</p>
|
||||||
|
<span
|
||||||
|
class="shrink-0 rounded-full px-2.5 py-0.5 text-xs font-medium {statusConfig[
|
||||||
|
plan.status
|
||||||
|
].class}"
|
||||||
|
>
|
||||||
|
{statusConfig[plan.status].label}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
{#if lodging.chain}
|
||||||
|
<p class="mt-0.5 text-sm text-gray-500">{lodging.chain}</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex shrink-0 items-center gap-1">
|
||||||
|
{#if onEdit}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={onEdit}
|
||||||
|
class="rounded-md p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-600"
|
||||||
|
aria-label="Edit lodging"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="15"
|
||||||
|
height="15"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
>
|
||||||
|
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||||
|
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
{#if onDelete}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={onDelete}
|
||||||
|
class="rounded-md p-1.5 text-gray-400 hover:bg-gray-100 hover:text-red-600"
|
||||||
|
aria-label="Remove lodging"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="15"
|
||||||
|
height="15"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2.5"
|
||||||
|
>
|
||||||
|
<line x1="18" y1="6" x2="6" y2="18" />
|
||||||
|
<line x1="6" y1="6" x2="18" y2="18" />
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Check-in / Check-out -->
|
||||||
|
{#if hasCheckIn || hasCheckOut}
|
||||||
|
<div class="grid grid-cols-2 gap-4 border-t border-gray-100 py-4">
|
||||||
|
<div>
|
||||||
|
<p class="text-xs font-medium uppercase tracking-wide text-gray-400">Check-in</p>
|
||||||
|
{#if lodging.check_in_date || lodging.check_in_time}
|
||||||
|
<p class="mt-1 text-sm font-medium text-gray-900">
|
||||||
|
{#if lodging.check_in_date}
|
||||||
|
{formatDate(lodging.check_in_date)}
|
||||||
|
{#if lodging.check_in_time}
|
||||||
|
· {formatTime(lodging.check_in_time)}
|
||||||
|
{/if}
|
||||||
|
{:else}
|
||||||
|
{formatTime(lodging.check_in_time)}
|
||||||
|
{/if}
|
||||||
|
</p>
|
||||||
|
{#if lodging.check_in_timezone}
|
||||||
|
<p class="text-xs text-gray-500">({tzLabel(lodging.check_in_timezone)})</p>
|
||||||
|
{/if}
|
||||||
|
{#if lodging.city_name}
|
||||||
|
<p class="text-xs text-gray-500">{lodging.city_name}</p>
|
||||||
|
{/if}
|
||||||
|
{:else}
|
||||||
|
<p class="mt-1 text-sm text-gray-400">—</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p class="text-xs font-medium uppercase tracking-wide text-gray-400">Check-out</p>
|
||||||
|
{#if lodging.check_out_date || lodging.check_out_time}
|
||||||
|
<p class="mt-1 text-sm font-medium text-gray-900">
|
||||||
|
{#if lodging.check_out_date}
|
||||||
|
{formatDate(lodging.check_out_date)}
|
||||||
|
{#if lodging.check_out_time}
|
||||||
|
· {formatTime(lodging.check_out_time)}
|
||||||
|
{/if}
|
||||||
|
{:else}
|
||||||
|
{formatTime(lodging.check_out_time)}
|
||||||
|
{/if}
|
||||||
|
</p>
|
||||||
|
{#if lodging.check_out_timezone}
|
||||||
|
<p class="text-xs text-gray-500">({tzLabel(lodging.check_out_timezone)})</p>
|
||||||
|
{/if}
|
||||||
|
{:else}
|
||||||
|
<p class="mt-1 text-sm text-gray-400">—</p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- Address -->
|
||||||
|
{#if hasAddress && addressParts}
|
||||||
|
<div class="border-t border-gray-100 py-4">
|
||||||
|
<p class="text-sm text-gray-700">{addressParts}</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- Confirmation + Price -->
|
||||||
|
{#if lodging.confirmation_number || (lodging.price != null && lodging.price > 0)}
|
||||||
|
<div class="flex flex-wrap gap-x-3 gap-y-0.5 border-t border-gray-100 pt-4 text-xs text-gray-500">
|
||||||
|
{#if lodging.confirmation_number}
|
||||||
|
<span>Confirmation: {lodging.confirmation_number}</span>
|
||||||
|
{/if}
|
||||||
|
{#if lodging.confirmation_number && lodging.price != null && lodging.price > 0}
|
||||||
|
<span>·</span>
|
||||||
|
{/if}
|
||||||
|
{#if lodging.price != null && lodging.price > 0}
|
||||||
|
<span>{lodging.currency} {lodging.price.toFixed(2)}</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
@@ -11,8 +11,10 @@
|
|||||||
tripName: string;
|
tripName: string;
|
||||||
onAddDestination?: () => void;
|
onAddDestination?: () => void;
|
||||||
onAddTraveller?: () => void;
|
onAddTraveller?: () => void;
|
||||||
|
onAddFlight?: () => void;
|
||||||
|
onAddLodging?: () => void;
|
||||||
}
|
}
|
||||||
let { tripName, onAddDestination, onAddTraveller }: Props = $props();
|
let { tripName, onAddDestination, onAddTraveller, onAddFlight, onAddLodging }: Props = $props();
|
||||||
|
|
||||||
const actions: Action[] = [
|
const actions: Action[] = [
|
||||||
{
|
{
|
||||||
@@ -41,7 +43,7 @@
|
|||||||
icon: `<svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#F97316" stroke-width="1.5">
|
icon: `<svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#F97316" stroke-width="1.5">
|
||||||
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-3.99-3.99A19.79 19.79 0 0 1 4.1 6.18 2 2 0 0 1 6.08 4h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L10.09 11a16 16 0 0 0 5.91 5.91l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 24 18z"/>
|
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-3.99-3.99A19.79 19.79 0 0 1 4.1 6.18 2 2 0 0 1 6.08 4h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L10.09 11a16 16 0 0 0 5.91 5.91l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 24 18z"/>
|
||||||
</svg>`,
|
</svg>`,
|
||||||
onclick: () => {}
|
onclick: () => onAddFlight?.()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Lodgings',
|
label: 'Lodgings',
|
||||||
@@ -51,7 +53,7 @@
|
|||||||
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
|
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
|
||||||
<polyline points="9 22 9 12 15 12 15 22"/>
|
<polyline points="9 22 9 12 15 12 15 22"/>
|
||||||
</svg>`,
|
</svg>`,
|
||||||
onclick: () => {}
|
onclick: () => onAddLodging?.()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Restaurants',
|
label: 'Restaurants',
|
||||||
|
|||||||
59
src/lib/server/data/README.md
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# Airport and Airline Data
|
||||||
|
|
||||||
|
This directory should contain OpenFlights data files for importing airports and airlines.
|
||||||
|
|
||||||
|
## Download Instructions
|
||||||
|
|
||||||
|
1. **Download airports.dat**:
|
||||||
|
- Visit: https://raw.githubusercontent.com/jpatokal/openflights/master/data/airports.dat
|
||||||
|
- Save as: `airports.dat` in this directory
|
||||||
|
|
||||||
|
2. **Download airlines.dat**:
|
||||||
|
- Visit: https://raw.githubusercontent.com/jpatokal/openflights/master/data/airlines.dat
|
||||||
|
- Save as: `airlines.dat` in this directory
|
||||||
|
|
||||||
|
## File Format
|
||||||
|
|
||||||
|
### airports.dat
|
||||||
|
CSV format with the following columns:
|
||||||
|
- Airport ID
|
||||||
|
- Name
|
||||||
|
- City
|
||||||
|
- Country
|
||||||
|
- IATA code (3-letter)
|
||||||
|
- ICAO code (4-letter)
|
||||||
|
- Latitude
|
||||||
|
- Longitude
|
||||||
|
- Altitude
|
||||||
|
- Timezone (offset from UTC)
|
||||||
|
- DST (Daylight Saving Time)
|
||||||
|
- Tz database time zone
|
||||||
|
- Type
|
||||||
|
- Source
|
||||||
|
|
||||||
|
### airlines.dat
|
||||||
|
CSV format with the following columns:
|
||||||
|
- Airline ID
|
||||||
|
- Name
|
||||||
|
- Alias
|
||||||
|
- IATA code (2-letter)
|
||||||
|
- ICAO code (3-letter)
|
||||||
|
- Callsign
|
||||||
|
- Country
|
||||||
|
- Active (Y/N)
|
||||||
|
|
||||||
|
## Import
|
||||||
|
|
||||||
|
The data will be automatically imported when the database is initialized (on first run or when tables are empty).
|
||||||
|
|
||||||
|
If you need to re-import:
|
||||||
|
1. Delete the database file
|
||||||
|
2. Restart the application
|
||||||
|
3. The migration will run and import the data
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Only airports with valid IATA/ICAO codes and coordinates are imported
|
||||||
|
- Only active airlines (Active = 'Y') are imported
|
||||||
|
- The import process skips invalid or duplicate entries
|
||||||
|
|
||||||
6162
src/lib/server/data/airlines.dat
Normal file
7698
src/lib/server/data/airports.dat
Normal file
@@ -5,6 +5,40 @@ import type { Database } from './types.js';
|
|||||||
|
|
||||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||||
|
|
||||||
|
// Helper function to parse CSV line with proper quote handling
|
||||||
|
function parseCSVLine(line: string): string[] {
|
||||||
|
const fields: string[] = [];
|
||||||
|
let current = '';
|
||||||
|
let inQuotes = false;
|
||||||
|
|
||||||
|
for (let i = 0; i < line.length; i++) {
|
||||||
|
const char = line[i];
|
||||||
|
const nextChar = line[i + 1];
|
||||||
|
|
||||||
|
if (char === '"') {
|
||||||
|
if (inQuotes && nextChar === '"') {
|
||||||
|
// Escaped quote
|
||||||
|
current += '"';
|
||||||
|
i++; // Skip next quote
|
||||||
|
} else {
|
||||||
|
// Toggle quote state
|
||||||
|
inQuotes = !inQuotes;
|
||||||
|
}
|
||||||
|
} else if (char === ',' && !inQuotes) {
|
||||||
|
// Field separator
|
||||||
|
fields.push(current.trim());
|
||||||
|
current = '';
|
||||||
|
} else {
|
||||||
|
current += char;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add last field
|
||||||
|
fields.push(current.trim());
|
||||||
|
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
export function runMigrations(db: Database): void {
|
export function runMigrations(db: Database): void {
|
||||||
db.run(`
|
db.run(`
|
||||||
CREATE TABLE IF NOT EXISTS trips (
|
CREATE TABLE IF NOT EXISTS trips (
|
||||||
@@ -51,6 +85,7 @@ export function runMigrations(db: Database): void {
|
|||||||
)
|
)
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// Legacy table — superseded by `people` + `trip_travellers`. Kept for migration safety on existing DBs.
|
||||||
db.run(`
|
db.run(`
|
||||||
CREATE TABLE IF NOT EXISTS travellers (
|
CREATE TABLE IF NOT EXISTS travellers (
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
@@ -86,11 +121,150 @@ export function runMigrations(db: Database): void {
|
|||||||
)
|
)
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
// Airports table
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS airports (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
iata_code TEXT UNIQUE,
|
||||||
|
icao_code TEXT UNIQUE,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
city TEXT,
|
||||||
|
country TEXT NOT NULL,
|
||||||
|
country_code TEXT NOT NULL,
|
||||||
|
latitude REAL,
|
||||||
|
longitude REAL,
|
||||||
|
timezone TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Airlines table
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS airlines (
|
||||||
|
id INTEGER PRIMARY KEY,
|
||||||
|
iata_code TEXT,
|
||||||
|
icao_code TEXT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
country TEXT,
|
||||||
|
country_code TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Flight bookings table - links to a plan
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS flight_bookings (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
plan_id TEXT NOT NULL REFERENCES plans(id) ON DELETE CASCADE,
|
||||||
|
confirmation_number TEXT,
|
||||||
|
price REAL,
|
||||||
|
currency TEXT DEFAULT 'USD',
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Flight segments table - individual flights within a booking
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS flight_segments (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
flight_booking_id TEXT NOT NULL REFERENCES flight_bookings(id) ON DELETE CASCADE,
|
||||||
|
departure_date TEXT NOT NULL,
|
||||||
|
airline_id INTEGER REFERENCES airlines(id),
|
||||||
|
airline_iata TEXT,
|
||||||
|
airline_icao TEXT,
|
||||||
|
airline_name TEXT,
|
||||||
|
flight_number TEXT NOT NULL,
|
||||||
|
position INTEGER NOT NULL DEFAULT 0,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Flight routes table - detailed route info for each segment
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS flight_routes (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
flight_segment_id TEXT NOT NULL REFERENCES flight_segments(id) ON DELETE CASCADE,
|
||||||
|
departure_airport_id INTEGER REFERENCES airports(id),
|
||||||
|
departure_airport_code TEXT,
|
||||||
|
departure_terminal TEXT,
|
||||||
|
departure_gate TEXT,
|
||||||
|
departure_datetime TEXT,
|
||||||
|
departure_timezone TEXT,
|
||||||
|
arrival_airport_id INTEGER REFERENCES airports(id),
|
||||||
|
arrival_airport_code TEXT,
|
||||||
|
arrival_terminal TEXT,
|
||||||
|
arrival_gate TEXT,
|
||||||
|
arrival_datetime TEXT,
|
||||||
|
arrival_timezone TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Flight booking passengers - links people to flight bookings
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS flight_booking_passengers (
|
||||||
|
flight_booking_id TEXT NOT NULL REFERENCES flight_bookings(id) ON DELETE CASCADE,
|
||||||
|
person_id TEXT NOT NULL REFERENCES people(id) ON DELETE CASCADE,
|
||||||
|
PRIMARY KEY (flight_booking_id, person_id)
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Lodgings table - links to a plan
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS lodgings (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
plan_id TEXT NOT NULL REFERENCES plans(id) ON DELETE CASCADE,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
chain TEXT,
|
||||||
|
check_in_date TEXT,
|
||||||
|
check_in_time TEXT,
|
||||||
|
check_in_timezone TEXT,
|
||||||
|
check_out_date TEXT,
|
||||||
|
check_out_time TEXT,
|
||||||
|
check_out_timezone TEXT,
|
||||||
|
address_line1 TEXT,
|
||||||
|
address_line2 TEXT,
|
||||||
|
city_name TEXT,
|
||||||
|
country TEXT,
|
||||||
|
country_code TEXT,
|
||||||
|
postal_code TEXT,
|
||||||
|
confirmation_number TEXT,
|
||||||
|
website TEXT,
|
||||||
|
phone TEXT,
|
||||||
|
price REAL,
|
||||||
|
currency TEXT NOT NULL DEFAULT 'USD',
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
|
// Lodging guests - links people to lodgings
|
||||||
|
db.run(`
|
||||||
|
CREATE TABLE IF NOT EXISTS lodging_guests (
|
||||||
|
lodging_id TEXT NOT NULL REFERENCES lodgings(id) ON DELETE CASCADE,
|
||||||
|
person_id TEXT NOT NULL REFERENCES people(id) ON DELETE CASCADE,
|
||||||
|
PRIMARY KEY (lodging_id, person_id)
|
||||||
|
)
|
||||||
|
`);
|
||||||
|
|
||||||
// Seed cities table on first run
|
// Seed cities table on first run
|
||||||
const row = db.get<{ count: number }>('SELECT COUNT(*) as count FROM cities');
|
const row = db.get<{ count: number }>('SELECT COUNT(*) as count FROM cities');
|
||||||
if ((row?.count ?? 0) === 0) {
|
if ((row?.count ?? 0) === 0) {
|
||||||
seedCities(db);
|
seedCities(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Seed airports and airlines on first run only
|
||||||
|
const airportsRow = db.get<{ count: number }>('SELECT COUNT(*) as count FROM airports');
|
||||||
|
if ((airportsRow?.count ?? 0) === 0) {
|
||||||
|
seedAirports(db);
|
||||||
|
}
|
||||||
|
|
||||||
|
const airlinesRow = db.get<{ count: number }>('SELECT COUNT(*) as count FROM airlines');
|
||||||
|
if ((airlinesRow?.count ?? 0) === 0) {
|
||||||
|
seedAirlines(db);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function seedCities(db: Database): void {
|
function seedCities(db: Database): void {
|
||||||
@@ -110,3 +284,504 @@ function seedCities(db: Database): void {
|
|||||||
console.error('[db] Failed to seed cities:', e);
|
console.error('[db] Failed to seed cities:', e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function seedAirports(db: Database): void {
|
||||||
|
try {
|
||||||
|
// Try to load from OpenFlights airports.dat file
|
||||||
|
// Format: Airport ID, Name, City, Country, IATA, ICAO, Latitude, Longitude, Altitude, Timezone, DST, Tz database time zone, Type, Source
|
||||||
|
const airportsPath = join(__dirname, '../data/airports.dat');
|
||||||
|
try {
|
||||||
|
const data = readFileSync(airportsPath, 'utf-8');
|
||||||
|
const lines = data.split('\n').filter((line) => line.trim());
|
||||||
|
let imported = 0;
|
||||||
|
let skipped = 0;
|
||||||
|
|
||||||
|
for (const line of lines) {
|
||||||
|
// Skip comments
|
||||||
|
if (line.startsWith('#')) continue;
|
||||||
|
|
||||||
|
// Parse CSV with proper quote handling
|
||||||
|
const fields = parseCSVLine(line);
|
||||||
|
|
||||||
|
// OpenFlights format: ID, Name, City, Country, IATA, ICAO, Lat, Lon, Alt, TZ, DST, TZ_DB, Type, Source
|
||||||
|
if (fields.length < 8) continue;
|
||||||
|
|
||||||
|
const [idStr, name, city, country, iata, icao, latStr, lonStr, , , , tzDb] = fields;
|
||||||
|
|
||||||
|
// Skip if missing essential data
|
||||||
|
if (!name || !country) {
|
||||||
|
skipped++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const lat = latStr ? parseFloat(latStr) : null;
|
||||||
|
const lon = lonStr ? parseFloat(lonStr) : null;
|
||||||
|
|
||||||
|
// Only import airports with valid coordinates and IATA/ICAO codes
|
||||||
|
if ((!iata && !icao) || lat === null || lon === null || isNaN(lat) || isNaN(lon)) {
|
||||||
|
skipped++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get country code from country name (simplified - you might want a mapping)
|
||||||
|
const countryCode = getCountryCode(country);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Use IATA/ICAO code as unique identifier, let ID auto-increment
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO airports (iata_code, icao_code, name, city, country, country_code, latitude, longitude, timezone)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
iata || null,
|
||||||
|
icao || null,
|
||||||
|
name,
|
||||||
|
city || null,
|
||||||
|
country,
|
||||||
|
countryCode,
|
||||||
|
lat,
|
||||||
|
lon,
|
||||||
|
tzDb || null
|
||||||
|
]
|
||||||
|
);
|
||||||
|
imported++;
|
||||||
|
} catch (err) {
|
||||||
|
// Skip duplicates or invalid data
|
||||||
|
skipped++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(`[db] Seeded ${imported} airports from airports.dat (${skipped} skipped)`);
|
||||||
|
return;
|
||||||
|
} catch (fileError) {
|
||||||
|
// File doesn't exist, fall back to minimal seed only if table is empty
|
||||||
|
const airportsRow = db.get<{ count: number }>('SELECT COUNT(*) as count FROM airports');
|
||||||
|
if ((airportsRow?.count ?? 0) === 0) {
|
||||||
|
console.log('[db] airports.dat not found, using minimal airport seed');
|
||||||
|
} else {
|
||||||
|
console.log('[db] airports.dat not found, skipping seed (table already has data)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: minimal seed if file doesn't exist
|
||||||
|
const majorAirports = [
|
||||||
|
{
|
||||||
|
iata: 'JFK',
|
||||||
|
icao: 'KJFK',
|
||||||
|
name: 'John F. Kennedy International Airport',
|
||||||
|
city: 'New York',
|
||||||
|
country: 'United States',
|
||||||
|
country_code: 'US',
|
||||||
|
lat: 40.6398,
|
||||||
|
lon: -73.7789,
|
||||||
|
tz: 'America/New_York'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'LAX',
|
||||||
|
icao: 'KLAX',
|
||||||
|
name: 'Los Angeles International Airport',
|
||||||
|
city: 'Los Angeles',
|
||||||
|
country: 'United States',
|
||||||
|
country_code: 'US',
|
||||||
|
lat: 33.9425,
|
||||||
|
lon: -118.4081,
|
||||||
|
tz: 'America/Los_Angeles'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'LHR',
|
||||||
|
icao: 'EGLL',
|
||||||
|
name: 'London Heathrow Airport',
|
||||||
|
city: 'London',
|
||||||
|
country: 'United Kingdom',
|
||||||
|
country_code: 'GB',
|
||||||
|
lat: 51.47,
|
||||||
|
lon: -0.4543,
|
||||||
|
tz: 'Europe/London'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'CDG',
|
||||||
|
icao: 'LFPG',
|
||||||
|
name: 'Charles de Gaulle Airport',
|
||||||
|
city: 'Paris',
|
||||||
|
country: 'France',
|
||||||
|
country_code: 'FR',
|
||||||
|
lat: 49.0097,
|
||||||
|
lon: 2.5479,
|
||||||
|
tz: 'Europe/Paris'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'DXB',
|
||||||
|
icao: 'OMDB',
|
||||||
|
name: 'Dubai International Airport',
|
||||||
|
city: 'Dubai',
|
||||||
|
country: 'United Arab Emirates',
|
||||||
|
country_code: 'AE',
|
||||||
|
lat: 25.2532,
|
||||||
|
lon: 55.3657,
|
||||||
|
tz: 'Asia/Dubai'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'SYD',
|
||||||
|
icao: 'YSSY',
|
||||||
|
name: 'Sydney Kingsford Smith Airport',
|
||||||
|
city: 'Sydney',
|
||||||
|
country: 'Australia',
|
||||||
|
country_code: 'AU',
|
||||||
|
lat: -33.9399,
|
||||||
|
lon: 151.1753,
|
||||||
|
tz: 'Australia/Sydney'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'NRT',
|
||||||
|
icao: 'RJAA',
|
||||||
|
name: 'Narita International Airport',
|
||||||
|
city: 'Tokyo',
|
||||||
|
country: 'Japan',
|
||||||
|
country_code: 'JP',
|
||||||
|
lat: 35.772,
|
||||||
|
lon: 140.3929,
|
||||||
|
tz: 'Asia/Tokyo'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'SIN',
|
||||||
|
icao: 'WSSS',
|
||||||
|
name: 'Singapore Changi Airport',
|
||||||
|
city: 'Singapore',
|
||||||
|
country: 'Singapore',
|
||||||
|
country_code: 'SG',
|
||||||
|
lat: 1.3644,
|
||||||
|
lon: 103.9915,
|
||||||
|
tz: 'Asia/Singapore'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
let id = 1;
|
||||||
|
for (const airport of majorAirports) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO airports (id, iata_code, icao_code, name, city, country, country_code, latitude, longitude, timezone)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
id++,
|
||||||
|
airport.iata,
|
||||||
|
airport.icao,
|
||||||
|
airport.name,
|
||||||
|
airport.city,
|
||||||
|
airport.country,
|
||||||
|
airport.country_code,
|
||||||
|
airport.lat,
|
||||||
|
airport.lon,
|
||||||
|
airport.tz
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
console.log(`[db] Seeded ${majorAirports.length} airports`);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('[db] Failed to seed airports:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function seedAirlines(db: Database): void {
|
||||||
|
try {
|
||||||
|
// Try to load from OpenFlights airlines.dat file
|
||||||
|
// Format: Airline ID, Name, Alias, IATA, ICAO, Callsign, Country, Active
|
||||||
|
const airlinesPath = join(__dirname, '../data/airlines.dat');
|
||||||
|
try {
|
||||||
|
const data = readFileSync(airlinesPath, 'utf-8');
|
||||||
|
const lines = data.split('\n').filter((line) => line.trim());
|
||||||
|
let imported = 0;
|
||||||
|
let skipped = 0;
|
||||||
|
|
||||||
|
for (const line of lines) {
|
||||||
|
// Skip comments
|
||||||
|
if (line.startsWith('#')) continue;
|
||||||
|
|
||||||
|
// Parse CSV with proper quote handling
|
||||||
|
const fields = parseCSVLine(line);
|
||||||
|
|
||||||
|
// OpenFlights format: ID, Name, Alias, IATA, ICAO, Callsign, Country, Active
|
||||||
|
if (fields.length < 7) continue;
|
||||||
|
|
||||||
|
const [idStr, name, , iata, icao, , country, active] = fields;
|
||||||
|
|
||||||
|
// Skip if missing essential data or inactive
|
||||||
|
if (!name || !country || active !== 'Y') {
|
||||||
|
skipped++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only import airlines with IATA or ICAO codes
|
||||||
|
if (!iata && !icao) {
|
||||||
|
skipped++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get country code from country name
|
||||||
|
const countryCode = getCountryCode(country);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Use IATA/ICAO code as unique identifier, let ID auto-increment
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO airlines (iata_code, icao_code, name, country, country_code)
|
||||||
|
VALUES (?, ?, ?, ?, ?)`,
|
||||||
|
[iata || null, icao || null, name, country, countryCode]
|
||||||
|
);
|
||||||
|
imported++;
|
||||||
|
} catch (err) {
|
||||||
|
// Skip duplicates or invalid data
|
||||||
|
skipped++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log(`[db] Seeded ${imported} airlines from airlines.dat (${skipped} skipped)`);
|
||||||
|
return;
|
||||||
|
} catch (fileError) {
|
||||||
|
// File doesn't exist, fall back to minimal seed only if table is empty
|
||||||
|
const airlinesRow = db.get<{ count: number }>('SELECT COUNT(*) as count FROM airlines');
|
||||||
|
if ((airlinesRow?.count ?? 0) === 0) {
|
||||||
|
console.log('[db] airlines.dat not found, using minimal airline seed');
|
||||||
|
} else {
|
||||||
|
console.log('[db] airlines.dat not found, skipping seed (table already has data)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: minimal seed if file doesn't exist
|
||||||
|
const majorAirlines = [
|
||||||
|
{
|
||||||
|
iata: 'AA',
|
||||||
|
icao: 'AAL',
|
||||||
|
name: 'American Airlines',
|
||||||
|
country: 'United States',
|
||||||
|
country_code: 'US'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'UA',
|
||||||
|
icao: 'UAL',
|
||||||
|
name: 'United Airlines',
|
||||||
|
country: 'United States',
|
||||||
|
country_code: 'US'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'DL',
|
||||||
|
icao: 'DAL',
|
||||||
|
name: 'Delta Air Lines',
|
||||||
|
country: 'United States',
|
||||||
|
country_code: 'US'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
iata: 'BA',
|
||||||
|
icao: 'BAW',
|
||||||
|
name: 'British Airways',
|
||||||
|
country: 'United Kingdom',
|
||||||
|
country_code: 'GB'
|
||||||
|
},
|
||||||
|
{ iata: 'AF', icao: 'AFR', name: 'Air France', country: 'France', country_code: 'FR' },
|
||||||
|
{ iata: 'LH', icao: 'DLH', name: 'Lufthansa', country: 'Germany', country_code: 'DE' },
|
||||||
|
{
|
||||||
|
iata: 'EK',
|
||||||
|
icao: 'UAE',
|
||||||
|
name: 'Emirates',
|
||||||
|
country: 'United Arab Emirates',
|
||||||
|
country_code: 'AE'
|
||||||
|
},
|
||||||
|
{ iata: 'QF', icao: 'QFA', name: 'Qantas', country: 'Australia', country_code: 'AU' },
|
||||||
|
{ iata: 'JL', icao: 'JAL', name: 'Japan Airlines', country: 'Japan', country_code: 'JP' },
|
||||||
|
{
|
||||||
|
iata: 'SQ',
|
||||||
|
icao: 'SIA',
|
||||||
|
name: 'Singapore Airlines',
|
||||||
|
country: 'Singapore',
|
||||||
|
country_code: 'SG'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
let id = 1;
|
||||||
|
for (const airline of majorAirlines) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO airlines (id, iata_code, icao_code, name, country, country_code)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?)`,
|
||||||
|
[id++, airline.iata, airline.icao, airline.name, airline.country, airline.country_code]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
console.log(`[db] Seeded ${majorAirlines.length} airlines`);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('[db] Failed to seed airlines:', e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to map country names to ISO country codes
|
||||||
|
// This is a simplified mapping - for production, consider using a comprehensive library
|
||||||
|
function getCountryCode(countryName: string): string {
|
||||||
|
// Common countries mapping (most frequently used in aviation)
|
||||||
|
const countryMap: Record<string, string> = {
|
||||||
|
'United States': 'US',
|
||||||
|
'United Kingdom': 'GB',
|
||||||
|
France: 'FR',
|
||||||
|
Germany: 'DE',
|
||||||
|
Japan: 'JP',
|
||||||
|
China: 'CN',
|
||||||
|
Canada: 'CA',
|
||||||
|
Australia: 'AU',
|
||||||
|
Brazil: 'BR',
|
||||||
|
India: 'IN',
|
||||||
|
Russia: 'RU',
|
||||||
|
Mexico: 'MX',
|
||||||
|
Spain: 'ES',
|
||||||
|
Italy: 'IT',
|
||||||
|
Netherlands: 'NL',
|
||||||
|
Sweden: 'SE',
|
||||||
|
Norway: 'NO',
|
||||||
|
Denmark: 'DK',
|
||||||
|
Finland: 'FI',
|
||||||
|
Poland: 'PL',
|
||||||
|
Turkey: 'TR',
|
||||||
|
'South Korea': 'KR',
|
||||||
|
Indonesia: 'ID',
|
||||||
|
Thailand: 'TH',
|
||||||
|
Malaysia: 'MY',
|
||||||
|
Philippines: 'PH',
|
||||||
|
Vietnam: 'VN',
|
||||||
|
Singapore: 'SG',
|
||||||
|
'United Arab Emirates': 'AE',
|
||||||
|
'Saudi Arabia': 'SA',
|
||||||
|
Israel: 'IL',
|
||||||
|
'South Africa': 'ZA',
|
||||||
|
Egypt: 'EG',
|
||||||
|
Argentina: 'AR',
|
||||||
|
Chile: 'CL',
|
||||||
|
Colombia: 'CO',
|
||||||
|
'New Zealand': 'NZ',
|
||||||
|
Ireland: 'IE',
|
||||||
|
Switzerland: 'CH',
|
||||||
|
Austria: 'AT',
|
||||||
|
Belgium: 'BE',
|
||||||
|
Portugal: 'PT',
|
||||||
|
Greece: 'GR',
|
||||||
|
'Czech Republic': 'CZ',
|
||||||
|
Hungary: 'HU',
|
||||||
|
Romania: 'RO',
|
||||||
|
Bulgaria: 'BG',
|
||||||
|
Croatia: 'HR',
|
||||||
|
Serbia: 'RS',
|
||||||
|
Ukraine: 'UA',
|
||||||
|
Belarus: 'BY',
|
||||||
|
Kazakhstan: 'KZ',
|
||||||
|
Pakistan: 'PK',
|
||||||
|
Bangladesh: 'BD',
|
||||||
|
'Sri Lanka': 'LK',
|
||||||
|
Myanmar: 'MM',
|
||||||
|
Cambodia: 'KH',
|
||||||
|
Laos: 'LA',
|
||||||
|
Nepal: 'NP',
|
||||||
|
Afghanistan: 'AF',
|
||||||
|
Iran: 'IR',
|
||||||
|
Iraq: 'IQ',
|
||||||
|
Jordan: 'JO',
|
||||||
|
Lebanon: 'LB',
|
||||||
|
Syria: 'SY',
|
||||||
|
Yemen: 'YE',
|
||||||
|
Oman: 'OM',
|
||||||
|
Kuwait: 'KW',
|
||||||
|
Qatar: 'QA',
|
||||||
|
Bahrain: 'BH',
|
||||||
|
Cyprus: 'CY',
|
||||||
|
Morocco: 'MA',
|
||||||
|
Algeria: 'DZ',
|
||||||
|
Tunisia: 'TN',
|
||||||
|
Libya: 'LY',
|
||||||
|
Sudan: 'SD',
|
||||||
|
Ethiopia: 'ET',
|
||||||
|
Kenya: 'KE',
|
||||||
|
Tanzania: 'TZ',
|
||||||
|
Uganda: 'UG',
|
||||||
|
Rwanda: 'RW',
|
||||||
|
Ghana: 'GH',
|
||||||
|
Nigeria: 'NG',
|
||||||
|
Senegal: 'SN',
|
||||||
|
'Ivory Coast': 'CI',
|
||||||
|
Cameroon: 'CM',
|
||||||
|
Angola: 'AO',
|
||||||
|
Zambia: 'ZM',
|
||||||
|
Zimbabwe: 'ZW',
|
||||||
|
Botswana: 'BW',
|
||||||
|
Namibia: 'NA',
|
||||||
|
Mozambique: 'MZ',
|
||||||
|
Madagascar: 'MG',
|
||||||
|
Mauritius: 'MU',
|
||||||
|
Peru: 'PE',
|
||||||
|
Ecuador: 'EC',
|
||||||
|
Venezuela: 'VE',
|
||||||
|
Uruguay: 'UY',
|
||||||
|
Paraguay: 'PY',
|
||||||
|
Bolivia: 'BO',
|
||||||
|
Panama: 'PA',
|
||||||
|
'Costa Rica': 'CR',
|
||||||
|
Nicaragua: 'NI',
|
||||||
|
Honduras: 'HN',
|
||||||
|
Guatemala: 'GT',
|
||||||
|
Belize: 'BZ',
|
||||||
|
'El Salvador': 'SV',
|
||||||
|
Cuba: 'CU',
|
||||||
|
Jamaica: 'JM',
|
||||||
|
Haiti: 'HT',
|
||||||
|
'Dominican Republic': 'DO',
|
||||||
|
'Puerto Rico': 'PR',
|
||||||
|
'Trinidad and Tobago': 'TT',
|
||||||
|
Barbados: 'BB',
|
||||||
|
Bahamas: 'BS',
|
||||||
|
Iceland: 'IS',
|
||||||
|
Luxembourg: 'LU',
|
||||||
|
Malta: 'MT',
|
||||||
|
Albania: 'AL',
|
||||||
|
'Bosnia and Herzegovina': 'BA',
|
||||||
|
'North Macedonia': 'MK',
|
||||||
|
Montenegro: 'ME',
|
||||||
|
Slovenia: 'SI',
|
||||||
|
Slovakia: 'SK',
|
||||||
|
Estonia: 'EE',
|
||||||
|
Latvia: 'LV',
|
||||||
|
Lithuania: 'LT',
|
||||||
|
Moldova: 'MD',
|
||||||
|
Armenia: 'AM',
|
||||||
|
Georgia: 'GE',
|
||||||
|
Azerbaijan: 'AZ',
|
||||||
|
Kyrgyzstan: 'KG',
|
||||||
|
Tajikistan: 'TJ',
|
||||||
|
Turkmenistan: 'TM',
|
||||||
|
Mongolia: 'MN',
|
||||||
|
'North Korea': 'KP',
|
||||||
|
Taiwan: 'TW',
|
||||||
|
'Hong Kong': 'HK',
|
||||||
|
Macau: 'MO',
|
||||||
|
Brunei: 'BN',
|
||||||
|
'Papua New Guinea': 'PG',
|
||||||
|
Fiji: 'FJ',
|
||||||
|
'New Caledonia': 'NC',
|
||||||
|
'French Polynesia': 'PF',
|
||||||
|
Samoa: 'WS',
|
||||||
|
Tonga: 'TO',
|
||||||
|
Palau: 'PW',
|
||||||
|
Micronesia: 'FM',
|
||||||
|
'Marshall Islands': 'MH',
|
||||||
|
Kiribati: 'KI',
|
||||||
|
Tuvalu: 'TV',
|
||||||
|
Nauru: 'NR',
|
||||||
|
'Cook Islands': 'CK',
|
||||||
|
Niue: 'NU',
|
||||||
|
Antarctica: 'AQ'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Try exact match first
|
||||||
|
if (countryMap[countryName]) {
|
||||||
|
return countryMap[countryName];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try case-insensitive match
|
||||||
|
const normalized = countryName.toLowerCase();
|
||||||
|
for (const [key, value] of Object.entries(countryMap)) {
|
||||||
|
if (key.toLowerCase() === normalized) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unknown country — return sentinel rather than a misleading partial string
|
||||||
|
return 'XX';
|
||||||
|
}
|
||||||
|
|||||||
599
src/lib/server/flights.ts
Normal file
@@ -0,0 +1,599 @@
|
|||||||
|
import { db } from './db/index.js';
|
||||||
|
import { randomUUID } from 'crypto';
|
||||||
|
import type { PlanStatus } from './plans.js';
|
||||||
|
|
||||||
|
// --- Geo utilities ---
|
||||||
|
|
||||||
|
function haversineKm(lat1: number, lon1: number, lat2: number, lon2: number): number {
|
||||||
|
const R = 6371;
|
||||||
|
const dLat = ((lat2 - lat1) * Math.PI) / 180;
|
||||||
|
const dLon = ((lon2 - lon1) * Math.PI) / 180;
|
||||||
|
const a =
|
||||||
|
Math.sin(dLat / 2) ** 2 +
|
||||||
|
Math.cos((lat1 * Math.PI) / 180) * Math.cos((lat2 * Math.PI) / 180) * Math.sin(dLon / 2) ** 2;
|
||||||
|
return R * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Convert a "YYYY-MM-DDTHH:MM" local datetime in an IANA timezone to a UTC ms timestamp. */
|
||||||
|
function tzLocalToUtcMs(localDt: string, tz: string): number {
|
||||||
|
const [datePart, timePart] = localDt.split('T');
|
||||||
|
const [y, mo, d] = datePart.split('-').map(Number);
|
||||||
|
const [h, mi] = timePart.split(':').map(Number);
|
||||||
|
// Treat the local time as UTC first, then correct for the timezone offset.
|
||||||
|
const candidate = Date.UTC(y, mo - 1, d, h, mi);
|
||||||
|
const fmt = new Intl.DateTimeFormat('en-GB', {
|
||||||
|
timeZone: tz,
|
||||||
|
year: 'numeric',
|
||||||
|
month: '2-digit',
|
||||||
|
day: '2-digit',
|
||||||
|
hour: '2-digit',
|
||||||
|
minute: '2-digit',
|
||||||
|
hour12: false
|
||||||
|
});
|
||||||
|
const parts = fmt.formatToParts(new Date(candidate));
|
||||||
|
const get = (type: string) => Number(parts.find((p) => p.type === type)?.value ?? '0');
|
||||||
|
const shownH = get('hour');
|
||||||
|
const shownMi = get('minute');
|
||||||
|
// Offset = difference between what we intended and what the TZ shows at that UTC moment
|
||||||
|
const offsetMins = (h - shownH) * 60 + (mi - shownMi);
|
||||||
|
return candidate + offsetMins * 60_000;
|
||||||
|
}
|
||||||
|
|
||||||
|
function durationMinutes(
|
||||||
|
depDatetime: string,
|
||||||
|
depTz: string,
|
||||||
|
arrDatetime: string,
|
||||||
|
arrTz: string
|
||||||
|
): number | null {
|
||||||
|
try {
|
||||||
|
const depMs = tzLocalToUtcMs(depDatetime, depTz);
|
||||||
|
const arrMs = tzLocalToUtcMs(arrDatetime, arrTz);
|
||||||
|
const mins = Math.round((arrMs - depMs) / 60_000);
|
||||||
|
return mins > 0 ? mins : null;
|
||||||
|
} catch {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Look up the IANA timezone for an airport by its DB id. */
|
||||||
|
function airportTimezone(airportId: number | null | undefined): string | null {
|
||||||
|
if (!airportId) return null;
|
||||||
|
return (
|
||||||
|
db.get<{ timezone: string | null }>('SELECT timezone FROM airports WHERE id = ?', [airportId])
|
||||||
|
?.timezone ?? null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Airport {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
city: string | null;
|
||||||
|
country: string;
|
||||||
|
country_code: string;
|
||||||
|
latitude: number | null;
|
||||||
|
longitude: number | null;
|
||||||
|
timezone: string | null;
|
||||||
|
created_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Airline {
|
||||||
|
id: number;
|
||||||
|
iata_code: string | null;
|
||||||
|
icao_code: string | null;
|
||||||
|
name: string;
|
||||||
|
country: string | null;
|
||||||
|
country_code: string | null;
|
||||||
|
created_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FlightBooking {
|
||||||
|
id: string;
|
||||||
|
plan_id: string;
|
||||||
|
confirmation_number: string | null;
|
||||||
|
price: number | null;
|
||||||
|
currency: string;
|
||||||
|
created_at: string;
|
||||||
|
updated_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FlightSegment {
|
||||||
|
id: string;
|
||||||
|
flight_booking_id: string;
|
||||||
|
departure_date: string;
|
||||||
|
airline_id: number | null;
|
||||||
|
airline_iata: string | null;
|
||||||
|
airline_icao: string | null;
|
||||||
|
airline_name: string | null;
|
||||||
|
flight_number: string;
|
||||||
|
position: number;
|
||||||
|
created_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FlightRoute {
|
||||||
|
id: string;
|
||||||
|
flight_segment_id: string;
|
||||||
|
departure_airport_id: number | null;
|
||||||
|
departure_airport_code: string | null;
|
||||||
|
departure_terminal: string | null;
|
||||||
|
departure_gate: string | null;
|
||||||
|
departure_datetime: string | null;
|
||||||
|
departure_timezone: string | null;
|
||||||
|
arrival_airport_id: number | null;
|
||||||
|
arrival_airport_code: string | null;
|
||||||
|
arrival_terminal: string | null;
|
||||||
|
arrival_gate: string | null;
|
||||||
|
arrival_datetime: string | null;
|
||||||
|
arrival_timezone: string | null;
|
||||||
|
created_at: string;
|
||||||
|
updated_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateFlightInput {
|
||||||
|
tripId: string;
|
||||||
|
userId: string;
|
||||||
|
confirmationNumber?: string;
|
||||||
|
price?: number;
|
||||||
|
currency?: string;
|
||||||
|
status?: PlanStatus;
|
||||||
|
segments: Array<{
|
||||||
|
departureDate: string;
|
||||||
|
airlineId?: number;
|
||||||
|
airlineIata?: string;
|
||||||
|
airlineIcao?: string;
|
||||||
|
airlineName?: string;
|
||||||
|
flightNumber: string;
|
||||||
|
route?: {
|
||||||
|
departureAirportId?: number;
|
||||||
|
departureAirportCode?: string;
|
||||||
|
departureTerminal?: string;
|
||||||
|
departureGate?: string;
|
||||||
|
departureDatetime?: string;
|
||||||
|
departureTimezone?: string;
|
||||||
|
arrivalAirportId?: number;
|
||||||
|
arrivalAirportCode?: string;
|
||||||
|
arrivalTerminal?: string;
|
||||||
|
arrivalGate?: string;
|
||||||
|
arrivalDatetime?: string;
|
||||||
|
arrivalTimezone?: string;
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
passengerIds?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function searchAirports(query: string): Airport[] {
|
||||||
|
if (!query.trim()) return [];
|
||||||
|
const pattern = `%${query.trim()}%`;
|
||||||
|
return db.all<Airport>(
|
||||||
|
`SELECT * FROM airports
|
||||||
|
WHERE name LIKE ? COLLATE NOCASE
|
||||||
|
OR iata_code LIKE ? COLLATE NOCASE
|
||||||
|
OR icao_code LIKE ? COLLATE NOCASE
|
||||||
|
OR city LIKE ? COLLATE NOCASE
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN iata_code LIKE ? COLLATE NOCASE THEN 0 ELSE 1 END,
|
||||||
|
CASE WHEN name LIKE ? COLLATE NOCASE THEN 0 ELSE 1 END
|
||||||
|
LIMIT 20`,
|
||||||
|
[pattern, pattern, pattern, pattern, `${query.trim()}%`, `${query.trim()}%`]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function searchAirlines(query: string): Airline[] {
|
||||||
|
if (!query.trim()) return [];
|
||||||
|
const pattern = `%${query.trim()}%`;
|
||||||
|
return db.all<Airline>(
|
||||||
|
`SELECT * FROM airlines
|
||||||
|
WHERE name LIKE ? COLLATE NOCASE
|
||||||
|
OR iata_code LIKE ? COLLATE NOCASE
|
||||||
|
OR icao_code LIKE ? COLLATE NOCASE
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN iata_code LIKE ? COLLATE NOCASE THEN 0 ELSE 1 END,
|
||||||
|
CASE WHEN name LIKE ? COLLATE NOCASE THEN 0 ELSE 1 END
|
||||||
|
LIMIT 20`,
|
||||||
|
[pattern, pattern, pattern, `${query.trim()}%`, `${query.trim()}%`]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAirportById(id: number): Airport | undefined {
|
||||||
|
return db.get<Airport>('SELECT * FROM airports WHERE id = ?', [id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAirportByCode(code: string): Airport | undefined {
|
||||||
|
return db.get<Airport>('SELECT * FROM airports WHERE iata_code = ? OR icao_code = ?', [
|
||||||
|
code.toUpperCase(),
|
||||||
|
code.toUpperCase()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAirlineById(id: number): Airline | undefined {
|
||||||
|
return db.get<Airline>('SELECT * FROM airlines WHERE id = ?', [id]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getAirlineByCode(code: string): Airline | undefined {
|
||||||
|
return db.get<Airline>('SELECT * FROM airlines WHERE iata_code = ? OR icao_code = ?', [
|
||||||
|
code.toUpperCase(),
|
||||||
|
code.toUpperCase()
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createFlight(input: CreateFlightInput): FlightBooking {
|
||||||
|
// First, create a plan entry for the flight
|
||||||
|
const planId = randomUUID();
|
||||||
|
const maxPos = db.get<{ pos: number }>(
|
||||||
|
`SELECT COALESCE(MAX(position), -1) + 1 as pos FROM plans WHERE trip_id = ? AND user_id = ?`,
|
||||||
|
[input.tripId, input.userId]
|
||||||
|
);
|
||||||
|
const position = maxPos?.pos ?? 0;
|
||||||
|
|
||||||
|
// Generate a title from the first segment
|
||||||
|
const firstSegment = input.segments[0];
|
||||||
|
const title = firstSegment
|
||||||
|
? `${firstSegment.airlineName || firstSegment.airlineIata || 'Flight'} ${firstSegment.flightNumber}`
|
||||||
|
: 'Flight';
|
||||||
|
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO plans (id, trip_id, user_id, type, status, title, position)
|
||||||
|
VALUES (?, ?, ?, 'transport', ?, ?, ?)`,
|
||||||
|
[planId, input.tripId, input.userId, input.status ?? 'idea', title, position]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create the flight booking
|
||||||
|
const bookingId = randomUUID();
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO flight_bookings (id, plan_id, confirmation_number, price, currency)
|
||||||
|
VALUES (?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
bookingId,
|
||||||
|
planId,
|
||||||
|
input.confirmationNumber ?? null,
|
||||||
|
input.price ?? null,
|
||||||
|
input.currency ?? 'USD'
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create flight segments
|
||||||
|
let segmentPosition = 0;
|
||||||
|
for (const segment of input.segments) {
|
||||||
|
const segmentId = randomUUID();
|
||||||
|
|
||||||
|
// Airline data comes fully resolved from the caller — no re-query needed
|
||||||
|
const airlineIata = segment.airlineIata;
|
||||||
|
const airlineIcao = segment.airlineIcao;
|
||||||
|
const airlineName = segment.airlineName;
|
||||||
|
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO flight_segments (id, flight_booking_id, departure_date, airline_id, airline_iata, airline_icao, airline_name, flight_number, position)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
segmentId,
|
||||||
|
bookingId,
|
||||||
|
segment.departureDate,
|
||||||
|
segment.airlineId ?? null,
|
||||||
|
airlineIata ?? null,
|
||||||
|
airlineIcao ?? null,
|
||||||
|
airlineName ?? null,
|
||||||
|
segment.flightNumber,
|
||||||
|
segmentPosition++
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Create route if provided
|
||||||
|
if (segment.route) {
|
||||||
|
const routeId = randomUUID();
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO flight_routes (
|
||||||
|
id, flight_segment_id,
|
||||||
|
departure_airport_id, departure_airport_code, departure_terminal, departure_gate,
|
||||||
|
departure_datetime, departure_timezone,
|
||||||
|
arrival_airport_id, arrival_airport_code, arrival_terminal, arrival_gate,
|
||||||
|
arrival_datetime, arrival_timezone
|
||||||
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
routeId,
|
||||||
|
segmentId,
|
||||||
|
segment.route.departureAirportId ?? null,
|
||||||
|
segment.route.departureAirportCode ?? null,
|
||||||
|
segment.route.departureTerminal ?? null,
|
||||||
|
segment.route.departureGate ?? null,
|
||||||
|
segment.route.departureDatetime ?? null,
|
||||||
|
segment.route.departureTimezone ??
|
||||||
|
airportTimezone(segment.route.departureAirportId) ??
|
||||||
|
null,
|
||||||
|
segment.route.arrivalAirportId ?? null,
|
||||||
|
segment.route.arrivalAirportCode ?? null,
|
||||||
|
segment.route.arrivalTerminal ?? null,
|
||||||
|
segment.route.arrivalGate ?? null,
|
||||||
|
segment.route.arrivalDatetime ?? null,
|
||||||
|
segment.route.arrivalTimezone ?? airportTimezone(segment.route.arrivalAirportId) ?? null
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Link passengers if provided
|
||||||
|
if (input.passengerIds && input.passengerIds.length > 0) {
|
||||||
|
for (const personId of input.passengerIds) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO flight_booking_passengers (flight_booking_id, person_id)
|
||||||
|
VALUES (?, ?)`,
|
||||||
|
[bookingId, personId]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return db.get<FlightBooking>('SELECT * FROM flight_bookings WHERE id = ?', [bookingId])!;
|
||||||
|
}
|
||||||
|
|
||||||
|
function enrichRoute(
|
||||||
|
route: FlightRoute | undefined
|
||||||
|
): (FlightRoute & { distanceKm: number | null; durationMins: number | null }) | null {
|
||||||
|
if (!route) return null;
|
||||||
|
|
||||||
|
let distanceKm: number | null = null;
|
||||||
|
let durationMins: number | null = null;
|
||||||
|
|
||||||
|
if (route.departure_airport_id && route.arrival_airport_id) {
|
||||||
|
const dep = db.get<{ latitude: number | null; longitude: number | null }>(
|
||||||
|
'SELECT latitude, longitude FROM airports WHERE id = ?',
|
||||||
|
[route.departure_airport_id]
|
||||||
|
);
|
||||||
|
const arr = db.get<{ latitude: number | null; longitude: number | null }>(
|
||||||
|
'SELECT latitude, longitude FROM airports WHERE id = ?',
|
||||||
|
[route.arrival_airport_id]
|
||||||
|
);
|
||||||
|
if (dep?.latitude && dep?.longitude && arr?.latitude && arr?.longitude) {
|
||||||
|
distanceKm = Math.round(
|
||||||
|
haversineKm(dep.latitude, dep.longitude, arr.latitude, arr.longitude)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
route.departure_datetime &&
|
||||||
|
route.arrival_datetime &&
|
||||||
|
route.departure_timezone &&
|
||||||
|
route.arrival_timezone
|
||||||
|
) {
|
||||||
|
durationMins = durationMinutes(
|
||||||
|
route.departure_datetime,
|
||||||
|
route.departure_timezone,
|
||||||
|
route.arrival_datetime,
|
||||||
|
route.arrival_timezone
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return { ...route, distanceKm, durationMins };
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getFlightBookingByPlanId(
|
||||||
|
planId: string,
|
||||||
|
userId: string
|
||||||
|
):
|
||||||
|
| (FlightBooking & {
|
||||||
|
segments: Array<
|
||||||
|
FlightSegment & {
|
||||||
|
route: (FlightRoute & { distanceKm: number | null; durationMins: number | null }) | null;
|
||||||
|
}
|
||||||
|
>;
|
||||||
|
passengerIds: string[];
|
||||||
|
})
|
||||||
|
| undefined {
|
||||||
|
const booking = db.get<FlightBooking>(
|
||||||
|
`SELECT fb.* FROM flight_bookings fb
|
||||||
|
JOIN plans p ON p.id = fb.plan_id
|
||||||
|
WHERE fb.plan_id = ? AND p.user_id = ?`,
|
||||||
|
[planId, userId]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!booking) return undefined;
|
||||||
|
|
||||||
|
const segments = db.all<FlightSegment>(
|
||||||
|
`SELECT * FROM flight_segments
|
||||||
|
WHERE flight_booking_id = ?
|
||||||
|
ORDER BY position ASC`,
|
||||||
|
[booking.id]
|
||||||
|
);
|
||||||
|
|
||||||
|
const segmentsWithRoutes = segments.map((segment) => {
|
||||||
|
const route = db.get<FlightRoute>('SELECT * FROM flight_routes WHERE flight_segment_id = ?', [
|
||||||
|
segment.id
|
||||||
|
]);
|
||||||
|
return { ...segment, route: enrichRoute(route) };
|
||||||
|
});
|
||||||
|
|
||||||
|
const passengerIds = db
|
||||||
|
.all<{
|
||||||
|
person_id: string;
|
||||||
|
}>('SELECT person_id FROM flight_booking_passengers WHERE flight_booking_id = ?', [booking.id])
|
||||||
|
.map((r) => r.person_id);
|
||||||
|
|
||||||
|
return { ...booking, segments: segmentsWithRoutes, passengerIds };
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getFlightBookingsForTrip(
|
||||||
|
tripId: string,
|
||||||
|
userId: string
|
||||||
|
): Array<
|
||||||
|
FlightBooking & {
|
||||||
|
segments: Array<
|
||||||
|
FlightSegment & {
|
||||||
|
route: (FlightRoute & { distanceKm: number | null; durationMins: number | null }) | null;
|
||||||
|
}
|
||||||
|
>;
|
||||||
|
passengerIds: string[];
|
||||||
|
}
|
||||||
|
> {
|
||||||
|
const bookings = db.all<FlightBooking>(
|
||||||
|
`SELECT fb.* FROM flight_bookings fb
|
||||||
|
JOIN plans p ON p.id = fb.plan_id
|
||||||
|
WHERE p.trip_id = ? AND p.user_id = ? AND p.type = 'transport'
|
||||||
|
ORDER BY p.position ASC, fb.created_at ASC`,
|
||||||
|
[tripId, userId]
|
||||||
|
);
|
||||||
|
|
||||||
|
return bookings.map((booking) => {
|
||||||
|
const segments = db.all<FlightSegment>(
|
||||||
|
`SELECT * FROM flight_segments
|
||||||
|
WHERE flight_booking_id = ?
|
||||||
|
ORDER BY position ASC`,
|
||||||
|
[booking.id]
|
||||||
|
);
|
||||||
|
|
||||||
|
const segmentsWithRoutes = segments.map((segment) => {
|
||||||
|
const route = db.get<FlightRoute>('SELECT * FROM flight_routes WHERE flight_segment_id = ?', [
|
||||||
|
segment.id
|
||||||
|
]);
|
||||||
|
return { ...segment, route: enrichRoute(route) };
|
||||||
|
});
|
||||||
|
|
||||||
|
const passengerIds = db
|
||||||
|
.all<{
|
||||||
|
person_id: string;
|
||||||
|
}>('SELECT person_id FROM flight_booking_passengers WHERE flight_booking_id = ?', [
|
||||||
|
booking.id
|
||||||
|
])
|
||||||
|
.map((r) => r.person_id);
|
||||||
|
|
||||||
|
return { ...booking, segments: segmentsWithRoutes, passengerIds };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UpdateFlightInput {
|
||||||
|
bookingId: string;
|
||||||
|
userId: string;
|
||||||
|
confirmationNumber?: string;
|
||||||
|
price?: number;
|
||||||
|
currency?: string;
|
||||||
|
status?: PlanStatus;
|
||||||
|
segments: Array<{
|
||||||
|
departureDate: string;
|
||||||
|
airlineId?: number;
|
||||||
|
airlineIata?: string;
|
||||||
|
airlineIcao?: string;
|
||||||
|
airlineName?: string;
|
||||||
|
flightNumber: string;
|
||||||
|
route?: {
|
||||||
|
departureAirportId?: number;
|
||||||
|
departureAirportCode?: string;
|
||||||
|
departureTerminal?: string;
|
||||||
|
departureGate?: string;
|
||||||
|
departureDatetime?: string;
|
||||||
|
departureTimezone?: string;
|
||||||
|
arrivalAirportId?: number;
|
||||||
|
arrivalAirportCode?: string;
|
||||||
|
arrivalTerminal?: string;
|
||||||
|
arrivalGate?: string;
|
||||||
|
arrivalDatetime?: string;
|
||||||
|
arrivalTimezone?: string;
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
passengerIds?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateFlight(input: UpdateFlightInput): void {
|
||||||
|
// Verify booking belongs to user via plans table
|
||||||
|
const booking = db.get<FlightBooking & { plan_id: string }>(
|
||||||
|
`SELECT fb.* FROM flight_bookings fb
|
||||||
|
JOIN plans p ON p.id = fb.plan_id
|
||||||
|
WHERE fb.id = ? AND p.user_id = ?`,
|
||||||
|
[input.bookingId, input.userId]
|
||||||
|
);
|
||||||
|
if (!booking) throw new Error('Flight booking not found or not authorized');
|
||||||
|
|
||||||
|
// Derive new title from first segment
|
||||||
|
const firstSegment = input.segments[0];
|
||||||
|
const title = firstSegment
|
||||||
|
? `${firstSegment.airlineName || firstSegment.airlineIata || 'Flight'} ${firstSegment.flightNumber}`
|
||||||
|
: 'Flight';
|
||||||
|
|
||||||
|
// Update the plan row (status + title)
|
||||||
|
db.run(`UPDATE plans SET status = ?, title = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?`, [
|
||||||
|
input.status ?? 'idea',
|
||||||
|
title,
|
||||||
|
booking.plan_id
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Update the booking row
|
||||||
|
db.run(
|
||||||
|
`UPDATE flight_bookings SET confirmation_number = ?, price = ?, currency = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?`,
|
||||||
|
[
|
||||||
|
input.confirmationNumber ?? null,
|
||||||
|
input.price ?? null,
|
||||||
|
input.currency ?? 'USD',
|
||||||
|
input.bookingId
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Replace segments and routes wholesale
|
||||||
|
const existingSegments = db.all<{ id: string }>(
|
||||||
|
'SELECT id FROM flight_segments WHERE flight_booking_id = ?',
|
||||||
|
[input.bookingId]
|
||||||
|
);
|
||||||
|
for (const seg of existingSegments) {
|
||||||
|
db.run('DELETE FROM flight_routes WHERE flight_segment_id = ?', [seg.id]);
|
||||||
|
}
|
||||||
|
db.run('DELETE FROM flight_segments WHERE flight_booking_id = ?', [input.bookingId]);
|
||||||
|
|
||||||
|
let segmentPosition = 0;
|
||||||
|
for (const segment of input.segments) {
|
||||||
|
const segmentId = randomUUID();
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO flight_segments (id, flight_booking_id, departure_date, airline_id, airline_iata, airline_icao, airline_name, flight_number, position)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
segmentId,
|
||||||
|
input.bookingId,
|
||||||
|
segment.departureDate,
|
||||||
|
segment.airlineId ?? null,
|
||||||
|
segment.airlineIata ?? null,
|
||||||
|
segment.airlineIcao ?? null,
|
||||||
|
segment.airlineName ?? null,
|
||||||
|
segment.flightNumber,
|
||||||
|
segmentPosition++
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (segment.route) {
|
||||||
|
const routeId = randomUUID();
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO flight_routes (
|
||||||
|
id, flight_segment_id,
|
||||||
|
departure_airport_id, departure_airport_code, departure_terminal, departure_gate,
|
||||||
|
departure_datetime, departure_timezone,
|
||||||
|
arrival_airport_id, arrival_airport_code, arrival_terminal, arrival_gate,
|
||||||
|
arrival_datetime, arrival_timezone
|
||||||
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
routeId,
|
||||||
|
segmentId,
|
||||||
|
segment.route.departureAirportId ?? null,
|
||||||
|
segment.route.departureAirportCode ?? null,
|
||||||
|
segment.route.departureTerminal ?? null,
|
||||||
|
segment.route.departureGate ?? null,
|
||||||
|
segment.route.departureDatetime ?? null,
|
||||||
|
segment.route.departureTimezone ??
|
||||||
|
airportTimezone(segment.route.departureAirportId) ??
|
||||||
|
null,
|
||||||
|
segment.route.arrivalAirportId ?? null,
|
||||||
|
segment.route.arrivalAirportCode ?? null,
|
||||||
|
segment.route.arrivalTerminal ?? null,
|
||||||
|
segment.route.arrivalGate ?? null,
|
||||||
|
segment.route.arrivalDatetime ?? null,
|
||||||
|
segment.route.arrivalTimezone ?? airportTimezone(segment.route.arrivalAirportId) ?? null
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace passengers
|
||||||
|
db.run('DELETE FROM flight_booking_passengers WHERE flight_booking_id = ?', [input.bookingId]);
|
||||||
|
if (input.passengerIds && input.passengerIds.length > 0) {
|
||||||
|
for (const personId of input.passengerIds) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO flight_booking_passengers (flight_booking_id, person_id) VALUES (?, ?)`,
|
||||||
|
[input.bookingId, personId]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
245
src/lib/server/lodgings.ts
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
import { db } from './db/index.js';
|
||||||
|
import { randomUUID } from 'crypto';
|
||||||
|
import type { PlanStatus } from './plans.js';
|
||||||
|
|
||||||
|
export interface Lodging {
|
||||||
|
id: string;
|
||||||
|
plan_id: string;
|
||||||
|
name: string;
|
||||||
|
chain: string | null;
|
||||||
|
check_in_date: string | null;
|
||||||
|
check_in_time: string | null;
|
||||||
|
check_in_timezone: string | null;
|
||||||
|
check_out_date: string | null;
|
||||||
|
check_out_time: string | null;
|
||||||
|
check_out_timezone: string | null;
|
||||||
|
address_line1: string | null;
|
||||||
|
address_line2: string | null;
|
||||||
|
city_name: string | null;
|
||||||
|
country: string | null;
|
||||||
|
country_code: string | null;
|
||||||
|
postal_code: string | null;
|
||||||
|
confirmation_number: string | null;
|
||||||
|
website: string | null;
|
||||||
|
phone: string | null;
|
||||||
|
price: number | null;
|
||||||
|
currency: string;
|
||||||
|
created_at: string;
|
||||||
|
updated_at: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CreateLodgingInput {
|
||||||
|
tripId: string;
|
||||||
|
userId: string;
|
||||||
|
status?: PlanStatus;
|
||||||
|
name: string;
|
||||||
|
chain?: string;
|
||||||
|
checkInDate?: string;
|
||||||
|
checkInTime?: string;
|
||||||
|
checkInTimezone?: string;
|
||||||
|
checkOutDate?: string;
|
||||||
|
checkOutTime?: string;
|
||||||
|
checkOutTimezone?: string;
|
||||||
|
addressLine1?: string;
|
||||||
|
addressLine2?: string;
|
||||||
|
cityName?: string;
|
||||||
|
country?: string;
|
||||||
|
countryCode?: string;
|
||||||
|
postalCode?: string;
|
||||||
|
confirmationNumber?: string;
|
||||||
|
website?: string;
|
||||||
|
phone?: string;
|
||||||
|
price?: number;
|
||||||
|
currency?: string;
|
||||||
|
guestIds?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UpdateLodgingInput {
|
||||||
|
lodgingId: string;
|
||||||
|
userId: string;
|
||||||
|
status?: PlanStatus;
|
||||||
|
name: string;
|
||||||
|
chain?: string;
|
||||||
|
checkInDate?: string;
|
||||||
|
checkInTime?: string;
|
||||||
|
checkInTimezone?: string;
|
||||||
|
checkOutDate?: string;
|
||||||
|
checkOutTime?: string;
|
||||||
|
checkOutTimezone?: string;
|
||||||
|
addressLine1?: string;
|
||||||
|
addressLine2?: string;
|
||||||
|
cityName?: string;
|
||||||
|
country?: string;
|
||||||
|
countryCode?: string;
|
||||||
|
postalCode?: string;
|
||||||
|
confirmationNumber?: string;
|
||||||
|
website?: string;
|
||||||
|
phone?: string;
|
||||||
|
price?: number;
|
||||||
|
currency?: string;
|
||||||
|
guestIds?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export function createLodging(input: CreateLodgingInput): Lodging {
|
||||||
|
const planId = randomUUID();
|
||||||
|
const maxPos = db.get<{ pos: number }>(
|
||||||
|
`SELECT COALESCE(MAX(position), -1) + 1 as pos FROM plans WHERE trip_id = ? AND user_id = ?`,
|
||||||
|
[input.tripId, input.userId]
|
||||||
|
);
|
||||||
|
const position = maxPos?.pos ?? 0;
|
||||||
|
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO plans (id, trip_id, user_id, type, status, title, city_name, country, country_code, position)
|
||||||
|
VALUES (?, ?, ?, 'lodging', ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
planId,
|
||||||
|
input.tripId,
|
||||||
|
input.userId,
|
||||||
|
input.status ?? 'idea',
|
||||||
|
input.name,
|
||||||
|
input.cityName ?? null,
|
||||||
|
input.country ?? null,
|
||||||
|
input.countryCode ?? null,
|
||||||
|
position
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
const lodgingId = randomUUID();
|
||||||
|
db.run(
|
||||||
|
`INSERT INTO lodgings (
|
||||||
|
id, plan_id, name, chain,
|
||||||
|
check_in_date, check_in_time, check_in_timezone,
|
||||||
|
check_out_date, check_out_time, check_out_timezone,
|
||||||
|
address_line1, address_line2, city_name, country, country_code, postal_code,
|
||||||
|
confirmation_number, website, phone, price, currency
|
||||||
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
|
[
|
||||||
|
lodgingId,
|
||||||
|
planId,
|
||||||
|
input.name,
|
||||||
|
input.chain ?? null,
|
||||||
|
input.checkInDate ?? null,
|
||||||
|
input.checkInTime ?? null,
|
||||||
|
input.checkInTimezone ?? null,
|
||||||
|
input.checkOutDate ?? null,
|
||||||
|
input.checkOutTime ?? null,
|
||||||
|
input.checkOutTimezone ?? null,
|
||||||
|
input.addressLine1 ?? null,
|
||||||
|
input.addressLine2 ?? null,
|
||||||
|
input.cityName ?? null,
|
||||||
|
input.country ?? null,
|
||||||
|
input.countryCode ?? null,
|
||||||
|
input.postalCode ?? null,
|
||||||
|
input.confirmationNumber ?? null,
|
||||||
|
input.website ?? null,
|
||||||
|
input.phone ?? null,
|
||||||
|
input.price ?? null,
|
||||||
|
input.currency ?? 'USD'
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (input.guestIds && input.guestIds.length > 0) {
|
||||||
|
for (const personId of input.guestIds) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO lodging_guests (lodging_id, person_id) VALUES (?, ?)`,
|
||||||
|
[lodgingId, personId]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return db.get<Lodging>('SELECT * FROM lodgings WHERE id = ?', [lodgingId])!;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getLodgingsForTrip(
|
||||||
|
tripId: string,
|
||||||
|
userId: string
|
||||||
|
): Array<Lodging & { guestIds: string[]; planStatus: PlanStatus }> {
|
||||||
|
const lodgings = db.all<Lodging & { plan_status: string }>(
|
||||||
|
`SELECT l.*, p.status as plan_status
|
||||||
|
FROM lodgings l
|
||||||
|
JOIN plans p ON p.id = l.plan_id
|
||||||
|
WHERE p.trip_id = ? AND p.user_id = ? AND p.type = 'lodging'
|
||||||
|
ORDER BY p.position ASC, l.created_at ASC`,
|
||||||
|
[tripId, userId]
|
||||||
|
);
|
||||||
|
|
||||||
|
return lodgings.map((lodging) => {
|
||||||
|
const guestIds = db
|
||||||
|
.all<{ person_id: string }>(
|
||||||
|
'SELECT person_id FROM lodging_guests WHERE lodging_id = ?',
|
||||||
|
[lodging.id]
|
||||||
|
)
|
||||||
|
.map((r) => r.person_id);
|
||||||
|
const { plan_status, ...rest } = lodging;
|
||||||
|
return { ...rest, guestIds, planStatus: plan_status as PlanStatus };
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateLodging(input: UpdateLodgingInput): void {
|
||||||
|
// Verify ownership via plans table
|
||||||
|
const lodging = db.get<{ id: string; plan_id: string }>(
|
||||||
|
`SELECT l.id, l.plan_id FROM lodgings l
|
||||||
|
JOIN plans p ON p.id = l.plan_id
|
||||||
|
WHERE l.id = ? AND p.user_id = ?`,
|
||||||
|
[input.lodgingId, input.userId]
|
||||||
|
);
|
||||||
|
if (!lodging) throw new Error('Lodging not found or not authorized');
|
||||||
|
|
||||||
|
// Update plans row
|
||||||
|
db.run(
|
||||||
|
`UPDATE plans SET status = ?, title = ?, city_name = ?, country = ?, country_code = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?`,
|
||||||
|
[
|
||||||
|
input.status ?? 'idea',
|
||||||
|
input.name,
|
||||||
|
input.cityName ?? null,
|
||||||
|
input.country ?? null,
|
||||||
|
input.countryCode ?? null,
|
||||||
|
lodging.plan_id
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Update lodgings row
|
||||||
|
db.run(
|
||||||
|
`UPDATE lodgings SET
|
||||||
|
name = ?, chain = ?,
|
||||||
|
check_in_date = ?, check_in_time = ?, check_in_timezone = ?,
|
||||||
|
check_out_date = ?, check_out_time = ?, check_out_timezone = ?,
|
||||||
|
address_line1 = ?, address_line2 = ?, city_name = ?, country = ?, country_code = ?, postal_code = ?,
|
||||||
|
confirmation_number = ?, website = ?, phone = ?, price = ?, currency = ?,
|
||||||
|
updated_at = CURRENT_TIMESTAMP
|
||||||
|
WHERE id = ?`,
|
||||||
|
[
|
||||||
|
input.name,
|
||||||
|
input.chain ?? null,
|
||||||
|
input.checkInDate ?? null,
|
||||||
|
input.checkInTime ?? null,
|
||||||
|
input.checkInTimezone ?? null,
|
||||||
|
input.checkOutDate ?? null,
|
||||||
|
input.checkOutTime ?? null,
|
||||||
|
input.checkOutTimezone ?? null,
|
||||||
|
input.addressLine1 ?? null,
|
||||||
|
input.addressLine2 ?? null,
|
||||||
|
input.cityName ?? null,
|
||||||
|
input.country ?? null,
|
||||||
|
input.countryCode ?? null,
|
||||||
|
input.postalCode ?? null,
|
||||||
|
input.confirmationNumber ?? null,
|
||||||
|
input.website ?? null,
|
||||||
|
input.phone ?? null,
|
||||||
|
input.price ?? null,
|
||||||
|
input.currency ?? 'USD',
|
||||||
|
input.lodgingId
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// Replace guests
|
||||||
|
db.run('DELETE FROM lodging_guests WHERE lodging_id = ?', [input.lodgingId]);
|
||||||
|
if (input.guestIds && input.guestIds.length > 0) {
|
||||||
|
for (const personId of input.guestIds) {
|
||||||
|
db.run(
|
||||||
|
`INSERT OR IGNORE INTO lodging_guests (lodging_id, person_id) VALUES (?, ?)`,
|
||||||
|
[input.lodgingId, personId]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -99,9 +99,43 @@ export function getPlanCountForTrip(tripId: string, userId: string): number {
|
|||||||
return row?.count ?? 0;
|
return row?.count ?? 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function searchCities(query: string): City[] {
|
export interface Country {
|
||||||
|
name: string;
|
||||||
|
country_code: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getCountries(query?: string): Country[] {
|
||||||
|
if (!query?.trim()) {
|
||||||
|
return db.all<Country>(
|
||||||
|
`SELECT DISTINCT country as name, country_code FROM cities ORDER BY country`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
const pattern = `%${query.trim()}%`;
|
||||||
|
return db.all<Country>(
|
||||||
|
`SELECT DISTINCT country as name, country_code
|
||||||
|
FROM cities
|
||||||
|
WHERE country LIKE ? COLLATE NOCASE
|
||||||
|
ORDER BY country
|
||||||
|
LIMIT 50`,
|
||||||
|
[pattern]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function searchCities(query: string, countryCode?: string): City[] {
|
||||||
if (!query.trim()) return [];
|
if (!query.trim()) return [];
|
||||||
const pattern = `%${query.trim()}%`;
|
const pattern = `%${query.trim()}%`;
|
||||||
|
if (countryCode?.trim()) {
|
||||||
|
return db.all<City>(
|
||||||
|
`SELECT id, name, country, country_code, population
|
||||||
|
FROM cities
|
||||||
|
WHERE name LIKE ? COLLATE NOCASE AND country_code = ?
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN name LIKE ? COLLATE NOCASE THEN 0 ELSE 1 END,
|
||||||
|
population DESC NULLS LAST
|
||||||
|
LIMIT 10`,
|
||||||
|
[pattern, countryCode.trim().toUpperCase(), `${query.trim()}%`]
|
||||||
|
);
|
||||||
|
}
|
||||||
return db.all<City>(
|
return db.all<City>(
|
||||||
`SELECT id, name, country, country_code, population
|
`SELECT id, name, country, country_code, population
|
||||||
FROM cities
|
FROM cities
|
||||||
|
|||||||
@@ -72,7 +72,14 @@ export function getPeopleForUser(userId: string): Person[] {
|
|||||||
// Trip assignment
|
// Trip assignment
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
export function addPersonToTrip(tripId: string, personId: string): void {
|
export function addPersonToTrip(tripId: string, personId: string, userId: string): void {
|
||||||
|
// Verify the person belongs to this user before linking
|
||||||
|
const person = db.get<{ id: string }>(`SELECT id FROM people WHERE id = ? AND user_id = ?`, [
|
||||||
|
personId,
|
||||||
|
userId
|
||||||
|
]);
|
||||||
|
if (!person) throw new Error('Person not found or not authorized');
|
||||||
|
|
||||||
const maxPos = db.get<{ pos: number }>(
|
const maxPos = db.get<{ pos: number }>(
|
||||||
`SELECT COALESCE(MAX(position), -1) + 1 as pos FROM trip_travellers WHERE trip_id = ?`,
|
`SELECT COALESCE(MAX(position), -1) + 1 as pos FROM trip_travellers WHERE trip_id = ?`,
|
||||||
[tripId]
|
[tripId]
|
||||||
@@ -103,8 +110,8 @@ export function addTraveller(input: {
|
|||||||
personId = person.id;
|
personId = person.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the person to the trip
|
// Add the person to the trip (ownership verified inside)
|
||||||
addPersonToTrip(input.tripId, personId);
|
addPersonToTrip(input.tripId, personId, input.userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTravellersForTrip(tripId: string, userId: string): Person[] {
|
export function getTravellersForTrip(tripId: string, userId: string): Person[] {
|
||||||
|
|||||||
10
src/routes/(protected)/api/airlines/+server.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { json } from '@sveltejs/kit';
|
||||||
|
import type { RequestHandler } from './$types';
|
||||||
|
import { searchAirlines } from '$lib/server/flights.js';
|
||||||
|
|
||||||
|
export const GET: RequestHandler = ({ url }) => {
|
||||||
|
const q = url.searchParams.get('q') ?? '';
|
||||||
|
const airlines = searchAirlines(q);
|
||||||
|
return json(airlines);
|
||||||
|
};
|
||||||
|
|
||||||
10
src/routes/(protected)/api/airports/+server.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { json } from '@sveltejs/kit';
|
||||||
|
import type { RequestHandler } from './$types';
|
||||||
|
import { searchAirports } from '$lib/server/flights.js';
|
||||||
|
|
||||||
|
export const GET: RequestHandler = ({ url }) => {
|
||||||
|
const q = url.searchParams.get('q') ?? '';
|
||||||
|
const airports = searchAirports(q);
|
||||||
|
return json(airports);
|
||||||
|
};
|
||||||
|
|
||||||
@@ -4,6 +4,7 @@ import { searchCities } from '$lib/server/plans.js';
|
|||||||
|
|
||||||
export const GET: RequestHandler = ({ url }) => {
|
export const GET: RequestHandler = ({ url }) => {
|
||||||
const q = url.searchParams.get('q') ?? '';
|
const q = url.searchParams.get('q') ?? '';
|
||||||
const cities = searchCities(q);
|
const countryCode = url.searchParams.get('country_code') ?? undefined;
|
||||||
|
const cities = searchCities(q, countryCode);
|
||||||
return json(cities);
|
return json(cities);
|
||||||
};
|
};
|
||||||
|
|||||||
9
src/routes/(protected)/api/countries/+server.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { json } from '@sveltejs/kit';
|
||||||
|
import type { RequestHandler } from './$types';
|
||||||
|
import { getCountries } from '$lib/server/plans.js';
|
||||||
|
|
||||||
|
export const GET: RequestHandler = ({ url }) => {
|
||||||
|
const q = url.searchParams.get('q') ?? undefined;
|
||||||
|
const countries = getCountries(q);
|
||||||
|
return json(countries);
|
||||||
|
};
|
||||||
@@ -1,7 +1,14 @@
|
|||||||
import { error, fail } from '@sveltejs/kit';
|
import { error, fail } from '@sveltejs/kit';
|
||||||
import { getTripById, updateTrip } from '$lib/server/trips.js';
|
import { getTripById, updateTrip } from '$lib/server/trips.js';
|
||||||
import { createDestination, getPlansForTrip, deletePlan } from '$lib/server/plans.js';
|
import { createDestination, getPlansForTrip, deletePlan } from '$lib/server/plans.js';
|
||||||
import { addTraveller, getTravellersForTrip, getPeopleForUser, removeTravellerFromTrip } from '$lib/server/travellers.js';
|
import {
|
||||||
|
addTraveller,
|
||||||
|
getTravellersForTrip,
|
||||||
|
getPeopleForUser,
|
||||||
|
removeTravellerFromTrip
|
||||||
|
} from '$lib/server/travellers.js';
|
||||||
|
import { createFlight, updateFlight, getFlightBookingsForTrip } from '$lib/server/flights.js';
|
||||||
|
import { createLodging, updateLodging, getLodgingsForTrip } from '$lib/server/lodgings.js';
|
||||||
import type { PageServerLoad, Actions } from './$types';
|
import type { PageServerLoad, Actions } from './$types';
|
||||||
|
|
||||||
export const load: PageServerLoad = async (event) => {
|
export const load: PageServerLoad = async (event) => {
|
||||||
@@ -15,8 +22,19 @@ export const load: PageServerLoad = async (event) => {
|
|||||||
const plans = getPlansForTrip(trip.id, userId);
|
const plans = getPlansForTrip(trip.id, userId);
|
||||||
const travellers = getTravellersForTrip(trip.id, userId);
|
const travellers = getTravellersForTrip(trip.id, userId);
|
||||||
const people = getPeopleForUser(userId);
|
const people = getPeopleForUser(userId);
|
||||||
|
const flightBookings = getFlightBookingsForTrip(trip.id, userId);
|
||||||
|
const lodgings = getLodgingsForTrip(trip.id, userId);
|
||||||
|
|
||||||
return { trip, plans, planCount: plans.length, travellers, travellerCount: travellers.length, people };
|
return {
|
||||||
|
trip,
|
||||||
|
plans,
|
||||||
|
planCount: plans.length,
|
||||||
|
travellers,
|
||||||
|
travellerCount: travellers.length,
|
||||||
|
people,
|
||||||
|
flightBookings,
|
||||||
|
lodgings
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const actions: Actions = {
|
export const actions: Actions = {
|
||||||
@@ -128,7 +146,9 @@ export const actions: Actions = {
|
|||||||
removeTravellerFromTrip(trip.id, personId, userId);
|
removeTravellerFromTrip(trip.id, personId, userId);
|
||||||
return { success: true };
|
return { success: true };
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return fail(400, { error: err instanceof Error ? err.message : 'Failed to remove traveller' });
|
return fail(400, {
|
||||||
|
error: err instanceof Error ? err.message : 'Failed to remove traveller'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -153,5 +173,350 @@ export const actions: Actions = {
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
return fail(400, { error: err instanceof Error ? err.message : 'Failed to remove plan' });
|
return fail(400, { error: err instanceof Error ? err.message : 'Failed to remove plan' });
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
addFlight: async (event) => {
|
||||||
|
const session = await event.locals.auth();
|
||||||
|
const userId = session?.user?.id;
|
||||||
|
if (!userId) return fail(401, { error: 'Not authenticated' });
|
||||||
|
|
||||||
|
const trip = getTripById(event.params.id, userId);
|
||||||
|
if (!trip) return fail(404, { error: 'Trip not found' });
|
||||||
|
|
||||||
|
const data = await event.request.formData();
|
||||||
|
const confirmationNumber = (data.get('confirmation_number') as string)?.trim() || undefined;
|
||||||
|
const priceRaw = (data.get('price') as string)?.trim();
|
||||||
|
const price = priceRaw ? parseFloat(priceRaw) : undefined;
|
||||||
|
const currency = (data.get('currency') as string)?.trim() || 'USD';
|
||||||
|
const status = data.get('status') as string as 'idea' | 'tentative' | 'confirmed';
|
||||||
|
const passengerIds = data.getAll('passenger_ids[]') as string[];
|
||||||
|
|
||||||
|
// Parse segments - form data comes as segments[0][field], segments[1][field], etc.
|
||||||
|
const segments: Array<{
|
||||||
|
departureDate: string;
|
||||||
|
airlineId?: number;
|
||||||
|
airlineIata?: string;
|
||||||
|
airlineName?: string;
|
||||||
|
flightNumber: string;
|
||||||
|
route?: {
|
||||||
|
departureAirportId?: number;
|
||||||
|
departureAirportCode?: string;
|
||||||
|
arrivalAirportId?: number;
|
||||||
|
arrivalAirportCode?: string;
|
||||||
|
departureDatetime?: string;
|
||||||
|
arrivalDatetime?: string;
|
||||||
|
};
|
||||||
|
}> = [];
|
||||||
|
|
||||||
|
// Collect all segment indices
|
||||||
|
const segmentIndices = new Set<number>();
|
||||||
|
for (const key of data.keys()) {
|
||||||
|
const match = key.match(/^segments\[(\d+)\]/);
|
||||||
|
if (match) {
|
||||||
|
segmentIndices.add(parseInt(match[1]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build segments array
|
||||||
|
for (const index of Array.from(segmentIndices).sort((a, b) => a - b)) {
|
||||||
|
const departureDate = (data.get(`segments[${index}][departure_date]`) as string)?.trim();
|
||||||
|
const airlineIdRaw = (data.get(`segments[${index}][airline_id]`) as string)?.trim();
|
||||||
|
const airlineIata = (data.get(`segments[${index}][airline_iata]`) as string)?.trim();
|
||||||
|
const airlineName = (data.get(`segments[${index}][airline_name]`) as string)?.trim();
|
||||||
|
const flightNumber = (data.get(`segments[${index}][flight_number]`) as string)?.trim();
|
||||||
|
const departureAirportIdRaw = (
|
||||||
|
data.get(`segments[${index}][departure_airport_id]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const departureAirportCode = (
|
||||||
|
data.get(`segments[${index}][departure_airport_code]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const arrivalAirportIdRaw = (
|
||||||
|
data.get(`segments[${index}][arrival_airport_id]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const arrivalAirportCode = (
|
||||||
|
data.get(`segments[${index}][arrival_airport_code]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const departureDatetime =
|
||||||
|
(data.get(`segments[${index}][departure_datetime]`) as string)?.trim() || undefined;
|
||||||
|
const arrivalDatetime =
|
||||||
|
(data.get(`segments[${index}][arrival_datetime]`) as string)?.trim() || undefined;
|
||||||
|
|
||||||
|
if (!departureDate || !flightNumber) {
|
||||||
|
return fail(400, { error: 'All segments must have a departure date and flight number' });
|
||||||
|
}
|
||||||
|
|
||||||
|
const hasRoute =
|
||||||
|
departureAirportIdRaw ||
|
||||||
|
departureAirportCode ||
|
||||||
|
arrivalAirportIdRaw ||
|
||||||
|
arrivalAirportCode ||
|
||||||
|
departureDatetime ||
|
||||||
|
arrivalDatetime;
|
||||||
|
|
||||||
|
segments.push({
|
||||||
|
departureDate,
|
||||||
|
airlineId: airlineIdRaw ? parseInt(airlineIdRaw) : undefined,
|
||||||
|
airlineIata: airlineIata || undefined,
|
||||||
|
airlineName: airlineName || undefined,
|
||||||
|
flightNumber,
|
||||||
|
route: hasRoute
|
||||||
|
? {
|
||||||
|
departureAirportId: departureAirportIdRaw
|
||||||
|
? parseInt(departureAirportIdRaw)
|
||||||
|
: undefined,
|
||||||
|
departureAirportCode: departureAirportCode || undefined,
|
||||||
|
arrivalAirportId: arrivalAirportIdRaw ? parseInt(arrivalAirportIdRaw) : undefined,
|
||||||
|
arrivalAirportCode: arrivalAirportCode || undefined,
|
||||||
|
departureDatetime,
|
||||||
|
arrivalDatetime
|
||||||
|
}
|
||||||
|
: undefined
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (segments.length === 0) {
|
||||||
|
return fail(400, { error: 'At least one flight segment is required' });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
createFlight({
|
||||||
|
tripId: trip.id,
|
||||||
|
userId,
|
||||||
|
confirmationNumber,
|
||||||
|
price,
|
||||||
|
currency,
|
||||||
|
status: ['idea', 'tentative', 'confirmed'].includes(status) ? status : 'idea',
|
||||||
|
segments,
|
||||||
|
passengerIds: passengerIds.length > 0 ? passengerIds : undefined
|
||||||
|
});
|
||||||
|
return { success: true };
|
||||||
|
} catch (err) {
|
||||||
|
return fail(400, { error: err instanceof Error ? err.message : 'Failed to create flight' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
editFlight: async (event) => {
|
||||||
|
const session = await event.locals.auth();
|
||||||
|
const userId = session?.user?.id;
|
||||||
|
if (!userId) return fail(401, { error: 'Not authenticated' });
|
||||||
|
|
||||||
|
const trip = getTripById(event.params.id, userId);
|
||||||
|
if (!trip) return fail(404, { error: 'Trip not found' });
|
||||||
|
|
||||||
|
const data = await event.request.formData();
|
||||||
|
const bookingId = (data.get('booking_id') as string)?.trim();
|
||||||
|
if (!bookingId) return fail(400, { error: 'Booking ID is required' });
|
||||||
|
|
||||||
|
const confirmationNumber = (data.get('confirmation_number') as string)?.trim() || undefined;
|
||||||
|
const priceRaw = (data.get('price') as string)?.trim();
|
||||||
|
const price = priceRaw ? parseFloat(priceRaw) : undefined;
|
||||||
|
const currency = (data.get('currency') as string)?.trim() || 'USD';
|
||||||
|
const status = data.get('status') as string as 'idea' | 'tentative' | 'confirmed';
|
||||||
|
const passengerIds = data.getAll('passenger_ids[]') as string[];
|
||||||
|
|
||||||
|
const segments: Array<{
|
||||||
|
departureDate: string;
|
||||||
|
airlineId?: number;
|
||||||
|
airlineIata?: string;
|
||||||
|
airlineName?: string;
|
||||||
|
flightNumber: string;
|
||||||
|
route?: {
|
||||||
|
departureAirportId?: number;
|
||||||
|
departureAirportCode?: string;
|
||||||
|
arrivalAirportId?: number;
|
||||||
|
arrivalAirportCode?: string;
|
||||||
|
departureDatetime?: string;
|
||||||
|
arrivalDatetime?: string;
|
||||||
|
};
|
||||||
|
}> = [];
|
||||||
|
|
||||||
|
const segmentIndices = new Set<number>();
|
||||||
|
for (const key of data.keys()) {
|
||||||
|
const match = key.match(/^segments\[(\d+)\]/);
|
||||||
|
if (match) segmentIndices.add(parseInt(match[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const index of Array.from(segmentIndices).sort((a, b) => a - b)) {
|
||||||
|
const departureDate = (data.get(`segments[${index}][departure_date]`) as string)?.trim();
|
||||||
|
const airlineIdRaw = (data.get(`segments[${index}][airline_id]`) as string)?.trim();
|
||||||
|
const airlineIata = (data.get(`segments[${index}][airline_iata]`) as string)?.trim();
|
||||||
|
const airlineName = (data.get(`segments[${index}][airline_name]`) as string)?.trim();
|
||||||
|
const flightNumber = (data.get(`segments[${index}][flight_number]`) as string)?.trim();
|
||||||
|
const departureAirportIdRaw = (
|
||||||
|
data.get(`segments[${index}][departure_airport_id]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const departureAirportCode = (
|
||||||
|
data.get(`segments[${index}][departure_airport_code]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const arrivalAirportIdRaw = (
|
||||||
|
data.get(`segments[${index}][arrival_airport_id]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const arrivalAirportCode = (
|
||||||
|
data.get(`segments[${index}][arrival_airport_code]`) as string
|
||||||
|
)?.trim();
|
||||||
|
const departureDatetime =
|
||||||
|
(data.get(`segments[${index}][departure_datetime]`) as string)?.trim() || undefined;
|
||||||
|
const arrivalDatetime =
|
||||||
|
(data.get(`segments[${index}][arrival_datetime]`) as string)?.trim() || undefined;
|
||||||
|
|
||||||
|
if (!departureDate || !flightNumber) {
|
||||||
|
return fail(400, { error: 'All segments must have a departure date and flight number' });
|
||||||
|
}
|
||||||
|
|
||||||
|
const hasRoute =
|
||||||
|
departureAirportIdRaw ||
|
||||||
|
departureAirportCode ||
|
||||||
|
arrivalAirportIdRaw ||
|
||||||
|
arrivalAirportCode ||
|
||||||
|
departureDatetime ||
|
||||||
|
arrivalDatetime;
|
||||||
|
|
||||||
|
segments.push({
|
||||||
|
departureDate,
|
||||||
|
airlineId: airlineIdRaw ? parseInt(airlineIdRaw) : undefined,
|
||||||
|
airlineIata: airlineIata || undefined,
|
||||||
|
airlineName: airlineName || undefined,
|
||||||
|
flightNumber,
|
||||||
|
route: hasRoute
|
||||||
|
? {
|
||||||
|
departureAirportId: departureAirportIdRaw
|
||||||
|
? parseInt(departureAirportIdRaw)
|
||||||
|
: undefined,
|
||||||
|
departureAirportCode: departureAirportCode || undefined,
|
||||||
|
arrivalAirportId: arrivalAirportIdRaw ? parseInt(arrivalAirportIdRaw) : undefined,
|
||||||
|
arrivalAirportCode: arrivalAirportCode || undefined,
|
||||||
|
departureDatetime,
|
||||||
|
arrivalDatetime
|
||||||
|
}
|
||||||
|
: undefined
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (segments.length === 0) {
|
||||||
|
return fail(400, { error: 'At least one flight segment is required' });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
updateFlight({
|
||||||
|
bookingId,
|
||||||
|
userId,
|
||||||
|
confirmationNumber,
|
||||||
|
price,
|
||||||
|
currency,
|
||||||
|
status: ['idea', 'tentative', 'confirmed'].includes(status) ? status : 'idea',
|
||||||
|
segments,
|
||||||
|
passengerIds: passengerIds.length > 0 ? passengerIds : undefined
|
||||||
|
});
|
||||||
|
return { success: true };
|
||||||
|
} catch (err) {
|
||||||
|
return fail(400, { error: err instanceof Error ? err.message : 'Failed to update flight' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
addLodging: async (event) => {
|
||||||
|
const session = await event.locals.auth();
|
||||||
|
const userId = session?.user?.id;
|
||||||
|
if (!userId) return fail(401, { error: 'Not authenticated' });
|
||||||
|
|
||||||
|
const trip = getTripById(event.params.id, userId);
|
||||||
|
if (!trip) return fail(404, { error: 'Trip not found' });
|
||||||
|
|
||||||
|
const data = await event.request.formData();
|
||||||
|
const name = (data.get('name') as string)?.trim();
|
||||||
|
if (!name) return fail(400, { error: 'Lodging name is required' });
|
||||||
|
|
||||||
|
const str = (key: string) => (data.get(key) as string)?.trim() || undefined;
|
||||||
|
const num = (key: string) => {
|
||||||
|
const v = str(key);
|
||||||
|
return v ? parseFloat(v) : undefined;
|
||||||
|
};
|
||||||
|
const status = data.get('status') as string as 'idea' | 'tentative' | 'confirmed';
|
||||||
|
const guestIds = data.getAll('guest_ids[]') as string[];
|
||||||
|
|
||||||
|
try {
|
||||||
|
createLodging({
|
||||||
|
tripId: trip.id,
|
||||||
|
userId,
|
||||||
|
status: ['idea', 'tentative', 'confirmed'].includes(status) ? status : 'idea',
|
||||||
|
name,
|
||||||
|
chain: str('chain'),
|
||||||
|
checkInDate: str('check_in_date'),
|
||||||
|
checkInTime: str('check_in_time'),
|
||||||
|
checkInTimezone: str('check_in_timezone'),
|
||||||
|
checkOutDate: str('check_out_date'),
|
||||||
|
checkOutTime: str('check_out_time'),
|
||||||
|
checkOutTimezone: str('check_out_timezone'),
|
||||||
|
addressLine1: str('address_line1'),
|
||||||
|
addressLine2: str('address_line2'),
|
||||||
|
cityName: str('city_name'),
|
||||||
|
country: str('country'),
|
||||||
|
countryCode: str('country_code'),
|
||||||
|
postalCode: str('postal_code'),
|
||||||
|
confirmationNumber: str('confirmation_number'),
|
||||||
|
website: str('website'),
|
||||||
|
phone: str('phone'),
|
||||||
|
price: num('price'),
|
||||||
|
currency: str('currency') ?? 'USD',
|
||||||
|
guestIds: guestIds.length > 0 ? guestIds : undefined
|
||||||
|
});
|
||||||
|
return { success: true };
|
||||||
|
} catch (err) {
|
||||||
|
return fail(400, { error: err instanceof Error ? err.message : 'Failed to create lodging' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
editLodging: async (event) => {
|
||||||
|
const session = await event.locals.auth();
|
||||||
|
const userId = session?.user?.id;
|
||||||
|
if (!userId) return fail(401, { error: 'Not authenticated' });
|
||||||
|
|
||||||
|
const trip = getTripById(event.params.id, userId);
|
||||||
|
if (!trip) return fail(404, { error: 'Trip not found' });
|
||||||
|
|
||||||
|
const data = await event.request.formData();
|
||||||
|
const lodgingId = (data.get('lodging_id') as string)?.trim();
|
||||||
|
if (!lodgingId) return fail(400, { error: 'Lodging ID is required' });
|
||||||
|
|
||||||
|
const name = (data.get('name') as string)?.trim();
|
||||||
|
if (!name) return fail(400, { error: 'Lodging name is required' });
|
||||||
|
|
||||||
|
const str = (key: string) => (data.get(key) as string)?.trim() || undefined;
|
||||||
|
const num = (key: string) => {
|
||||||
|
const v = str(key);
|
||||||
|
return v ? parseFloat(v) : undefined;
|
||||||
|
};
|
||||||
|
const status = data.get('status') as string as 'idea' | 'tentative' | 'confirmed';
|
||||||
|
const guestIds = data.getAll('guest_ids[]') as string[];
|
||||||
|
|
||||||
|
try {
|
||||||
|
updateLodging({
|
||||||
|
lodgingId,
|
||||||
|
userId,
|
||||||
|
status: ['idea', 'tentative', 'confirmed'].includes(status) ? status : 'idea',
|
||||||
|
name,
|
||||||
|
chain: str('chain'),
|
||||||
|
checkInDate: str('check_in_date'),
|
||||||
|
checkInTime: str('check_in_time'),
|
||||||
|
checkInTimezone: str('check_in_timezone'),
|
||||||
|
checkOutDate: str('check_out_date'),
|
||||||
|
checkOutTime: str('check_out_time'),
|
||||||
|
checkOutTimezone: str('check_out_timezone'),
|
||||||
|
addressLine1: str('address_line1'),
|
||||||
|
addressLine2: str('address_line2'),
|
||||||
|
cityName: str('city_name'),
|
||||||
|
country: str('country'),
|
||||||
|
countryCode: str('country_code'),
|
||||||
|
postalCode: str('postal_code'),
|
||||||
|
confirmationNumber: str('confirmation_number'),
|
||||||
|
website: str('website'),
|
||||||
|
phone: str('phone'),
|
||||||
|
price: num('price'),
|
||||||
|
currency: str('currency') ?? 'USD',
|
||||||
|
guestIds: guestIds.length > 0 ? guestIds : undefined
|
||||||
|
});
|
||||||
|
return { success: true };
|
||||||
|
} catch (err) {
|
||||||
|
return fail(400, { error: err instanceof Error ? err.message : 'Failed to update lodging' });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,7 +3,13 @@
|
|||||||
import TripWelcome from '$lib/components/TripWelcome.svelte';
|
import TripWelcome from '$lib/components/TripWelcome.svelte';
|
||||||
import AddDestinationModal from '$lib/components/AddDestinationModal.svelte';
|
import AddDestinationModal from '$lib/components/AddDestinationModal.svelte';
|
||||||
import AddTravellerModal from '$lib/components/AddTravellerModal.svelte';
|
import AddTravellerModal from '$lib/components/AddTravellerModal.svelte';
|
||||||
|
import AddFlightModal from '$lib/components/AddFlightModal.svelte';
|
||||||
|
import EditFlightModal from '$lib/components/EditFlightModal.svelte';
|
||||||
|
import AddLodgingModal from '$lib/components/AddLodgingModal.svelte';
|
||||||
|
import EditLodgingModal from '$lib/components/EditLodgingModal.svelte';
|
||||||
import PlanCard from '$lib/components/PlanCard.svelte';
|
import PlanCard from '$lib/components/PlanCard.svelte';
|
||||||
|
import FlightCard from '$lib/components/FlightCard.svelte';
|
||||||
|
import LodgingCard from '$lib/components/LodgingCard.svelte';
|
||||||
import TravellerChip from '$lib/components/TravellerChip.svelte';
|
import TravellerChip from '$lib/components/TravellerChip.svelte';
|
||||||
|
|
||||||
let { data, form } = $props();
|
let { data, form } = $props();
|
||||||
@@ -14,10 +20,19 @@
|
|||||||
let travellerCount = $derived(data.travellerCount ?? 0);
|
let travellerCount = $derived(data.travellerCount ?? 0);
|
||||||
let people = $derived(data.people ?? []);
|
let people = $derived(data.people ?? []);
|
||||||
let tripTravellerIds = $derived(travellers.map((t) => t.id));
|
let tripTravellerIds = $derived(travellers.map((t) => t.id));
|
||||||
|
let flightBookings = $derived(data.flightBookings ?? []);
|
||||||
|
let lodgings = $derived(data.lodgings ?? []);
|
||||||
let editing = $state(false);
|
let editing = $state(false);
|
||||||
let showAddDestination = $state(false);
|
let showAddDestination = $state(false);
|
||||||
let showAddTraveller = $state(false);
|
let showAddTraveller = $state(false);
|
||||||
|
let showAddFlight = $state(false);
|
||||||
|
let showAddLodging = $state(false);
|
||||||
let showAddMenu = $state(false);
|
let showAddMenu = $state(false);
|
||||||
|
let editingFlight = $state<(typeof flightBookings)[0] | null>(null);
|
||||||
|
let editingFlightPlan = $derived(
|
||||||
|
editingFlight ? (plans.find((p) => p.id === editingFlight!.plan_id) ?? null) : null
|
||||||
|
);
|
||||||
|
let editingLodging = $state<(typeof lodgings)[0] | null>(null);
|
||||||
|
|
||||||
const menuItems = [
|
const menuItems = [
|
||||||
{
|
{
|
||||||
@@ -39,6 +54,7 @@
|
|||||||
label: 'Transportation',
|
label: 'Transportation',
|
||||||
icon: `<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#F97316" stroke-width="1.5"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-3.99-3.99A19.79 19.79 0 0 1 4.1 6.18 2 2 0 0 1 6.08 4h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L10.09 11a16 16 0 0 0 5.91 5.91l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 24 18z"/></svg>`,
|
icon: `<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#F97316" stroke-width="1.5"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-3.99-3.99A19.79 19.79 0 0 1 4.1 6.18 2 2 0 0 1 6.08 4h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L10.09 11a16 16 0 0 0 5.91 5.91l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 24 18z"/></svg>`,
|
||||||
onclick: () => {
|
onclick: () => {
|
||||||
|
showAddFlight = true;
|
||||||
showAddMenu = false;
|
showAddMenu = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -46,6 +62,7 @@
|
|||||||
label: 'Lodgings',
|
label: 'Lodgings',
|
||||||
icon: `<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#A855F7" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>`,
|
icon: `<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#A855F7" stroke-width="1.5"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>`,
|
||||||
onclick: () => {
|
onclick: () => {
|
||||||
|
showAddLodging = true;
|
||||||
showAddMenu = false;
|
showAddMenu = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -100,6 +117,33 @@
|
|||||||
{people}
|
{people}
|
||||||
{tripTravellerIds}
|
{tripTravellerIds}
|
||||||
/>
|
/>
|
||||||
|
<AddFlightModal
|
||||||
|
open={showAddFlight}
|
||||||
|
onclose={() => (showAddFlight = false)}
|
||||||
|
{people}
|
||||||
|
{tripTravellerIds}
|
||||||
|
/>
|
||||||
|
<EditFlightModal
|
||||||
|
open={!!editingFlight}
|
||||||
|
flightBooking={editingFlight}
|
||||||
|
planStatus={editingFlightPlan?.status}
|
||||||
|
onclose={() => (editingFlight = null)}
|
||||||
|
{people}
|
||||||
|
{tripTravellerIds}
|
||||||
|
/>
|
||||||
|
<AddLodgingModal
|
||||||
|
open={showAddLodging}
|
||||||
|
onclose={() => (showAddLodging = false)}
|
||||||
|
{people}
|
||||||
|
{tripTravellerIds}
|
||||||
|
/>
|
||||||
|
<EditLodgingModal
|
||||||
|
open={!!editingLodging}
|
||||||
|
lodging={editingLodging}
|
||||||
|
onclose={() => (editingLodging = null)}
|
||||||
|
{people}
|
||||||
|
{tripTravellerIds}
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="mx-auto max-w-2xl">
|
<div class="mx-auto max-w-2xl">
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
@@ -389,6 +433,8 @@
|
|||||||
tripName={trip.name}
|
tripName={trip.name}
|
||||||
onAddDestination={() => (showAddDestination = true)}
|
onAddDestination={() => (showAddDestination = true)}
|
||||||
onAddTraveller={() => (showAddTraveller = true)}
|
onAddTraveller={() => (showAddTraveller = true)}
|
||||||
|
onAddFlight={() => (showAddFlight = true)}
|
||||||
|
onAddLodging={() => (showAddLodging = true)}
|
||||||
/>
|
/>
|
||||||
{:else}
|
{:else}
|
||||||
<!-- Plans list -->
|
<!-- Plans list -->
|
||||||
@@ -420,6 +466,86 @@
|
|||||||
{/each}
|
{/each}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Flights section -->
|
||||||
|
{#if flightBookings.length > 0}
|
||||||
|
<div class="mt-8">
|
||||||
|
<h2 class="mb-3 text-sm font-semibold tracking-wider text-gray-400 uppercase">
|
||||||
|
Transportation
|
||||||
|
</h2>
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
{#each flightBookings as flightBooking (flightBooking.id)}
|
||||||
|
{@const plan = plans.find((p) => p.id === flightBooking.plan_id)}
|
||||||
|
{#if plan}
|
||||||
|
{@const formId = `remove-plan-${plan.id}`}
|
||||||
|
{@const submitForm = () => {
|
||||||
|
const form = document.getElementById(formId) as HTMLFormElement;
|
||||||
|
form?.requestSubmit();
|
||||||
|
}}
|
||||||
|
<form
|
||||||
|
id={formId}
|
||||||
|
method="POST"
|
||||||
|
action="?/removePlan"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ update }) => {
|
||||||
|
update();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
class="contents"
|
||||||
|
>
|
||||||
|
<input type="hidden" name="plan_id" value={plan.id} />
|
||||||
|
<FlightCard
|
||||||
|
{plan}
|
||||||
|
{flightBooking}
|
||||||
|
onEdit={() => (editingFlight = flightBooking)}
|
||||||
|
onDelete={submitForm}
|
||||||
|
/>
|
||||||
|
</form>
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<!-- Lodgings section -->
|
||||||
|
{#if lodgings.length > 0}
|
||||||
|
<div class="mt-8">
|
||||||
|
<h2 class="mb-3 text-sm font-semibold tracking-wider text-gray-400 uppercase">
|
||||||
|
Lodgings
|
||||||
|
</h2>
|
||||||
|
<div class="flex flex-col gap-3">
|
||||||
|
{#each lodgings as lodging (lodging.id)}
|
||||||
|
{@const plan = plans.find((p) => p.id === lodging.plan_id)}
|
||||||
|
{#if plan}
|
||||||
|
{@const formId = `remove-plan-${plan.id}`}
|
||||||
|
{@const submitForm = () => {
|
||||||
|
const form = document.getElementById(formId) as HTMLFormElement;
|
||||||
|
form?.requestSubmit();
|
||||||
|
}}
|
||||||
|
<form
|
||||||
|
id={formId}
|
||||||
|
method="POST"
|
||||||
|
action="?/removePlan"
|
||||||
|
use:enhance={() => {
|
||||||
|
return ({ update }) => {
|
||||||
|
update();
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
class="contents"
|
||||||
|
>
|
||||||
|
<input type="hidden" name="plan_id" value={plan.id} />
|
||||||
|
<LodgingCard
|
||||||
|
{plan}
|
||||||
|
{lodging}
|
||||||
|
onEdit={() => (editingLodging = lodging)}
|
||||||
|
onDelete={submitForm}
|
||||||
|
/>
|
||||||
|
</form>
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
107
static/airline-logos/0B.svg
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 143.95436 42.989368">
|
||||||
|
<title>Blue Air logo</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient
|
||||||
|
id="SVGID_1_"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="56.794102"
|
||||||
|
y1="161.28101"
|
||||||
|
x2="135.2832"
|
||||||
|
y2="147.44119"
|
||||||
|
gradientTransform="matrix(0.26458333,0,0,0.26458333,35.369121,131.30092)">
|
||||||
|
<stop
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#21409A"
|
||||||
|
id="stop23567" />
|
||||||
|
<stop
|
||||||
|
offset="7.531519e-02"
|
||||||
|
style="stop-color:#20429B"
|
||||||
|
id="stop23569" />
|
||||||
|
<stop
|
||||||
|
offset="0.146"
|
||||||
|
style="stop-color:#1E489E"
|
||||||
|
id="stop23571" />
|
||||||
|
<stop
|
||||||
|
offset="0.2149"
|
||||||
|
style="stop-color:#1A53A5"
|
||||||
|
id="stop23573" />
|
||||||
|
<stop
|
||||||
|
offset="0.2826"
|
||||||
|
style="stop-color:#1560AE"
|
||||||
|
id="stop23575" />
|
||||||
|
<stop
|
||||||
|
offset="0.3495"
|
||||||
|
style="stop-color:#0D71BA"
|
||||||
|
id="stop23577" />
|
||||||
|
<stop
|
||||||
|
offset="0.4158"
|
||||||
|
style="stop-color:#0088CA"
|
||||||
|
id="stop23579" />
|
||||||
|
<stop
|
||||||
|
offset="0.4803"
|
||||||
|
style="stop-color:#00A4DF"
|
||||||
|
id="stop23581" />
|
||||||
|
<stop
|
||||||
|
offset="0.5301"
|
||||||
|
style="stop-color:#00C0F3"
|
||||||
|
id="stop23583" />
|
||||||
|
<stop
|
||||||
|
offset="0.5653"
|
||||||
|
style="stop-color:#00B2E9"
|
||||||
|
id="stop23585" />
|
||||||
|
<stop
|
||||||
|
offset="0.7258"
|
||||||
|
style="stop-color:#017FC3"
|
||||||
|
id="stop23587" />
|
||||||
|
<stop
|
||||||
|
offset="0.8566"
|
||||||
|
style="stop-color:#165EAC"
|
||||||
|
id="stop23589" />
|
||||||
|
<stop
|
||||||
|
offset="0.9511"
|
||||||
|
style="stop-color:#1E489E"
|
||||||
|
id="stop23591" />
|
||||||
|
<stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#21409A"
|
||||||
|
id="stop23593" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(-42.671625,-146.49341)">
|
||||||
|
<g transform="translate(0.49999798,-0.5000039)">
|
||||||
|
<path
|
||||||
|
style="fill:#21409a;stroke-width:0.26458332"
|
||||||
|
d="m 146.97039,174.58674 -3.96877,4.65667 h -3.12207 l 13.14974,-15.42521 h 6.2177 l 1.6405,15.42521 h -6.1913 l -0.5027,-4.65667 z m 6.985,-2.32833 -0.5556,-5.18583 -4.4186,5.18583 z" />
|
||||||
|
<path
|
||||||
|
style="clip-rule:evenodd;fill:#21409a;fill-rule:evenodd;stroke-width:0.26458332"
|
||||||
|
d="m 89.899745,163.8182 c 0,0 3.33375,-0.10583 2.487091,2.75167 l -0.740841,2.35479 c -0.740828,1.98437 -2.037289,2.24896 -3.995201,2.24896 2.010831,0 3.069162,0.55562 2.645831,1.98437 l -1.03188,3.25438 c -0.899578,2.32833 -2.566451,2.80458 -5.926659,2.80458 h -13.6525 l 4.974159,-15.42521 h 15.24 z m -11.721039,8.30792 -1.296461,4.02166 h 5.106461 c 0.529169,0 1.217088,-0.29104 1.402289,-0.84666 l 0.687922,-2.16959 c 0.15875,-0.5027 -0.0529,-1.00541 -0.79375,-1.00541 z m 1.905,-5.97959 -1.164162,3.65125 h 5.08 c 0.767292,0 1.217081,-0.29104 1.402292,-0.84666 l 0.582081,-1.79917 c 0.15875,-0.50271 -0.0529,-1.00542 -0.820211,-1.00542 z" />
|
||||||
|
<path
|
||||||
|
style="clip-rule:evenodd;fill:#21409a;fill-rule:evenodd;stroke-width:0.26458332"
|
||||||
|
d="m 123.34309,167.86633 h 10.82146 c 1.82562,0 2.93687,1.08479 2.46062,2.61937 l -1.32293,4.10104 h -10.90082 l -0.42333,1.32292 c -0.18522,0.66146 0.10583,1.03187 1.03187,1.03187 h 9.525 l -0.74084,2.32834 h -14.36688 c -2.19603,0 -2.2754,-1.40229 -1.69332,-3.30729 l 1.64042,-5.10646 c 0.635,-1.98438 1.93146,-2.98979 3.96875,-2.98979 z m 1.82562,4.39208 0.37041,-1.19063 c 0.18522,-0.58208 0.47625,-0.87312 1.21709,-0.87312 h 2.75166 c 0.58209,0 0.87312,0.34396 0.7673,0.635 l -0.4498,1.42875 z" />
|
||||||
|
<polygon
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,35.369102,131.3009)"
|
||||||
|
style="fill:#21409a"
|
||||||
|
points="491.1,138.2 514.6,138.2 500.9,181.2 477.4,181.2" />
|
||||||
|
<path
|
||||||
|
style="fill:#21409a;stroke-width:0.26458332"
|
||||||
|
d="m 173.19059,167.86633 h 6.2177 l -0.5556,1.71979 c 0.3439,-0.68792 1.2171,-1.71979 2.9104,-1.71979 h 3.8629 l -1.0054,3.12208 h -3.8629 c -1.3759,0 -2.54,0.55562 -2.9104,1.66687 l -2.1167,6.58813 h -6.2177 z" />
|
||||||
|
<polygon
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,35.369102,131.3009)"
|
||||||
|
style="fill:#21409a"
|
||||||
|
points="225.1,122.9 248.7,122.9 230,181.2 206.5,181.2" />
|
||||||
|
<path
|
||||||
|
style="clip-rule:evenodd;fill:#21409a;fill-rule:evenodd;stroke-width:0.26458332"
|
||||||
|
d="m 101.54142,167.86633 h 6.2177 l -2.32832,7.27604 c -0.18521,0.55562 0.21166,1.00541 1.05832,1.00541 0.66147,0 1.905,0 1.905,0 0,0 1.37584,0.0529 1.77272,-1.1377 l 2.30187,-7.14375 h 6.21771 l -3.6248,11.37708 h -13.81125 c -2.063745,0 -2.804576,-1.77271 -2.116664,-3.83646 z" />
|
||||||
|
<path
|
||||||
|
d="m 43.174335,147.49341 c 0,0 16.11312,1.56104 17.48896,4.89479 1.37583,3.33375 -10.66271,18.81188 -10.66271,18.81188 0,0 7.64646,-11.69459 5.58271,-16.72167 -2.06375,-5.05354 -12.40896,-6.985 -12.40896,-6.985 z"
|
||||||
|
style="fill:#00c0f3;stroke-width:0.26458332" />
|
||||||
|
<path
|
||||||
|
d="m 69.420995,160.69612 c -0.76729,-1.85209 -4.49791,-3.36021 -8.94291,-4.49792 -0.52917,1.11125 -1.21709,2.38125 -1.98438,3.65125 1.40229,1.16417 2.54,2.51354 3.14854,4.04813 3.175,7.72583 -8.51958,25.5852 -8.51958,25.5852 0,0 18.414999,-23.6802 16.29833,-28.78666 z"
|
||||||
|
style="fill:url(#SVGID_1_);stroke-width:0.26458332" />
|
||||||
|
<path
|
||||||
|
d="m 55.080585,155.00758 c -6.37646,-1.21709 -12.40896,-1.79917 -12.40896,-1.79917 0,0 6.93208,1.32292 12.54125,4.445 0.10583,-0.97896 0.0794,-1.87854 -0.13229,-2.64583 z"
|
||||||
|
style="fill:#21409a;stroke-width:0.26458332" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.4 KiB |
13
static/airline-logos/1I.svg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 646.18 128.09">
|
||||||
|
<title>NetJets</title>
|
||||||
|
<desc>NetJets logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>NetJets</Airline:name>
|
||||||
|
<Airline:iataCode>1I</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/1I</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#55555c" d="M628.89 2.63a8.23 8.23 0 0 0-2.77 1.85 8.92 8.92 0 0 0-1.94 2.89 8.6 8.6 0 0 0 0 6.64 9.09 9.09 0 0 0 4.73 4.77 8.5 8.5 0 0 0 3.33.67 8.66 8.66 0 0 0 3.32-.66 9 9 0 0 0 2.86-1.9 8.17 8.17 0 0 0 1.9-2.8 9 9 0 0 0 0-6.7 8.54 8.54 0 0 0-1.85-2.79 8.44 8.44 0 0 0-2.85-1.95 8.88 8.88 0 0 0-3.4-.66 8.77 8.77 0 0 0-3.32.63m6.19 1.25a7.67 7.67 0 0 1 2.44 1.64 7.38 7.38 0 0 1 1.58 2.42 7.92 7.92 0 0 1 .53 2.91 7.05 7.05 0 0 1-2.18 5.16 7.56 7.56 0 0 1-2.46 1.59 7.64 7.64 0 0 1-2.9.55 6.86 6.86 0 0 1-2.75-.58 7.46 7.46 0 0 1-2.35-1.64 7.39 7.39 0 0 1-2.15-5.19 7.17 7.17 0 0 1 .58-2.83 7.88 7.88 0 0 1 1.67-2.47 7.09 7.09 0 0 1 2.34-1.58 7.63 7.63 0 0 1 5.69 0m-6 11.07h1.88v-3.65h1.37l1.62 3.67h2.11l-2-4a2.31 2.31 0 0 0 2-2.42 2 2 0 0 0-.94-1.77 5.19 5.19 0 0 0-2.77-.6h-3.37zm3-7.59a3 3 0 0 1 1.61.34 1.21 1.21 0 0 1 .51 1.08 1.12 1.12 0 0 1-.49 1 2.83 2.83 0 0 1-1.54.32h-1.24V7.35zM114.17 91.1H168l1.59-13.27h-37.9l3.88-24.77h30.06l2-13.27h-30l.27-1.69c.29-1.82 2.95-18.75 3.16-20.13l.19-1.24H178l2.08-13.26h-52.3zM229 91.1h15.57l11.52-74.37h26.24l2.08-13.26h-68l-2 13.26h26.25zM278.89 115.4l6.11 12.69a44.54 44.54 0 0 0 23.75-11.38c9-8.18 13.81-17.67 16.46-32.75.59-3.34 1.62-9.66 2.86-17.33l.48-3C332 41.72 336.84 10.92 338 3.45h-15.92c-1 6.72-5.85 39.22-9.09 60.64l-.45 3c-.7 4.6-1.31 8.54-1.76 11.4-4.3 27.22-15.86 31.75-31.89 36.91zM363.11 91.1H417l1.58-13.27h-37.96l3.88-24.77h30.1l1.93-13.27h-29.94l3.63-23.06h36.68L429 3.47h-52.28zM476.37 91.1H492l11.5-74.37h26.21l2.08-13.26h-68l-1.94 13.26h26.24zM546.4 86.78c7.71 2.73 18.65 6.05 29.38 6.05 19.87 0 32.7-10.85 32.7-27.66 0-11.14-10.06-18-14.38-20.47l-.43-.25c-8.07-4.54-19.12-10.77-19.12-17.34 0-6.19 6.94-11.43 15.14-11.43 7.56 0 15.36 2.93 21 5.43l4.81-14.77A87.41 87.41 0 0 0 588.76 2C570.2 2 556.2 13.43 556.2 28.59c0 7.23 5.54 14.16 16.94 21.19 11 6.78 14.94 9.33 17.2 13.39a8.63 8.63 0 0 1 .66 1.79 15.38 15.38 0 0 1 .19 1.85c-.32 6.53-7.6 12.36-15.29 12.36-8.09 0-16.44-3.37-23.7-6.87zM59.17 91.1h17.06L89.85 3.47H74.94l-9.46 68.59L33.95 3.47H15.7L2.09 91.1h15l9.47-68.38z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
26
static/airline-logos/2D.svg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 171 37">
|
||||||
|
<title>Eastern Airlines</title>
|
||||||
|
<desc>Eastern Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Eastern Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>2D</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/2D</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path d="M-0.000244141 10.4198V26.582H9.26463V23.0239H4.23258V20.2371H9.00535V16.6788H4.23258V13.9781H9.26463V10.4198H-0.000244141Z" fill="#192947"/>
|
||||||
|
<path d="M19.308 23.7737L18.1848 26.582H13.6931L19.9558 10.4194H24.5773L30.7104 26.582H26.197L25.1391 23.7737H19.308ZM22.2666 15.4137H22.2237L20.4744 20.5585H23.9945L22.2666 15.4137Z" fill="#192947"/>
|
||||||
|
<path d="M43.6589 14.5771C42.8813 13.9337 41.8877 13.5051 40.8513 13.5051C40.0741 13.5051 39.0374 13.9552 39.0374 14.8557C39.0374 15.7988 40.1823 16.1631 40.916 16.399L41.9959 16.7208C44.2636 17.3852 46.0128 18.5214 46.0128 21.1362C46.0128 22.7437 45.6241 24.3948 44.3285 25.4876C43.0542 26.5598 41.3483 27.0098 39.7068 27.0098C37.6551 27.0098 35.6469 26.3239 33.9839 25.1664L35.798 21.7796C36.8563 22.701 38.1087 23.4511 39.5557 23.4511C40.5491 23.4511 41.6074 22.9585 41.6074 21.8221C41.6074 20.6434 39.9442 20.2359 39.0374 19.9783C36.3812 19.2282 34.6321 18.5425 34.6321 15.4129C34.6321 12.1333 36.9857 9.98941 40.247 9.98941C41.8877 9.98941 43.8961 10.5043 45.3435 11.3189L43.6589 14.5771Z" fill="#192947"/>
|
||||||
|
<path d="M57.9222 26.582H53.6887V13.9781H50.1909V10.4198H61.421V13.9781H57.9222V26.582Z" fill="#192947"/>
|
||||||
|
<path d="M71.4788 13.9777V16.6784H76.2517V20.2367H71.4788V23.0235H76.5105V26.582H67.2463V10.4194H76.5105V13.9777H71.4788Z" fill="#192947"/>
|
||||||
|
<path d="M96.7584 26.582H91.4895L87.4942 20.3656H87.4507V26.582H83.2183V10.4198H89.5454C92.7636 10.4198 95.2036 11.9416 95.2036 15.3927C95.2036 17.6219 93.9513 19.551 91.6406 19.9585L96.7584 26.582ZM87.4507 17.6648H87.8612C89.2436 17.6648 90.7983 17.4077 90.7983 15.65C90.7983 13.8922 89.2436 13.635 87.8612 13.635H87.4507V17.6648Z" fill="#192947"/>
|
||||||
|
<path d="M101.356 10.4194H105.589L113.342 20.3009H113.386V10.4194H117.618V26.582H113.386L105.633 16.6784H105.589V26.582H101.356V10.4194Z" fill="#192947"/>
|
||||||
|
<path d="M155.838 31.8153C155.371 30.8209 154.931 29.8808 154.381 28.9946C153.296 27.2455 151.774 25.9454 149.856 25.1304C147.94 24.316 145.747 24.3515 143.627 24.3862C143.425 24.3896 143.224 24.3927 143.025 24.3956C140.66 24.4268 138.023 24.2361 136.689 21.5787C136.36 20.9229 136.144 20.2344 135.935 19.5685C135.633 18.6058 135.347 17.6964 134.766 17.0405C134.455 16.6897 134.091 16.4733 133.724 16.3443V23.8768C133.759 23.9404 133.796 24.0042 133.831 24.0671C134.379 25.0336 134.945 26.0327 135.625 26.668C137.405 28.3315 139.844 28.3301 142.397 28.1762C144.522 28.0471 148.079 27.8313 150.107 30.3481C151.529 32.113 151.847 34.7116 152.006 37H158.991C158.462 36.3884 157.92 35.6801 157.359 34.7654C156.77 33.8039 156.296 32.7931 155.838 31.8153Z" fill="#EFA20F"/>
|
||||||
|
<path d="M142.515 30.1017C139.765 30.2689 136.636 30.2632 134.292 28.0726C134.09 27.8839 133.902 27.6781 133.724 27.4629V30.7259C133.991 30.9798 134.269 31.2133 134.566 31.4149C135.676 32.1672 137.247 32.4308 139.237 32.1988C139.506 32.1672 139.798 32.1175 140.106 32.0643C141.518 31.8226 143.452 31.4908 144.819 32.9708C145.942 34.1857 145.729 35.7333 145.361 37H150.057C149.913 35.0223 149.634 32.8503 148.589 31.5536C147.299 29.9521 144.881 29.9585 142.515 30.1017Z" fill="#8AB4C5"/>
|
||||||
|
<path d="M143.387 34.275C142.781 33.6192 141.868 33.7205 140.437 33.9658C140.116 34.0211 139.785 34.0779 139.464 34.1154C137.131 34.3874 135.202 34.0688 133.724 33.1695V37H143.323C143.716 35.815 143.931 34.8625 143.387 34.275Z" fill="#C1DAE1"/>
|
||||||
|
<path d="M162.901 6.02996L162.597 6.07755C161.518 6.24518 160.5 6.40356 159.648 6.87649C158.775 7.36207 158.078 8.15356 157.737 9.04808C157.126 10.6538 157.623 12.6748 158.973 14.0778C159.817 14.9544 160.771 15.7034 161.781 16.496C162.484 17.0475 163.211 17.6176 163.898 18.2352C165.096 19.314 165.914 20.6248 166.705 21.8931C167.074 22.4843 167.422 23.0433 167.807 23.5807C168.598 24.6854 169.706 25.5058 171 25.9648V-0.00119019H168.535C168.367 1.45034 167.857 2.7698 167.03 3.86942C166.164 5.02028 164.814 5.72687 162.901 6.02996Z" fill="#192947"/>
|
||||||
|
<path d="M144.3 12.9806C144.067 12.6223 143.827 12.2518 143.61 11.8667C142.58 10.039 142.685 8.00031 142.769 6.36229L142.777 6.20072C142.812 5.56258 142.852 4.83907 142.522 4.54703C142.455 4.48701 142.369 4.46311 142.277 4.46311C142.083 4.46311 141.861 4.56989 141.72 4.68352C141.571 4.80397 141.439 4.95393 141.33 5.12896C140.993 5.66756 140.851 6.37154 140.701 7.11689C140.654 7.35014 140.607 7.58159 140.555 7.8076L140.503 8.03202C140.23 9.20713 139.973 10.317 139.892 11.4494C139.83 12.3144 139.902 13.0818 140.108 13.73C140.301 14.34 140.679 14.9093 141.232 15.4226L141.233 15.4228C141.725 15.8795 142.315 16.2567 142.986 16.5439C143.837 16.9081 144.944 17.2011 145.386 16.528C145.526 16.3153 145.571 16.0521 145.533 15.6747C145.439 14.7353 144.886 13.883 144.3 12.9806Z" fill="#192947"/>
|
||||||
|
<path d="M166.222 24.6995C165.801 24.1113 165.42 23.5001 165.052 22.9089C164.298 21.7018 163.588 20.5619 162.593 19.6654C161.954 19.0917 161.285 18.5668 160.576 18.0107C159.558 17.2117 158.505 16.3853 157.567 15.4115C155.682 13.453 155.035 10.6874 155.919 8.36643C156.419 7.0538 157.432 5.89756 158.698 5.19378C159.854 4.55142 161.096 4.35851 162.296 4.17202L162.595 4.12526C163.983 3.90526 164.924 3.44415 165.472 2.71566C166.05 1.94786 166.418 1.02347 166.57 -0.000499725H158.591C158.244 0.752655 157.785 1.437 157.221 2.02032C156.452 2.81484 155.573 3.30684 154.722 3.78259C154.444 3.93835 154.156 4.09956 153.882 4.26637C151.951 5.44451 150.757 7.31882 150.608 9.40829C150.522 10.6143 150.742 11.9113 151.263 13.2636C151.988 15.147 153.684 16.4925 155.406 17.666L155.429 17.6817C157.465 19.0694 159.572 20.5035 161.239 22.4739C162.159 23.5619 162.766 24.8042 163.352 26.0063C163.807 26.9377 164.236 27.8173 164.793 28.6065C166.118 30.4827 168.306 31.813 171 32.4004V27.9876C169.053 27.46 167.379 26.3148 166.222 24.6995Z" fill="#192947"/>
|
||||||
|
<path d="M147.015 17.5826C146.649 18.1389 145.908 18.8657 144.537 18.8662C143.905 18.8662 143.14 18.7124 142.216 18.3167C141.338 17.9412 140.561 17.4419 139.904 16.8328C139.104 16.0898 138.548 15.241 138.254 14.3102C137.974 13.4294 137.873 12.4213 137.952 11.3134C138.045 10.0313 138.331 8.79532 138.608 7.60011L138.66 7.37673C138.708 7.16835 138.751 6.95477 138.794 6.73935C138.964 5.89889 139.156 4.9466 139.679 4.11091C139.902 3.75438 140.176 3.44389 140.492 3.18833C141.527 2.35167 142.925 2.31852 143.817 3.10842C144.844 4.01857 144.768 5.39502 144.719 6.30619L144.71 6.46092C144.635 7.92474 144.55 9.58321 145.307 10.926C145.494 11.2582 145.707 11.5876 145.934 11.9363C146.588 12.9424 147.327 14.0822 147.468 15.4849C147.55 16.3067 147.402 16.9931 147.015 17.5826ZM163.201 29.7138C162.555 28.7982 162.071 27.8066 161.603 26.8477C161.043 25.7018 160.515 24.6189 159.75 23.7152C158.254 21.946 156.347 20.6479 154.329 19.2728L154.306 19.2572C152.324 17.907 150.363 16.3298 149.448 13.9531C148.825 12.336 148.563 10.7607 148.669 9.2721C148.863 6.5543 150.392 4.1306 152.865 2.62284C153.169 2.43697 153.473 2.26651 153.768 2.10192C154.529 1.67616 155.248 1.27368 155.819 0.683739C156.022 0.473969 156.205 0.2439 156.372 -0.000198364H133.724V14.3471C134.711 14.546 135.573 15.03 136.225 15.7662C137.08 16.7305 137.441 17.8815 137.79 18.9946C137.986 19.6151 138.17 20.2012 138.429 20.7182C139.187 22.2277 140.622 22.4997 142.999 22.4662C143.198 22.4636 143.396 22.4599 143.595 22.4572C145.92 22.4204 148.324 22.3799 150.621 23.3565C152.916 24.3314 154.738 25.8881 156.037 27.9828C156.645 28.965 157.131 30.0003 157.601 31.0013C158.057 31.9739 158.487 32.8923 159.02 33.7631C159.905 35.2064 160.729 36.0609 161.602 36.9659C161.613 36.9769 161.623 36.9884 161.635 37H171V34.3689C167.638 33.7306 164.878 32.0885 163.201 29.7138Z" fill="#8AB4C5"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.8 KiB |
30
static/airline-logos/2K.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 169 40">
|
||||||
|
<title>Avianca Ecuador</title>
|
||||||
|
<desc>Avianca Ecuador logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Avianca Ecuador</Airline:name>
|
||||||
|
<Airline:iataCode>2K</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/2K</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_802_9192">
|
||||||
|
<rect width="168.131" height="40" fill="white" transform="translate(0.454071)"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path="url(#clip0_802_9192)">
|
||||||
|
<path d="M43.19 4.40874C41.5211 4.40874 40.16 5.73681 40.16 7.36478C40.16 8.99274 41.49 10.3539 43.19 10.3539C44.89 10.3539 46.259 9.01611 46.259 7.36478C46.259 5.71344 44.9114 4.40874 43.19 4.40874Z" fill="#FF0000"/>
|
||||||
|
<path d="M123.798 19.2785C123.798 14.4375 121.229 12.089 115.952 12.089C112.984 12.089 110.283 12.9263 108.149 14.342L109.954 17.8024C111.681 16.7567 113.245 16.2796 114.855 16.2796C116.466 16.2796 118.39 16.7976 118.39 19.2805V19.5453L115.212 19.6563C109.97 19.8335 106.957 22.2034 106.957 26.1662C106.957 30.129 109.641 32.5554 113.473 32.5554C115.597 32.5554 117.397 31.9128 118.964 30.5847C119.352 31.6304 119.862 32.1523 121.171 32.1523H124.244C123.944 31.1377 123.796 29.9771 123.796 28.2518V19.2785H123.798ZM118.392 27.1535C117.523 27.876 116.446 28.244 115.173 28.244C113.37 28.244 112.293 27.3346 112.293 25.8001C112.293 24.8362 112.659 23.5412 115.87 23.4419L118.392 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M40.5261 32.1523H45.8559V30.2595V12.531H40.5261V32.1523Z" fill="#FF0000"/>
|
||||||
|
<path d="M28.9025 32.1523H30.7525L38.9195 12.5291H33.5897L28.848 25.2451L24.1861 12.5291H18.8212L25.9854 30.018C26.5307 31.3714 27.3505 32.1523 28.9045 32.1523H28.9025Z" fill="#FF0000"/>
|
||||||
|
<path d="M86.738 32.1523V19.2045C86.738 13.9545 83.4938 12.089 80.4618 12.089C78.1756 12.089 76.1329 12.8153 73.8721 14.4414L73.8448 14.3401C73.3969 13.1269 72.433 12.531 70.879 12.531H68.8441V32.1542H74.1661V18.6301C75.8856 17.3468 77.3967 16.7256 78.8027 16.7256C80.6001 16.7256 81.4043 17.9349 81.4043 20.6592V32.1523H86.738Z" fill="#FF0000"/>
|
||||||
|
<path d="M105.826 30.5379L104.429 26.7484C103.312 27.3969 101.69 28.1661 99.7871 28.1661C95.834 28.1661 94.4358 24.9491 94.4358 22.1975C94.4358 18.7664 96.7044 16.2777 99.828 16.2777C101.645 16.2777 103.409 16.8736 104.794 17.9154L104.971 13.5281C103.267 12.5758 101.477 12.087 99.2632 12.087C96.4377 12.087 93.8555 13.1328 91.9997 15.0314C90.1303 16.93 89.106 19.5609 89.106 22.441C89.106 25.3211 89.9784 27.7649 91.5499 29.5526C93.2674 31.5194 95.7736 32.5534 98.7764 32.5534C101.594 32.5534 104.408 31.5077 105.828 30.536L105.826 30.5379Z" fill="#FF0000"/>
|
||||||
|
<path d="M65.7731 32.1523C65.4732 31.1377 65.3213 29.9771 65.3213 28.2518V19.2785C65.3213 14.4375 62.7528 12.089 57.4697 12.089C54.5079 12.089 51.8089 12.9263 49.6707 14.342L51.4759 17.8024C53.207 16.7567 54.7688 16.2796 56.3734 16.2796C57.978 16.2796 59.9117 16.7976 59.9117 19.2805V19.5453L56.7336 19.6563C51.4934 19.8335 48.4848 22.2034 48.4848 26.1662C48.4848 30.129 51.1662 32.5554 54.9986 32.5554C57.127 32.5554 58.9185 31.9128 60.4881 30.5847C60.8834 31.6304 61.3877 32.1523 62.7002 32.1523H65.7731ZM59.9156 27.1535C59.051 27.876 57.9663 28.244 56.7025 28.244C54.8954 28.244 53.8185 27.3346 53.8185 25.8001C53.8185 24.8362 54.1846 23.5412 57.3977 23.4419L59.9156 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M17.7404 32.1523C17.4405 31.1377 17.2886 29.9771 17.2886 28.2518V19.2785C17.2886 14.4375 14.7201 12.089 9.43703 12.089C6.47515 12.089 3.77616 12.9263 1.638 14.342L3.44317 17.8024C5.17434 16.7567 6.73609 16.2796 8.34069 16.2796C9.94529 16.2796 11.879 16.7976 11.879 19.2805V19.5453L8.70094 19.6563C3.46264 19.8335 0.454025 22.2034 0.454025 26.1662C0.454025 30.129 3.13549 32.5554 6.96783 32.5554C9.09625 32.5554 10.8878 31.9128 12.4573 30.5847C12.8526 31.6304 13.357 32.1523 14.6695 32.1523H17.7424H17.7404ZM11.8829 27.1535C11.0183 27.876 9.9336 28.244 8.66979 28.244C6.86267 28.244 5.7858 27.3346 5.7858 25.8001C5.7858 24.8362 6.1519 23.5412 9.36498 23.4419L11.8829 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.467 31.2565H158.152C159.68 31.2565 160.358 31.3831 160.784 31.5759C160.13 29.5448 158.068 27.9616 150.8 27.4183C151.961 28.762 153.18 30.0492 154.465 31.2565H154.467Z" fill="#FF0000"/>
|
||||||
|
<path d="M150.801 27.4203C143.747 19.224 138.996 8.73765 137.091 0C137.091 0 133.214 3.4195 132.907 10.611C132.566 18.4704 136.782 26.394 150.666 27.4047C150.711 27.4125 150.758 27.4125 150.801 27.4183V27.4203Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.465 31.2565C148.991 31.2565 139.541 31.2565 139.541 31.2565C139.74 31.72 140.423 32.0452 141.979 32.1367C151.295 32.6897 152.613 40 165.947 40C167.117 40 167.847 39.9299 168.585 39.7916C163.316 38.1715 158.584 35.1258 154.465 31.2546V31.2565Z" fill="#FF0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.8 KiB |
85
static/airline-logos/2P.svg
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 518.697 102.371">
|
||||||
|
<title>PAL Express</title>
|
||||||
|
<desc>PAL Express logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>PAL Express</Airline:name>
|
||||||
|
<Airline:iataCode>2P</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/2P</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g>
|
||||||
|
<polygon fill="#2E378F" points="0,90.367 90.888,90.367 107.082,0 "/>
|
||||||
|
<path fill="#F6B624" d="M94.569,39.473L95.32,9.926l-2.487,2.099l-0.691,27.704l-3.347,12.292h0.006
|
||||||
|
c-0.006,0.004-0.009,0.004-0.015,0.004l0.009-0.004l-5.737-10.479l-3.057-18.688l-2.157,1.818l2.699,16.869v13.192l0.074-0.027
|
||||||
|
c-0.044,0.021-0.087,0.039-0.131,0.061l0.057-0.031l-7.91-9.272l-6.808-10.645l-1.829,1.542l6.508,10.181l3.093,11.851l0.084-0.043
|
||||||
|
c-0.06,0.039-0.114,0.075-0.168,0.109l0.084-0.066L63.03,51.251l-6.683-8.437l-1.791,1.51l6.618,8.359l5.958,10.643L54.99,58.468
|
||||||
|
l-8.889-7.006l-1.792,1.513l9.155,7.227l8.395,8.865l0.083-0.086c-0.046,0.052-0.088,0.107-0.13,0.164l0.048-0.078l-13.169-2.272
|
||||||
|
l-13.64-6.008l-1.913,1.616l14.41,6.349l10.06,7.075l0.071-0.112c-0.042,0.087-0.083,0.171-0.126,0.255l0.055-0.143l-12.959-0.898
|
||||||
|
l-19.955-5.398l-2.071,1.75l21.261,5.754l10.969,5.878l-12.848,1.514L9.25,82.559l-2.458,2.08l34.883,1.982l11.87,3.313
|
||||||
|
l44.674-37.009L94.569,39.473L94.569,39.473z"/>
|
||||||
|
<polygon fill="#EE272B" points="51.349,90.367 142.238,90.367 158.431,0 "/>
|
||||||
|
<g>
|
||||||
|
<path fill="#2E378F" d="M179.418,90.675h-8.848l8.994-42.949h17.461c3.105,0,5.562,0.366,7.368,1.099
|
||||||
|
c1.806,0.732,3.237,1.944,4.292,3.633c1.055,1.688,1.582,3.706,1.582,6.05c0,2.168-0.42,4.277-1.26,6.328
|
||||||
|
c-0.84,2.051-1.871,3.691-3.091,4.922c-1.221,1.23-2.534,2.164-3.94,2.799c-1.406,0.635-3.301,1.117-5.684,1.449
|
||||||
|
c-1.387,0.195-3.984,0.293-7.793,0.293h-5.654L179.418,90.675z M184.311,67.18h2.725c4.668,0,7.783-0.293,9.346-0.88
|
||||||
|
c1.563-0.586,2.793-1.522,3.691-2.813c0.898-1.289,1.348-2.704,1.348-4.248c0-1.034-0.23-1.885-0.688-2.549
|
||||||
|
c-0.459-0.664-1.104-1.146-1.934-1.449c-0.831-0.303-2.681-0.454-5.552-0.454h-6.328L184.311,67.18z"/>
|
||||||
|
<path fill="#2E378F" d="M234.292,81.184H217.27l-5.156,9.491h-9.082l24.287-42.949h9.814l6.973,42.949h-8.379L234.292,81.184z
|
||||||
|
M233.208,74.034l-2.49-17.285l-10.371,17.285H233.208z"/>
|
||||||
|
<path fill="#2E378F" d="M249.731,90.675l8.995-42.949h8.817l-7.472,35.771h21.855l-1.494,7.178H249.731z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2E378F" d="M366.618,59.143h8.015l-0.678,3.213c1.708-1.416,3.31-2.426,4.803-3.035
|
||||||
|
c1.492-0.608,3.095-0.913,4.804-0.913c3.279,0,5.918,1.129,7.912,3.389c1.993,2.259,2.99,5.628,2.99,10.106
|
||||||
|
c0,5.639-1.72,10.402-5.156,14.291c-2.947,3.32-6.435,4.979-10.461,4.979c-4.146,0-7.279-1.68-9.399-5.038l-3.39,16.236h-8.457
|
||||||
|
L366.618,59.143z M371.714,77.088c0,2.436,0.594,4.327,1.783,5.672c1.188,1.348,2.588,2.02,4.197,2.02
|
||||||
|
c1.396,0,2.742-0.506,4.039-1.518c1.295-1.012,2.371-2.691,3.226-5.039c0.854-2.347,1.282-4.522,1.282-6.527
|
||||||
|
c0-2.338-0.561-4.129-1.68-5.377s-2.545-1.871-4.272-1.871c-1.61,0-3.079,0.574-4.405,1.724s-2.354,2.839-3.078,5.069
|
||||||
|
C372.078,73.469,371.714,75.418,371.714,77.088z"/>
|
||||||
|
<path fill="#2E378F" d="M403.274,59.143h7.896l-1.268,6.07c2.947-4.538,6.14-6.807,9.576-6.807c1.219,0,2.524,0.305,3.921,0.912
|
||||||
|
l-3.242,6.926c-0.767-0.275-1.581-0.412-2.445-0.412c-1.454,0-2.933,0.55-4.435,1.648c-1.504,1.102-2.678,2.569-3.522,4.406
|
||||||
|
c-0.845,1.836-1.679,4.748-2.504,8.736l-2.063,9.813h-8.457L403.274,59.143z"/>
|
||||||
|
<path fill="#2E378F" d="M451.159,77.412h-21.217c-0.021,0.334-0.029,0.59-0.029,0.766c0,2.084,0.594,3.764,1.783,5.039
|
||||||
|
c1.188,1.277,2.637,1.916,4.346,1.916c2.81,0,4.999-1.453,6.571-4.361l7.572,1.268c-1.474,3.046-3.442,5.329-5.907,6.852
|
||||||
|
c-2.466,1.522-5.23,2.283-8.295,2.283c-4.205,0-7.622-1.33-10.256-3.992c-2.633-2.662-3.947-6.184-3.947-10.563
|
||||||
|
c0-4.283,1.188-8.096,3.564-11.434c3.241-4.52,7.867-6.777,13.879-6.777c3.831,0,6.875,1.184,9.136,3.55
|
||||||
|
c2.259,2.368,3.389,5.683,3.389,9.944C451.748,73.943,451.551,75.781,451.159,77.412z M444.027,72.255
|
||||||
|
c0.02-0.372,0.029-0.657,0.029-0.854c0-2.316-0.521-4.055-1.563-5.215c-1.042-1.158-2.437-1.738-4.186-1.738
|
||||||
|
c-1.748,0-3.313,0.658-4.699,1.975s-2.322,3.262-2.813,5.834L444.027,72.255L444.027,72.255z"/>
|
||||||
|
<path fill="#2E378F" d="M453.162,81.686l8.191-1.297c0.727,1.729,1.631,2.952,2.712,3.668c1.078,0.719,2.553,1.076,4.42,1.076
|
||||||
|
c1.925,0,3.467-0.433,4.626-1.297c0.806-0.59,1.208-1.307,1.208-2.15c0-0.569-0.206-1.08-0.619-1.533
|
||||||
|
c-0.433-0.432-1.602-0.961-3.507-1.592c-5.107-1.688-8.271-3.023-9.488-4.006c-1.905-1.533-2.857-3.537-2.857-6.012
|
||||||
|
c0-2.477,0.924-4.607,2.771-6.395c2.573-2.496,6.395-3.742,11.463-3.742c4.027,0,7.072,0.736,9.135,2.209
|
||||||
|
c2.063,1.474,3.369,3.468,3.919,5.982l-7.809,1.354c-0.413-1.14-1.081-1.993-2.004-2.563c-1.258-0.767-2.771-1.148-4.538-1.148
|
||||||
|
c-1.769,0-3.04,0.295-3.815,0.884c-0.775,0.59-1.165,1.267-1.165,2.032c0,0.787,0.395,1.435,1.181,1.945
|
||||||
|
c0.489,0.314,2.071,0.864,4.744,1.649c4.126,1.199,6.885,2.377,8.279,3.536c1.964,1.631,2.947,3.596,2.947,5.895
|
||||||
|
c0,2.967-1.248,5.539-3.743,7.721c-2.495,2.181-6.012,3.271-10.549,3.271c-4.521,0-8.011-0.829-10.477-2.489
|
||||||
|
C455.72,87.023,454.045,84.689,453.162,81.686z"/>
|
||||||
|
<path fill="#2E378F" d="M486.725,81.686l8.192-1.297c0.726,1.729,1.63,2.952,2.711,3.668c1.079,0.719,2.553,1.076,4.419,1.076
|
||||||
|
c1.926,0,3.468-0.433,4.627-1.297c0.807-0.59,1.208-1.307,1.208-2.15c0-0.569-0.206-1.08-0.619-1.533
|
||||||
|
c-0.432-0.432-1.601-0.961-3.507-1.592c-5.106-1.688-8.27-3.023-9.488-4.006c-1.904-1.533-2.856-3.537-2.856-6.012
|
||||||
|
c0-2.477,0.923-4.607,2.77-6.395c2.573-2.496,6.396-3.742,11.464-3.742c4.026,0,7.071,0.736,9.135,2.209
|
||||||
|
c2.063,1.474,3.369,3.468,3.919,5.982l-7.81,1.354c-0.412-1.14-1.081-1.993-2.004-2.563c-1.258-0.767-2.77-1.148-4.538-1.148
|
||||||
|
c-1.768,0-3.04,0.295-3.814,0.884c-0.776,0.59-1.165,1.267-1.165,2.032c0,0.787,0.394,1.435,1.18,1.945
|
||||||
|
c0.49,0.314,2.072,0.864,4.744,1.649c4.126,1.199,6.885,2.377,8.28,3.536c1.964,1.631,2.945,3.596,2.945,5.895
|
||||||
|
c0,2.967-1.247,5.539-3.741,7.721c-2.495,2.181-6.013,3.271-10.55,3.271c-4.52,0-8.011-0.829-10.477-2.489
|
||||||
|
C489.284,87.023,487.609,84.689,486.725,81.686z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2E378F" d="M329.593,59.127h10.713l3.862,9.676l7.13-9.676h10.605l-12.484,15.23l7.857,16.219h-10.928l-4.433-10.104
|
||||||
|
l-7.999,10.104h-10.863l13.749-16.391L329.593,59.127z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path fill="#2E378F" d="M324.616,77.042h-21.217c-0.021,0.334-0.029,0.59-0.029,0.766c0,2.084,0.594,3.764,1.783,5.039
|
||||||
|
c1.188,1.277,2.637,1.916,4.346,1.916c2.81,0,4.999-1.453,6.571-4.361l7.572,1.268c-1.474,3.046-3.442,5.329-5.907,6.852
|
||||||
|
c-2.466,1.522-5.23,2.283-8.295,2.283c-4.205,0-7.622-1.33-10.256-3.992c-2.633-2.662-3.947-6.184-3.947-10.563
|
||||||
|
c0-4.283,1.188-8.096,3.564-11.434c3.241-4.52,7.867-6.777,13.879-6.777c3.831,0,6.875,1.184,9.136,3.55
|
||||||
|
c2.259,2.368,3.389,5.683,3.389,9.944C325.205,73.573,325.008,75.411,324.616,77.042z M317.484,71.885
|
||||||
|
c0.02-0.372,0.029-0.657,0.029-0.854c0-2.316-0.521-4.055-1.563-5.215c-1.042-1.158-2.437-1.738-4.186-1.738
|
||||||
|
c-1.748,0-3.313,0.658-4.699,1.975s-2.322,3.262-2.813,5.834L317.484,71.885L317.484,71.885z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.0 KiB |
35
static/airline-logos/3U.svg
Normal file
|
After Width: | Height: | Size: 36 KiB |
34
static/airline-logos/4L.svg
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 460">
|
||||||
|
<title>Líneas Aéreas Suramericanas</title>
|
||||||
|
<desc>Líneas Aéreas Suramericanas logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Líneas Aéreas Suramericanas</Airline:name>
|
||||||
|
<Airline:iataCode>4L</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/4L</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g transform="matrix(0.06438043,0,0,0.06361714,-16.147291,-2.3767163)" style="fill:#000000;stroke:none">
|
||||||
|
<path d="m 7361,7094 -31,-26 0,-372 0,-372 29,-28 28,-27 354,3 c 300,3 361,6 397,20 135,51 193,152 158,273 -21,69 -74,125 -157,165 l -59,27 49,79 c 26,44 62,101 79,128 18,28 32,59 32,71 0,51 -71,95 -123,76 -31,-12 -50,-38 -157,-208 l -83,-133 -178,0 -179,0 0,129 c 0,145 -10,185 -51,206 -41,22 -73,18 -108,-11 z m 702,-518 c 67,-33 74,-103 15,-127 -23,-8 -117,-14 -295,-17 l -263,-4 0,87 0,87 253,-4 c 223,-3 256,-5 290,-22 z" />
|
||||||
|
<path d="m 838,7090 c -131,-22 -293,-149 -338,-265 -19,-48 -24,-80 -24,-155 0,-83 3,-102 27,-151 34,-71 128,-162 203,-196 108,-49 138,-53 457,-53 l 299,0 29,29 c 35,36 37,61 5,98 l -24,28 -299,5 c -274,5 -302,8 -351,27 -122,49 -168,117 -160,234 6,82 38,143 96,183 74,51 110,56 418,56 l 282,0 31,26 c 50,42 38,104 -24,130 -27,11 -92,14 -307,13 -150,-1 -294,-5 -320,-9 z" />
|
||||||
|
<path d="m 4761,7087 c -32,-16 -39,-26 -191,-304 -74,-134 -136,-243 -139,-243 -101.3297,160.1673 -205.7105,339.5053 -313,505 -24,28 -37,35 -68,35 -23,0 -48,-8 -64,-21 -51,-40 -43,-59 170,-416 108,-180 207,-338 221,-350 16,-16 37,-23 63,-23 26,0 47,7 63,23 14,12 101,164 195,337 228,424 206,374 187,411 -9,17 -31,37 -50,45 -41,17 -44,17 -74,1 z" />
|
||||||
|
<path d="m 11106,7089 c -125,-21 -271,-130 -328,-247 -31,-62 -33,-74 -33,-167 0,-87 3,-107 26,-156 50,-105 171,-197 309,-234 42,-11 124,-15 352,-15 l 297,0 27,23 c 35,30 37,79 5,110 -21,21 -30,22 -319,27 -273,5 -301,8 -350,27 -115,46 -161,109 -162,219 0,115 69,205 183,239 38,11 105,15 269,15 l 218,0 0,-146 0,-146 29,-29 c 22,-21 39,-29 66,-29 27,0 44,8 66,29 l 29,29 0,197 c 0,121 -4,204 -11,217 -23,43 -61,48 -351,47 -150,-1 -295,-5 -322,-10 z" />
|
||||||
|
<path d="m 14573,7085 c -129,-36 -249,-131 -307,-240 -29,-57 -31,-66 -31,-170 0,-97 3,-116 26,-165 84,-179 285,-281 525,-266 56,4 128,13 160,22 135,35 239,120 297,242 28,60 32,77 32,157 0,64 -5,104 -19,140 -41,110 -144,211 -267,262 -57,23 -80,26 -214,29 -111,3 -164,0 -202,-11 z m 333,-170 c 61,-18 127,-73 155,-128 47,-92 31,-225 -36,-292 -97,-96 -360,-113 -497,-32 -72,44 -108,112 -108,208 0,124 56,201 179,245 51,18 245,18 307,-1 z" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.06438043,0,0,0.06361714,-16.147291,-2.3767163)" style="fill:#f1c001;stroke:none">
|
||||||
|
<path d="m 3925,4021 c -9,-15 303,-517 522,-840 607,-895 1315,-1772 1908,-2366 321,-321 591,-538 741,-595 103,-39 181,-16 364,108 150,102 287,219 514,442 301,296 553,570 836,910 57,69 112,135 123,147 16,18 17,23 6,27 -8,3 -162,62 -344,131 -1450,555 -2999,1227 -4322,1876 -189,92 -345,164 -348,160 z" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.06438043,0,0,0.06361714,-16.147291,-2.3767163)" style="fill:#0086cd;stroke:none">
|
||||||
|
<path d="m 6700,5749 c -591,-21 -1138,-63 -1635,-125 -329,-41 -759,-114 -777,-132 -5,-5 47,-55 119,-114 1043,-858 2540,-1805 4233,-2678 506,-261 702,-354 715,-338 438,576 868,1212 1161,1718 106,184 291,552 341,680 80,201 115,365 99,453 -9,50 -78,115 -173,165 -365,189 -1299,326 -2538,372 -306,11 -1221,11 -1545,-1 z" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.06438043,0,0,0.06361714,-16.147291,-2.3767163)" style="fill:#1b3e92;stroke:none">
|
||||||
|
<path d="m 12345,5473 c -499,-23 -1209,-86 -1283,-114 -23,-9 -23,-9 12,-44 21,-21 38,-49 42,-71 16,-86 -20,-250 -95,-439 -27,-66 -47,-123 -45,-126 2,-4 43,2 91,13 228,51 612,106 943,135 252,22 1177,25 1365,5 420,-46 695,-128 891,-268 140,-99 219,-234 244,-415 37,-267 -98,-454 -458,-637 -236,-120 -399,-177 -1102,-382 -690,-201 -1037,-323 -1301,-456 -198,-100 -343,-199 -467,-318 -124,-120 -190,-204 -242,-311 -59,-120 -107,-359 -77,-383 18,-15 474,-200 821,-334 203,-78 312,-116 319,-109 6,6 -2,24 -26,53 -119,147 -141,350 -56,525 31,62 144,176 239,240 239,160 465,248 1120,439 832,242 1140,348 1421,489 243,122 388,225 540,381 202,210 275,372 286,636 15,340 -98,607 -360,853 -458,432 -1302,651 -2477,643 -157,-1 -312,-3 -345,-5 z" />
|
||||||
|
<path d="m 465,5358 0,-5073 980,0 c 2.3982,1494.9992 3.6664,2989.9996 5,4485 700.9102,7.8297 1403.9661,-13.0309 2104,9 3,5 -3,35 -14,67 -53,152 -67,282 -37,328 19,29 132,97 232,141 42,18 77,37 78,41 z" />
|
||||||
|
<path d="m 11025,1120 c -10,-17 95,-148 189,-237 366,-345 961,-556 1766,-625 214,-18 772,-15 1015,5 282,24 435,43 448,56 14,14 2,17 -133,31 -595,59 -1492,255 -2490,542 -223,64 -732,218 -771,233 -10,4 -20,1 -24,-5 z" />
|
||||||
|
<path d="m 14955,1030 c -104,-25 -465,-85 -625,-105 -345,-42 -445,-48 -868,-51 -232,-1 -422,-6 -423,-10 -2,-23 769,-234 1163,-318 337,-72 850,-148 870,-128 4,4 7,148 6,318 -3,357 10,325 -123,294 z" />
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.06438043,0,0,0.06361714,-16.147291,-2.3767163)" style="fill:#f1c001;stroke:none">
|
||||||
|
<path d="m 3942,3997 c 6,-12 55,-94 108,-182 629,-1037 1562,-2246 2310,-2995 411,-412 703,-623 841,-607 146,17 406,207 768,562 106,104 253,254 326,332 263,280 650,736 631,742 -6,2 -157,60 -336,128 -1456,558 -2996,1226 -4317,1874 -258,126 -340,162 -331,146 z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.2 KiB |
22
static/airline-logos/5J.svg
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4285 1153">
|
||||||
|
<title>Cebu Pacific logo</title>
|
||||||
|
<path fill="#06a7e0" d="M 217.64 177.93 C 219.22 158.09 223.98 138.45 231.61 120.07 C 261.79 158.30 298.46 191.32 339.43 217.63 C 400.06 256.80 469.87 280.43 541.01 291.21 C 590.55 298.76 640.98 300.31 690.92 296.29 C 701.75 295.36 712.57 294.19 723.30 292.43 C 686.66 311.61 647.76 326.46 607.64 336.50 C 534.07 354.84 456.66 357.17 382.02 344.05 C 363.81 340.77 345.70 336.75 328.11 330.97 C 307.18 323.78 286.81 314.30 269.21 300.74 C 251.66 287.46 237.05 269.99 228.24 249.74 C 218.26 227.34 215.32 202.22 217.64 177.93 Z" />
|
||||||
|
<path fill="#06a7e0" d="M 59.52 366.29 C 57.13 345.75 56.33 324.84 59.51 304.33 C 91.21 325.23 123.83 344.98 158.61 360.36 C 202.36 380.04 248.75 393.63 296.02 401.68 C 378.80 415.78 463.59 413.98 546.69 403.55 C 635.39 392.42 722.55 371.21 807.93 345.03 C 778.31 367.24 747.09 387.24 715.34 406.24 C 642.25 449.46 564.78 485.82 483.43 510.52 C 423.65 528.48 361.52 539.71 298.99 539.75 C 254.23 539.48 209.16 533.66 166.67 519.26 C 144.53 511.27 124.22 498.13 108.25 480.81 C 89.53 460.64 76.42 435.65 68.70 409.34 C 64.19 395.34 61.49 380.84 59.52 366.29 Z" />
|
||||||
|
<path fill="#06a7e0" d="M 651.34 503.32 C 680.89 485.29 709.77 466.07 737.18 444.89 C 695.04 507.96 646.06 566.99 587.87 615.91 C 557.84 640.87 525.40 663.17 490.30 680.39 C 468.51 691.01 445.73 699.89 421.98 704.95 C 399.32 709.36 375.93 710.72 353.01 707.59 C 334.68 705.51 316.60 700.37 300.30 691.67 C 284.92 683.50 271.42 671.79 261.33 657.59 C 247.69 638.52 240.56 615.56 237.38 592.53 C 268.97 603.75 302.55 608.94 336.03 608.79 C 369.25 608.94 402.36 604.26 434.64 596.62 C 473.26 587.55 510.72 574.03 546.99 558.06 C 582.92 542.11 617.72 523.67 651.34 503.32 Z" />
|
||||||
|
<path fill="#039482" d="M 984.88 216.28 C 1023.11 212.43 1061.74 211.85 1099.98 215.77 C 1122.50 218.47 1145.15 222.68 1165.95 232.04 C 1175.77 236.57 1185.25 242.36 1192.55 250.46 C 1199.68 257.89 1204.18 267.77 1205.08 278.04 C 1206.16 288.15 1203.83 298.21 1200.70 307.77 C 1187.54 295.44 1170.30 288.51 1153.06 284.11 C 1139.55 280.82 1125.70 279.16 1111.83 278.62 C 1095.40 298.69 1069.20 311.11 1043.10 308.42 C 1029.24 307.08 1016.11 300.55 1006.27 290.77 C 1003.46 288.08 1000.80 285.23 998.13 282.40 C 1020.83 291.34 1047.82 289.28 1068.20 275.58 C 1032.71 270.45 996.80 268.93 960.97 268.50 C 908.53 268.32 856.08 271.50 804.04 277.97 C 787.17 279.91 770.40 282.63 753.59 285.00 C 787.57 266.31 824.12 252.70 861.13 241.33 C 901.55 229.51 942.86 220.06 984.88 216.28 Z" />
|
||||||
|
<path fill="#039482" d="M 997.43 373.40 C 1068.10 345.27 1144.67 328.92 1220.96 334.79 C 1247.53 337.03 1274.13 341.93 1298.85 352.17 C 1311.40 357.56 1323.78 364.96 1331.45 376.59 C 1337.61 385.79 1339.57 397.31 1338.27 408.19 C 1336.03 425.11 1328.15 440.88 1317.84 454.32 C 1316.14 444.66 1312.06 435.00 1304.61 428.38 C 1295.58 419.89 1282.99 416.57 1270.95 415.45 C 1250.78 413.75 1230.55 417.06 1210.96 421.65 C 1187.37 427.13 1164.53 435.30 1141.88 443.80 C 1103.06 459.02 1065.21 476.76 1028.54 496.60 C 973.04 532.17 918.62 569.44 865.54 608.54 C 827.18 636.86 789.64 666.34 753.53 697.49 C 729.09 718.62 705.40 740.64 683.04 763.97 C 666.54 781.45 650.34 799.50 637.47 819.89 C 648.25 784.00 660.69 748.51 676.67 714.58 C 686.85 693.96 697.68 673.04 714.08 656.60 C 688.64 674.96 665.32 696.01 642.49 717.46 C 633.05 727.05 623.21 736.24 613.97 746.03 C 571.07 790.47 531.52 838.07 494.39 887.42 C 482.60 902.98 471.21 918.84 460.07 934.88 C 470.98 903.93 482.48 873.14 496.20 843.31 C 527.25 775.69 570.37 714.16 619.71 658.67 C 637.16 638.86 655.46 619.80 674.35 601.35 C 698.52 577.45 723.65 554.55 749.51 532.49 C 779.29 507.11 809.62 482.30 841.52 459.61 C 890.05 425.19 942.16 395.58 997.43 373.40 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3644.97 459.12 C 3665.11 446.01 3689.26 440.54 3713.02 439.36 C 3735.66 438.16 3758.51 440.59 3780.38 446.61 C 3790.34 449.56 3800.17 453.37 3808.85 459.19 C 3815.62 464.11 3821.38 471.40 3822.04 480.03 C 3822.34 485.40 3821.57 491.11 3818.77 495.79 C 3811.20 506.55 3803.51 517.23 3795.94 527.99 C 3781.46 515.74 3762.96 508.52 3744.04 507.61 C 3731.45 506.77 3718.25 507.89 3706.97 513.94 C 3701.34 517.04 3695.98 521.01 3692.46 526.47 C 3685.42 536.84 3683.56 549.73 3683.39 562.01 C 3683.35 572.80 3683.37 583.59 3683.39 594.38 C 3720.13 594.37 3756.88 594.38 3793.62 594.38 C 3793.62 616.50 3793.62 638.62 3793.63 660.74 C 3756.89 660.74 3720.15 660.76 3683.42 660.73 C 3683.31 740.95 3683.42 821.16 3683.37 901.37 C 3654.12 901.38 3624.87 901.38 3595.63 901.37 C 3595.61 790.25 3595.62 679.13 3595.62 568.01 C 3595.74 543.14 3599.19 517.49 3611.36 495.43 C 3619.13 480.65 3630.94 468.13 3644.97 459.12 Z" />
|
||||||
|
<path fill="#2574bb" d="M 1760.02 446.33 C 1772.86 444.15 1786.01 443.71 1799.02 444.53 C 1806.93 445.38 1815.05 446.23 1822.32 449.73 C 1832.96 454.53 1840.95 464.21 1844.70 475.16 C 1847.28 482.83 1847.56 491.00 1847.56 499.03 C 1847.55 537.90 1847.59 576.78 1847.51 615.66 C 1855.73 607.79 1865.60 601.89 1875.72 596.80 C 1894.33 587.84 1915.54 586.59 1935.86 587.67 C 1958.45 589.57 1981.64 595.17 2000.02 609.05 C 2014.16 619.28 2025.31 633.30 2033.15 648.84 C 2041.35 664.47 2046.60 681.58 2049.12 699.05 C 2052.90 724.46 2052.64 750.33 2050.44 775.88 C 2048.63 793.60 2045.29 811.30 2038.92 827.99 C 2033.16 843.39 2025.47 858.24 2014.89 870.91 C 2001.87 885.95 1985.03 897.97 1965.86 903.69 C 1942.65 910.90 1917.49 912.64 1893.71 907.28 C 1873.49 901.93 1853.01 892.81 1839.81 875.93 C 1839.75 883.08 1837.81 890.54 1832.92 895.94 C 1828.21 900.51 1821.30 901.44 1815.02 901.38 C 1796.64 901.38 1778.26 901.38 1759.88 901.37 C 1759.86 790.92 1759.88 680.47 1759.87 570.02 C 1759.97 528.79 1759.68 487.56 1760.02 446.33 M 1869.75 652.77 C 1860.61 655.70 1853.37 663.13 1849.71 671.87 C 1847.08 678.23 1847.57 685.25 1847.55 691.98 C 1847.56 735.37 1847.55 778.76 1847.55 822.15 C 1856.81 829.98 1867.50 836.60 1879.30 839.73 C 1888.68 842.06 1898.49 842.50 1908.09 841.45 C 1918.57 840.25 1929.02 836.16 1936.58 828.62 C 1944.74 820.98 1949.43 810.50 1952.96 800.09 C 1959.72 778.46 1960.72 755.53 1960.27 733.04 C 1959.22 712.89 1956.84 691.72 1945.71 674.35 C 1937.32 660.96 1922.74 651.93 1907.10 650.01 C 1894.66 648.59 1881.75 648.92 1869.75 652.77 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3487.19 446.24 C 3506.94 443.80 3527.62 455.00 3535.59 473.37 C 3541.99 488.57 3540.75 507.39 3530.85 520.85 C 3525.16 528.01 3517.58 533.82 3508.90 536.80 C 3492.16 542.44 3472.10 539.35 3459.17 526.88 C 3452.21 520.35 3447.44 511.48 3446.04 502.03 C 3444.11 489.77 3445.90 476.46 3453.14 466.13 C 3460.65 454.73 3473.63 447.37 3487.19 446.24 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3887.25 446.40 C 3903.85 444.06 3921.57 450.76 3931.70 464.27 C 3938.14 472.33 3941.02 482.76 3940.96 492.97 C 3941.08 503.66 3937.89 514.62 3930.79 522.77 C 3919.42 536.64 3900.00 542.22 3882.73 538.35 C 3865.13 534.90 3850.10 520.00 3847.63 502.06 C 3845.76 490.37 3847.32 477.77 3853.69 467.62 C 3860.93 455.97 3873.57 447.89 3887.25 446.40 Z" />
|
||||||
|
<path fill="#2574bb" d="M 1286.23 590.40 C 1311.78 585.55 1338.33 586.57 1363.62 592.42 C 1382.02 596.73 1400.10 604.07 1414.60 616.44 C 1419.81 620.92 1424.04 626.89 1425.20 633.79 C 1427.08 643.81 1423.74 653.83 1419.76 662.91 C 1415.88 671.35 1411.08 679.40 1405.16 686.57 C 1398.56 679.72 1390.75 674.20 1382.70 669.22 C 1374.57 664.24 1365.97 659.85 1356.73 657.36 C 1342.23 653.23 1326.82 652.93 1311.96 655.14 C 1296.26 657.62 1280.63 664.95 1271.06 678.04 C 1258.73 694.71 1253.23 715.54 1252.02 736.01 C 1251.02 754.40 1252.27 773.08 1256.97 790.94 C 1261.56 807.89 1271.16 824.10 1286.01 833.96 C 1295.16 840.32 1306.02 843.86 1317.04 845.13 C 1328.02 846.32 1339.22 846.21 1350.06 843.95 C 1369.49 839.71 1388.00 829.97 1401.28 814.97 C 1407.50 822.05 1412.22 830.28 1416.37 838.70 C 1419.93 846.32 1423.17 854.44 1423.11 862.99 C 1422.89 869.80 1421.00 877.04 1416.08 882.01 C 1408.32 890.21 1397.92 895.25 1387.70 899.70 C 1370.78 907.11 1352.44 910.91 1334.03 911.80 C 1310.20 913.44 1286.13 910.95 1263.11 904.69 C 1245.06 899.97 1228.46 890.71 1213.99 879.05 C 1198.60 866.35 1186.99 849.59 1178.30 831.75 C 1169.17 812.69 1165.09 791.62 1163.51 770.66 C 1161.70 744.70 1162.41 718.22 1169.17 692.96 C 1174.26 673.71 1184.15 655.97 1196.59 640.52 C 1207.70 626.48 1222.05 615.30 1237.70 606.74 C 1252.65 598.25 1269.37 593.39 1286.23 590.40 Z" />
|
||||||
|
<path fill="#2574bb" d="M 1524.40 600.41 C 1546.15 591.05 1570.00 586.75 1593.65 587.42 C 1615.43 587.86 1637.68 591.57 1657.06 601.97 C 1674.79 610.89 1690.00 624.74 1700.36 641.69 C 1716.94 668.20 1721.64 700.28 1721.26 731.05 C 1720.93 742.00 1720.79 753.00 1719.28 763.87 C 1655.87 763.88 1592.46 763.87 1529.05 763.88 C 1530.49 786.25 1538.05 808.92 1553.47 825.59 C 1564.33 837.47 1580.20 843.41 1595.88 845.42 C 1608.95 846.92 1622.34 847.06 1635.28 844.37 C 1650.76 840.73 1665.75 834.23 1678.21 824.22 C 1683.22 820.23 1687.94 815.89 1692.77 811.69 C 1698.78 819.39 1703.96 827.70 1708.73 836.23 C 1712.40 843.06 1715.88 850.21 1717.09 857.95 C 1718.47 866.85 1714.17 875.73 1707.71 881.68 C 1695.91 892.90 1680.53 899.36 1665.20 904.16 C 1640.58 911.75 1614.48 913.13 1588.90 911.74 C 1564.97 909.88 1540.79 905.52 1519.09 894.87 C 1502.92 886.63 1488.13 875.39 1476.70 861.23 C 1466.37 848.42 1458.42 833.79 1452.62 818.43 C 1444.80 796.88 1441.90 773.85 1441.40 751.02 C 1440.73 726.36 1443.08 701.19 1452.03 678.02 C 1458.95 660.87 1468.33 644.53 1481.09 631.04 C 1493.28 618.07 1508.11 607.59 1524.40 600.41 M 1566.25 649.29 C 1555.92 652.82 1547.01 659.94 1540.74 668.81 C 1531.37 682.43 1528.33 699.35 1528.35 715.62 C 1566.19 715.63 1604.03 715.61 1641.87 715.63 C 1641.52 701.45 1639.99 687.00 1634.21 673.91 C 1631.59 668.43 1628.87 662.86 1624.46 658.57 C 1617.71 651.83 1608.40 648.29 1599.12 646.86 C 1588.17 645.34 1576.76 645.61 1566.25 649.29 Z" />
|
||||||
|
<path fill="#2574bb" d="M 2664.95 591.79 C 2685.08 586.30 2706.54 585.98 2726.98 589.92 C 2746.51 593.71 2765.14 602.69 2779.46 616.62 C 2794.98 631.15 2804.74 650.68 2811.48 670.59 C 2818.06 691.04 2820.36 712.60 2820.90 734.00 C 2821.22 758.89 2820.03 784.02 2814.29 808.33 C 2810.03 825.49 2803.50 842.20 2794.25 857.30 C 2783.46 875.09 2767.61 889.79 2748.99 899.07 C 2729.68 907.96 2708.17 911.69 2686.98 910.89 C 2668.28 910.22 2649.88 904.52 2633.69 895.22 C 2626.95 891.46 2621.39 886.01 2616.45 880.17 C 2616.69 934.11 2616.49 988.04 2616.57 1041.98 C 2587.32 1042.02 2558.07 1041.99 2528.81 1042.00 C 2528.76 893.43 2528.86 744.87 2528.75 596.31 C 2544.61 593.31 2561.05 592.72 2577.01 595.39 C 2587.46 597.45 2598.42 601.06 2605.61 609.36 C 2609.51 613.54 2611.56 618.99 2613.19 624.38 C 2618.14 619.97 2622.57 614.95 2628.09 611.18 C 2639.38 603.08 2651.38 595.41 2664.95 591.79 M 2638.87 656.74 C 2629.68 659.70 2622.53 667.34 2619.07 676.22 C 2616.85 681.87 2617.18 688.03 2617.17 693.98 C 2617.22 736.92 2617.11 779.86 2617.22 822.79 C 2626.93 830.79 2638.13 837.51 2650.50 840.36 C 2666.27 843.52 2683.76 842.35 2697.61 833.53 C 2707.89 826.94 2714.89 816.33 2719.44 805.18 C 2728.26 783.33 2729.73 759.34 2729.22 736.02 C 2728.24 716.35 2725.76 695.85 2715.46 678.63 C 2707.35 664.73 2692.29 655.64 2676.43 653.80 C 2663.92 652.43 2650.88 652.66 2638.87 656.74 Z" />
|
||||||
|
<path fill="#2574bb" d="M 2941.33 591.51 C 2968.48 586.61 2996.40 586.04 3023.77 589.43 C 3045.73 592.31 3068.28 598.92 3085.06 614.04 C 3098.86 626.10 3107.30 643.26 3111.11 660.99 C 3117.14 686.53 3115.38 712.94 3115.68 738.96 C 3115.74 770.98 3115.47 803.01 3115.84 835.03 C 3116.62 857.52 3118.85 881.08 3130.55 900.85 C 3120.03 904.57 3109.25 907.80 3098.06 908.61 C 3084.37 909.55 3069.76 909.32 3057.33 902.80 C 3046.57 897.20 3039.85 885.99 3037.71 874.29 C 3015.67 896.31 2984.82 908.49 2953.84 909.36 C 2929.60 910.91 2904.14 906.88 2883.43 893.57 C 2870.14 885.33 2859.98 872.71 2853.32 858.68 C 2847.56 846.30 2845.29 832.58 2844.96 819.01 C 2844.26 800.12 2847.77 780.37 2858.70 764.59 C 2868.74 750.70 2881.99 739.10 2897.19 731.15 C 2916.06 721.07 2936.90 715.04 2958.03 712.06 C 2982.45 708.32 3007.15 706.22 3031.86 706.50 C 3031.82 695.95 3032.49 685.09 3028.99 674.95 C 3026.49 667.04 3020.90 660.11 3013.49 656.33 C 3003.21 651.01 2991.42 649.65 2980.01 649.29 C 2967.60 649.12 2955.10 649.95 2943.03 652.95 C 2932.63 655.25 2922.89 659.66 2913.29 664.15 C 2903.28 668.41 2893.87 673.90 2884.15 678.77 C 2876.59 669.68 2871.01 659.10 2867.05 648.00 C 2864.79 641.62 2862.67 634.30 2865.85 627.84 C 2870.07 619.35 2878.41 613.98 2886.41 609.45 C 2903.48 600.28 2922.38 595.13 2941.33 591.51 M 3001.09 753.79 C 2986.59 755.62 2971.74 757.33 2958.40 763.71 C 2945.22 769.83 2932.88 780.47 2929.08 795.00 C 2925.73 808.82 2927.29 824.46 2935.69 836.26 C 2940.52 844.10 2949.28 848.63 2958.12 850.33 C 2976.51 853.75 2996.06 850.57 3012.43 841.52 C 3019.22 838.03 3025.28 833.02 3029.75 826.81 C 3032.03 823.67 3033.25 819.81 3033.14 815.93 C 3033.10 794.54 3033.13 773.15 3033.12 751.76 C 3022.39 751.39 3011.73 752.74 3001.09 753.79 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3293.01 588.83 C 3316.01 585.82 3339.57 587.39 3362.11 592.78 C 3380.82 597.40 3399.32 605.12 3413.60 618.36 C 3421.77 625.63 3424.29 637.53 3421.79 647.92 C 3418.46 662.12 3411.19 675.20 3402.13 686.54 C 3397.10 681.57 3391.65 677.04 3385.74 673.17 C 3375.82 666.52 3365.25 660.51 3353.67 657.36 C 3339.16 653.23 3323.75 652.93 3308.89 655.15 C 3294.81 657.39 3280.90 663.43 3271.19 674.11 C 3258.72 688.57 3252.40 707.36 3249.87 726.04 C 3247.98 741.62 3248.27 757.44 3250.35 772.99 C 3252.41 789.23 3257.23 805.56 3267.17 818.80 C 3277.58 833.25 3294.34 842.65 3311.94 844.84 C 3343.22 849.68 3376.98 838.77 3398.20 814.98 C 3404.61 822.21 3409.40 830.73 3413.63 839.38 C 3417.01 846.81 3420.16 854.68 3420.11 862.98 C 3419.96 870.55 3417.35 878.43 3411.54 883.54 C 3402.58 891.99 3391.11 897.10 3379.84 901.67 C 3363.74 908.26 3346.36 911.09 3329.05 911.91 C 3303.22 913.48 3277.12 910.18 3252.43 902.45 C 3234.92 896.33 3218.74 886.49 3205.12 873.92 C 3192.02 861.39 3181.91 846.01 3174.26 829.65 C 3165.84 811.21 3162.01 791.02 3160.47 770.91 C 3158.63 744.63 3159.32 717.80 3166.31 692.24 C 3171.48 673.04 3181.47 655.37 3193.97 640.00 C 3205.01 626.19 3219.21 615.16 3234.68 606.72 C 3252.53 596.56 3272.82 591.68 3293.01 588.83 Z" />
|
||||||
|
<path fill="#2574bb" d="M 4100.93 591.77 C 4124.52 586.39 4149.09 586.07 4172.95 589.94 C 4193.40 593.47 4213.89 599.80 4230.81 612.20 C 4236.56 616.35 4242.24 621.23 4245.01 627.96 C 4248.86 636.66 4247.50 646.67 4244.39 655.38 C 4240.41 666.71 4234.33 677.24 4226.81 686.57 C 4218.32 677.95 4208.13 671.28 4197.66 665.35 C 4179.11 654.81 4157.00 651.94 4136.05 654.80 C 4120.94 656.75 4105.75 662.90 4095.54 674.55 C 4083.17 689.02 4076.95 707.75 4074.53 726.40 C 4072.53 742.77 4073.04 759.40 4075.42 775.71 C 4077.63 791.58 4082.81 807.41 4092.85 820.12 C 4103.23 833.71 4119.27 842.59 4136.18 844.78 C 4167.59 849.76 4201.58 838.89 4222.89 814.97 C 4230.11 823.30 4235.49 833.05 4239.97 843.07 C 4243.77 851.88 4246.34 861.90 4243.50 871.37 C 4242.14 877.20 4238.34 882.09 4233.76 885.79 C 4224.48 893.27 4213.45 898.23 4202.39 902.45 C 4182.92 910.14 4161.76 912.12 4141.00 912.27 C 4127.49 912.42 4114.04 910.86 4100.79 908.40 C 4080.69 904.85 4061.01 897.69 4044.44 885.60 C 4028.77 875.14 4016.15 860.53 4006.70 844.33 C 3995.72 826.34 3989.34 805.87 3986.64 785.05 C 3983.78 762.46 3983.37 739.48 3986.13 716.86 C 3988.69 695.67 3995.16 674.76 4006.72 656.69 C 4016.97 640.19 4030.21 625.27 4046.57 614.63 C 4062.75 603.17 4081.51 595.60 4100.93 591.77 Z" />
|
||||||
|
<path fill="#2574bb" d="M 2096.02 595.66 C 2104.06 595.49 2112.00 593.91 2120.05 593.81 C 2134.84 593.45 2150.22 595.31 2163.32 602.66 C 2169.64 605.66 2174.77 610.91 2178.04 617.06 C 2182.19 624.99 2183.55 634.10 2183.64 642.96 C 2183.84 688.63 2183.47 734.30 2183.83 779.96 C 2184.38 791.84 2184.14 804.14 2188.54 815.39 C 2190.64 821.08 2194.38 826.23 2199.45 829.62 C 2206.57 834.68 2215.47 836.26 2224.03 836.68 C 2241.48 837.53 2259.73 834.31 2274.38 824.34 C 2281.68 819.30 2287.74 811.24 2287.54 802.01 C 2287.55 733.23 2287.61 664.44 2287.50 595.65 C 2306.72 593.72 2326.84 591.69 2345.39 598.51 C 2356.89 602.65 2366.49 611.58 2371.17 622.90 C 2374.74 631.10 2375.37 640.18 2375.32 649.01 C 2375.30 733.13 2375.34 817.25 2375.25 901.37 C 2356.16 901.38 2337.07 901.39 2317.99 901.37 C 2312.02 901.22 2305.61 900.92 2300.53 897.44 C 2297.02 895.00 2295.21 890.91 2294.24 886.90 C 2292.52 880.47 2292.11 873.78 2292.10 867.15 C 2284.02 877.47 2273.55 885.67 2262.25 892.18 C 2250.34 899.71 2236.52 903.57 2222.69 905.54 C 2206.22 907.65 2189.48 907.68 2173.02 905.65 C 2158.35 903.70 2143.49 899.56 2131.48 890.59 C 2116.73 879.47 2106.44 862.94 2102.05 845.07 C 2097.20 824.76 2096.43 803.78 2096.12 782.99 C 2095.86 720.55 2096.05 658.10 2096.02 595.66 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3451.16 596.05 C 3463.29 593.93 3475.72 593.39 3488.03 594.02 C 3498.63 594.79 3509.64 596.39 3518.77 602.26 C 3527.60 607.54 3533.97 616.48 3536.62 626.38 C 3538.80 634.05 3538.88 642.08 3538.88 649.99 C 3538.78 735.17 3539.05 820.35 3538.75 905.53 C 3525.03 908.23 3510.89 908.08 3496.98 907.37 C 3488.48 906.38 3479.66 905.25 3472.19 900.78 C 3462.29 895.15 3455.73 884.83 3453.21 873.90 C 3451.29 866.11 3451.09 858.05 3451.12 850.08 C 3451.15 765.40 3451.08 680.72 3451.16 596.05 Z" />
|
||||||
|
<path fill="#2574bb" d="M 3852.69 596.01 C 3865.00 593.96 3877.57 593.34 3890.03 594.05 C 3899.61 594.81 3909.47 596.17 3918.01 600.89 C 3928.06 606.14 3935.45 615.92 3938.28 626.85 C 3940.56 635.37 3940.38 644.27 3940.38 653.02 C 3940.38 737.14 3940.37 821.25 3940.39 905.37 C 3931.15 907.79 3921.49 907.48 3912.04 907.84 C 3900.58 907.72 3888.79 907.21 3878.03 902.95 C 3869.27 899.31 3862.18 892.23 3858.23 883.66 C 3853.46 873.85 3852.66 862.73 3852.69 851.99 C 3852.69 766.66 3852.67 681.33 3852.69 596.01 Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 18 KiB |
349
static/airline-logos/5L.svg
Normal file
@@ -0,0 +1,349 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1136.376709 319.9764709">
|
||||||
|
<title>Aerosur</title>
|
||||||
|
<desc>Aerosur logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Aerosur</Airline:name>
|
||||||
|
<Airline:iataCode>5L</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/5L</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#2B906F;}
|
||||||
|
.st1{fill:#12907C;}
|
||||||
|
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#643F9F;}
|
||||||
|
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
|
||||||
|
.st4{fill:url(#SVGID_1_);}
|
||||||
|
.st5{fill:url(#SVGID_2_);}
|
||||||
|
.st6{fill:url(#SVGID_3_);}
|
||||||
|
.st7{fill:url(#SVGID_4_);}
|
||||||
|
.st8{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_5_);stroke:url(#SVGID_6_);stroke-miterlimit:10;}
|
||||||
|
.st9{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_7_);stroke:url(#SVGID_8_);stroke-miterlimit:10;}
|
||||||
|
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_9_);stroke:url(#SVGID_10_);stroke-miterlimit:10;}
|
||||||
|
.st11{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_11_);stroke:url(#SVGID_12_);stroke-miterlimit:10;}
|
||||||
|
.st12{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_13_);stroke:url(#SVGID_14_);stroke-miterlimit:10;}
|
||||||
|
.st13{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_15_);stroke:url(#SVGID_16_);stroke-miterlimit:10;}
|
||||||
|
.st14{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_17_);stroke:url(#SVGID_18_);stroke-miterlimit:10;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M127.9712753,86.6987L37.2345886,233.4539795H95.56353l19.447052-31.6266785l96.3700485,0.0069122
|
||||||
|
l-10.818161-17.7190857h-76.4820938l10.0552902-16.5337067c-8.5273972-4.3026886-17.1323318-8.5502167-15.9627075-13.0025177
|
||||||
|
c0.6804199-2.5893555,4.5118332-5.4075928,4.5118332-5.4075928s9.3860703-3.802597,15.3292007-6.3439178
|
||||||
|
c6.588028-2.8123169,16.7862396-7.4199829,16.7862396-7.4199829c0,0.2702026-7.1068878-17.7248154-12.6980438-27.5663376
|
||||||
|
C137.2269897,99.2620087,127.9712753,86.6987,127.9712753,86.6987z"/>
|
||||||
|
<path class="st1" d="M96.1002502,234.4230042H35.5004845l92.4007568-149.4460754l0.8435287,1.143692
|
||||||
|
c0.0929718,0.1264343,9.3459015,12.7089539,14.1932983,21.2388611c4.4103088,7.7635803,9.8079224,20.6858292,11.8390961,25.5501328
|
||||||
|
c0.4121857,0.9863739,0.6940002,1.6648712,0.8147736,1.9331818l0.8454437,0.8879242l-1.2001038,0.5414429
|
||||||
|
c-0.0297241,0.0164185-0.0603943,0.0299225-0.0929871,0.0424652c-0.8454437,0.3822021-10.4233093,4.7021637-16.7545624,7.4055176
|
||||||
|
c-5.5289307,2.3636322-14.1367493,5.8603363-15.2304535,6.3042908c-1.0553741,0.7972107-3.5849915,3.012207-4.0556412,4.802536
|
||||||
|
c-0.9480133,3.6096191,7.5265579,7.8842316,15.002327,11.6550293l1.3985291,0.7055206l-9.7053604,15.9576111h75.3020706
|
||||||
|
l12.0020447,19.6589355l-97.5558472-0.0067596L96.1002502,234.4230042z M38.9685326,232.4850159h56.0581398l19.4471436-31.6276245
|
||||||
|
l95.1843872,0.0067444l-9.6344299-15.779068h-77.6620178l10.4050903-17.1099854
|
||||||
|
c-8.7429581-4.4116516-16.8494492-8.6013336-15.5247269-13.6441803c0.7457504-2.839447,4.4543991-5.6335144,4.8742447-5.9423676
|
||||||
|
l0.2089615-0.1167755c0.0939407-0.0376434,9.4455948-3.8287048,15.3119431-6.3371124
|
||||||
|
c5.4349976-2.3192291,13.2740479-5.8381195,15.8908997-7.0165558c-0.1322784-0.3127136-0.3029022-0.7209625-0.5262451-1.2566223
|
||||||
|
c-2.0196686-4.8343811-7.382782-17.6774902-11.7355804-25.338768c-3.9367676-6.9277725-10.8431549-16.5994415-13.22995-19.8953934
|
||||||
|
L38.9685326,232.4850159z"/>
|
||||||
|
<path class="st2" d="M127.2973404,29.9813824l-1.5634308,0.2403564l0.2626648,1.9283504
|
||||||
|
c0,0-3.9032669-1.6880207-5.2040329-0.9671268c-1.3007584,0.7267971-1.3007584,0.9671268-1.3007584,0.9671268
|
||||||
|
s0.6509705,2.7631226,0.1313324,3.6104927c-0.5184631,0.8416405-4.5463867-0.7267952-5.1971588-0.2403793
|
||||||
|
c-0.6499863,0.4807358-0.9126511,1.6823158-0.9126511,1.6823158s3.1201782,0.601284,2.3388596,1.5625038
|
||||||
|
c-0.7754364,0.9671555-2.0761948,0.9671555-2.0761948,0.9671555l-0.3939972,1.6822662l-2.2085114-1.5616951l-0.6497879,1.6822662
|
||||||
|
l-1.8204041-0.9612007l-0.3881073,1.3211632c0,0-0.393013-1.4419327-1.5634232-1.4419327
|
||||||
|
c-1.1694336,0-1.4254227,0.4807129-1.4254227,0.4807129s0.2559891,1.6822891-0.7821045,1.3223457
|
||||||
|
c-1.0439911-0.3611259-2.6015244-2.7642822-2.6015244-2.7642822s0.1313324-0.4805107,0.9124527-0.2403564
|
||||||
|
c0.776413,0.2403564,1.1704102,0.1207733,1.1704102,0.1207733s-2.2141953-3.8520355-3.3836288-3.0103722
|
||||||
|
c-1.169426,0.8406525-1.8203964,2.5229416-1.8203964,2.5229416s0.3939972,1.2082977,1.0380936,2.5296364
|
||||||
|
c0.6509705,1.3221741,5.2040329,5.539856,5.2040329,5.539856l-5.2040329-3.4908829l-0.9067612,0.600296l-1.5634308-2.0479622
|
||||||
|
l-1.0380936,2.0479622l-4.2903976-2.2883186l-0.6509628,1.3270683c0,0-1.6878967-0.1197586-2.3388672-1.6880188
|
||||||
|
c-0.6497879-1.5616951-2.470192-2.4031334-3.6396179-2.5296364c-1.1694336-0.1197853-1.0380936-1.0810051-1.1694336-1.9226456
|
||||||
|
c-0.1313248-0.8406525-0.9134369-0.9612236-0.9134369-0.9612236s0,3.3712997,1.0447769,4.2119484
|
||||||
|
c1.0380936,0.8414421,2.0761871,1.8028641,2.0761871,1.8028641l-1.6888657,0.4805107l1.6888657,2.4090881
|
||||||
|
c0,0-2.9896317-1.0819931-3.6396179-1.9226456c-0.6507721-0.8473701-1.5575333-1.6880188-1.5575333-1.6880188l5.9784775,5.7793961
|
||||||
|
l7.4115524,5.4133072l4.6787033,3.9716187l5.9851532,5.0533905l4.8090515,4.9387436l4.2905884,4.691452l5.591156,6.3815002
|
||||||
|
l6.7607803,8.5434799l4.5473633,6.620842l3.3836365,5.8940353l3.8965912,7.3419037l3.5139771,6.9817734l5.9794769,11.6744232
|
||||||
|
l3.3769531,6.8611908c0,0,1.0447693,0.600296,0.3939972,1.5615234c-0.6499939,0.9612274-1.300766,1.6822815-1.300766,1.6822815
|
||||||
|
l-10.2690735,4.6991882l-12.2272797,5.4135284l-5.5854645,3.1299591l-3.3826523-0.2403564l0.9124603,1.3213654
|
||||||
|
l-5.7224884,0.6012726l1.4320908,0.8473511c0,0-2.4701843-0.7277679-3.6455078,0.240387
|
||||||
|
c-1.1704102,0.9612122-0.6450806,1.4417114-0.6450806,1.4417114l4.2905884,0.6005096l-6.2411423,0.720871
|
||||||
|
c0,0,0.3871307,1.6889801,1.300766,1.3280792c0.9067612-0.3609314,1.169426-0.1197815,1.169426-0.1197815l0.2567749,0.7210693
|
||||||
|
l0.7813187-0.4807129h1.5575409l-0.3881073,1.8018494c0,0,1.4320908-0.480484,2.2142029-0.1195679
|
||||||
|
c0.7754288,0.3599396-1.1761093,0.8406525-1.1761093,0.8406525l2.3455429,0.8473816l0.7754288,1.0809937l5.0727005-0.1197815
|
||||||
|
l-0.13134,0.600296h3.6396179c0,0-0.2567749,1.0820007-0.7754288,2.41008c-0.5253296,1.321167,0,2.1627808,0,2.1627808
|
||||||
|
s4.4150467-0.6012573,3.8965988-1.5624847c-0.5196381-0.9614258-2.3388672,0.4805145-2.3388672-0.2403564
|
||||||
|
c0-0.7210693,0.5184631-1.8078003,0.5184631-1.8078003l7.8055573-1.5625153l-5.0727081,2.6492462
|
||||||
|
c0,0-0.1313324,0.9614258,1.1694336,1.4419403c1.3017426,0.4807129,2.7271729-0.2401581,2.7271729-0.2401581
|
||||||
|
s-2.0762024-0.2403564-1.4254303-0.8406525c0.6497955-0.6012878,1.4254303-0.9671478,1.4254303-0.9671478
|
||||||
|
s1.6945648-0.2413483,1.8201904,0.9671478c0.1313324,1.2015839,0.3939972,1.9224396,1.6947632,2.0422058
|
||||||
|
c1.300766,0.120575,2.3388672-1.9226227,2.3388672-1.9226227s0.6507721-2.1687317-0.1313324-2.1687317
|
||||||
|
c-0.7811279,0,2.6024933-1.2015839,2.2084961,1.4478607c-0.388092,2.6434937-0.388092,1.8028717-0.388092,1.8028717
|
||||||
|
l2.4701843-0.3609314l-0.1313324,2.2893066l2.4709778-1.5684357c0,0,1.5634308-1.2015839,2.8641815,0.2403564
|
||||||
|
c1.2940979,1.4486542,0.5186615,1.3280792,0.5186615,1.3280792s-0.7813263,2.0431976-1.6947479,2.162796
|
||||||
|
c-0.9067841,0.120575-1.94487-1.0810089-1.94487-1.0810089s-2.7328644-0.3609467-3.2523041,0.4807129
|
||||||
|
c-0.5186615,0.8406525,0.5194397,1.9224548,0.5194397,1.9224548s0-1.4417572,1.0381012-0.9612274
|
||||||
|
c1.0437927,0.4807129,1.0437927,1.9283752,1.0437927,1.9283752s0.9077454,1.3221588,2.2084961,1.3221588
|
||||||
|
c1.300766,0,4.5522766-1.4417419,4.5522766-1.4417419s-0.3930054,2.763092-3.1201782,2.883667
|
||||||
|
c-2.7328491,0.1197815-2.3398438-0.2401581-2.0828705,0.9671478c0.2626801,1.2015839,2.9898376,1.3213654,2.9898376,1.3213654
|
||||||
|
s-0.9069672-1.201767,0.5184631-1.201767c1.433075,0,6.3734589-0.3599396,6.8928986-2.0479736
|
||||||
|
c0.5186462-1.6832733,0.5186462-1.9224396-0.5194397-2.1637878c-1.0381012-0.2403564-2.3388672-0.3658905-2.3388672-0.3658905
|
||||||
|
l2.601532-1.0817719l3.1209564-0.9614258l5.8471527-0.600296l9.1006165-5.6596069l9.493454,8.3031006l8.8379517,8.6700134
|
||||||
|
l6.1098175,6.9807587c0,0,0.3939972-2.0479431,0.3939972-2.4090729c0-0.3599396,1.1694183-0.2401581,2.2084961,0.8416138
|
||||||
|
c1.0381012,1.0810394,2.4701996,2.7690582,2.4701996,2.7690582s1.0381012-0.4807129,0.6497955-1.4419403
|
||||||
|
c-0.3871307-0.9669495,0.6509705-0.9669495,0.6509705-0.9669495l0.1313324-1.6822968l-3.12117-2.2893066
|
||||||
|
c0,0-0.7811279-1.3213501,0.6509705-1.2015991c1.4262085,0.120575,3.6396179,0.480545,3.6396179,0.480545l7.1488953,6.9819641
|
||||||
|
l5.591156,7.8224182l3.7709503,5.5340881l2.3398438,1.8076172l1.300766,2.1639709l5.3286896,8.1880951l0.5184479,2.4033661
|
||||||
|
l-1.9448547-2.6494598l-2.2142029-4.211731c0,0-1.1694336-3.0036621-1.9507446-2.4033661
|
||||||
|
c-0.776413,0.6012878,1.0437927,4.2119598,1.0437927,4.2119598s1.4263916,1.9226379,1.6890564,3.1299438
|
||||||
|
c0.2626648,1.2025757,0,2.4031677,0,2.4031677l1.1694336,0.8473663c0,0,1.300766,3.3645782,0.7813263,3.8510132
|
||||||
|
c-0.5186615,0.4805145-2.0820923-1.5674438-2.0820923-1.5674438s-1.0380859,1.2025757-0.5194397,2.2893066
|
||||||
|
c0.5194397,1.0810089,1.9515381,2.2835541,1.6888733,3.1309509c-0.2569733,0.8396606-0.7754364,1.5615082-0.1256409,2.1618042
|
||||||
|
c0.6452789,0.6004944,1.8204041,1.3223572,1.4264069,1.92836c-0.3881073,0.6022949-0.2569733,2.0422516,0.5196381,1.9226685
|
||||||
|
c0.7811279-0.1197815,0.5184479-1.5617218,1.5632324-0.8416443c1.0380859,0.7218628,1.557724,1.0829773,1.4263916,1.9244232
|
||||||
|
c-0.1256409,0.8455963,1.4320984,1.6872253,0.3930206,2.1677399c-1.0437927,0.4807129-2.0818939,1.0810089-1.5634308,3.0113678
|
||||||
|
c0.5196381,1.9224396-0.3873138,2.5227203,0.9134369,2.7621002c1.300766,0.2470856,0.1313324-1.5615082,1.1694336-0.9612122
|
||||||
|
c1.0382996,0.6022644-0.131134,1.9303436,1.300766,1.9303436c1.4320984,0,1.6890717,0.3589325,1.9517365-0.841629
|
||||||
|
c0.2559814-1.2084961-0.3940125-2.4090881,0.6497803-2.1697235c1.0381165,0.2413177,0.776413,2.1697235,1.5577393,1.441925
|
||||||
|
c0.7821045-0.7200775,0.9134521-2.6425171,0.3881073-3.2505188c-0.5194397-0.600296-1.2948761-1.4419403-1.6888733-2.7642822
|
||||||
|
c-0.3883057-1.3261108-1.4263916-3.1289673-0.1313324-3.0092163c1.300766,0.1196136,2.2142029,1.0810394,2.4701996,2.1695557
|
||||||
|
c0.2626648,1.0809937,0,2.2815857,1.0447693,2.8838654c1.0381012,0.600296,1.1694336,0.1197815,1.4263916,2.0479584
|
||||||
|
c0.2616882,1.9226379,0.1313477,2.0424042,1.4320984,3.1309357c1.300766,1.0810089,1.300766,1.8028717,2.8575134,2.6425323
|
||||||
|
c1.5632324,0.8475647,1.3015594,0.4807129,1.5632324-0.1195831c0.2569733-0.600296-0.6497955-4.331543,0.1313324-3.9706116
|
||||||
|
c0.776413,0.3591309,1.2950745,1.0867462,1.5577393,2.1677246c0.2626648,1.0828094,0.2626648,2.8896179,1.4320984,3.2505493
|
||||||
|
c1.1694183,0.3609314,1.688858,1.2025757,2.4701996,0.600296c0.7763977-0.600296,0.388092-0.600296,1.5575256-1.5672455
|
||||||
|
c1.1694336-0.9614258,2.214386-2.7642822,2.214386-2.7642822s-0.2626648,0.7220459,1.5575562,0.841629
|
||||||
|
c1.819397,0.1197815,1.0380859-1.3221436,1.9507446-2.0479584c0.9077454-0.7220459,0.7821045-0.7220459,1.6888733-1.3223419
|
||||||
|
c0.9126587-0.600296,1.3007507-0.9612274,0.7822876-2.1695251c-0.5196228-1.200592-3.1211548-1.6813049-2.6025085-2.2835693
|
||||||
|
c0.5194397-0.600296,1.1694336-0.7200775,1.1694336-2.0479736c0-1.3223419-0.2559814-1.2008057-0.9067688-2.7642975
|
||||||
|
c-0.6499634-1.5672302-0.6499634-1.6870117-0.1313171-3.3701172c0.5194397-1.6889801-0.5186462-3.6116333-1.0439758-3.9705811
|
||||||
|
c-0.5194397-0.3611298-2.3388672,0.3589478-2.3388672-0.4807281c0-0.8473511,0.781311-2.4108429-0.2567749-2.7700043
|
||||||
|
c-1.0449829-0.3609467-3.7709656-0.2411346-3.7709656-0.2411346s-0.7822876,2.4031525-1.5634155,2.283371
|
||||||
|
c-0.776413-0.1195831-1.8204041-2.1637878-1.8204041-2.6445007c0-0.4805145-2.4701843-3.7312469-1.6888733-4.2097778
|
||||||
|
c0.7821045-0.4874268,1.9515381,0.600296,2.3388672,1.4419403c0.3939972,0.8396606,1.1704102,1.0807953,1.1704102,0.2391663
|
||||||
|
c0-0.8414459-0.9077454-2.6492462-1.0390778-3.4908905c-0.1313324-0.8406525-1.9507599-3.2505493-1.9507599-3.2505493
|
||||||
|
l-1.4262085-3.9715729c0,0-1.9517212-2.2825775-1.1694183-3.0091858c0.7754211-0.7210541,1.5575409-2.2835846,1.5575409-2.2835846
|
||||||
|
s0.5186462-0.841629,1.0380859-0.3599243c0.5186615,0.4804993,1.1694336,0.9612274,0.912674,0
|
||||||
|
c-0.2626801-0.9681396-0.5186768-2.7700195-2.0820923-2.5296631c-1.5575409,0.2403564-2.7269745,0.600296-2.9896393,0
|
||||||
|
c-0.2569733-0.6012726-0.3883057-2.0432129,0.6497955-1.3223419c1.0382843,0.7210693,2.4711761,1.441925,2.0830536,0.1207733
|
||||||
|
c-0.3939972-1.3280945-2.4701843-2.2893372-3.5149536-3.4908905c-1.0382996-1.2017822-2.7271729-3.4910736-1.5577393-3.2507172
|
||||||
|
c1.1704102,0.2403412,2.0828705,2.1687317,2.6025085,1.0809937c0.5184631-1.0809937-0.5196381-3.3703003-1.300766-3.9705963
|
||||||
|
c-0.7823029-0.6012878-2.2142029-1.5625153-2.2142029-1.5625153l-4.0279083-7.1015472l-6.1108093-8.7836456l-4.6777191-6.26091
|
||||||
|
l-6.6361084-7.5822601l-8.3183289-7.2221069l-5.7224884-7.2221222l-4.2905884-4.0911713
|
||||||
|
c0,0-2.7259979-2.0432281-2.0762024-2.7640839c0.6509705-0.7268066-0.1313324-0.9671631-0.1313324-0.9671631l0.7823029-0.720871
|
||||||
|
l2.4701996-2.2893219l1.9448547-2.5229187c0,0,0.9134369-1.0819931,2.601532-1.4486542
|
||||||
|
c1.688858-0.3599396,0.9134369-1.0810013,2.4711609-1.2015762c1.5632324-0.1197815,0.7993927-0.7026825,2.732666-0.600296
|
||||||
|
c2.3390503,0.1195831,1.4264069,0.3599396,2.5958252,0.720871c1.1751404,0.3599396,1.9517365,0.7210617,2.8641968,1.5684357
|
||||||
|
c0.9067688,0.8406448,2.2075195,1.8018723,2.85849,2.4031525c0.6497955,0.600296,1.4319,0.720871,1.4319,0.720871
|
||||||
|
s0.0950165-0.6852875-0.1609802-1.766098c-0.2626648-1.0877457-0.8837891-1.4786987-1.4022522-2.2052994
|
||||||
|
c-0.5196381-0.7210617-1.1694183-1.0819931-1.4263916-1.5627289c-0.2626648-0.480484-0.2683716-0.8346939-0.2683716-0.8346939
|
||||||
|
s-0.5129395-0.9738998,0.7878113-1.574173c1.3007507-0.6012802,1.3123322-1.0819931,1.3123322-1.0819931
|
||||||
|
s-0.4053802-1.0810242-1.706131-2.5286713c-1.2950745-1.4419327-3.2466125-3.4908829-4.0279388-3.7312393
|
||||||
|
c-0.7821045-0.2403564-3.1209564-1.5625076-4.1590576-1.8028641c-1.0449677-0.2403488-3.7719269-0.9612198-4.6845856-1.0810013
|
||||||
|
c-0.9067688-0.120575-3.8963928-0.3609314-4.6786957-0.2401581c-0.7811279,0.1195831,0.1313324-0.4874344-1.0381012-1.0877228
|
||||||
|
c-1.1694336-0.6012878-1.300766-1.0820007-2.9896393-1.0820007c-1.6947479,0-2.3447418,0.120575-4.683609,0.720871
|
||||||
|
c-2.3398285,0.6012802-3.1209564,0.3611298-3.8963928,1.0819931c-0.7823029,0.726799-2.2144012,1.9283752-2.8651733,1.2073135
|
||||||
|
c-0.6499786-0.720871-1.3007507-1.3278885-1.0380859-2.8896027c0.2626648-1.5625076-1.0381012-3.01017-1.8194275-4.9328156
|
||||||
|
c-0.7821045-1.9283752-1.0390778-3.7312393-2.3398285-5.7801895c-1.300766-2.0422287-2.0818939-2.5229416-2.4701996-3.6106644
|
||||||
|
c-0.3939972-1.0817947,0.2569733-3.0101776-0.3939972-4.3315353c-0.6497955-1.3221512-1.6888733-3.01017-2.4701843-4.4521103
|
||||||
|
c-0.7754364-1.4419327-1.8202057-3.7312317-2.7269745-4.9328156c-0.9136353-1.2082977-3.1211548-4.6983871-4.9413605-7.3426971
|
||||||
|
c-1.8194275-2.649437-4.6777191-7.5822563-6.2411346-9.0299225c-1.5577545-1.4419594-4.2906036-5.4135284-5.9794769-7.2154007
|
||||||
|
c-1.6880798-1.8085976-2.7328491-3.6114807-4.5530548-5.299675c-1.8194122-1.6820946-7.2794495-6.5010567-7.2794495-6.5010567
|
||||||
|
l-7.280014-5.5331154l-6.2421265-4.4523048c0,0-3.8966064-0.8416367-4.9403839-1.0817947
|
||||||
|
C128.9864044,31.3084755,127.2973404,29.9813824,127.2973404,29.9813824z"/>
|
||||||
|
<path class="st3" d="M208.612442,114.3365936c0,0-4.0815277-2.5114975-7.7873077-2.872406
|
||||||
|
c-0.8415833-0.0839996-1.7483521,0.0357819-1.7483521,0.0357819c-1.5873718,0.0367661-2.2736816,1.2142258-2.1835785,2.6860046
|
||||||
|
c0.0651855,0.9970016,0.1313324,1.5142822,1.1751251,1.6639099c1.4081421,0.2045746,2.2314758-0.3725891,3.9558868-1.0270462
|
||||||
|
C204.5605621,113.8558807,208.612442,114.3365936,208.612442,114.3365936z"/>
|
||||||
|
<path class="st2" d="M132.9958801,168.5483704c0,0-0.3881073-1.8028564-1.6888733-1.3221588
|
||||||
|
c-1.300766,0.4805145-2.3388672,0.6012878-2.3388672,0.6012878l-0.5253296-0.9614258c0,0-0.7754288-0.2401581-0.7754288,0.600296
|
||||||
|
c0,0.8416443,0.3871231,2.0432281,0.3871231,2.0432281s1.039093,1.5684357,1.8204041,0.9671478
|
||||||
|
c0.7821045-0.6070099,1.8202057-0.4864349,1.8202057-0.4864349l0.9126587-0.4807129l0.3881073,0.6004944V168.5483704z"/>
|
||||||
|
<path class="st2" d="M211.1362152,190.9347992c0,0-0.3939972,0-0.6497803-0.9612122
|
||||||
|
c-0.2626648-0.9671478-0.7823029-1.6880188-0.7823029-1.6880188s-2.0818939,1.8076019-1.300766,3.0091858
|
||||||
|
c0.7823029,1.2025604,2.2077179,2.1697235,2.2077179,2.1697235l0.6507721,1.441925c0,0,0.2626648,1.8018799,1.4320984,1.8018799
|
||||||
|
s1.8202057-0.8406525,1.8202057-0.8406525s0.3939972,0,1.0381012-1.3221436
|
||||||
|
c0.6499786-1.3271027,0.6499786-2.5286713,0.6499786-2.5286713s-2.4701843,2.1685333-2.8575134,1.5672455
|
||||||
|
c-0.3881073-0.6060333-0.7821045-1.6880188-0.7821045-1.6880188l-0.7754364,0.6012726L211.1362152,190.9347992z"/>
|
||||||
|
<path class="st2" d="M215.2954865,204.1707611c0,0-0.3873291-0.7210693-0.5186615-2.1630249
|
||||||
|
c-0.1313324-1.4476471-0.9134369-2.1685181-0.9134369-2.1685181l-1.5577393-0.3609161c0,0-1.6945648,0.4805145-0.5184631,1.4486542
|
||||||
|
c1.1694336,0.9612122,1.6888733,0.7198792,1.6888733,0.7198792L215.2954865,204.1707611z"/>
|
||||||
|
<path class="st2" d="M214.1260529,197.0749359c0,0,0.1313324,3.0046387,1.6888733,3.3645782
|
||||||
|
c1.557724,0.3609314,1.6890564,0,1.6890564,0s1.300766,0.487442,1.1694336,1.2073212
|
||||||
|
c-0.1256409,0.7220459,0.7811279-0.7198792,0.7811279-0.7198792s-0.9067688-1.9293671-1.6888733-2.0489502
|
||||||
|
c-0.7813263-0.1207733-0.9126587-1.4419403-0.9126587-1.4419403s-0.5194397-0.8475647-1.1694183-0.7277832
|
||||||
|
C215.0328217,196.8288574,214.1260529,197.0749359,214.1260529,197.0749359z"/>
|
||||||
|
<path class="st2" d="M221.4062805,203.3300934c0,0-0.1313324,0.6003113-1.0381012,0.9612427
|
||||||
|
c-0.9136353,0.36586-2.2144012,0.9671478-2.2144012,0.9671478s1.4320984-0.4807129,2.2144012,0.600296
|
||||||
|
c0.7754364,1.0820007,0.7754364,1.8028564,0.7754364,1.8028564s0,0.720871,1.0437775-0.7208557
|
||||||
|
c1.0390778-1.4419403,0.1256409-2.0432434,0.1256409-2.0432434l0.2626801-1.3270721L221.4062805,203.3300934z"/>
|
||||||
|
<path class="st2" d="M225.0458984,207.3007202c0,0,1.0380859,1.0817871-0.3873138,1.5682373
|
||||||
|
c-1.4321136,0.4807129-2.3455505,0.1207733-2.3455505,0.1207733s-0.2569733,0.6002655,0.3939972,2.162796
|
||||||
|
c0.6497955,1.5684204,1.300766,0.6012878,1.300766,0.6012878s-1.0439911,3.1289673-0.1313324,3.8509979
|
||||||
|
c0.9067688,0.7256317,2.4701996,0.7256317,3.1209717-0.3611145c0.6499786-1.0807953,0.2569733-2.1618042,0.2569733-2.1618042
|
||||||
|
s-0.9077454,0.600296-1.4264069,0c-0.5194397-0.6022797-0.7821045-2.41008-0.7821045-2.41008
|
||||||
|
s0.1313324-1.3221436,1.1694336-1.0818176C227.2544098,209.830368,225.0458984,207.3007202,225.0458984,207.3007202z"/>
|
||||||
|
<path class="st2" d="M227.1287689,216.2051239c0,0-0.2626648,1.6890106-1.1694336,1.6890106
|
||||||
|
c-0.9134369,0-1.1761017,0.4805145-1.1761017,0.4805145s0.7821045,0.6002808,0.6507721,1.4419403
|
||||||
|
c-0.1254425,0.8473663,0.2626648,1.5674438,0.2626648,1.5674438s1.300766,0.4805145,1.6880798,1.9224396
|
||||||
|
c0.3881073,1.447876,1.039093,2.1697235,1.039093,2.1697235s-0.5196533,0.7200775-0.6509857,1.9224548
|
||||||
|
c-0.1254425,1.2084961,0.5253448,1.2084961,0.5253448,1.2084961s0.3882904-1.9303589,1.0380859-1.0887146
|
||||||
|
c0.6509705,0.8473511,0.5196381,2.0499268,0.5196381,2.0499268s-0.6509705,0-0.5196381,1.0810089
|
||||||
|
c0.1313324,1.0867462,0,4.331543,1.6890717,4.8179779c1.6888733,0.4805145,2.989624-3.2507172,2.989624-3.2507172
|
||||||
|
s-0.3881073,0.8416138-1.4261932,0.1197815c-1.0449677-0.7200775-1.300766-2.1677551-1.300766-2.1677551
|
||||||
|
s0.3871307-2.6502228-0.1313324-3.3703308c-0.5196381-0.7218323-1.6890717-0.8414154-1.5577393-1.4419098
|
||||||
|
c0.1256409-0.602066,0.1256409-1.5692291,0.1256409-1.5692291s-1.6890717-0.4807129-1.0381012-0.9612274
|
||||||
|
c0.6497955-0.4806976,0.9124603-1.6812897,0.9124603-1.6812897s-0.3939972,0-0.7811279-1.4476776
|
||||||
|
c-0.3939819-1.441925-0.1313324-3.7312317-0.1313324-3.7312317L227.1287689,216.2051239z"/>
|
||||||
|
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="161.1624298" y1="177.9430695" x2="161.1624298" y2="217.7008057">
|
||||||
|
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||||
|
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
|
||||||
|
</linearGradient>
|
||||||
|
<ellipse class="st4" cx="161.1624298" cy="197.8219299" rx="0" ry="19.8788662"/>
|
||||||
|
<radialGradient id="SVGID_2_" cx="153.1038666" cy="165.8648071" r="153.0876923" fx="155.5355835" fy="279.4449158" gradientTransform="matrix(1.0310481 0 0 1.038132 -1.0795398 -12.2013226)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||||
|
<stop offset="0.3433161" style="stop-color:#F0EFF6;stop-opacity:0.2403213"/>
|
||||||
|
<stop offset="1" style="stop-color:#D8D5E6;stop-opacity:0.7"/>
|
||||||
|
</radialGradient>
|
||||||
|
<ellipse class="st5" cx="156.7779083" cy="159.9882202" rx="156.7779083" ry="159.9882355"/>
|
||||||
|
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="156.1624298" y1="180.9692688" x2="156.1624298" y2="216.9269104">
|
||||||
|
<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
|
||||||
|
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0.5"/>
|
||||||
|
</linearGradient>
|
||||||
|
<ellipse class="st6" cx="156.1624298" cy="198.9480896" rx="0" ry="17.9788265"/>
|
||||||
|
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="157.1750946" y1="12.4303865" x2="157.1750946" y2="178.4124603">
|
||||||
|
<stop offset="0" style="stop-color:#FFFFFF"/>
|
||||||
|
<stop offset="0.3433161" style="stop-color:#F0EFF6;stop-opacity:0.6566839"/>
|
||||||
|
<stop offset="1" style="stop-color:#D8D5E6;stop-opacity:0"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st7" d="M276.3926697,132.6147919c0,71.7067108-48.0206451,37.7759399-119.0706024,37.7759399
|
||||||
|
S37.9575272,196.2421112,37.9575272,124.535408S86.2721176,12.4303865,157.3220673,12.4303865
|
||||||
|
S276.3926697,60.9080887,276.3926697,132.6147919z"/>
|
||||||
|
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="533.6144409" y1="133.9031219" x2="533.6144409" y2="246.5506287">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="480.9476318" y1="190.2268677" x2="586.28125" y2="190.2268677">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st8" d="M580.071228,221.1404877c-6.5125732,5.9543457-19.291626,15.7964172-35.6876221,15.7964172
|
||||||
|
c-29.1774292,0-43.8877258-21.9793549-41.7142639-47.6251068h34.0007629c16.1549683,0,32.5507812,0.2285614,48.9468384,0.6866302
|
||||||
|
c2.4156494-38.2331238-22.1851196-56.0953064-48.9468384-56.0953064c-35.9308472,0-55.2224731,24.5022278-55.2224731,56.3238678
|
||||||
|
c0,35.4878082,23.6305542,56.3236389,56.9103394,56.3236389c14.7105103,0,29.6549683-5.4894867,41.4699097-13.5093842
|
||||||
|
L580.071228,221.1404877z M502.669342,180.8418274c1.4430847-19.2342529,11.3288879-39.8405914,34.0007629-39.8405914
|
||||||
|
c23.8729858,0,29.6552124,19.9208984,30.1419678,39.8405914H502.669342z"/>
|
||||||
|
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="641.190918" y1="133.9031219" x2="641.190918" y2="244.7204895">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="611.5135498" y1="189.3307037" x2="670.9296265" y2="189.3307037">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st9" d="M612.0135498,244.7204895c3.1321411-0.2285614,6.2689819-0.6866302,9.6421509-0.6866302
|
||||||
|
c3.1392212,0,6.0326538,0.4580688,9.6494751,0.6866302v-59.2963562c0-12.3659058,0.4799194-19.9208832,8.9212036-29.0763092
|
||||||
|
c3.6167603-3.8959045,10.12677-5.7260437,15.4314575-5.7260437c4.1011963,0,7.7179565,2.7453003,11.3347778,3.6593475
|
||||||
|
l3.3757324-19.2262573c-2.1746216-0.9220123-4.0967407-1.1517487-7.4769287-1.1517487
|
||||||
|
c-12.0582886,0-22.4240112,9.6217041-30.385376,21.5214996l-1.2008667,2.7521667V135.283432
|
||||||
|
c-3.6168213,0.2283173-6.5102539,0.6854401-9.6494751,0.6854401c-3.3731689,0-6.5100098-0.4571228-9.6421509-0.6854401V244.7204895z
|
||||||
|
"/>
|
||||||
|
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="739.5872192" y1="133.9031219" x2="739.5872192" y2="246.5506287">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="680.4293213" y1="190.2268677" x2="798.7451172" y2="190.2268677">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st10" d="M681.0531616,189.0832367c-2.1654663,34.8023529,24.3597412,57.467392,56.9082031,57.467392
|
||||||
|
c39.7912598,0,60.2837524-27.7042236,60.2837524-56.7807617c0-34.1157227-22.9084473-55.866745-55.9436646-55.866745
|
||||||
|
C707.5783691,133.9031219,681.0531616,156.1112366,681.0531616,189.0832367z M742.0648804,141.001236
|
||||||
|
c26.7617798,0,34.9597168,27.0176086,34.9597168,47.6251221c0,17.8609924-8.9214478,50.8263855-37.131958,50.8263855
|
||||||
|
c-27.4898071,0-37.6189575-24.2657166-37.6189575-46.9316711C702.2736816,168.247406,711.4385376,141.001236,742.0648804,141.001236
|
||||||
|
z"/>
|
||||||
|
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="990.7171021" y1="135.283432" x2="990.7171021" y2="246.5506287">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="941.5057373" y1="190.8981323" x2="1039.9284668" y2="190.8981323">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st11" d="M1039.4284668,135.283432c-3.6235352,0.2283173-6.5125732,0.6854401-9.6491699,0.6854401
|
||||||
|
c-3.3734131,0-6.5126343-0.4571228-9.6424561-0.6854401v63.1920166c0,16.25354-5.0681152,36.8598785-29.6620483,36.8598785
|
||||||
|
c-21.7004395,0-29.1774292-14.1948395-29.1774292-38.2387695V135.283432
|
||||||
|
c-3.6167603,0.2283173-6.5100098,0.6854401-9.649231,0.6854401c-3.3733521,0-6.5102539-0.4571228-9.642395-0.6854401v67.309433
|
||||||
|
c0,30.9134979,13.2592163,43.9577637,39.7844238,43.9577637c16.8825684,0,30.6263428-7.5550385,38.3466797-21.521286v19.6911469
|
||||||
|
c3.1298218-0.2285614,6.269043-0.6866302,9.6424561-0.6866302c3.1365967,0,6.0256348,0.4580688,9.6491699,0.6866302V135.283432z"/>
|
||||||
|
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="1106.6345215" y1="133.9031219" x2="1106.6345215" y2="244.7204895">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="1076.9537354" y1="189.3306732" x2="1136.376709" y2="189.3306732">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st12" d="M1077.4537354,244.7204895c3.1390381-0.2285614,6.269043-0.6866302,9.649292-0.6866302
|
||||||
|
c3.1320801,0,6.0255127,0.4580688,9.642334,0.6866302v-59.2963562c0-12.3659058,0.4868164-19.9208832,8.9212646-29.0763092
|
||||||
|
c3.6166992-3.8959045,10.1269531-5.7260437,15.4384766-5.7260437c4.0943604,0,7.7111816,2.7453003,11.3277588,3.6593475
|
||||||
|
l3.3825684-19.2262573c-2.1746826-0.9220123-4.1035156-1.1517487-7.4769287-1.1517487
|
||||||
|
c-12.0581055,0-22.4306641,9.6217041-30.3851318,21.5214996l-1.2080078,2.7521667V135.283432
|
||||||
|
c-3.6168213,0.2283173-6.5102539,0.6854401-9.642334,0.6854401c-3.380249,0-6.5102539-0.4571228-9.649292-0.6854401V244.7204895z"/>
|
||||||
|
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="403.1954346" y1="84.5489807" x2="403.1954346" y2="244.7136688">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="323.0933838" y1="164.6717682" x2="483.026123" y2="164.6717682">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st13" d="M431.9507751,84.5489807h-5.7326355L324.0569763,244.7136688
|
||||||
|
c2.7808228-0.2285614,5.5892029-0.6866302,8.8271484-0.6866302c2.9943542,0,5.6684265,0.4580688,9.1199036,0.6866302
|
||||||
|
c10.257782-21.5363617,22.3010559-41.6994324,34.0950317-61.8625031h63.3138428
|
||||||
|
c6.7971191,20.8497009,12.4152527,42.842926,16.747345,61.8625031c4.2733154-0.2285614,8.5835266-0.6866302,13.3153992-0.6866302
|
||||||
|
c4.2389526,0,8.1553345,0.4580688,12.8582458,0.6866302L431.9507751,84.5489807z M437.1394958,173.2223969h-54.836792
|
||||||
|
l36.1031799-58.6532364L437.1394958,173.2223969z"/>
|
||||||
|
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="865.9334717" y1="84.6776047" x2="865.9334717" y2="247.4658203">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="815.9243164" y1="166.0717163" x2="915.8657837" y2="166.0717163">
|
||||||
|
<stop offset="0" style="stop-color:#68CBB2"/>
|
||||||
|
<stop offset="0.503408" style="stop-color:#2B8F6F"/>
|
||||||
|
<stop offset="1" style="stop-color:#12907C"/>
|
||||||
|
<stop offset="1" style="stop-color:#39B28D"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st14" d="M821.0891113,213.8137817c-0.9643555,6.8695831-2.1723022,13.7379761-4.5879517,20.3780365
|
||||||
|
c8.2047119,8.4699554,27.489502,13.2740021,39.3110352,13.2740021c32.7941895,0,59.5535889-19.4560089,59.5535889-52.199646
|
||||||
|
c0-48.7686157-75.9562378-31.8284607-75.9562378-73.9492569c0-16.2615356,13.7435913-26.7892685,30.3830566-26.7892685
|
||||||
|
c14.232666,0,24.8394165,7.5550079,29.9075317,19.9197083h2.4088135
|
||||||
|
c1.9289551-6.4112625,3.6168213-12.8227615,6.5102539-18.7759552
|
||||||
|
c-8.9190674-7.5550461-22.9083862-10.9937973-34.4797363-10.9937973c-28.9408569,0-53.5371094,14.4243393-53.5371094,43.9657669
|
||||||
|
c0,51.741333,75.480957,32.9642029,75.480957,75.5498962c0,18.090744-13.9892578,33.4290619-33.5219727,33.4290619
|
||||||
|
c-18.8071899,0-29.6573486-9.1553802-39.0631714-23.808548H821.0891113z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 30 KiB |
8
static/airline-logos/5Y.svg
Normal file
|
After Width: | Height: | Size: 38 KiB |
13
static/airline-logos/6E.svg
Normal file
|
After Width: | Height: | Size: 11 KiB |
8
static/airline-logos/6J.svg
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
264
static/airline-logos/6R.svg
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 221 32">
|
||||||
|
<title>Avianca Cargo México</title>
|
||||||
|
<desc>Avianca Cargo México logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Avianca Cargo México</Airline:name>
|
||||||
|
<Airline:iataCode>6R</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/6R</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 203.65 25.25
|
||||||
|
Q 207.73 28.91 212.80 30.92
|
||||||
|
Q 214.53 31.60 212.68 31.70
|
||||||
|
C 207.33 31.98 203.14 30.23 197.98 26.78
|
||||||
|
Q 196.11 25.53 191.64 25.40
|
||||||
|
A 0.25 0.25 0.0 0 1 191.39 25.14
|
||||||
|
L 191.39 24.87
|
||||||
|
A 0.37 0.37 0.0 0 1 191.76 24.50
|
||||||
|
L 201.54 24.51
|
||||||
|
Q 202.42 24.51 201.80 23.90
|
||||||
|
L 200.06 22.18
|
||||||
|
A 1.80 1.67 -22.4 0 0 198.77 21.70
|
||||||
|
Q 198.04 21.72 195.40 21.08
|
||||||
|
C 185.77 18.73 183.05 8.00 189.06 0.65
|
||||||
|
Q 189.41 0.23 189.54 0.76
|
||||||
|
Q 192.38 11.89 199.35 20.87
|
||||||
|
C 200.49 22.33 205.17 21.95 206.93 23.40
|
||||||
|
Q 209.50 25.53 206.23 24.88
|
||||||
|
Q 205.03 24.65 203.82 24.74
|
||||||
|
Q 203.14 24.80 203.65 25.25
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<circle fill="#ff0000" cx="40.62" cy="6.13" r="2.50"/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 112.69 15.26
|
||||||
|
C 110.87 21.25 116.78 27.48 121.41 21.33
|
||||||
|
Q 121.75 20.87 122.15 21.28
|
||||||
|
L 122.76 21.92
|
||||||
|
Q 123.13 22.30 122.85 22.75
|
||||||
|
C 120.95 25.80 116.31 26.49 113.53 24.71
|
||||||
|
C 107.76 21.02 109.16 10.22 116.68 9.50
|
||||||
|
Q 120.25 9.15 122.71 12.10
|
||||||
|
A 0.74 0.73 48.8 0 1 122.65 13.11
|
||||||
|
L 122.03 13.70
|
||||||
|
Q 121.48 14.22 121.12 13.55
|
||||||
|
C 118.99 9.55 113.84 11.50 112.69 15.26
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 15.39 15.46
|
||||||
|
Q 16.53 15.36 15.81 14.48
|
||||||
|
L 15.42 14.01
|
||||||
|
A 2.17 2.14 -17.8 0 0 13.90 13.24
|
||||||
|
Q 11.57 13.09 9.68 14.45
|
||||||
|
Q 9.47 14.61 9.35 14.37
|
||||||
|
L 8.04 11.73
|
||||||
|
A 0.30 0.29 -28.4 0 1 8.16 11.34
|
||||||
|
C 12.37 8.93 20.64 8.41 20.49 15.25
|
||||||
|
Q 20.37 20.19 20.62 25.11
|
||||||
|
Q 20.64 25.60 20.16 25.70
|
||||||
|
Q 18.27 26.09 16.67 25.09
|
||||||
|
Q 16.27 24.84 15.84 25.05
|
||||||
|
C 7.09 29.35 3.58 17.69 10.99 15.98
|
||||||
|
Q 12.00 15.74 15.39 15.46
|
||||||
|
Z
|
||||||
|
M 16.15 21.21
|
||||||
|
L 15.89 19.23
|
||||||
|
A 0.74 0.74 0.0 0 0 15.06 18.59
|
||||||
|
L 13.37 18.82
|
||||||
|
A 2.12 1.54 -7.5 0 0 11.47 20.62
|
||||||
|
L 11.53 21.02
|
||||||
|
A 2.12 1.54 -7.5 0 0 13.83 22.27
|
||||||
|
L 15.51 22.04
|
||||||
|
A 0.74 0.74 0.0 0 0 16.15 21.21
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 53.44 14.52
|
||||||
|
L 53.21 14.11
|
||||||
|
A 1.71 1.70 -12.2 0 0 51.88 13.26
|
||||||
|
Q 49.52 13.04 47.49 14.22
|
||||||
|
Q 47.01 14.50 46.77 14.00
|
||||||
|
L 45.76 11.97
|
||||||
|
Q 45.49 11.41 46.04 11.13
|
||||||
|
C 50.24 8.94 58.04 8.42 57.96 15.22
|
||||||
|
Q 57.90 20.17 58.21 25.10
|
||||||
|
Q 58.24 25.57 57.79 25.68
|
||||||
|
Q 55.87 26.14 54.34 25.03
|
||||||
|
Q 53.91 24.71 53.45 24.98
|
||||||
|
C 44.79 29.90 39.11 15.61 52.88 15.50
|
||||||
|
Q 53.99 15.49 53.44 14.52
|
||||||
|
Z
|
||||||
|
M 49.57 19.49
|
||||||
|
A 1.26 1.25 -37.4 0 0 49.30 21.47
|
||||||
|
Q 50.84 23.00 53.05 21.91
|
||||||
|
Q 53.49 21.70 53.49 21.21
|
||||||
|
L 53.51 19.27
|
||||||
|
Q 53.52 18.77 53.02 18.73
|
||||||
|
Q 51.17 18.57 49.57 19.49
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 65.20 10.95
|
||||||
|
C 68.07 9.93 71.12 8.60 73.50 11.26
|
||||||
|
C 75.62 13.62 74.77 22.16 74.73 25.28
|
||||||
|
Q 74.73 25.73 74.27 25.73
|
||||||
|
L 71.01 25.74
|
||||||
|
Q 70.52 25.75 70.52 25.26
|
||||||
|
L 70.46 15.44
|
||||||
|
A 1.94 1.94 0.0 0 0 67.94 13.60
|
||||||
|
L 67.31 13.81
|
||||||
|
Q 65.00 14.54 65.00 16.96
|
||||||
|
L 65.00 25.25
|
||||||
|
Q 65.00 25.76 64.49 25.75
|
||||||
|
L 60.99 25.73
|
||||||
|
Q 60.50 25.73 60.50 25.24
|
||||||
|
L 60.50 10.55
|
||||||
|
Q 60.50 10.15 60.88 10.07
|
||||||
|
Q 62.86 9.63 64.41 10.82
|
||||||
|
Q 64.77 11.10 65.20 10.95
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 88.99 14.04
|
||||||
|
Q 88.99 14.40 88.66 14.26
|
||||||
|
C 77.54 9.40 79.14 26.39 88.07 21.35
|
||||||
|
Q 88.64 21.03 88.86 21.65
|
||||||
|
L 89.65 23.85
|
||||||
|
Q 89.85 24.41 89.32 24.69
|
||||||
|
C 85.26 26.87 79.22 26.60 77.26 21.72
|
||||||
|
C 74.04 13.67 80.85 7.31 88.75 10.62
|
||||||
|
Q 89.00 10.72 89.00 10.99
|
||||||
|
L 88.99 14.04
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 99.26 14.91
|
||||||
|
C 99.01 12.31 94.78 13.33 93.48 14.13
|
||||||
|
Q 92.80 14.55 92.45 13.84
|
||||||
|
L 91.60 12.15
|
||||||
|
Q 91.24 11.45 91.94 11.08
|
||||||
|
C 94.96 9.50 101.46 8.54 103.30 12.40
|
||||||
|
C 104.49 14.90 103.72 21.99 104.05 25.21
|
||||||
|
Q 104.09 25.60 103.71 25.68
|
||||||
|
Q 101.64 26.15 100.02 24.99
|
||||||
|
Q 99.56 24.66 99.10 24.97
|
||||||
|
C 96.20 26.88 91.45 26.18 90.71 22.23
|
||||||
|
C 89.57 16.11 94.44 15.83 98.80 15.46
|
||||||
|
Q 99.31 15.42 99.26 14.91
|
||||||
|
Z
|
||||||
|
M 99.36 21.30
|
||||||
|
L 99.16 19.31
|
||||||
|
A 0.73 0.73 0.0 0 0 98.36 18.66
|
||||||
|
L 97.17 18.78
|
||||||
|
A 2.56 1.65 -5.8 0 0 94.79 20.68
|
||||||
|
L 94.81 20.84
|
||||||
|
A 2.56 1.65 -5.8 0 0 97.52 22.22
|
||||||
|
L 98.71 22.10
|
||||||
|
A 0.73 0.73 0.0 0 0 99.36 21.30
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 133.46 24.24
|
||||||
|
C 125.48 29.89 118.70 15.73 133.64 15.76
|
||||||
|
Q 134.11 15.76 134.20 15.30
|
||||||
|
C 135.05 10.69 129.10 10.95 126.53 12.70
|
||||||
|
A 0.29 0.29 0.0 0 1 126.14 12.63
|
||||||
|
L 125.30 11.50
|
||||||
|
Q 125.13 11.26 125.39 11.11
|
||||||
|
Q 129.80 8.61 133.94 10.31
|
||||||
|
C 137.50 11.78 136.60 21.78 136.46 24.86
|
||||||
|
A 0.53 0.52 7.7 0 1 135.81 25.35
|
||||||
|
Q 134.85 25.13 134.30 24.38
|
||||||
|
Q 133.95 23.90 133.46 24.24
|
||||||
|
Z
|
||||||
|
M 127.66 22.07
|
||||||
|
C 128.97 24.95 133.18 23.20 134.37 21.32
|
||||||
|
C 135.00 20.32 134.75 18.99 134.75 17.82
|
||||||
|
Q 134.74 17.35 134.28 17.32
|
||||||
|
C 131.27 17.08 125.78 17.95 127.66 22.07
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 142.99 11.72
|
||||||
|
Q 144.90 9.29 148.03 9.81
|
||||||
|
Q 148.23 9.84 148.19 10.04
|
||||||
|
L 147.92 11.52
|
||||||
|
A 0.35 0.34 -83.5 0 1 147.56 11.81
|
||||||
|
C 140.78 11.35 142.50 20.90 142.50 24.80
|
||||||
|
Q 142.50 25.24 142.06 25.24
|
||||||
|
L 140.76 25.25
|
||||||
|
Q 140.25 25.26 140.25 24.75
|
||||||
|
L 140.25 10.50
|
||||||
|
Q 140.25 10.00 140.75 10.00
|
||||||
|
L 141.47 10.01
|
||||||
|
Q 141.94 10.01 142.15 10.44
|
||||||
|
Q 142.42 10.99 142.48 11.57
|
||||||
|
Q 142.56 12.27 142.99 11.72
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 160.12 22.83
|
||||||
|
Q 158.33 25.19 154.99 24.87
|
||||||
|
C 147.12 24.12 147.00 12.25 153.69 10.00
|
||||||
|
Q 157.02 8.89 160.06 11.58
|
||||||
|
A 0.32 0.32 0.0 0 0 160.59 11.30
|
||||||
|
L 160.52 10.81
|
||||||
|
Q 160.42 10.04 161.19 10.02
|
||||||
|
L 161.96 10.00
|
||||||
|
Q 162.46 9.99 162.47 10.49
|
||||||
|
Q 162.56 17.25 162.53 23.99
|
||||||
|
C 162.50 30.92 155.14 32.50 150.20 29.54
|
||||||
|
Q 149.73 29.25 149.91 28.73
|
||||||
|
L 150.16 28.05
|
||||||
|
Q 150.38 27.45 150.96 27.73
|
||||||
|
C 155.80 30.08 160.53 29.54 160.39 22.92
|
||||||
|
Q 160.38 22.48 160.12 22.83
|
||||||
|
Z
|
||||||
|
M 155.6663 23.2082
|
||||||
|
A 5.88 4.65 91.4 0 0 160.4586 17.4436
|
||||||
|
A 5.88 4.65 91.4 0 0 155.9537 11.4518
|
||||||
|
A 5.88 4.65 91.4 0 0 151.1614 17.2164
|
||||||
|
A 5.88 4.65 91.4 0 0 155.6663 23.2082
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 179.3873 18.9658
|
||||||
|
A 6.30 6.30 0.0 0 1 173.1648 25.3423
|
||||||
|
L 172.0048 25.3565
|
||||||
|
A 6.30 6.30 0.0 0 1 165.6284 19.1339
|
||||||
|
L 165.5927 16.2142
|
||||||
|
A 6.30 6.30 0.0 0 1 171.8152 9.8377
|
||||||
|
L 172.9752 9.8235
|
||||||
|
A 6.30 6.30 0.0 0 1 179.3516 16.0461
|
||||||
|
L 179.3873 18.9658
|
||||||
|
Z
|
||||||
|
M 172.4693 23.7000
|
||||||
|
A 6.15 4.87 90.1 0 0 177.3500 17.5585
|
||||||
|
A 6.15 4.87 90.1 0 0 172.4907 11.4000
|
||||||
|
A 6.15 4.87 90.1 0 0 167.6100 17.5415
|
||||||
|
A 6.15 4.87 90.1 0 0 172.4693 23.7000
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<path fill="#ff0000" d="
|
||||||
|
M 29.14 19.00
|
||||||
|
A 0.29 0.29 0.0 0 0 29.68 19.00
|
||||||
|
L 32.92 10.23
|
||||||
|
Q 33.00 10.00 33.25 10.00
|
||||||
|
L 37.22 10.01
|
||||||
|
A 0.18 0.18 0.0 0 1 37.38 10.26
|
||||||
|
L 31.19 25.15
|
||||||
|
Q 31.02 25.55 30.60 25.68
|
||||||
|
C 28.92 26.18 27.64 25.38 26.96 23.74
|
||||||
|
Q 24.16 17.00 21.43 10.27
|
||||||
|
A 0.17 0.17 0.0 0 1 21.59 10.03
|
||||||
|
L 25.50 9.99
|
||||||
|
Q 25.80 9.98 25.91 10.27
|
||||||
|
L 29.14 19.00
|
||||||
|
Z"
|
||||||
|
/>
|
||||||
|
<rect fill="#ff0000" x="38.50" y="10.00" width="4.24" height="15.74" rx="0.41"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.8 KiB |
15
static/airline-logos/7C.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 609.9 119.6">
|
||||||
|
<title>Jeju Air logo</title>
|
||||||
|
<desc>제주항공</desc>
|
||||||
|
<polygon fill="#00a7e1" points="522.5,296.5 568.3,272.1 532.3,272" transform="translate(-21.7,-267)" />
|
||||||
|
<polygon fill="#f15a22" points="194.7,358.1 151.9,358.1 159.3,339.5 197.5,339.5 205.5,318.7 167.1,318.7 175.2,298.2 213.4,298.2 222.1,276 183.8,276 150,276 111,380.5 186,380.5" transform="translate(-21.7,-267)" />
|
||||||
|
<g transform="translate(-21.7,-267)">
|
||||||
|
<path fill="#f15a22" d="m 206.4,358.1 -8.9,22.5 c 19.8,2.1 36.7,-0.2 36.7,-0.2 11.7,-1.1 31.4,-4.9 42,-30.4 l 29.6,-74 H 272 l -25.9,64 c 0,0 -4.1,13.9 -18.9,17.6 -5.3,1.4 -14.9,0.8 -20.8,0.5" />
|
||||||
|
<path fill="#f15a22" d="m 35.6,358.1 -8.9,22.5 c 19.8,2.1 36.6,-0.2 36.6,-0.2 11.7,-1.1 31.4,-4.9 42,-30.4 l 29.6,-74 H 101 l -25.9,64 c 0,0 -4.1,13.9 -18.9,17.6 -5.1,1.4 -14.8,0.8 -20.6,0.5" />
|
||||||
|
<path fill="#f15a22" d="m 378.1,276 -24.8,67 c -5.9,15 -11.3,15.8 -19.5,15.8 -9.6,0 -7.2,-7.9 -5.9,-12.5 L 354.4,276 h -33.5 l -27.3,73.5 c -9.5,26.2 12.2,31.7 22.9,31.7 H 334 c 9.6,0 39.8,-2.6 49,-27.3 l 28.8,-77.8 h -33.7 z" />
|
||||||
|
</g>
|
||||||
|
<polygon fill="#f15a22" points="551.8,298.4 521.5,298.4 490.5,381.5 520.9,381.5" transform="translate(-21.7,-267)" />
|
||||||
|
<path fill="#f15a22" d="m 598.5,31.4 c -16.3,0 -25.8,9.4 -30.8,15.4 l 6.1,-15.4 h -30.3 l -31,83.1 h 30.4 l 14.8,-39.4 c 7.6,-17.7 23.8,-18.8 26.6,-18.8 h 11.5 l 9.1,-24.9 z" />
|
||||||
|
<path fill="#f15a22" d="m 437.1,84.6 c 0,0 -4,12.3 -21.2,12.3 -2.6,0 -6.2,-1.5 -5.6,-6.2 0.6,-5.2 4,-7.2 8.3,-8.1 l 20.7,-3.9 z m -22.9,-17 c -19.3,2.1 -34.8,10.9 -36.8,27.4 -1,8.2 3,19.5 24.7,19.5 0,0 16.3,0.6 26.4,-6.3 l -2.4,6.4 h 29.7 l 20.4,-55.8 1.1,-2.9 c 2.8,-7.6 2.7,-24.4 -33.1,-25.2 -15.1,-0.3 -39.8,2.6 -54.4,28.1 h 29.6 c 0,0 4.2,-10.9 17.8,-10.9 0,0 8.5,-0.4 9.2,5.2 0,0 1,8.2 -11.5,11.3 -7.3,1.7 -20.7,3.2 -20.7,3.2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
53
static/airline-logos/7G.svg
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 850">
|
||||||
|
<title>StarFlyer logo</title>
|
||||||
|
<desc>株式会社スターフライヤー</desc>
|
||||||
|
<g>
|
||||||
|
<rect width="1024" height="850"/>
|
||||||
|
<path fill="#FFFFFF" d="M515.894,218.348c-13.374,34.14-23.66,71.374-44.547,98.003
|
||||||
|
c48.453,13.917,96.813-0.52,133.64-21.383c23.688-13.417,50.283-25.9,80.188-28.51c45.513-3.97,90.676,7.67,130.076,30.29
|
||||||
|
c-20.316-4.514-40.53-15.267-65.93-17.817c-117.5-11.81-171.953,54.23-197.787,147.895c32.504-0.775,83.236-13.235,115.82-28.512
|
||||||
|
c17.566-8.233,46.877-28.593,44.547,7.13c-7.58,11.144-20.813,5.333-32.074,7.127c-22.173,3.53-41.706,17.135-40.982,46.328
|
||||||
|
c-6.717-13.947,1.393-37.268,10.689-46.328c-30.96,10.023-64.26,17.702-99.783,23.162c-13.37,33.967-22.07,74.347-48.11,105.134
|
||||||
|
c-25.617,30.286-79.787,61.227-124.733,48.113c-42.82-12.5-35.64-70.313-8.907-99.787c30.407-33.527,95.987-52.06,142.547-55.24
|
||||||
|
c20.553-44.185,39.41-90.071,73.06-121.165c-33.267,12.724-76.146,20.66-114.04,10.69c-28.88,28.273-74.38,69.543-149.68,64.146
|
||||||
|
c-44.146-3.163-104.687-20.677-110.473-55.237c-7.09-42.327,44.08-55.883,81.966-58.803c60.82-4.683,101.954,17.25,146.113,33.857
|
||||||
|
c21.087-21.08,32.49-51.85,40.98-85.53c-52.486-0.277-132.53-0.606-174.62-23.165c-7.99-4.282-19.44-12.347-17.82-23.163
|
||||||
|
c20.747,30.738,94.093,41.058,142.55,40.985c17.823-0.03,34.89-2.867,51.673-3.567c11.577-38.123,26.203-74.408,51.677-101.566
|
||||||
|
c23.899-25.487,57.279-47.032,99.783-48.11c18.93-0.48,49.87,2.918,46.33,40.983c-3.497,37.545-37.88,67.249-65.934,83.749
|
||||||
|
C582.453,205.501,547.82,213.195,515.894,218.348z M613.896,173.802c18.63-12.562,39.504-37.155,46.33-55.238
|
||||||
|
c2.986-7.91,5.554-20.165,3.563-28.51c-6.69-28.048-53.727-10.856-69.493-1.782c-41.721,24.014-66.007,72.995-76.62,121.167
|
||||||
|
C547.656,200.118,585.453,192.98,613.896,173.802z M294.94,280.715c-26.51,3.187-57.93,17.89-55.237,48.107
|
||||||
|
c2.457,27.546,45.13,42.353,76.624,44.546c60.997,4.253,96.213-31.76,119.383-60.58
|
||||||
|
C401.667,299.749,345.553,274.632,294.94,280.715z M384.033,483.847c-13.853,12.587-30.486,33.813-32.073,53.453
|
||||||
|
c-3.54,43.947,38.423,44.847,65.934,33.86c51.347-20.514,79.396-78.5,92.653-130.08c-0.1-1.087-0.267-2.107-1.78-1.78
|
||||||
|
c-1.086,0.1-2.11,0.267-1.78,1.78C465.787,443.8,413.713,456.894,384.033,483.847z"/>
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M109.967,737.424h-9.25c0-2.544-0.817-4.497-2.454-5.864c-1.64-1.366-3.963-2.05-6.983-2.05
|
||||||
|
c-2.827,0-5.15,0.76-6.957,2.29c-1.813,1.523-2.72,3.48-2.72,5.86c0,3.243,2.21,5.93,6.626,8.057l7.387,3.526
|
||||||
|
c5.374,2.577,9.207,5.294,11.513,8.153c2.303,2.86,3.457,6.34,3.457,10.44c0,5.05-1.884,9.233-5.647,12.536
|
||||||
|
c-3.77,3.304-8.53,4.96-14.28,4.96c-5.53,0-10.21-1.56-14.04-4.673c-3.827-3.117-5.744-6.927-5.744-11.443
|
||||||
|
c0-0.347,0.034-0.95,0.097-1.807h9.007c0.19,2.923,1.243,5.24,3.15,6.957c1.907,1.716,4.383,2.573,7.437,2.573
|
||||||
|
c3.05,0,5.616-0.874,7.696-2.62c2.083-1.747,3.12-3.91,3.12-6.483c0-2.447-1.023-4.604-3.073-6.46
|
||||||
|
c-2.047-1.86-5.693-3.947-10.94-6.267c-5.56-2.45-9.447-4.92-11.653-7.414c-2.21-2.496-3.313-5.633-3.313-9.416
|
||||||
|
c0-5.021,1.827-9.134,5.48-12.347c3.653-3.21,8.343-4.813,14.067-4.813c4.86,0,9.08,1.477,12.653,4.43
|
||||||
|
c3.573,2.96,5.363,6.457,5.363,10.49V737.424z"/>
|
||||||
|
<path fill="#FFFFFF" d="M197.947,730.27v54.301h-9.153V730.27h-16.97v-8.386h43.333v8.386H197.947z"/>
|
||||||
|
<path fill="#FFFFFF" d="M308.18,766.453H290.4l-4.577,18.117h-9.437l17.113-62.687h13.203l16.017,62.687h-10.197L308.18,766.453z
|
||||||
|
M306.18,758.063l-6.53-28.077l-7.153,28.077H306.18z"/>
|
||||||
|
<path fill="#FFFFFF" d="M392.73,758.443v26.127h-9.153v-62.687h19.117c5.943,0,10.663,1.636,14.157,4.906
|
||||||
|
c3.497,3.276,5.243,7.696,5.243,13.257c0,4.383-1.12,8.013-3.36,10.894c-2.24,2.873-5.36,4.723-9.367,5.553l16.493,28.077h-10.68
|
||||||
|
l-14.49-26.127H392.73z M392.73,749.96h8.39c7.847,0,11.773-3.243,11.773-9.724c0-6.643-3.957-9.967-11.867-9.967h-8.297V749.96z"
|
||||||
|
/>
|
||||||
|
<path fill="#FFFFFF" d="M504.497,730.27v17.357h18.92v8.387h-18.92v28.557h-9.157v-62.687h32.75v8.386H504.497z"/>
|
||||||
|
<path fill="#FFFFFF" d="M605.863,776.177h32.42v8.394h-41.57v-62.687h9.15V776.177z"/>
|
||||||
|
<path fill="#FFFFFF" d="M717.106,745.767l12.584-23.883h10.203l-18.167,33.319v29.367h-9.15v-29.367L694.7,721.884h10.25
|
||||||
|
L717.106,745.767z"/>
|
||||||
|
<path fill="#FFFFFF" d="M814.76,730.27v17.45h24.787v8.391H814.76v20.066h29.507v8.394h-38.66v-62.687h37.613v8.386H814.76z"/>
|
||||||
|
<path fill="#FFFFFF" d="M919.993,758.443v26.127h-9.153v-62.687h19.117c5.943,0,10.663,1.636,14.156,4.906
|
||||||
|
c3.497,3.276,5.243,7.696,5.243,13.257c0,4.383-1.12,8.013-3.356,10.894c-2.243,2.873-5.363,4.723-9.37,5.553l16.493,28.077
|
||||||
|
h-10.68l-14.49-26.127H919.993z M919.993,749.96h8.391c7.847,0,11.772-3.243,11.772-9.724c0-6.643-3.956-9.967-11.866-9.967
|
||||||
|
h-8.297V749.96z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.6 KiB |
23
static/airline-logos/7L.svg
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 253.97 106.67">
|
||||||
|
<title>Silk Way West Airlines</title>
|
||||||
|
<desc>Silk Way West Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Silk Way West Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>7L</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/7L</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#114495" d="M243.23,28.47h-11L223.73,55h-.15L214.8,28.47H203.4l13.65,36.38a6.58,6.58,0,0,1,.45,2.39A5.52,5.52,0,0,1,217,69.5a4.49,4.49,0,0,1-1.36,1.76,4.44,4.44,0,0,1-2.3.86,29.34,29.34,0,0,1-3.14-.1l-3.09-.28v8.78c1.09.11,2.17.2,3.26.28s2.18.1,3.26.1a18.49,18.49,0,0,0,6.21-.89,10.07,10.07,0,0,0,4.28-2.85,15.61,15.61,0,0,0,2.86-5Z"/>
|
||||||
|
<path fill="#114495" d="M192.75,52.25a15.13,15.13,0,0,1-.1,1.82,10.32,10.32,0,0,1-.54,2.33,7.37,7.37,0,0,1-1.35,2.3,6.83,6.83,0,0,1-2.54,1.78,10.93,10.93,0,0,1-4.1.7,11.53,11.53,0,0,1-3.23-.4,4.59,4.59,0,0,1-2.38-1.5,4.72,4.72,0,0,1-.92-3.05,5,5,0,0,1,.9-3.06,5.63,5.63,0,0,1,2.3-1.73,15.47,15.47,0,0,1,3.1-.91c1.11-.19,2.24-.35,3.36-.5a26.15,26.15,0,0,0,3.13-.6,6,6,0,0,0,2.36-1.15Zm-14-11.85a6,6,0,0,1,2.15-4.5,7.78,7.78,0,0,1,4.9-1.35,13.75,13.75,0,0,1,3.46.34,4.52,4.52,0,0,1,2.49,1.51,5.4,5.4,0,0,1,1,3.4,3.18,3.18,0,0,1-1.05,2.5,6.71,6.71,0,0,1-2.8,1.31,31.56,31.56,0,0,1-4,.69q-2.25.26-4.73.6a32.43,32.43,0,0,0-4.85,1,14.08,14.08,0,0,0-4.23,2,9.06,9.06,0,0,0-3,3.43A11.89,11.89,0,0,0,167,56.67a12.44,12.44,0,0,0,1,5.18,9.72,9.72,0,0,0,2.82,3.61A11.87,11.87,0,0,0,175,67.6a18.41,18.41,0,0,0,5.16.7,24.26,24.26,0,0,0,4.74-.46,18,18,0,0,0,4.48-1.53,14,14,0,0,0,3.84-2.81,12.22,12.22,0,0,0,.26,1.9c.14.64.3,1.25.49,1.85h10.8A7.18,7.18,0,0,1,204,65.1a22,22,0,0,1-.43-3c-.1-1.11-.14-2.26-.14-3.45V38.44a10.45,10.45,0,0,0-1-4.72,9,9,0,0,0-2.74-3.18,13.93,13.93,0,0,0-3.94-1.92,24.68,24.68,0,0,0-4.59-1,40.55,40.55,0,0,0-4.74-.25,33.91,33.91,0,0,0-5.18.39,23,23,0,0,0-4.82,1.3,14.93,14.93,0,0,0-4.05,2.41,11.29,11.29,0,0,0-2.89,3.7,13.71,13.71,0,0,0-1.29,5.17Z"/>
|
||||||
|
<polygon fill="#114495" points="168.45 28.47 157.5 28.47 150.38 54.72 150.23 54.72 143.63 28.47 133.28 28.47 126.83 54.8 126.68 54.8 119.55 28.47 108.3 28.47 120.6 67.25 131.63 67.25 138.23 41.22 138.38 41.22 145.28 67.25 156.23 67.25 168.45 28.47"/>
|
||||||
|
<polygon fill="#114495" points="69.98 67.25 80.63 67.25 80.63 53.9 84.75 49.92 95.4 67.25 108.3 67.25 92.03 42.72 106.65 28.47 94.05 28.47 80.63 42.42 80.63 13.69 69.98 13.69 69.98 67.25"/>
|
||||||
|
<rect fill="#114495" x="54.3" y="13.69" width="10.65" height="53.55"/>
|
||||||
|
<rect fill="#114495" x="38.7" y="13.69" width="10.65" height="8.77"/>
|
||||||
|
<rect fill="#114495" x="38.7" y="28.47" width="10.65" height="38.78"/>
|
||||||
|
<path fill="#114495" d="M0,54.65A14.47,14.47,0,0,0,1.2,60,12,12,0,0,0,4,63.88a14.49,14.49,0,0,0,4,2.56,21.05,21.05,0,0,0,4.86,1.41,31.14,31.14,0,0,0,5.31.44,31.52,31.52,0,0,0,5.24-.43,21.21,21.21,0,0,0,4.81-1.39,14.16,14.16,0,0,0,4-2.53,11.13,11.13,0,0,0,2.69-3.84,13.61,13.61,0,0,0,1-5.33,9.36,9.36,0,0,0-1-4.54,8.78,8.78,0,0,0-2.76-3.06,16.16,16.16,0,0,0-3.94-2,40,40,0,0,0-4.55-1.29c-1.54-.35-3-.66-4.45-1a32.78,32.78,0,0,1-3.86-1,7.67,7.67,0,0,1-2.73-1.47,3.19,3.19,0,0,1-.45-4.2,3.53,3.53,0,0,1,1.47-1.1,8.08,8.08,0,0,1,1.92-.5,15,15,0,0,1,1.94-.11A12.49,12.49,0,0,1,21,35a5.45,5.45,0,0,1,2.59,1.61,5.49,5.49,0,0,1,1.16,3.2H34.88a13.58,13.58,0,0,0-1.82-5.95A11.57,11.57,0,0,0,29.2,30a17.21,17.21,0,0,0-5.29-2,29.71,29.71,0,0,0-6.14-.59,32.48,32.48,0,0,0-5,.35,20.78,20.78,0,0,0-4.59,1.17,13.18,13.18,0,0,0-3.8,2.26,10,10,0,0,0-2.57,3.56,12.62,12.62,0,0,0-1,5.1A8.48,8.48,0,0,0,2,44.17a8.76,8.76,0,0,0,2.79,2.93A16.42,16.42,0,0,0,8.69,49a39.84,39.84,0,0,0,4.51,1.22Q17,51,19.74,51.8a13.46,13.46,0,0,1,4.11,1.8,3.15,3.15,0,0,1,1.42,2.63,4.19,4.19,0,0,1-.65,2.35,4.87,4.87,0,0,1-1.69,1.54,7.94,7.94,0,0,1-2.25.81,11.24,11.24,0,0,1-2.39.25,12.63,12.63,0,0,1-3-.36,8.44,8.44,0,0,1-2.6-1.15,5.93,5.93,0,0,1-1.82-2,6.51,6.51,0,0,1-.71-3Z"/>
|
||||||
|
<path fill="#e3000f" d="M254,0,246.3,20.22l-145.59,0c2.38-4.55,7-7,16-8.92,16.3-3.47,44.74-7.29,74.67-1,46.16,9.77,55.82-7.93,57.45-9.56Z"/>
|
||||||
|
<path fill="#817e7e" d="M184.4,99.38a8,8,0,0,0,.83,3.39,6.33,6.33,0,0,0,2,2.26,8.61,8.61,0,0,0,2.86,1.26,14.4,14.4,0,0,0,3.44.39,16,16,0,0,0,2.63-.22,11.24,11.24,0,0,0,2.49-.7,7.52,7.52,0,0,0,2.08-1.27,5.6,5.6,0,0,0,1.43-1.93,6.47,6.47,0,0,0,.53-2.67,5.3,5.3,0,0,0-.6-2.6,4.91,4.91,0,0,0-1.59-1.72,9.41,9.41,0,0,0-2.25-1.1,23.9,23.9,0,0,0-2.6-.7l-2.49-.56a17.71,17.71,0,0,1-2.27-.66,4.58,4.58,0,0,1-1.65-1,2.13,2.13,0,0,1-.64-1.55,2.22,2.22,0,0,1,.42-1.35,2.77,2.77,0,0,1,1.08-.84,5.54,5.54,0,0,1,1.48-.44,8.93,8.93,0,0,1,1.61-.12,7.55,7.55,0,0,1,1.73.18,5.06,5.06,0,0,1,1.56.6,3.63,3.63,0,0,1,1.16,1.12,3.88,3.88,0,0,1,.56,1.73h3.54a7.81,7.81,0,0,0-.83-3.27A5.68,5.68,0,0,0,199,85.53a8.19,8.19,0,0,0-2.75-1.08,15.47,15.47,0,0,0-3.34-.32,11.55,11.55,0,0,0-2.28.22,9.68,9.68,0,0,0-2.17.69,7,7,0,0,0-1.84,1.19A5.18,5.18,0,0,0,185.34,88a5.46,5.46,0,0,0-.48,2.3,5.22,5.22,0,0,0,.61,2.58,5,5,0,0,0,1.6,1.72,9.84,9.84,0,0,0,2.26,1.09,25.64,25.64,0,0,0,2.58.7l2.6.57a15.12,15.12,0,0,1,2.25.69,4.15,4.15,0,0,1,1.59,1.06,2.43,2.43,0,0,1,.6,1.67,2.66,2.66,0,0,1-.5,1.65,3.09,3.09,0,0,1-1.28,1,6.31,6.31,0,0,1-1.69.47,11.59,11.59,0,0,1-1.74.12,10,10,0,0,1-2.12-.21,5.93,5.93,0,0,1-1.83-.69,3.71,3.71,0,0,1-1.3-1.28,4.11,4.11,0,0,1-.55-2Zm-16.33-6a7.49,7.49,0,0,1,.55-2.34,6.41,6.41,0,0,1,1.24-1.94,5.61,5.61,0,0,1,1.89-1.32,6.55,6.55,0,0,1,4.92,0A6,6,0,0,1,178.59,89,6.29,6.29,0,0,1,179.9,91a6.75,6.75,0,0,1,.55,2.38Zm12.29,6a5.17,5.17,0,0,1-1.93,3.15,6.05,6.05,0,0,1-3.65,1.06,7.68,7.68,0,0,1-3-.58,5.79,5.79,0,0,1-2.12-1.56,6.41,6.41,0,0,1-1.21-2.26,8.14,8.14,0,0,1-.33-2.69H184.2a16.52,16.52,0,0,0-.12-2.72,15.25,15.25,0,0,0-.62-2.79,11.79,11.79,0,0,0-1.19-2.6,9.2,9.2,0,0,0-1.85-2.17,8.22,8.22,0,0,0-2.58-1.49,10.44,10.44,0,0,0-7.44.29,9.52,9.52,0,0,0-3.2,2.34,10.62,10.62,0,0,0-2.1,3.55,13.06,13.06,0,0,0-.76,4.48,16.62,16.62,0,0,0,.74,4.55,10.4,10.4,0,0,0,1.93,3.58,8.53,8.53,0,0,0,3.18,2.35,11.26,11.26,0,0,0,4.49.85,10.54,10.54,0,0,0,4.33-.85,8,8,0,0,0,3.15-2.47,9.76,9.76,0,0,0,1.74-4Zm-36,6.83h3.54V94a8.71,8.71,0,0,1,.4-2.69,5.9,5.9,0,0,1,1.18-2.14,5.27,5.27,0,0,1,2-1.42,7.38,7.38,0,0,1,2.81-.51,4.83,4.83,0,0,1,2.34.54,3.63,3.63,0,0,1,1.5,1.5,4.69,4.69,0,0,1,.53,2.29v14.58h3.54V92a12.64,12.64,0,0,0-.36-3.18,6.43,6.43,0,0,0-1.22-2.49,5.48,5.48,0,0,0-2.28-1.63,9.88,9.88,0,0,0-3.55-.58,8.3,8.3,0,0,0-4.09,1,7.37,7.37,0,0,0-2.91,3h-.08V84.63H144.4ZM141,76.42h-3.54v4.33H141Zm-3.54,29.75H141V84.63h-3.54Zm-7.17,0h3.54V76.42h-3.54Zm-12.12,0h3.54V96.59a12.76,12.76,0,0,1,.75-4.69,5.94,5.94,0,0,1,2.49-3,8.85,8.85,0,0,1,4.56-1V84.13a8.73,8.73,0,0,0-3.37.49,7,7,0,0,0-2.58,1.68,11,11,0,0,0-2,2.87h-.08V84.63h-3.33Zm-3.29-29.75h-3.54v4.33h3.54Zm-3.54,29.75h3.54V84.63h-3.54Zm-1.42-2.83a3.36,3.36,0,0,1-.6.17,3,3,0,0,1-.48,0,1,1,0,0,1-.79-.26,1.34,1.34,0,0,1-.29-.79,13,13,0,0,1,0-1.37V90a6.44,6.44,0,0,0-.47-2.55A4.62,4.62,0,0,0,106,85.78a5.92,5.92,0,0,0-1.83-1,10.1,10.1,0,0,0-2.19-.5,18.49,18.49,0,0,0-2.33-.13,14.24,14.24,0,0,0-3.42.38,8.66,8.66,0,0,0-2.86,1.23,6.17,6.17,0,0,0-2,2.23,7.77,7.77,0,0,0-.84,3.38H94a4.35,4.35,0,0,1,.8-2.46,3.76,3.76,0,0,1,1.89-1.26,8.88,8.88,0,0,1,2.69-.35,9.94,9.94,0,0,1,1.7.12,4.85,4.85,0,0,1,1.54.51A2.9,2.9,0,0,1,103.76,89a3.73,3.73,0,0,1,.43,1.86,2,2,0,0,1-.58,1.51,3.51,3.51,0,0,1-1.57.78,19,19,0,0,1-2.31.43c-.87.11-1.8.26-2.79.44a23.71,23.71,0,0,0-2.69.65,8.61,8.61,0,0,0-2.33,1.1,5,5,0,0,0-1.65,1.88,6.54,6.54,0,0,0-.62,3,6.43,6.43,0,0,0,.56,2.76,5,5,0,0,0,1.53,1.88A6.5,6.5,0,0,0,94,106.33a10.63,10.63,0,0,0,2.76.34,10.49,10.49,0,0,0,4.18-.81,9.23,9.23,0,0,0,3.4-2.53,3.57,3.57,0,0,0,.81,2.54,2.92,2.92,0,0,0,2.19.79,6,6,0,0,0,1.46-.15,3.65,3.65,0,0,0,1.08-.43Zm-5.75-4.67a3.9,3.9,0,0,1-.37,1.59,5.19,5.19,0,0,1-1.17,1.58,6.08,6.08,0,0,1-2,1.22,8.71,8.71,0,0,1-3,.49,6.25,6.25,0,0,1-2-.31,3.21,3.21,0,0,1-1.53-1,2.9,2.9,0,0,1-.6-1.86A3.37,3.37,0,0,1,94,98.3a3.78,3.78,0,0,1,1.57-1.19,9.88,9.88,0,0,1,2.16-.6c.8-.13,1.6-.24,2.42-.34a21.93,21.93,0,0,0,2.26-.39,4.94,4.94,0,0,0,1.74-.73Z"/>
|
||||||
|
<path fill="#817e7e" d="M75.59,78.17H72v6.46H68.38v3.12H72v13.71a8.22,8.22,0,0,0,.28,2.4,2.9,2.9,0,0,0,.9,1.44,3.51,3.51,0,0,0,1.59.69,12.09,12.09,0,0,0,2.35.18h2.71V103H78.25a7,7,0,0,1-1.67-.14,1.1,1.1,0,0,1-.79-.56,2.64,2.64,0,0,1-.2-1.22V87.75h4.29V84.63H75.59Zm-25,21.21a8,8,0,0,0,.83,3.39,6.34,6.34,0,0,0,2,2.26,8.61,8.61,0,0,0,2.86,1.26,14.4,14.4,0,0,0,3.44.39,16,16,0,0,0,2.63-.22,11.24,11.24,0,0,0,2.49-.7,7.52,7.52,0,0,0,2.08-1.27,5.6,5.6,0,0,0,1.43-1.93,6.47,6.47,0,0,0,.53-2.67,5.3,5.3,0,0,0-.6-2.6,4.91,4.91,0,0,0-1.59-1.72,9.41,9.41,0,0,0-2.25-1.1,23.91,23.91,0,0,0-2.6-.7l-2.49-.56A17.72,17.72,0,0,1,57,92.53a4.57,4.57,0,0,1-1.65-1A2.13,2.13,0,0,1,54.75,90a2.22,2.22,0,0,1,.42-1.35,2.77,2.77,0,0,1,1.08-.84,5.54,5.54,0,0,1,1.48-.44,8.93,8.93,0,0,1,1.61-.12,7.55,7.55,0,0,1,1.73.18,5.06,5.06,0,0,1,1.56.6,3.63,3.63,0,0,1,1.16,1.12,3.88,3.88,0,0,1,.56,1.73h3.54A7.81,7.81,0,0,0,67,87.61a5.68,5.68,0,0,0-1.91-2.08,8.2,8.2,0,0,0-2.75-1.08A15.47,15.47,0,0,0,59,84.13a11.56,11.56,0,0,0-2.28.22,9.68,9.68,0,0,0-2.17.69,7,7,0,0,0-1.84,1.19A5.17,5.17,0,0,0,51.48,88a5.46,5.46,0,0,0-.48,2.3,5.22,5.22,0,0,0,.61,2.58,5,5,0,0,0,1.6,1.72,9.84,9.84,0,0,0,2.26,1.09,25.61,25.61,0,0,0,2.58.7l2.6.57a15.11,15.11,0,0,1,2.25.69,4.15,4.15,0,0,1,1.59,1.06,2.43,2.43,0,0,1,.6,1.67,2.67,2.67,0,0,1-.5,1.65,3.09,3.09,0,0,1-1.28,1,6.31,6.31,0,0,1-1.69.47,11.59,11.59,0,0,1-1.74.12,10,10,0,0,1-2.12-.21,5.93,5.93,0,0,1-1.83-.69,3.71,3.71,0,0,1-1.3-1.28,4.11,4.11,0,0,1-.55-2Zm-16.33-6A7.5,7.5,0,0,1,34.76,91,6.42,6.42,0,0,1,36,89.06a5.61,5.61,0,0,1,1.89-1.32,6.55,6.55,0,0,1,4.92,0A6,6,0,0,1,44.73,89,6.29,6.29,0,0,1,46,91a6.75,6.75,0,0,1,.55,2.38Zm12.29,6a5.17,5.17,0,0,1-1.93,3.15,6.05,6.05,0,0,1-3.65,1.06,7.68,7.68,0,0,1-3-.58,5.79,5.79,0,0,1-2.12-1.56,6.42,6.42,0,0,1-1.21-2.26,8.15,8.15,0,0,1-.33-2.69H50.34a16.52,16.52,0,0,0-.12-2.72,15.23,15.23,0,0,0-.62-2.79,11.79,11.79,0,0,0-1.19-2.6,9.2,9.2,0,0,0-1.85-2.17A8.23,8.23,0,0,0,44,84.68a10.44,10.44,0,0,0-7.44.29,9.52,9.52,0,0,0-3.2,2.34,10.61,10.61,0,0,0-2.1,3.55,13.06,13.06,0,0,0-.76,4.48,16.62,16.62,0,0,0,.74,4.55,10.4,10.4,0,0,0,1.93,3.58,8.53,8.53,0,0,0,3.18,2.35,11.26,11.26,0,0,0,4.49.85,10.54,10.54,0,0,0,4.33-.85,8,8,0,0,0,3.15-2.47,9.76,9.76,0,0,0,1.74-4ZM30.34,84.63H26.67l-4.83,17.63h-.08l-4.5-17.63H13.38L9,102.25H9L4.09,84.63H.17l6.92,21.54h3.83L15.25,89h.08l4.37,17.13h3.75Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 10 KiB |
27
static/airline-logos/8K.svg
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 201.3 18.2">
|
||||||
|
<title>K-Mile Air</title>
|
||||||
|
<desc>K-Mile Air logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>K-Mile Air</Airline:name>
|
||||||
|
<Airline:iataCode>8K</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/8K</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#0053a1" d="M146.32,14.92l-4.77,3.19h-1.16s14.94-10.01,14.94-10.01l-.06,9.99h-1.16s0-3.18,0-3.18h-7.81ZM154.16,9.66l-6.99,4.68h6.96s.03-4.68.03-4.68Z"/>
|
||||||
|
<path fill="#0053a1" d="M171.12,9.98c-.28-.69-1.08-1.14-2.75-1.14-1.91,0-3.97.84-4.73,1.85-.76,1.01.69,1.44,1.85,1.81l2.68.96c1,.46,1.24,1.05.59,1.92-1.2,1.61-4.79,2.82-7.67,2.82-2.48,0-3.79-.83-3.68-2.07l1.17-.25c-.01,1.03.84,1.74,2.99,1.74,2.33,0,5.14-1.01,6.1-2.29.82-1.09-.89-1.55-2.12-1.96l-2.52-.92c-.88-.4-1.12-.96-.54-1.73,1.08-1.44,3.72-2.45,6.39-2.46,1.79,0,3.1.52,3.32,1.35l-1.07.36Z"/>
|
||||||
|
<path fill="#0053a1" d="M172.21,18.06h-1.13s7.25-9.68,7.25-9.68h1.13s-7.25,9.68-7.25,9.68Z"/>
|
||||||
|
<path fill="#0053a1" d="M181.57,14.87l-4.77,3.19h-1.16s14.94-10.01,14.94-10.01l-.06,9.99h-1.16s0-3.18,0-3.18h-7.81ZM189.42,9.61l-6.99,4.68h6.96s.03-4.68.03-4.68Z"/>
|
||||||
|
<path fill="#0053a1" d="M17.9,17.94l-4.32-7.77-5.81,7.77H0S13.42,0,13.42,0h7.76s-5.53,7.4-5.53,7.4L30.69,0h9.6s-18.25,8.5-18.25,8.5l5.9,9.44h-10.05Z"/>
|
||||||
|
<path fill="#0053a1" d="M29.13,13.37l2.68-3.58h11.35s-2.68,3.58-2.68,3.58h-11.35Z"/>
|
||||||
|
<path fill="#0053a1" d="M69.58,17.95l5.53-10.33-14.95,10.33h-3.09s.82-10.33.82-10.33l-10.28,10.33h-7.72S58.37,0,58.37,0h7.67s-1.11,9.58-1.11,9.58L78.51.01h7.76s-8.93,17.94-8.93,17.94h-7.76Z"/>
|
||||||
|
<path fill="#0053a1" d="M81.51,17.95L94.93.02h7.76s-13.42,17.94-13.42,17.94h-7.76Z"/>
|
||||||
|
<path fill="#0053a1" d="M94.79,17.96L108.21.02h7.76s-10.46,13.99-10.46,13.99h9.33s-2.96,3.95-2.96,3.95h-17.09Z"/>
|
||||||
|
<path fill="#0053a1" d="M115.12,17.96L128.54.02h17s-2.96,3.96-2.96,3.96h-9.24s-2.23,2.98-2.23,2.98h8.75s-2.96,3.96-2.96,3.96h-8.75s-2.31,3.09-2.31,3.09h9.24s-2.96,3.95-2.96,3.95h-17Z"/>
|
||||||
|
<polygon fill="#ffd300" points="153.58 .47 153.26 .89 200.99 .86 201.3 .45 153.58 .47"/>
|
||||||
|
<polygon fill="#ffd300" points="152.69 1.66 152.38 2.07 200.11 2.05 200.42 1.63 152.69 1.66"/>
|
||||||
|
<polygon fill="#ffd300" points="151.8 2.84 151.49 3.26 199.22 3.23 199.53 2.82 151.8 2.84"/>
|
||||||
|
<polygon fill="#ffd300" points="150.91 4.03 150.6 4.45 198.33 4.42 198.64 4 150.91 4.03"/>
|
||||||
|
<polygon fill="#ffd300" points="149.98 5.27 149.67 5.68 197.4 5.66 197.71 5.24 149.98 5.27"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
11
static/airline-logos/9C.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300000 79913">
|
||||||
|
<title>Spring Airlines logo</title>
|
||||||
|
<desc>春秋航空</desc>
|
||||||
|
<path fill="#009846" d="M21477 22922c0,14146 15547,24265 6900,37969 -6233,9878 -19334,-2275 -11736,-9929 1071,-1079 2835,-2434 4475,-2570 -454,-1262 -3583,-9756 -3793,-10658 -6282,140 -22099,15158 -8595,32439 2396,3067 7341,5856 12750,5856 22110,0 19065,-26915 37211,-26915 7231,0 10912,9823 3247,14989 -4267,2469 -7274,-566 -9389,-1983l-7587 8129c3047,4550 19006,11933 29084,-1985 5493,-7586 4274,-17570 -1961,-25318 -8180,-10164 -25975,-1790 -36384,-12568 -5953,-6164 -2250,-15042 4745,-15042 3999,0 8376,4559 7216,9564 -134,577 -299,826 -352,1455 1924,481 9447,2529 10838,2529 5612,-24087 -25478,-34995 -34868,-13734 -880,1993 -1801,4933 -1801,7773z" />
|
||||||
|
<path fill="#009846" d="M210423 38638c0,-1847 118,-6442 1639,-7212 405,-205 358,-251 889,-375 0,2592 654,10168 -957,9648 -510,-165 -1572,-1506 -1572,-2061zm-2890 -9212c-684,458 -1603,868 -2529,1084 0,-1366 276,-3735 542,-4877 727,-169 865,-361 1806,-361 375,1610 181,2227 181,4155zm4335 -10296c1612,0 1084,6137 1084,8309l-1256 387c-20,-4013 -82,-4722 -2718,-5986 552,-1043 1574,-2710 2890,-2710zm-6322 -11922c0,2957 2923,3493 1870,5654 -1435,2946 -5121,4095 -5121,18732 -2189,1158 -5143,2168 -7767,2168 -940,1404 -885,2463 -500,4474 553,2888 4850,33 7906,-1584 0,10030 3793,11445 3793,7767 0,-1478 -612,-8144 -903,-9393l2527 -1268c9,4841 251,4070 -1624,5061 70,836 529,1368 952,1938 1571,2117 2279,1198 3203,952 241,1036 2701,6503 3432,6503 4613,0 2816,-15320 3261,-20402l352 -3803c536,359 2847,2172 2944,2475 360,1130 -234,1708 -234,4208 0,2775 1999,1101 -2,4875 -1273,2401 -3391,9575 -1443,9575 2735,0 6864,-10878 6864,-12464 0,-659 -162,-430 -181,-1264 926,-490 2386,-1900 3432,-1987 -3012,12929 -4856,18786 7406,18786 2748,0 10394,-1295 8062,-5532 -73,-133 -4109,-5147 -5417,-7228 -308,-490 -310,-729 -1019,-788 30,1351 4701,9754 -1806,9754 -7133,0 -7044,-2347 -4358,-10319 1793,-5321 3411,-5937 2196,-7931 -723,-1185 -4244,-2491 -5738,-669 -937,1144 -3407,3614 -4745,3926 -1712,-1146 -1445,-1590 -1445,-3071 2530,0 6942,-5574 11845,-4801 5312,837 4071,-5134 257,-5134 -3159,0 -7654,5238 -15896,5238 -969,0 -666,-1240 -855,-2035 -723,-3042 -5245,-6901 -7941,-1884 -2119,3944 -690,4100 -2945,4100 0,-7731 10091,-5828 5635,-11235 -878,-1066 -2874,-1367 -4865,-3264 -459,-438 -318,-506 -951,-675 -124,220 -181,193 -181,542zm20231 5600c0,2645 -7029,4918 -5576,5638 962,476 5251,-2026 6485,-2742 4967,-2884 6136,-272 6136,-3980 0,-3913 -5629,-3793 -10296,-3793 167,2006 3251,4155 3251,4877z" />
|
||||||
|
<path fill="#009846" d="M150632 39360l0 0zm14812 -9393c-2288,0 1240,-4137 1264,-4155 -335,1776 -443,4155 -1264,4155zm-9935 -13186l0 0zm12464 -5238l361 0 0 542c-692,-481 -76,1 -361,-542zm-12464 5238c12288,0 2408,-7255 2385,-7262 -859,-269 -1012,268 -1459,782 -1473,1693 -8842,4954 -11787,5915 -1645,537 -1413,218 -1602,927 2264,0 2529,476 6044,-97 3449,-587 2486,-693 5516,-625l0 361c-2008,45 -1806,1484 -1806,4155 -1916,1014 -5026,2450 -7347,3672 -6486,3416 -4401,2956 -7285,1024 -1400,2645 945,7889 8061,6616 2901,-519 3287,-3129 5848,-3726 -31,1388 -1229,3151 -1907,4054 -3372,4491 -5908,1716 -6219,5711 -140,1800 633,3842 1623,4505 975,253 4007,-3151 5058,-3432 0,2616 -107,7628 2529,9393 1333,-893 1868,-2804 1522,-5134 -306,-2062 -281,-4510 -265,-6796 23,-3323 5710,-6928 4704,-9024 -1145,125 -432,886 -1806,1806 -62,-2779 -1851,-2249 -969,-4214 635,-1415 1922,-2353 3317,-2469 710,1479 1175,1829 1178,2887 10,2769 -2309,1369 -1257,6584 814,4031 3315,2267 3510,-78 633,0 1579,166 1987,361 -1004,4310 -5768,7700 -9935,8671 209,2516 12825,1214 12825,-7045 3598,2409 6406,12949 20190,10616 5358,-907 -6967,-5713 -9473,-7062 -5788,-3116 -5745,-4737 -9994,-6985 0,-1282 1105,-5945 1445,-7406 570,152 3139,2177 4340,2885 2483,1464 7001,872 3716,-3355 -1568,-2017 -2647,-1222 -4869,-2357 -915,-468 -1504,-988 -2284,-1510 41,-1855 1479,-6249 183,-9395 -801,-1943 -2765,-3444 -4575,-1680 -1034,1008 201,4516 701,6276 980,3453 945,2433 385,6732 -282,2168 -61,2443 -3739,4390 -122,-1467 -2086,-2577 -3432,-2890 0,-1514 -47,-1078 -1005,-1705 -579,-379 -2243,-2502 -4053,-4076z" />
|
||||||
|
<path fill="#009846" d="M100957 35928c3150,-734 94,1722 6021,-1568 781,-434 1309,-930 1525,148 711,3548 -273,7917 -321,10090 -2105,-47 12,-1879 -3879,-981 -1764,301 -1902,57 -1902,-1909 2186,-182 3093,-1299 4260,-1520 966,-184 1340,135 1340,-828 0,-569 -715,-2529 -2529,-2529 -1053,0 -1857,1225 -3613,1264 -65,-784 -559,-1654 -903,-2168zm3251 -7587c1023,0 3979,1096 4696,2168 -1436,-32 -2759,-768 -5448,1417 -1128,917 -5790,6346 -2140,-695 958,-1848 1444,-2889 2891,-2889zm-723 -22941l181 1264c1413,-31 698,-513 1987,-542 0,1314 -753,5434 -1735,6032 -1953,1191 -4922,1735 -7477,1735 35,1581 3501,4293 4335,4516l-2224 1569c-2090,984 -2292,-225 -2292,2586 0,1567 2312,2035 3071,3071 -1592,842 -4219,2710 -6503,2710 -326,0 -1264,-731 -1264,1445 0,1720 839,1560 1535,1897 2597,1256 1611,993 4245,-271 -291,1250 -3896,6473 -5136,8051 -2072,2636 -3808,4507 -6661,6527 -384,272 -768,409 -803,826 -107,1277 1976,-386 3232,-566 4193,-602 7931,-6132 10452,-9599 0,4124 -360,7152 1450,10291 2721,4718 2338,186 6317,186 998,0 2015,6905 4374,5111 1254,-953 2671,-5333 2671,-7821 0,-4469 -360,-5423 0,-9754 2398,1757 5015,11199 17161,11199 1634,0 3675,-2547 -2557,-5030 -2655,-1058 -7457,-3832 -9873,-5481 -2780,-1897 -3163,-2484 -5196,-5101 -1335,-1719 -3708,-3250 -4050,-3717 1937,-930 7587,825 7587,-1445 0,-1831 -4121,-2049 -5454,-2150 -1210,-91 -1210,345 -1591,1066l-1264 0 3847 -3198c2723,-2108 -122,-3657 -2402,-3847 423,-1586 5058,-2032 5058,-4155 0,-1483 -2930,-3071 -4516,-3071 -445,0 -786,547 -1445,723 67,-2992 3063,-7045 -2529,-7045 -1410,0 -2529,1440 -2529,1987z" />
|
||||||
|
<path fill="#009846" d="M275091 38096l0 0zm0 0c-113,1360 -2245,3445 -3202,4385 -1060,1042 -8417,2299 -10707,2299 -960,1107 -387,2193 390,3403 1731,2697 4629,474 8680,-656 13459,-3754 15022,-224 19850,319 4991,561 2168,-6144 -4353,-6137 -2627,3 -6267,542 -7406,542 871,-3260 8481,-5684 4262,-8958 -5247,-4072 -3554,1372 -11668,1372 535,-1477 14695,-5798 15732,-7765 1449,-2746 -4348,-3889 -4509,-4559 -315,-1305 1397,-1350 880,-3572 3048,1613 11378,503 12402,-965 1670,-2393 -1524,-4469 -2494,-5692 -2515,-3172 -8315,-749 -14244,-749 0,-5655 -5779,-6345 -7640,-7174 -4231,-1885 1082,4874 1545,5321 1242,1197 818,1042 676,2756 -2054,0 -8783,1969 -9574,1987 -2278,-4748 -3517,-3038 -3384,-2262 190,1105 1526,2477 -1745,6707 -922,1193 -1110,73 -1662,3938 -751,5252 2942,9818 7033,-4528 1272,-4459 2143,499 7936,-1999 3219,-1388 14503,-3924 16930,-2759 -204,2448 -5845,3955 -6684,4516 -2192,-3273 -7705,-2460 -5194,497 1592,1874 -768,7799 2665,8716 -380,1422 -8028,5793 -9760,6678 -4480,2291 -1115,6319 2216,5480 1073,-270 1928,-1048 3027,-1140zm-6322 -16257c0,868 -1780,3418 -2471,3671 -708,259 -2407,-533 -2407,4096 0,5629 10594,-4754 10224,-6791 -82,-453 -2084,-5025 -5527,-5312 -1247,1862 181,2687 181,4335z" />
|
||||||
|
<path fill="#009846" d="M217287 66817l-1084 0 0 -5419c0,-623 134,-699 181,-1264 2790,0 4155,-5 4155,3793 0,1902 -1321,2890 -3251,2890zm-7045 -7045c896,0 2168,68 2168,1445l0 11741c0,1225 -964,1599 -2168,1626l0 903 8309 0 0 -903c-2981,-66 -2348,-2066 -2348,-6503 1660,37 2465,1885 3460,3224 462,622 2534,3627 2682,4182l19147 0c0,-1578 -173,-3361 181,-4877l-1264 0c-43,1919 -1649,3613 -3613,3613 -1132,0 -2808,205 -3437,-1079 -587,-1200 -357,-9083 -357,-10843 0,-1875 427,-2529 2348,-2529l0 -903 -8309 0 0 903c1578,0 2097,278 2289,1965 182,1602 237,10959 -261,11985 -464,957 -1821,971 -2696,450 -822,-490 -1364,-1477 -1894,-2263 -1127,-1668 -2672,-3376 -3579,-4730 2192,-182 4139,-2186 3627,-4883 -466,-2453 -2542,-3427 -5433,-3427l-8851 0 0 903zm-87247 7045l-1084 0 0 -4697c0,-1003 181,-1071 181,-1987 3055,0 4155,32 4155,3974 0,1903 -1455,2710 -3251,2710zm-7045 -7045c876,0 1554,34 1929,600 674,1017 671,12419 37,13469 -341,564 -1124,725 -1966,743l0 903 8309 0 0 -903c-2941,-66 -2348,-2132 -2348,-6503 1669,37 2815,2235 3613,3432 423,634 2412,3974 3071,3974l12645 0 0 -903c-1838,-41 -2348,-657 -2348,-2529l0 -9754c0,-1875 427,-2529 2348,-2529l0 -903 -8309 0 0 903c1964,0 2348,595 2348,3251 0,2302 142,8139 -178,10119 -289,1789 -2605,2088 -4234,-288 -371,-542 -568,-879 -954,-1394 -564,-753 -2951,-3633 -3124,-4282 5345,-1245 4834,-8309 -1626,-8309l-9212 0 0 903zm76048 3793l1987 5419 -4155 0c329,-832 1865,-4984 2168,-5419zm-7406 11380l0 542 5780 0c0,-1493 -208,-869 -1168,-1180 -1745,-567 -198,-2664 -97,-3877l5419 0c229,981 903,1904 903,3071 0,1631 -1987,-178 -1987,1987l16077 0 0 -903c-1838,-41 -2348,-657 -2348,-2529l0 -9754c0,-2223 818,-2529 2348,-2529l0 -903 -8309 0 0 903c1949,0 2348,470 2348,3251l0 8671c0,4281 -3163,2578 -3517,2253 -715,-654 -1845,-3888 -2242,-4984 -1280,-3534 -2667,-6956 -3995,-10456l-1264 0c-323,1386 -5441,14266 -6186,15129 -238,276 -508,456 -838,607 -1023,467 -924,-1 -924,702zm66474 -15173c1322,110 2529,1141 2529,2348 0,2698 140,8346 -198,10821 -138,1010 -771,1462 -1970,1462l0 1084 5600 0c0,-2010 -1005,-339 -1871,-2103 -549,-1119 -297,-8618 -297,-10180l9470 11123c1396,1777 1025,1522 2452,1522 0,-2036 -227,-13672 345,-15009 681,-1591 1823,-5 1823,-1971l-5600 0 0 903c2208,184 2171,1616 2168,3974 -3,2047 0,4095 0,6142 -858,-574 -5050,-5874 -5904,-6921 -480,-596 -2987,-4098 -3670,-4098l-4877 0 0 903zm-109104 0c1441,120 2348,1335 2348,1806l0 10838c0,3068 -2168,786 -2168,3071l5780 0c0,-1977 -584,-238 -1763,-1849 -931,-1272 -585,-8544 -585,-10615 779,522 8523,10013 9615,11339 1280,1573 951,1487 2487,1487l0 -13006c0,-1931 353,-2920 2168,-3071l0 -903 -5780 0 0 903c2225,50 2357,1695 2349,3973 -8,2107 -1,4216 -1,6323l-4641 -5475 -3994 -4857c-424,-478 -403,-210 -578,-867l-5238 0 0 903zm19509 7767c0,3423 1907,6732 5094,7732 5047,1583 7172,-1152 10622,-1229 0,-3758 -485,-4654 1445,-4697l0 -1084 -6684 0c-416,0 -542,126 -542,542 0,1063 1987,61 1987,1987 0,2642 -335,3613 -3432,3613 -5809,0 -5514,-14451 181,-14451 2780,0 4233,1388 4877,4155l1084 0 -181 -5419 -1084 0c-136,584 -307,793 -361,1445 -716,-479 -924,-714 -1828,-1062 -5572,-2145 -11178,2249 -11178,8468zm108382 -7767c961,0 1671,71 1997,713 576,1134 480,12053 78,13104 -283,741 -1145,975 -2075,995l0 903 14090 0 0 -4877 -1084 0c0,2121 -1507,3613 -3613,3613 -3974,0 -3432,-1345 -3432,-6684 2005,0 3202,505 3251,2710l1084 0 0 -6684c-1859,0 -572,695 -1568,1864 -738,866 -1711,846 -2767,846l0 -5600c0,-818 928,-542 2890,-542 3351,0 2654,3251 3793,3251 1048,0 361,-2462 361,-4516l-13006 0 0 903zm-161669 6864l-1084 0 0 -5961c0,-684 422,-542 1445,-542 3707,0 3765,6503 -361,6503zm-7045 -6864c1484,0 2168,513 2168,1987l0 10838c0,1535 -779,1871 -2168,1987l0 903 8309 0 0 -903c-3026,-67 -2348,-1825 -2348,-6684 2715,0 5579,189 7386,-2007 1385,-1684 1563,-7024 -4857,-7024l-8490 0 0 903zm-12283 3071c0,2738 686,4122 3615,5417 1655,732 4333,1502 4333,3796 0,2142 -2543,2925 -4340,2173 -923,-386 -1332,-893 -1880,-1733 -1149,-1763 -388,-2426 -1548,-2426 -416,0 -542,126 -542,542 0,5311 -406,4877 1264,4877 18,-794 122,-563 181,-1264 673,180 2552,2318 6173,1296 3179,-897 3762,-2912 3762,-5631 0,-5034 -8129,-4474 -8129,-8129 0,-3141 5814,-2312 6142,1626l1084 0 0 -4516 -1264 0c-41,488 -85,491 -181,903 -1004,-672 -887,-804 -2369,-1065 -3037,-534 -6302,1003 -6302,4135zm196713 181c0,2690 722,3776 3368,5122 1695,863 3860,1234 4420,3180 999,3471 -5494,5489 -7065,-1257 -1464,0 -1084,-208 -1084,4877 0,690 1294,1097 1445,-723 791,211 2149,2271 6151,1273 1908,-476 3784,-2232 3784,-4344l0 -903c0,-5522 -8129,-5062 -8129,-8129 0,-682 -88,-1296 816,-1894 1944,-1286 4627,157 5326,3158l1084 0 -181 -4516 -1084 0c-96,412 -140,415 -181,903 -3986,-2669 -8671,-586 -8671,3251zm-43533 -3251c696,0 1237,12 1661,326 328,243 687,937 687,1480l0 10838c0,1641 -753,2132 -2348,2168l0 903 8309 0 0 -903c-1175,-98 -2168,-339 -2168,-1626l0 -11561c0,-1217 923,-1626 2168,-1626l0 -903 -8309 0 0 903z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
29
static/airline-logos/9S.svg
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 54.95">
|
||||||
|
<title>Southern Air logo</title>
|
||||||
|
<path fill="#231f20" d="M582.31-.37a4.49,4.49,0,0,1-.44,1.31c-2.81,3.72-5.69,7.39-8.47,11.13a2.83,2.83,0,0,1-2.61,1.22c-19.09-.06-38.19,0-57.28-.11a3.48,3.48,0,0,0-3.14,1.38c-1.63,2.1-3.43,4.06-5.43,6.39h57.77c-3.12,4.13-6,8-9,11.85H495.91l-6.27,8.28H551.3c-.41.64-.63,1-.9,1.4-2.82,3.79-5.69,7.54-8.47,11.36a2.48,2.48,0,0,1-2.3,1.09q-33.89,0-67.79,0c-5.54,0-8.21-3.69-6.35-8.95a19.58,19.58,0,0,1,2.77-5.13c6.91-9.23,13.76-18.51,20.95-27.52A36.18,36.18,0,0,1,511.34-.11c.08,0,.14-.17.21-.26Z"/>
|
||||||
|
<path fill="#242021" d="M126-.37c-3.12,4.16-6.21,8.36-9.42,12.46a3.32,3.32,0,0,1-2.34.92q-24.32.08-48.65,0c-3.07,0-6.14,0-9.21,0a2.55,2.55,0,0,0-1.76.64c-1.77,2.16-3.41,4.43-5.34,7h4c13.15,0,26.29-.07,39.44.06a16.79,16.79,0,0,1,6.55,1.41c3.79,1.7,4.86,4.88,2.78,8.49A94,94,0,0,1,95.5,40,38,38,0,0,1,73.27,54.28a22.34,22.34,0,0,1-5.09.6q-34.1.06-68.18,0v-.37a13.73,13.73,0,0,0,1-1c2.63-3.39,5.27-6.78,7.85-10.21A2.86,2.86,0,0,1,11.47,42c3.37.09,6.75,0,10.13,0,15.66,0,31.32.12,47,.13a3,3,0,0,0,2.1-.65c2.28-2.77,4.43-5.65,6.81-8.74H75.22c-13.88,0-27.76.09-41.64,0a11.69,11.69,0,0,1-5.71-1.55c-3.59-2.18-4.17-6.17-1.57-10.5C30.67,13.47,36.16,7.22,44,3.6c3.5-1.62,7.26-2.67,10.9-4Z"/>
|
||||||
|
<path fill="#231f20" d="M661.55-.37c.06.09.11.26.19.27,4.44.65,6,4.73,4.67,8.84a8.25,8.25,0,0,1-.83,2c-4.15,6.3-8.32,12.58-14.5,17.18a36,36,0,0,1-17,6.74V54.8H610.88c.62-6.57,1.24-13.1,1.88-19.85H609c-6.2,0-12.4,0-18.6,0A2.61,2.61,0,0,0,588,36.1C583.52,42.05,579,48,574.51,53.83a2.41,2.41,0,0,1-1.53,1c-7,.07-14.08,0-21.45,0,2.78-3.69,5.39-7.13,8-10.58L593.37-.37ZM642.06,13c-12.16,0-23.88,0-35.6,0a1.82,1.82,0,0,0-1.3.45c-2.21,2.82-4.36,5.69-6.5,8.51.18.2.22.28.25.28q17.6,0,35.18,0a1.77,1.77,0,0,0,1.25-.53C637.53,19,639.66,16.18,642.06,13Z"/>
|
||||||
|
<path fill="#231f20" d="M206-.37s0,.15.08.16c5,1.64,6.67,4.87,4.34,9.7a57.7,57.7,0,0,1-5.94,9c-5.64,7.56-11.27,15.15-17.16,22.52a36.81,36.81,0,0,1-22.57,13.7,14.84,14.84,0,0,1-2.75.18h-54c-.49,0-1,0-1.47,0-4.51-.36-7-3.56-5.66-7.85a21.11,21.11,0,0,1,3.16-6.33q9.84-13.3,20-26.38A38.12,38.12,0,0,1,146.34.08a6.32,6.32,0,0,0,1.08-.45h1.47a6,6,0,0,0,1.34.35c3.16,0,6.33,0,9.49,0a6,6,0,0,0,1.34-.35ZM125.28,41.22h40.83l21.29-27.8c-13.65,0-26.84,0-40,0a2.62,2.62,0,0,0-1.74,1c-3.83,4.94-7.61,9.92-11.39,14.9C131.32,33.2,128.42,37.06,125.28,41.22Z"/>
|
||||||
|
<path fill="#242020" d="M994.35-.37s0,.15.07.16c5.29,1.66,6.86,5,4.53,10.1a26.12,26.12,0,0,1-3.54,5.55c-3,3.71-5.85,7.62-9.35,10.81-5.61,5.13-8.93,6.31-18.8,8.57v20h-23.1c.65-6.53,1.3-13,2-19.7-.52,0-1-.12-1.44-.12-6.94,0-13.88,0-20.81,0a2.62,2.62,0,0,0-2.4,1.24c-4.28,5.76-8.65,11.45-12.91,17.22a3.45,3.45,0,0,1-3.18,1.56c-6.55-.08-13.11,0-20,0l26.08-34.65L913.92,17l22.22-.29-4,5.43h35.38a1.33,1.33,0,0,0,1-.36c2.22-2.87,4.4-5.78,6.7-8.83H939.08c-.91,0-1.83-.06-2.75-.07l-19.1-.09c.31-.45.6-.9.93-1.34q4.37-5.93,8.74-11.83Z"/>
|
||||||
|
<path fill="#241f20" d="M767-.37A4.78,4.78,0,0,1,766.47,1q-20.1,26.43-40.27,52.8a2.8,2.8,0,0,1-1.87,1.1c-7.12.07-14.25,0-21.37,0a4,4,0,0,1-.64-.13L690.84,19.41c-9.3,11.92-18.46,23.67-27.66,35.45H641.59L683.66-.37h20.27a7.56,7.56,0,0,0,.23,1.05q4.62,13.89,9.25,27.76l3.28,9.87L745.94-.37Z"/>
|
||||||
|
<path fill="#231f20" d="M312.16-.37c-.8,1.19-1.55,2.42-2.42,3.56C300.06,15.85,290.49,28.6,280.6,41.1A36.67,36.67,0,0,1,258,54.76a13.47,13.47,0,0,1-2.38.14H201.44a11.58,11.58,0,0,1-2.2-.16c-4.47-.87-6.21-3.73-5.06-8.19.89-3.44,3.11-6.06,5.19-8.78Q214,18.7,228.5-.37h21a4.51,4.51,0,0,1-.42,1.3q-13.6,17.94-27.24,35.87c-1,1.33-2,2.68-3.17,4.26.58,0,.81,0,1,0,12.7,0,25.4.1,38.1.06a3,3,0,0,0,2-1.13q15.53-20.17,31-40.41Z"/>
|
||||||
|
<path fill="#242021" d="M488.7-.37q-20.49,27.15-41,54.3a2.62,2.62,0,0,1-1.77.94c-6.69.06-13.38,0-20.49,0L440.2,35.43c-.78,0-1.35-.11-1.91-.11q-12.81,0-25.61,0c-2.45,0-4.91-.05-7.36-.17a2.62,2.62,0,0,0-2.46,1.19c-4.29,5.75-8.64,11.45-12.93,17.2a3,3,0,0,1-2.71,1.41c-6.5-.08-13,0-19.85,0C381.51,36.34,395.48,18,409.46-.37h21A5.48,5.48,0,0,1,430,.7q-7.55,10-15.13,19.91c-.34.44-.66.9-1.24,1.71,12.09,0,23.68,0,35.28-.05a3.08,3.08,0,0,0,2-1.16c5.5-7.13,10.94-14.32,16.4-21.48Z"/>
|
||||||
|
<path fill="#242020" d="M402.46-.37c-3.26,4.29-6.48,8.62-9.81,12.85a3.24,3.24,0,0,1-2.24,1.1c-8.77.06-17.55,0-26.33,0a2.66,2.66,0,0,0-2.42,1.2q-14.73,19.52-29.59,39a3.06,3.06,0,0,1-2,1.16c-7.48.08-15,0-22.87,0l31.41-41.4H309.27c3.34-4.42,6.41-8.46,9.46-12.51a11.67,11.67,0,0,0,.8-1.37Z"/>
|
||||||
|
<path fill="#242020" d="M783.49,26.89c1.4-2,2.73-4,4.22-5.91,2.86-3.66,5.53-7.53,8.79-10.82A35.65,35.65,0,0,1,815.19-.07c.15,0,.28-.2.41-.3h58.6c4.85,2.33,6.21,5.43,3.65,10.2-2,3.72-4.82,7-7.28,10.47-1.39.28-2.8.47-4.16.85-2.27.62-4.52,1.34-6.75,2.1-.38.13-.63.65-.94,1l-.7.18c-.88-.44-3.81.06-4.4.77-.09.12,0,.35-.06.53l-.69.17c-.43-.15-.91-.5-1.28-.41-2.85.68-5.69,1.43-8.52,2.23-.26.07-.38.63-.57,1l-.7.15a7.38,7.38,0,0,0-2-.37,27.76,27.76,0,0,0-3.08.67c-1.26.26-2.54.44-3.79.78-.31.09-.49.66-.73,1l-.7.12c-1.85-.88-3.26-.64-3.72.63l-.69.14c-.43-.16-.89-.49-1.29-.45-1.37.16-2.71.59-4.07.68q-6.81.47-13.63.75c-2.33.1-4.67,0-7,0a8.75,8.75,0,0,0-1.71.38l-.72-.06a5.11,5.11,0,0,0-1.43-1c-1.88-.52-3.79-.94-5.7-1.33-1-.19-2-.24-2.94-.35l-.69-.38C787.43,28.81,785,27.05,783.49,26.89Zm71.2-13.63c-13.27,0-26,0-38.79,0a1.51,1.51,0,0,0-1.07.48c-3,3.79-5.9,7.62-8.85,11.46.26.14.36.24.45.24q19,0,38,0a2,2,0,0,0,1.39-.6C848.68,21.15,851.52,17.4,854.69,13.26Z"/>
|
||||||
|
<path fill="#252120" d="M895.58-.37h22.11A13.33,13.33,0,0,1,916.9,1q-4.39,6-8.82,11.87a18.06,18.06,0,0,1-2.25.66c-6.21,1-12.42,2-18.64,3.05l-4.93.83c2.33-3.05,4.68-6.08,7-9.14C891.38,5.42,893.47,2.51,895.58-.37Z"/>
|
||||||
|
<path fill="#262221" d="M783.49,26.89c1.48.16,3.94,1.92,4.4,3.14l-3.39-1.88-.23.36,3.34,2.68c1.8,1,3.52,2.22,5.4,3.07,9.12,4.13,18.83,5.21,28.69,5.31a131.15,131.15,0,0,0,31.5-3.72c2.48-.58,4.95-1.23,7.43-1.85L859,36.33c-2.26,2.81-4.56,5.59-6.78,8.43-2.6,3.33-5.13,6.72-7.7,10.11H823.27l8.8-11.65c-.58-.06-1-.15-1.45-.15q-18.32,0-36.63,0a2.48,2.48,0,0,0-2.27,1.12c-2.4,3.26-4.85,6.48-7.38,9.63a3.09,3.09,0,0,1-2.06,1.07c-6.63.08-13.26,0-20.11,0,.34-.55.57-1,.87-1.4Q772.69,40.76,782.36,28A12.15,12.15,0,0,1,783.49,26.89Z"/>
|
||||||
|
<path fill="#242020" d="M901.76,21.24a14.34,14.34,0,0,0-1.41,1.4q-11.83,15.6-23.62,31.23c-.26.34-.53.67-.8,1h-22l16.71-22,2.07-3.2.12-.28h.13v-.14c3.64-1.45,7.22-3.05,10.92-4.31,6.42-2.2,12.92-4.18,19.38-6.26Z"/>
|
||||||
|
<path fill="#83847b" d="M901.76,21.24l1.44-2.6L913.92,17l-2.49,3.24L903,21.2C902.59,21.24,902.18,21.23,901.76,21.24Z"/>
|
||||||
|
<path fill="#86867a" d="M872.66,29.63l-2.07,3.2a6,6,0,0,0-1.7.08c-2.91,1-5.79,2.16-8.68,3.23a6.82,6.82,0,0,1-1.2.19L860.63,34c1.33-.54,2.64-1.13,4-1.61C867.28,31.44,870,30.55,872.66,29.63Z"/>
|
||||||
|
<path fill="#f7e726" d="M872.66,29.63c-2.69.92-5.38,1.81-8,2.76-1.34.48-2.65,1.07-4,1.61-2.48.62-5,1.27-7.43,1.85a131.15,131.15,0,0,1-31.5,3.72c-9.86-.1-19.57-1.18-28.69-5.31-1.88-.85-3.6-2-5.4-3.07l.93-.61,10.11,2.55.72.06a3.49,3.49,0,0,0,.88.24,114.24,114.24,0,0,0,26.82-1.63l.69-.14,3.72-.63.7-.12,9.62-2.09.7-.15,10.37-2.78.69-.17,4.46-1.3.7-.18,11.81-3.4C874,19.9,877.52,19,881,18a7.5,7.5,0,0,0,1.25-.59l4.93-.83c6.22-1,12.43-2,18.64-3.05a18.06,18.06,0,0,0,2.25-.66l9.15-.08,19.1.09c.92,0,1.84,0,2.75.07l-2.94,3.77L913.92,17,903.2,18.64c-6.46,2.08-13,4.06-19.38,6.26-3.7,1.26-7.28,2.86-10.92,4.31l-.12,0v.12Z"/>
|
||||||
|
<path fill="#262221" d="M827.07,31.8a114.24,114.24,0,0,1-26.82,1.63,3.49,3.49,0,0,1-.88-.24,8.75,8.75,0,0,1,1.71-.38c2.33,0,4.67.07,7,0q6.81-.28,13.63-.75c1.36-.09,2.7-.52,4.07-.68C826.18,31.31,826.64,31.64,827.07,31.8Z"/>
|
||||||
|
<path fill="#262221" d="M870.53,20.84l-11.81,3.4c.31-.34.56-.86.94-1,2.23-.76,4.48-1.48,6.75-2.1,1.36-.38,2.77-.57,4.16-.85Z"/>
|
||||||
|
<path fill="#262221" d="M798.65,33.13l-10.11-2.55,0-.17c1,.11,2,.16,2.94.35,1.91.39,3.82.81,5.7,1.33A5.11,5.11,0,0,1,798.65,33.13Z"/>
|
||||||
|
<path fill="#262221" d="M852.87,25.89,842.5,28.67c.19-.33.31-.89.57-1,2.83-.8,5.67-1.55,8.52-2.23C852,25.39,852.44,25.74,852.87,25.89Z"/>
|
||||||
|
<path fill="#262221" d="M841.8,28.82l-9.62,2.09c.24-.35.42-.92.73-1,1.25-.34,2.53-.52,3.79-.78a27.76,27.76,0,0,1,3.08-.67A7.38,7.38,0,0,1,841.8,28.82Z"/>
|
||||||
|
<path fill="#d9cf54" d="M788.58,30.41l0,.17-.93.61-3.34-2.68.23-.36L787.89,30Z"/>
|
||||||
|
<path fill="#262221" d="M858,24.42l-4.46,1.3c0-.18,0-.41.06-.53C854.21,24.48,857.14,24,858,24.42Z"/>
|
||||||
|
<path fill="#262221" d="M831.48,31l-3.72.63C828.22,30.39,829.63,30.15,831.48,31Z"/>
|
||||||
|
<polygon fill="#86867a" points="872.78 29.35 872.78 29.23 872.9 29.21 872.91 29.35 872.78 29.35"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.2 KiB |
17
static/airline-logos/9U.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 349">
|
||||||
|
<title>Air Moldova logo</title>
|
||||||
|
<path fill="#004595" d="M 611.65,0 L 612.58,0 C 589.17,19.41 563.63,36.1 537.29,51.24 C 493.64,75.99 446.61,95.64 397.12,104.89 C 332.83,116.81 268.52,128.62 204.23,140.52 C 190.09,142.97 177.84,151.92 169.08,163.01 C 154.56,181.53 140,200.02 125.43,218.5 C 110.47,237.87 88.17,251.46 63.98,255.42 C 87.64,222.57 111.4,189.8 135.09,156.97 C 156.94,125.74 190.74,103.33 227.77,94.56 C 336.56,67.79 445.38,41.13 554.18,14.4 C 573.34,9.63 592.6,5.21 611.65,0 z" />
|
||||||
|
<path fill="#004595" d="M 57.01,275.04 C 67.09,271.25 78.05,272.3 88.6,272.28 C 97.2,297.94 105.92,323.56 115.13,349 L 97.12,349 C 92.57,347.93 87.74,345.89 85.27,341.68 C 83.44,338.11 82.53,334.17 81.19,330.41 C 69.93,330.35 58.68,330.35 47.43,330.29 C 50.41,324.61 55.13,319.59 61.39,317.63 C 66.14,315.96 71.22,315.75 76.2,315.53 C 73.49,307.68 70.81,299.84 68.1,292 C 56.35,308.34 45.38,325.24 33.33,341.37 C 29.97,346.11 24.2,348.2 18.66,349 L 0.34,349 C 16.49,326.56 32.41,303.95 48.48,281.46 C 50.57,278.49 53.58,276.23 57.01,275.04 z" />
|
||||||
|
<path fill="#004595" d="M 171.75,277.73 C 178.55,273.21 187,272.21 194.99,272.22 C 208.32,272.21 221.64,272.1 234.96,272.38 C 241.87,272.62 249.75,275.51 252.58,282.35 C 255.56,290.65 254.47,300.04 250.89,307.98 C 248.46,313.31 243.43,316.7 238.71,319.83 C 242.64,321.54 248.05,322.94 248.84,327.89 C 249.53,335.02 247.18,342.02 246.05,349 L 238.68,349 C 233.98,347.85 228.83,346.22 226,341.99 C 223.55,338.59 224.47,334.03 222.6,330.41 C 220.51,327.31 216.34,327.1 212.97,326.85 C 204.57,326.65 196.16,326.75 187.76,326.63 C 190.67,320 196.32,314.5 203.42,312.64 C 209.98,310.58 217.38,312.92 223.6,309.59 C 227.89,306.57 229.04,300.85 229.44,295.94 C 229.8,292.78 228.55,288.82 224.96,288.31 C 218.71,287.24 212.33,287.92 206.03,287.72 C 200.8,287.89 194.88,287.15 190.5,290.64 C 187.16,293.02 186.14,297.22 185.34,301.01 C 183.66,309.62 182.61,318.35 181.07,326.99 C 179.97,332.95 177.66,338.96 173.23,343.24 C 169.79,346.42 165.24,348.12 160.7,349 L 152.46,349 C 155.56,331.65 158.4,314.25 161.73,296.95 C 163.15,289.82 165.52,282.13 171.75,277.73 z" />
|
||||||
|
<path fill="#004595" d="M 448.11,275.92 C 454.91,272.74 462.57,272.18 469.97,272.2 C 484.02,272.22 498.07,272.13 512.11,272.39 C 518.62,272.62 526.2,273.99 529.89,279.99 C 534.21,286.78 531.93,295.13 530.74,302.49 C 528.58,313.1 527.74,324.05 524.23,334.34 C 521.45,342.5 513.69,348.26 505.15,349 L 443.91,349 C 438.42,347.87 432.97,344.56 430.93,339.12 C 428.56,332.23 430.15,324.86 431.3,317.9 C 432.99,308.94 434.01,299.8 436.8,291.08 C 438.85,285.08 442.09,278.75 448.11,275.92 M 468.42,288.57 C 464.98,289.21 462.3,291.85 460.91,294.96 C 457.94,301.63 457.69,309.09 456.2,316.16 C 455.66,321.01 453.44,326.4 456.05,330.98 C 459.15,334.71 464.58,334.4 468.98,334.52 C 477.01,334.34 485.12,335.05 493.1,333.88 C 497.74,333.35 501.57,329.44 502.27,324.87 C 503.88,316.29 505.6,307.71 506.93,299.08 C 507.37,295.85 507.25,291.72 504.31,289.66 C 499.92,287.45 494.81,287.83 490.04,287.72 C 482.84,287.93 475.54,287.18 468.42,288.57 z" />
|
||||||
|
<path fill="#004595" d="M 621.02,272.2 C 642.7,272.22 664.39,272.16 686.07,272.22 C 693.17,272.34 701.27,273.09 706.34,278.7 C 711.12,284.77 710.41,293.09 709.15,300.24 C 706.95,312.26 706.1,324.8 700.86,336.01 C 697.58,343.21 690.11,347.57 682.57,349 L 632.11,349 C 634.9,344.39 637.96,339.5 643.08,337.2 C 652.19,332.52 662.78,336.09 672.3,333.23 C 676.05,332.05 678.93,328.84 680.05,325.12 C 682.19,318.23 682.89,311 684.36,303.96 C 685.01,299.87 685.99,295.17 683.43,291.53 C 681.11,288.22 676.63,288.16 673,287.9 C 662.9,287.68 652.79,287.75 642.69,287.73 C 640.55,300.04 638.45,312.36 636.23,324.65 C 634.87,331.21 632.87,338.09 628.02,342.97 C 624.62,346.36 619.94,348 615.35,349 L 607.54,349 C 612.03,323.4 616.52,297.8 621.02,272.2 z" />
|
||||||
|
<path fill="#004595" d="M 723.11,280.98 C 727.95,274.68 736.4,273.09 743.87,272.45 C 756.25,271.95 768.66,272.31 781.05,272.2 C 788.67,272.31 796.56,271.69 803.89,274.25 C 808.33,275.66 811.53,279.68 812.66,284.11 C 814.8,291.74 812.14,299.52 811.06,307.09 C 809.09,316.92 808.5,327.17 804.47,336.46 C 801.38,343.49 794.15,347.94 786.72,349 L 725.13,349 C 719.9,347.81 714.23,345.1 712.29,339.72 C 709.27,331.32 711.85,322.39 713.16,313.92 C 715.28,302.68 716.12,290.51 723.11,280.98 M 749.4,288.63 C 746.36,289.36 743.36,291.25 742.2,294.28 C 739.16,301.56 738.7,309.54 737.22,317.21 C 736.61,321.29 735.24,325.54 736.54,329.62 C 737.53,332.74 741.08,333.87 744.02,334.16 C 750.64,334.85 757.31,334.42 763.96,334.53 C 769.23,334.39 775.09,334.91 779.58,331.6 C 782.86,329.19 783.45,324.87 784.18,321.16 C 785.44,313.73 787.07,306.37 788.13,298.91 C 788.55,295.69 788.35,291.6 785.39,289.6 C 780.94,287.45 775.8,287.83 771,287.72 C 763.8,287.93 756.5,287.16 749.4,288.63 z" />
|
||||||
|
<path fill="#004595" d="M 814.99,272.18 C 822.85,272.35 830.99,271.92 838.5,274.64 C 843.02,276.28 845.49,280.79 846.95,285.09 C 852.12,300.31 857.2,315.56 862.35,330.79 C 872.48,316.45 882.59,302.09 892.71,287.74 C 895.98,283.43 898.49,277.95 903.76,275.73 C 912.09,272 921.42,272.11 930.37,272.21 C 914.38,294.94 898.36,317.65 882.28,340.32 C 878.87,345.35 873,347.98 867.19,349 L 842.44,349 C 832.7,323.6 824.22,297.76 814.99,272.18 z" />
|
||||||
|
<path fill="#004595" d="M 944.97,274.16 C 954.23,271.47 963.98,272.29 973.49,272.27 C 982.56,297.53 991.06,322.99 1000,348.29 L 1000,349 L 981.96,349 C 977.68,347.94 973.35,345.9 970.81,342.16 C 968.78,338.49 967.93,334.33 966.55,330.4 C 955.29,330.38 944.04,330.47 932.79,330.3 C 934.99,326.51 937.32,322.53 941.17,320.19 C 947.16,316.23 954.55,315.7 961.53,315.56 C 958.8,307.68 956.08,299.79 953.35,291.91 C 943.44,306.12 933.76,320.5 923.61,334.55 C 920.72,338.3 918.42,342.71 914.38,345.38 C 911.16,347.46 907.39,348.47 903.63,349 L 885.63,349 C 901.89,326.43 918.1,303.8 934.02,280.99 C 936.67,277.42 940.78,275.34 944.97,274.16 z" />
|
||||||
|
<path fill="#004595" d="M 139.09,279.13 C 144.56,274.1 152.31,272.99 159.42,272.46 C 156.35,290.96 153.07,309.42 149.5,327.82 C 148.59,332.26 147.08,336.68 144.31,340.34 C 140.83,345.26 135.06,347.96 129.26,349 L 121.44,349 C 124.42,332.32 127.33,315.64 130.31,298.96 C 131.71,291.85 133.87,284.42 139.09,279.13 z" />
|
||||||
|
<path fill="#004595" d="M 312,277 C 319.46,272.72 328.56,271.72 336.91,273.4 C 342.2,274.5 347.23,278.3 348.41,283.78 C 352.17,298.55 355.48,313.43 359.06,328.24 C 367.75,313.51 376.45,298.79 385.1,284.04 C 387.34,280.06 390.83,276.76 395.16,275.18 C 401.47,272.85 408.41,272.1 415.08,273.05 C 420.41,273.85 426.01,276.73 427.87,282.11 C 430.53,289.6 428.26,297.57 427.05,305.11 C 424.46,319.75 421.92,334.4 419.07,349 L 412.19,349 C 407.39,347.83 402.54,345.31 400.15,340.79 C 397.64,336.09 398.13,330.54 398.77,325.44 C 400.18,315.65 402.07,305.94 403.82,296.2 C 395.14,310.42 386.59,324.73 377.98,338.99 C 374.63,344.67 368.39,347.98 362.03,349 L 349.68,349 C 344.73,348.05 339.56,345.57 337.26,340.83 C 335.39,336.68 334.57,332.17 333.44,327.79 C 330.96,317.17 328.23,306.62 325.43,296.08 C 323.66,305.88 322.06,315.71 320.24,325.5 C 318.96,332.1 316.66,338.92 311.5,343.53 C 308.14,346.71 303.6,348.19 299.13,349 L 291.46,349 C 294.93,331.55 297.54,313.93 300.81,296.44 C 302.52,289.14 305.39,281.23 312,277 z" />
|
||||||
|
<path fill="#004595" d="M 544.68,280.81 C 550.01,274.27 558.93,273.04 566.82,272.47 C 563.79,289.67 560.68,306.86 557.82,324.09 C 557.18,327.45 557.45,332.34 561.39,333.49 C 572.24,336.31 584.29,332.01 594.56,337.51 C 598.96,339.67 600.24,344.7 601.52,349 L 546.61,349 C 540.01,347.82 533.36,343.02 532.6,335.94 C 531.82,326.88 534.48,318 535.69,309.09 C 537.47,299.42 538.23,288.74 544.68,280.81 z" />
|
||||||
|
<path fill="#ffed00" d="M 214.06,155.82 C 277.39,145.44 340.72,135.04 404.04,124.65 C 376.89,146.82 346.41,165.14 313.5,177.37 C 295.59,183.98 276.86,188.4 257.85,190.27 C 224.64,193.79 191.43,197.33 158.22,200.86 C 166.09,191.18 173.85,181.41 181.77,171.77 C 189.84,162.36 201.92,157.24 214.06,155.82 z" />
|
||||||
|
<path fill="#e53138" d="M 143.88,218.89 C 184.64,215.14 225.4,211.45 266.18,207.96 C 239.89,230.86 207.1,247.46 172.09,250.76 C 149.76,252.08 127.38,252.64 105.01,253.17 C 120.33,244.77 132.78,232.19 143.88,218.89 z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.0 KiB |
17
static/airline-logos/A3.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="26.5 280.5 600 92">
|
||||||
|
<title>Aegean Airlines logo</title>
|
||||||
|
<path fill="#213368" d="M170.3,328.4c-5.1,1.2-28,12-37.3,16.7c-0.2,0.1-5.1,1.2-5.5,1.2c-2.8-0.7-40.5-13.2-60.6-6.7 c-9.8,3.2-39.5,11-39.5,11c-3,0.9,1.7,1.3,3.2,1c1.4-0.2,6.3-1,12.1-2.1c11.6-2.3,18.1-2.7,24.2-3.1c11.6-0.7,29,1.1,43,8 c1.1,0.5,1.6,1.1,1.6,1.8c0.1,2-3.1,5.2-4.4,6c0,0,4.1,0.2,6.6-0.6c1-0.3,2-0.3,3.5-0.4c1.9-0.1,4.5-0.3,8.6-1.1 c8-1.5,11.7-3.5,15.5-5.6l0.3-0.2c2.4-1.3,24.5-10.3,24.5-10.3c13.2-5.4,18.7-0.2,34.5-1.9c15.8-1.7,28.3-6.3,38-7.1 c1.8-0.1-2.3-1.4-3.4-1.5c-4.7-0.5-26.9,0-33.6-0.9C186.5,330.7,175.5,327.3,170.3,328.4"/>
|
||||||
|
<path fill="#213368" d="M204,349.9c0,6.6-3.1,18.6-3.1,18.6c-0.1,0.5-0.3,1.2-0.4,1.5c-0.1,0.3,0.2,0.6,0.7,0.6h8.1c0.5,0,1-0.1,1-0.3 c0-0.2,0.2-0.7,0.3-1.2c0,0,2.8-12.3,2.8-19.2c0-2.2-0.2-4.3-0.4-6.4c-2.9,0.6-6,1.1-9.2,1.5C203.9,346.5,204,348.2,204,349.9"/>
|
||||||
|
<path fill="#213368" d="M210.5,330.2c-1.8-6.1-4.4-11.9-7.7-17.2c-4.5,0.3-7.9,0-11.1-0.3c-0.2,0-0.5,0-0.7,0c4,5,7.2,10.8,9.5,16.9 c0.4,0,0.8,0.1,1.3,0.2C203.6,330,206.8,330.1,210.5,330.2"/>
|
||||||
|
<path fill="#213368" d="M74.6,349.9c0,6.8,2.8,19.2,2.8,19.2c0.1,0.5,0.3,1,0.3,1.2c0.1,0.2,0.5,0.3,1.1,0.3h8.1 c0.5,0,0.8-0.3,0.7-0.6c-0.1-0.4-0.3-1-0.5-1.5c0,0-2.9-11.5-3-18.2c-3.3-0.4-6.4-0.7-9.4-0.8V349.9z"/>
|
||||||
|
<path fill="#213368" d="M85.9,334.9c1.7-6.6,4.5-12.9,8.3-18.4c-3.1,0.2-6.8,0.7-11.8,1.6c-2.7,5.2-4.8,10.9-6.1,16.8 C79.3,334.7,82.5,334.7,85.9,334.9"/>
|
||||||
|
<path fill="#213368" d="M105.9,303.6c10.3-8.6,23.7-13.7,38.1-13.7c11,0,21.3,3,30.2,8.2c2.5-1,4.5-1.7,5.5-2c2.2-0.5,5-0.2,8.5,0.4 c-12-10-27.4-16-44.3-16c-22.3,0-42.2,10.6-54.9,27.1c3.4-1,6.5-1.8,8.5-2.5C100,304.3,102.8,303.8,105.9,303.6"/>
|
||||||
|
<path fill="#213368" d="M180.4,299c-4,0.9-22.2,9.5-29.6,13.2c-0.1,0-4.1,0.9-4.4,0.9c-2.2-0.5-32.1-10.4-48-5.3 c-7.8,2.5-31.3,8.7-31.3,8.7c-2.4,0.7,1.4,1,2.5,0.8c1.1-0.2,5-0.8,9.6-1.7c9.2-1.9,14.3-2.2,19.2-2.5c9.2-0.5,23,0.9,34,6.4 c0.9,0.4,1.3,0.9,1.3,1.5c0,1.5-2.5,4.1-3.5,4.7c0,0,3.2,0.1,5.2-0.4c0.8-0.2,1.6-0.3,2.8-0.3c1.5-0.1,3.6-0.3,6.8-0.9 c6.4-1.2,9.2-2.8,12.3-4.4l0.2-0.1c1.9-1.1,19.4-8.2,19.4-8.2c10.5-4.3,14.9-0.1,27.4-1.5c12.5-1.3,22.5-5,30.1-5.6 c1.5-0.1-1.8-1.1-2.7-1.2c-3.7-0.4-21.3,0-26.7-0.8C193.2,300.8,184.5,298.1,180.4,299"/>
|
||||||
|
<path fill="#213368" d="M309.7,368.8c0.1,0.8-0.4,1.5-1.3,1.5h-16.1c-0.8,0-1.7-0.7-1.8-1.6l-0.5-4.2c-0.1-0.9-0.9-1.6-1.8-1.6h-17.2 c-0.9,0-1.9,0.6-2.2,1.4l-1.9,4.5c-0.4,0.8-1.4,1.4-2.3,1.4h-17.3c-0.9,0-1.3-0.6-0.9-1.4l29.6-60.7c0.4-0.8,1.4-1.5,2.3-1.5h17.2 c0.9,0,1.7,0.7,1.9,1.6L309.7,368.8z M287.6,350l-3.1-22c-0.1-0.9-0.5-1-0.8-0.1l-8.7,20.7c-0.3,0.8,0.1,1.5,1,1.5H287.6"/>
|
||||||
|
<path fill="#213368" d="M373.3,306.7l-2,13.5c-0.1,0.9-1,1.6-1.9,1.6h-26.2c-0.9,0-1.8,0.7-1.9,1.6l-0.9,5.6c-0.1,0.8,0.5,1.5,1.4,1.5 h22.8c0.9,0,1.5,0.7,1.3,1.6l-1.8,11.1c-0.1,0.9-0.9,1.6-1.8,1.6h-22.7c-0.9,0-1.7,0.7-1.8,1.6l-1,7.1c-0.1,0.9,0.5,1.6,1.4,1.6 h28.1c0.9,0,1.5,0.7,1.3,1.6l-1.7,12.1c-0.1,0.9-1,1.6-1.8,1.6h-48.3c-0.9,0-1.5-0.7-1.3-1.6l9.2-60.4c0.1-0.9,1-1.6,1.8-1.6H373.3 "/>
|
||||||
|
<path fill="#213368" d="M495.8,306.7l-2,13.5c-0.1,0.9-1,1.6-1.8,1.6h-26.2c-0.9,0-1.7,0.7-1.9,1.6l-0.9,5.5c-0.1,0.9,0.5,1.6,1.4,1.6 h22.8c0.9,0,1.5,0.7,1.4,1.6l-1.8,11.1c-0.1,0.9-1,1.6-1.9,1.6h-22.7c-0.8,0-1.7,0.7-1.8,1.6l-1,7.1c-0.1,0.9,0.5,1.6,1.4,1.6h28.2 c0.9,0,1.5,0.7,1.4,1.6l-1.7,12.1c-0.1,0.9-1,1.6-1.8,1.6h-48.3c-0.9,0-1.5-0.7-1.4-1.6l9.2-60.4c0.1-0.9,0.9-1.6,1.8-1.6H495.8"/>
|
||||||
|
<path fill="#213368" d="M553.7,368.8c0.2,0.8-0.4,1.5-1.3,1.5h-16c-0.9,0-1.7-0.7-1.8-1.6l-0.5-4.2c-0.1-0.9-0.9-1.6-1.8-1.6h-17.2 c-0.9,0-1.9,0.6-2.3,1.4l-1.9,4.5c-0.3,0.8-1.4,1.4-2.2,1.4h-17.3c-0.9,0-1.3-0.6-0.9-1.4l29.7-60.7c0.4-0.8,1.4-1.5,2.3-1.5h17.2 c0.9,0,1.7,0.7,2,1.6L553.7,368.8z M531.7,350l-3-22c-0.1-0.9-0.5-1-0.9-0.1l-8.6,20.7c-0.3,0.8,0.1,1.5,1,1.5H531.7"/>
|
||||||
|
<path fill="#213368" d="M626.4,306.7l-9.4,62c-0.1,0.9-0.9,1.6-1.8,1.6h-15.6c-0.8,0-1.9-0.6-2.2-1.4l-13.8-30c-0.3-0.8-0.8-2.2-1-3 l-0.7-3.9c-0.1-0.9-0.2-1.2-0.2-0.7c0,0.5,0,1.6,0,2.5c0,0,0,1.5-0.1,2.4c-0.1,0.8-0.2,2.2-0.4,3.1l-4.4,29.6 c-0.1,0.9-1,1.6-1.8,1.6h-15.8c-0.9,0-1.5-0.7-1.4-1.6l9.1-60.4c0.1-0.9,1-1.6,1.9-1.6h15.4c0.8,0,1.9,0.7,2.3,1.5l13.4,29.6 c0.4,0.8,0.9,2.2,1.2,3l1,4.4c0.2,0.9,0.3,0.9,0.3,0l0.3-4.6c0.1-0.9,0.2-2.3,0.4-3.2l4.4-29.1c0.1-0.9,1-1.6,1.9-1.6H626.4"/>
|
||||||
|
<path fill="#213368" d="M420,334.7c-0.9,0-1.6,0-1.6,0.1c0,0-0.7,0-1.6,0h-3.3c-0.9,0-1.7,0.7-1.9,1.6l-1.8,11.1 c-0.1,0.9,0.5,1.6,1.4,1.6h2.1c0.9,0,1.2,0.6,0.8,1.4c0,0-0.8,1.5-1.8,2.5c-2.7,2.8-6.1,4.2-10.2,4.2c-4,0-7-1.4-8.9-4.3 c-1.9-2.9-2.3-7.6-1.3-14.1c0.9-6.6,2.9-11.4,5.6-14.2c2.8-2.8,6.1-4.3,10-4.3c4,0,7,1.4,9,4.3l0.3,0.4c0.2,0.5,1.2,0.9,2.1,0.9 h16.9c0.8,0,1.4-0.7,1.2-1.6c0,0-1.9-7.2-4.6-10.5c-4.7-5.8-12.2-8.7-22.5-8.7c-10,0-18.4,3-24.9,8.8c-6.5,5.9-10.6,14.2-12.2,24.8 c-1.2,7.5-0.7,13.8,1.4,18.9c2.1,5.1,5.2,8.8,9.4,11.1c4.2,2.3,9.9,3.5,16.8,3.5c6.9,0,12.8-1.4,17.8-4.1c5-2.7,9.1-6.5,12.3-11.4 c3.2-4.9,5.3-11.1,6.5-18.6c0.1-1.2,0.2-1.8,0.2-1.8c0.1-0.9-0.5-1.6-1.4-1.6H420z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.9 KiB |
22
static/airline-logos/A5.svg
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 399.68399 61.874202">
|
||||||
|
<title>Air France Hop logo</title>
|
||||||
|
<g transform="translate(-0.158,-0.296)">
|
||||||
|
<path d="m 378.438,0.296 -17.952,25.975 c -2.364,3.416 -6.2,6.707 -10.83,7.061 v 0.797 h 19.967 c 5.3,0 9.166,-3.451 11.785,-7.252 l 18.434,-26.58 h -21.404 z" style="fill:#ed1c24" />
|
||||||
|
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="374.74899" y1="0.29589999" x2="374.74899" y2="34.128399">
|
||||||
|
<stop offset="0.3352" style="stop-color:#FF1E27" />
|
||||||
|
<stop offset="0.6915" style="stop-color:#E81B23" />
|
||||||
|
<stop offset="0.7841" style="stop-color:#A61319" />
|
||||||
|
<stop offset="0.8719" style="stop-color:#9D1218" />
|
||||||
|
<stop offset="0.9551" style="stop-color:#931116" />
|
||||||
|
<stop offset="1" style="stop-color:#800F14"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path d="m 378.438,0.296 -17.952,25.971 c -2.364,3.42 -6.2,6.711 -10.83,7.064 v 0.797 h 19.967 c 5.3,0 9.166,-3.451 11.785,-7.252 l 18.434,-26.58 z" style="fill:url(#SVGID_1_)" />
|
||||||
|
<path d="M 47.806,34.128 V 3.15 h 9.043 v 30.978 z m 208.462,0 -21.719,-18.395 v 18.395 h -7.634 V 3.15 h 6.485 l 21.431,18.107 V 3.15 h 7.634 v 30.978 z m 47.235,-20.983 c -4.087,-2.011 -8.686,-3.64 -14.786,-3.64 -7.283,0 -12.714,3.767 -12.714,9.005 0,5.37 5.526,9.167 12.648,9.167 5.877,0 10.542,-1.502 15.141,-4.152 v 7.666 c -4.06,2.014 -9.456,3.512 -15.522,3.512 -12.394,0 -22.135,-6.324 -22.135,-16.192 0,-9.71 9.934,-15.938 22.104,-15.938 5.746,0 10.954,1.086 15.264,2.843 z M 107.15,34.128 V 3.15 h 30.212 v 6.64 h -21.177 v 7.7 h 20.699 v 6.644 h -20.699 v 9.994 z m 201.815,0 V 3.15 h 31.363 v 6.64 h -22.324 v 5.369 h 21.97 V 21.8 h -21.97 v 5.684 h 22.228 v 6.645 H 308.965 Z M 168.756,22.505 181.247,34.128 h -9.648 c -2.138,0 -3.544,-0.67 -4.664,-1.756 l -8.493,-8.238 c -0.162,-0.162 -0.416,-0.254 -0.735,-0.254 h -5.781 v 10.248 h -9.04 V 3.15 h 19.582 c 10.152,0 14.436,4.564 14.436,9.614 -0.002,5.873 -5.24,8.684 -8.148,9.741 z m -7.218,-5.112 c 3.578,0 5.304,-1.822 5.304,-3.863 0,-2.045 -1.533,-3.74 -5.304,-3.74 h -9.613 v 7.603 z m -70.356,5.112 12.486,11.623 h -9.644 c -2.142,0 -3.547,-0.67 -4.664,-1.756 L 80.863,24.134 C 80.706,23.972 80.447,23.88 80.128,23.88 H 74.351 V 34.128 H 65.308 V 3.15 h 19.581 c 10.156,0 14.436,4.564 14.436,9.614 -0.001,5.873 -5.239,8.684 -8.143,9.741 z m -7.218,-5.112 c 3.574,0 5.3,-1.822 5.3,-3.863 0,-2.045 -1.533,-3.74 -5.3,-3.74 h -9.613 v 7.603 z M 33.663,34.128 29.699,27.327 H 12.391 L 8.782,34.128 H 0.158 L 17.401,3.181 h 7.857 L 44.805,34.128 Z M 15.838,20.876 h 10.091 l -5.238,-9.457 z m 198.305,13.252 -3.867,-6.801 h -16.861 l -3.482,6.801 h -8.4 L 198.334,3.181 h 7.63 l 19.004,30.947 z M 196.799,20.876 h 9.837 l -5.11,-9.457 z" style="fill:#002157" />
|
||||||
|
</g>
|
||||||
|
<g transform="scale(1.1858541,0.84327406)" style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1.03226507">
|
||||||
|
<path d="M 230.81431,72.801216 V 46.375233 h -5.85776 V 56.98967 H 212.36017 V 46.375233 h -5.9018 v 26.425983 h 5.9018 V 62.18678 h 12.59638 v 10.614436 z" />
|
||||||
|
<path d="m 234.11412,59.500138 c 0,3.875811 1.36534,7.135016 4.18412,9.821657 2.77472,2.730685 6.12201,4.051984 10.04187,4.051984 3.87581,0 7.2231,-1.321299 10.04187,-4.051984 2.81877,-2.686641 4.22816,-5.945846 4.22816,-9.821657 0,-3.787724 -1.40939,-7.046929 -4.22816,-9.689527 -2.81877,-2.642598 -6.16606,-3.963897 -10.04187,-4.00794 -3.91986,0 -7.26715,1.365342 -10.04187,4.00794 -2.81878,2.642598 -4.18412,5.901803 -4.18412,9.689527 z m 5.9018,0 c 0,-2.290252 0.79278,-4.2722 2.37834,-5.857759 1.58556,-1.585559 3.56751,-2.422382 5.94585,-2.422382 2.37834,0 4.31624,0.792779 5.9018,2.378338 1.54152,1.585559 2.29025,3.523465 2.3343,5.901803 0,2.466425 -0.79278,4.492417 -2.3343,6.077976 -1.58556,1.585559 -3.52346,2.378339 -5.9018,2.378339 -2.37834,0 -4.36029,-0.79278 -5.94585,-2.422382 -1.58556,-1.585559 -2.37834,-3.611551 -2.37834,-6.033933 z" />
|
||||||
|
<path d="m 275.85135,64.961508 c 3.12707,0 5.72563,-0.836823 7.79566,-2.598555 2.07004,-1.761732 3.12708,-4.007941 3.12708,-6.782669 0,-2.818771 -1.05704,-5.020937 -3.08304,-6.694582 -2.02599,-1.673646 -4.66859,-2.510469 -7.8397,-2.510469 h -9.90975 v 26.425983 h 5.85776 v -7.839708 z m -0.13213,-13.609381 c 1.54151,0 2.81877,0.39639 3.78772,1.101082 0.96895,0.748737 1.45343,1.761733 1.45343,3.083032 0,1.409386 -0.52852,2.510468 -1.49747,3.303248 -0.96896,0.792779 -2.24621,1.189169 -3.78773,1.189169 h -3.87581 v -8.676531 z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
22
static/airline-logos/AA.svg
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 182.17 27.86">
|
||||||
|
<title>American Airlines</title>
|
||||||
|
<desc>American Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>American Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>AA</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AA</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:url(#linear-gradient-4);}.cls-5{fill:#36495a;}</style>
|
||||||
|
<linearGradient id="linear-gradient" x1="171.96" y1="15.81" x2="171.96" y2="33.9" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ed1c24"/><stop offset="0.13" stop-color="#e81b23"/><stop offset="0.27" stop-color="#db1a21"/><stop offset="0.42" stop-color="#c4171d"/><stop offset="0.58" stop-color="#a41317"/><stop offset="0.74" stop-color="#7b0e10"/><stop offset="0.75" stop-color="#780e0f"/></linearGradient><linearGradient id="linear-gradient-2" x1="163.73" y1="17.32" x2="170.33" y2="17.32" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#69231d"/><stop offset="0.26" stop-color="#8d2922"/><stop offset="0.58" stop-color="#b22f26"/><stop offset="0.84" stop-color="#c93329"/><stop offset="1" stop-color="#d1342a"/></linearGradient><linearGradient id="linear-gradient-3" x1="163" y1="16.35" x2="170.36" y2="11.93" gradientUnits="userSpaceOnUse"><stop offset="0.1" stop-color="#e7ebee"/><stop offset="0.35" stop-color="#d5dce0"/><stop offset="0.85" stop-color="#a5b4bb"/><stop offset="1" stop-color="#96a7b0"/></linearGradient><linearGradient id="linear-gradient-4" x1="158.95" y1="12.63" x2="158.95" y2="0.13" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1c2f72"/><stop offset="0.13" stop-color="#174687"/><stop offset="0.4" stop-color="#0d72af"/><stop offset="0.65" stop-color="#0692cc"/><stop offset="0.86" stop-color="#02a6de"/><stop offset="1" stop-color="#00ade4"/></linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path class="cls-1" d="M167,25.29a5.28,5.28,0,0,0,4.82,2.57H180l-9.67-11.74c-4.46.19-6.82,3.05-6.34,4.25Z"/>
|
||||||
|
<path class="cls-2" d="M164,20.37a3.74,3.74,0,0,1-.26-1.33c0-2.68,2.37-4.22,5.07-4.77l1.53,1.85C165.87,16.31,163.51,19.17,164,20.37Z"/>
|
||||||
|
<path class="cls-3" d="M167.72,11.65c-4.08,0-7.12.67-7.12,2.27a3.89,3.89,0,0,0,.68,2L164,20.37a3.74,3.74,0,0,1-.26-1.33c0-2.68,2.37-4.22,5.07-4.77a11.94,11.94,0,0,1,2.38-.24,5.25,5.25,0,0,1,1.76.21C172.65,13.21,171.91,11.65,167.72,11.65Z"/>
|
||||||
|
<path class="cls-4" d="M157,8.88c1.12,1.83,1.53,2.29,4.2,2.29h5.1l-7-8.87C157.72.38,156.83,0,155.4,0h-3.81Z"/>
|
||||||
|
<path class="cls-5" d="M79.08,22.29V15.6c0-1.28-.59-2.06-1.68-2.06C76,13.54,75,15.08,75,17.16v5.13H72.64V14.68c0-.84-.08-2.06-.12-2.75h1.89c.22,0,.28.09.28.28s0,1.29,0,1.29h.05a3.33,3.33,0,0,1,3.18-1.79A3.23,3.23,0,0,1,81.43,15v7.33ZM60.68,20c.07,0,.15,0,.17.22,0,.49.07,1.3.07,1.56a6.3,6.3,0,0,1-2.74.69c-3.14,0-5.06-1.82-5.06-5.38,0-3.34,1.71-5.4,5.06-5.4a6.25,6.25,0,0,1,2.74.7c0,.37,0,1.21-.07,1.56,0,.15-.08.22-.17.22a.43.43,0,0,1-.18,0,4.84,4.84,0,0,0-2.11-.55c-2,0-2.82,1.3-2.82,3.52,0,2,.66,3.51,2.82,3.51a4.8,4.8,0,0,0,2-.52A.45.45,0,0,1,60.68,20Zm8.13,2.27a.31.31,0,0,1-.36-.33c0-.34-.07-1-.07-1h0a3.62,3.62,0,0,1-3.15,1.53A3.18,3.18,0,0,1,62,19.16c0-2.42,2.35-3.64,5.83-3.64h.47v-.38c0-1.08-.77-1.66-2.22-1.66a6.34,6.34,0,0,0-2.79.67.56.56,0,0,1-.18,0c-.11,0-.17-.07-.18-.19,0-.39-.06-1.14-.06-1.61a9.88,9.88,0,0,1,3.38-.69c3.08,0,4.4,1.43,4.4,3.72v4a19.86,19.86,0,0,0,.19,2.82ZM68.25,17h-.4c-3,0-3.54,1-3.54,2.07A1.59,1.59,0,0,0,66,20.77c1.47,0,2.27-1.42,2.27-2.91ZM38.74,20c.13,0,.17.11.18.23,0,.44.08,1.44.07,1.7a10,10,0,0,1-3.21.54c-3.3,0-5.29-1.71-5.29-5.38,0-3.15,1.69-5.4,4.74-5.4a4.13,4.13,0,0,1,4.41,4.48c0,.29,0,.79-.09,1.44H32.91a2.9,2.9,0,0,0,3.2,3,5.57,5.57,0,0,0,2.43-.59A.43.43,0,0,1,38.74,20Zm-5.81-4h4.36c.09-1.67-.79-2.61-2.11-2.61S33,14.44,32.93,16.05Zm-6.5,6.24V15.66c0-1.19-.51-2.12-1.73-2.12s-2.16,1.51-2.16,3.61v5.14H20.19V15.64c0-1.08-.46-2.1-1.72-2.1S16.3,15,16.3,17.22v5.07H13.94V14.75c0-1-.08-2.36-.11-2.82h1.88c.21,0,.29.07.29.29s0,1.28,0,1.28h.05a3.27,3.27,0,0,1,3.08-1.79,3.1,3.1,0,0,1,3,1.89,3.43,3.43,0,0,1,3.11-1.89c2.11,0,3.55,1.14,3.55,3.41v7.17ZM43.8,17.24v5.05H41.44v-7.7c0-.74-.08-2.15-.11-2.66h1.9c.2,0,.27.09.27.29s0,1.28,0,1.28h0a2.87,2.87,0,0,1,2.81-1.79A3.23,3.23,0,0,1,47.6,12c0,.44-.05,1.42-.07,1.68s-.09.23-.17.23a.39.39,0,0,1-.17,0,2.58,2.58,0,0,0-1-.17C45,13.66,43.8,14.57,43.8,17.24Zm5.05,5.05V11.93H51.2V22.29Zm0-11.87V8.14h2.41v2.28ZM10.38,22.29,9.3,19.24H3.54L2.46,22.29H0L5.16,8.69H7.9L13,22.29ZM6.44,11.17h0L4.2,17.39H8.64ZM145.1,22.49c3.06,0,4.53-1.25,4.53-3.11s-1.3-2.6-2.68-3.06l-1.15-.38c-.94-.31-1.43-.72-1.43-1.33s.59-1.1,1.81-1.1a5.33,5.33,0,0,1,2.33.61.4.4,0,0,0,.21.07c.07,0,.16,0,.18-.23,0-.35.06-1,.06-1.58a6.43,6.43,0,0,0-3-.67c-2.53,0-4.09,1.32-4.09,3.06s1.16,2.45,2.42,2.87l1.15.38c1.32.44,1.7.84,1.7,1.46,0,.81-.86,1.21-2.34,1.21a5.18,5.18,0,0,1-2.38-.61.43.43,0,0,0-.2-.06c-.18,0-.18.23-.18.27s-.06,1.18-.06,1.54A7.64,7.64,0,0,0,145.1,22.49ZM139.59,20c.13,0,.17.11.18.23,0,.44.08,1.44.07,1.7a10,10,0,0,1-3.21.54c-3.3,0-5.29-1.7-5.29-5.38,0-3.15,1.7-5.4,4.74-5.4s4.4,2,4.4,4.48c0,.29,0,.79-.08,1.44h-6.64a2.9,2.9,0,0,0,3.21,3,5.52,5.52,0,0,0,2.42-.59A.51.51,0,0,1,139.59,20Zm-5.8-4h4.35c.09-1.67-.79-2.61-2.11-2.61S133.85,14.44,133.79,16.05Zm-6.51,6.24V15.6c0-1.28-.59-2.06-1.68-2.06-1.45,0-2.41,1.54-2.41,3.62v5.13h-2.35V14.68c0-.84-.08-2.06-.12-2.75h1.89c.22,0,.28.09.28.28s0,1.29,0,1.29h0a3.31,3.31,0,0,1,3.17-1.79A3.23,3.23,0,0,1,129.63,15v7.33Zm-21.42-5.05v5.05H103.5v-7.7c0-.74-.09-2.15-.11-2.66h1.9c.2,0,.26.09.27.29s0,1.28,0,1.28h0a2.85,2.85,0,0,1,2.81-1.79,3.23,3.23,0,0,1,1.22.25c0,.44,0,1.42-.07,1.68s-.09.23-.18.23a.34.34,0,0,1-.16,0,2.69,2.69,0,0,0-1-.16C107,13.67,105.86,14.57,105.86,17.24Zm7.49,5.05V8.16H111V22.29Zm-14.77,0V11.93h2.36V22.29Zm0-11.87V8.14H101v2.28Zm17.36,11.87V11.93h2.35V22.29Zm0-11.87V8.14h2.41v2.28ZM95,22.29l-1.07-3.05H88.17l-1.08,3.05H84.63l5.16-13.6h2.75l5.08,13.6ZM91.07,11.17h0l-2.2,6.22h4.45Z"/>
|
||||||
|
<path class="cls-5" d="M182.17,27.24a.63.63,0,1,1-.62-.63A.62.62,0,0,1,182.17,27.24Zm-1.13,0a.51.51,0,1,0,.51-.51A.51.51,0,0,0,181,27.24Zm.49,0h-.06v.25h-.11v-.62h.19c.14,0,.22.08.22.19a.16.16,0,0,1-.13.16l.16.27h-.13Zm0-.08c.09,0,.14,0,.14-.11s0-.1-.14-.1h-.05v.2Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.3 KiB |
40
static/airline-logos/AB.svg
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 156">
|
||||||
|
<title>Air Berlin logo</title>
|
||||||
|
<path
|
||||||
|
d="M 31.09,25 C 48.08,7.56 76.18,-0.22 98.86,10.15 C 106.97,14.27 114.2,21.61 115.74,30.87 C 117.27,37.6 114.79,44.28 113.32,50.78 C 108.59,69.49 104.06,88.25 99.28,106.94 C 99.11,106.95 98.79,106.97 98.63,106.98 C 94.2,96 90.3,84.76 84.77,74.27 C 80.74,66.96 73.91,60.12 65.13,59.64 C 59,59.58 52.85,59.35 46.73,59.87 C 54.6,60.18 60.28,66.53 64.26,72.68 C 70.59,82.89 73.97,94.52 78.68,105.48 C 81.98,112.79 85.94,120.12 92.29,125.22 C 91.37,126.4 90.43,127.57 89.49,128.74 C 77.65,120.67 73.05,106.36 68.15,93.62 C 64.03,83.98 60.79,73.42 53.14,65.88 C 49.26,61.82 43.69,59.51 38.08,59.58 C 32.5,59.61 26.91,59.34 21.34,59.86 C 24.18,60.24 27.06,60.85 29.41,62.59 C 37.23,67.77 41.59,76.48 45.09,84.9 C 49.48,94.85 52.34,105.52 58.16,114.8 C 61.32,119.81 65.23,124.67 70.61,127.4 C 76.01,130.31 82.36,129.17 88.16,130.57 C 76.63,142.42 60.5,149.5 44.03,150.34 C 33.76,150.66 22.97,148.61 14.61,142.32 C 8.97,138.06 4.41,132.02 3.16,124.93 C 1.66,118.91 3.81,112.91 5.1,107.08 C 10.42,85.75 15.67,64.4 21.03,43.08 C 22.62,36.26 26.27,30.05 31.09,25 M 13.71,107.88 C 12.1,118.57 20.3,129.45 30.94,131.03 C 40.6,132.99 50.62,126.78 54.09,117.74 C 49.1,109.31 45.92,100 42.17,90.99 C 30.07,85.82 14.95,94.83 13.71,107.88 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 205.41,72.86 C 207.51,72.83 209.61,72.78 211.71,72.69 C 212.74,80.41 211.94,88.31 212.15,96.1 C 219.82,86.75 235.58,87.77 242.85,97.08 C 250.49,105.74 248.68,120.64 239.17,127.2 C 233.09,131.84 224.52,132.51 217.59,129.49 C 210.53,126.29 205.24,118.96 205.42,111.08 C 205.39,98.34 205.37,85.6 205.41,72.86 M 221.42,96.62 C 215.53,99.07 211.6,105.55 212.43,111.93 C 212.93,120.26 221.72,127.25 229.95,124.81 C 238.46,122.7 243.06,112.27 239.46,104.41 C 236.74,97.58 228.29,93.62 221.42,96.62 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 323.77,72.82 C 326.07,72.82 328.39,72.82 330.7,72.81 C 330.76,86.87 330.7,100.93 330.73,114.99 C 330.85,117.44 330.98,120.28 332.88,122.09 C 334.46,123.95 337.07,123.92 339.26,124.43 C 339.25,126.45 339.25,128.46 339.25,130.48 C 335.47,130.69 331.49,129.96 328.57,127.39 C 324.83,124.48 323.72,119.49 323.75,114.98 C 323.78,100.92 323.75,86.87 323.77,72.82 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 167.22,75.88 C 170.15,74.22 174.4,76.33 173.74,79.96 C 173.9,84.08 167.9,84.91 165.86,81.9 C 165.32,79.89 165.14,77.09 167.22,75.88 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 345.36,76.36 C 347.56,74.35 352.64,75.39 352.43,78.97 C 353.03,81.63 350.69,84.12 348,83.69 C 344.31,83.92 342.86,78.62 345.36,76.36 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 118.3,101.29 C 121.39,94.88 127.95,90.33 135.03,89.65 C 146.09,88.03 157.43,96.71 158.34,107.91 C 158.65,115.42 158.35,122.94 158.51,130.45 C 156.23,130.44 153.95,130.43 151.68,130.37 C 151.68,128.37 151.69,126.38 151.69,124.38 C 144.46,134.33 128.4,133.2 121.07,123.97 C 115.78,117.83 114.78,108.53 118.3,101.29 M 132.38,96.6 C 123.85,99.74 120.69,111.12 125.44,118.59 C 128.46,123.47 134.57,126.29 140.22,124.97 C 147.27,123.53 152.45,116.21 151.51,109.08 C 151.15,100.05 140.88,92.84 132.38,96.6 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 183.76,96.74 C 187.18,91.56 193.65,89.13 199.71,89.69 C 199.69,91.83 199.67,93.96 199.62,96.1 C 196.91,96.26 193.91,95.99 191.59,97.69 C 188.62,99.74 187.7,103.6 187.72,107.01 C 187.63,114.85 187.82,122.69 187.66,130.53 C 185.37,130.5 183.09,130.48 180.8,130.45 C 180.85,123.29 180.82,116.14 180.83,108.99 C 180.88,104.77 181.19,100.27 183.76,96.74 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 253.25,104.13 C 256.12,95.14 265.49,88.73 274.94,89.57 C 284.03,90.14 292.05,97.2 294.06,106.03 C 283.22,110.34 272.37,114.65 261.54,119 C 264.76,123.06 269.7,125.59 274.96,124.85 C 280.11,125.24 284.25,121.77 287.05,117.84 C 289.36,117.85 291.66,117.85 293.97,117.91 C 292.2,122.61 288.96,126.92 284.35,129.12 C 275.42,133.32 263.58,131.63 257.15,123.82 C 252.44,118.54 251.27,110.8 253.25,104.13 M 270.29,96.21 C 262.95,97.9 258.06,105.66 259.4,113.04 C 268.23,110.02 276.67,105.97 285.49,102.9 C 282.5,97.73 276.19,94.52 270.29,96.21 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 305.41,93.35 C 308.89,90.25 313.72,89.43 318.24,89.69 C 318.23,91.57 318.29,93.44 318.17,95.32 C 317.25,96.72 315.27,95.95 313.9,96.36 C 309.46,96.56 306.32,100.98 306.44,105.21 C 306.32,113.63 306.45,122.06 306.38,130.49 C 304.08,130.49 301.78,130.49 299.48,130.49 C 299.5,122.3 299.42,114.11 299.51,105.92 C 299.59,101.15 301.56,96.3 305.41,93.35 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 363.35,95.46 C 370.4,87.21 385.21,87.49 391.65,96.34 C 393.79,99.07 394.65,102.57 394.65,105.99 C 394.71,114.15 394.61,122.32 394.7,130.48 C 392.35,130.49 390,130.49 387.67,130.49 C 387.67,122.3 387.72,114.11 387.65,105.92 C 387.72,103.11 386.66,100.29 384.54,98.41 C 379.05,93.18 367.95,95.85 366.77,103.79 C 366.2,112.68 366.69,121.61 366.53,130.51 C 364.19,130.5 361.86,130.5 359.53,130.44 C 359.58,122.29 359.51,114.14 359.56,105.99 C 359.53,102.18 360.74,98.29 363.35,95.46 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 166.19,90.58 C 168.49,90.54 170.8,90.55 173.11,90.54 C 173.13,103.85 173.13,117.16 173.11,130.47 C 170.8,130.47 168.49,130.47 166.18,130.44 C 166.22,117.15 166.24,103.87 166.19,90.58 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
<path
|
||||||
|
d="M 344.68,90.54 C 346.99,90.55 349.31,90.55 351.63,90.55 C 351.63,103.88 351.68,117.2 351.6,130.52 C 349.29,130.5 346.98,130.49 344.68,130.48 C 344.69,117.17 344.67,103.85 344.68,90.54 z"
|
||||||
|
style="opacity:1;fill:#cc2234" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.7 KiB |
38
static/airline-logos/AC.svg
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300.7 39.3">
|
||||||
|
<title>Air Canada</title>
|
||||||
|
<desc>Air Canada logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air Canada</Airline:name>
|
||||||
|
<Airline:iataCode>AC</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AC</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g>
|
||||||
|
<path fill="#D82F2E" d="M20.7,27.9c0-1.3,0.7-1.5,1.9-0.8c2.2,1.2,4.6,2.5,4.6,2.5c0.1-0.7,0.7-1.3,2-1c1.2,0.3,2.6,0.6,2.6,0.6
|
||||||
|
s-0.7-1.7-1.1-2.4c-0.6-1.4,0-2,0.6-2.2c0,0-0.8-0.6-1.4-1c-1.2-0.8-0.9-1.7,0.2-2.2c1.6-0.7,3.6-1.6,3.6-1.6
|
||||||
|
c-0.6-0.4-1.4-1.4-0.5-2.6c0.8-1.2,2-2.8,2-2.8s-2.2,0-3.6,0c-1.3,0-1.6-1.1-1.6-1.8c0,0-2.1,1.5-3.6,2.5c-1.3,0.9-2.4,0-2.2-1.5
|
||||||
|
c0.3-2.3,0.6-4.9,0.6-4.9c-0.8,0.5-2.1,0.5-2.7-0.8C21.1,6.2,20,3.9,20,3.9s-1,2.2-1.9,4.1c-0.6,1.3-2,1.3-2.7,0.8
|
||||||
|
c0,0,0.3,2.6,0.6,4.9c0.2,1.5-1,2.3-2.2,1.5c-1.5-1-3.6-2.5-3.6-2.5c0,0.7-0.3,1.8-1.6,1.8c-1.4,0-3.6,0-3.6,0s1.2,1.7,2,2.8
|
||||||
|
c0.8,1.2,0.1,2.2-0.5,2.6c0,0,2,0.9,3.6,1.6c1.2,0.5,1.5,1.3,0.2,2.2c-0.6,0.4-1.4,1-1.4,1c0.6,0.2,1.2,0.8,0.6,2.2
|
||||||
|
c-0.3,0.7-1.1,2.4-1.1,2.4s1.4-0.3,2.6-0.6c1.3-0.3,2,0.3,2,1c0,0,2.3-1.3,4.5-2.5c1.2-0.7,1.9-0.4,1.9,0.8V31c0,1.8-0.3,3.8-1,4.8
|
||||||
|
C9.8,34.9,2.7,28.1,2.7,19.1C2.7,9.8,10.5,2.2,20,2.2c9.6,0,17.3,7.5,17.3,16.8c0,8.7-6.7,15.8-15.4,16.7v2.3
|
||||||
|
c10.2-0.9,18.1-9.1,18.1-19C40.1,8.5,31.1,0,20,0C9,0,0,8.5,0,19.1c0,9.3,6.9,17,16.2,18.7c1.6,0.3,2.5,0.5,3.4,1.5
|
||||||
|
c1-1.8,1.2-5.6,1.2-7.8V27.9z"/>
|
||||||
|
<path d="M101.6,29.3V8.9h9.9c5.3,0,7.7,2.2,7.8,5.1c0.1,1.3-0.2,2.6-1.1,3.6c-0.9,1-1.3,1.4-3,2.2l7.5,9.5h-5.6l-6.6-8.4h-4.5v8.4
|
||||||
|
H101.6z M106.1,18.1h2c5.5,0,6.6-0.9,6.6-3.6c0-2.6-2.4-3-6-3h-2.7V18.1z"/>
|
||||||
|
<path d="M56.9,29.3l8.9-20.4h5.4l8.8,20.4h-5.5l-2.4-5.5h-9.4l-2.4,5.5H56.9z M63.9,21.1H71L67.5,13L63.9,21.1z"/>
|
||||||
|
<rect x="86.4" y="8.9" width="4.8" height="20.4"/>
|
||||||
|
<path d="M157,28.6c-2.3,0.9-5.1,1.3-8.4,1.3c-4,0-7.2-1-9.4-2.9c-2.3-1.9-3.4-4.6-3.4-8c0-3.5,1.1-6.1,3.4-8
|
||||||
|
c2.3-1.9,5.5-2.8,9.7-2.8c2.7,0,5.4,0.3,8,0.8l0,3.3c-3-0.9-5.8-1.3-7.8-1.3c-2.6,0-4.6,0.7-6,2c-1.4,1.4-2.1,3.3-2.1,5.9
|
||||||
|
c0,2.5,0.7,4.4,2.3,5.8c1.5,1.4,3.6,2.1,6.3,2.1c2.4,0,5.1-0.5,7.5-1.5V28.6z"/>
|
||||||
|
<path d="M162.8,29.3l8.9-20.4h5.4l8.8,20.4h-5.5l-2.4-5.5h-9.4l-2.4,5.5H162.8z M169.8,21.1h7.1l-3.5-8.1L169.8,21.1z"/>
|
||||||
|
<path d="M221.7,29.3l8.9-20.4h5.4l8.8,20.4h-5.5l-2.4-5.5h-9.4l-2.4,5.5H221.7z M228.7,21.1h7.1l-3.5-8.1L228.7,21.1z"/>
|
||||||
|
<path d="M277.6,29.3l8.9-20.4h5.4l8.8,20.4h-5.5l-2.4-5.5h-9.4l-2.4,5.5H277.6z M284.6,21.1h7.1l-3.5-8.1L284.6,21.1z"/>
|
||||||
|
<polygon points="192.7,29.3 192.7,8.9 198.2,8.9 211,23.4 211,8.9 214.9,8.9 214.9,29.3 209.9,29.3 196.6,14 196.6,29.3"/>
|
||||||
|
<path d="M251.6,29.3V8.9h9.9c3.5,0,6.2,0.9,8.1,2.5c1.9,1.7,2.8,4.1,2.8,7.2c0,3.4-1,6-3,7.8c-2,1.9-4.8,2.8-8.4,2.8H251.6z
|
||||||
|
M256.3,26.4l3.5,0c2.5,0,4.3-0.6,5.6-1.8c1.2-1.2,1.8-3.1,1.9-5.6c0-1.9-0.5-3.6-1.5-4.9c-0.7-0.9-1.5-1.5-2.4-1.9
|
||||||
|
c-1-0.3-2.3-0.5-4.2-0.5l-2.9,0V26.4z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.9 KiB |
39
static/airline-logos/AD.svg
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 121 33">
|
||||||
|
<title>Azul Linhas Aéreas Brasileiras logo</title>
|
||||||
|
<g transform="translate(-537.14286,-592.50456)">
|
||||||
|
<path fill="#8cd0e0" d="m 607.94986,603.72456 -6.78,0 0,11.08 c 0,3.667 -2.233,4.624 -3.71,4.624 -2.152,0 -3.35,-0.957 -3.35,-3.708 l 0,-11.996 -6.78,0 0,12.434 c 0,5.42 1.716,8.847 7.66,8.847 2.39,0 5.024,-1.313 6.3,-3.424 l 0.08,0 0,2.83 6.58,0 0,-20.687 z" />
|
||||||
|
<path fill="#002e5f" d="m 609.54286,624.40656 6.78,0 0,-28.452 -6.78,0 0,28.45 z m -42.59,0 19.7,0 0,-5.18 -11.084,0 10.33,-10.362 0,-5.14 -18.11,0 0,5.18 9.49,0 -10.323,10.243 0,5.26 z m -29.31,0 7.617,0 1.794,-5.1 9.933,0 1.754,5.1 7.737,0 -10.65,-28.45 -7.535,0 -10.65,28.448 z m 14.356,-20.562 0.08,0 3.15,9.963 -6.46,0 3.23,-9.963 z" />
|
||||||
|
<path fill="#5061aa" d="m 645.73786,595.96456 1.854,0 0,1.46 -1.856,0 z" />
|
||||||
|
<path fill="#8b328a" d="m 638.90286,611.61056 5.675,0 0,6.05 -5.675,0 z" />
|
||||||
|
<path fill="#5d80c0" d="m 642.63486,618.95456 3.73,0 0,2.26 -3.73,0 z" />
|
||||||
|
<path fill="#e94e29" d="m 640.42286,620.01056 4.483,0 0,4.438 -4.482,0 z" />
|
||||||
|
<path fill="#d5262a" d="m 645.97586,615.98156 3.838,0 0,1.68 -3.836,0 z" />
|
||||||
|
<path fill="#f6a022" d="m 644.57286,612.92256 3.935,0 0,0.995 -3.935,0 z" />
|
||||||
|
<path fill="#6a95cd" d="m 649.80886,615.98156 2.75,0 0,0.757 -2.75,0 z" />
|
||||||
|
<path fill="#306fb6" d="m 644.57286,608.10456 3.76,0 0,4.82 -3.76,0 z" />
|
||||||
|
<path fill="#73c8dd" d="m 637.22886,604.40856 7.35,0 0,7.203 -7.35,0 z" />
|
||||||
|
<path fill="#92c143" d="m 632.95286,604.41056 4.908,0 0,3.984 -4.908,0 z" />
|
||||||
|
<path fill="#5061aa" d="m 639.32086,597.66456 8.316,0 0,6.797 -8.316,0 z" />
|
||||||
|
<path fill="#169bd6" d="m 648.32586,605.29056 6.06,0 0,7.397 -6.06,0 z" />
|
||||||
|
<path fill="#f6a022" d="m 647.37286,609.50056 5.187,0 0,6.5 -5.188,0 z" />
|
||||||
|
<path fill="#d5262a" d="m 644.57286,613.90256 3.838,0 0,3.753 -3.838,0 z" />
|
||||||
|
<path fill="#199aa6" d="m 642.32986,616.25956 4.952,0 0,2.72 -4.954,0 z" />
|
||||||
|
<path fill="#a5bfdf" d="m 652.55286,612.02856 1.06,0 0,3.257 -1.06,0 z" />
|
||||||
|
<path fill="#3fb7af" d="m 654.38286,605.06156 2.773,0 0,1.714 -2.772,0 z" />
|
||||||
|
<path fill="#ae2258" d="m 654.12586,606.77456 2,0 0,1.115 -2,0 z" />
|
||||||
|
<path fill="#79c199" d="m 644.57286,601.51956 3.76,0 0,6.594 -3.76,0 z" />
|
||||||
|
<path fill="#e5df1f" d="m 648.32586,598.86456 5.058,0 0,6.425 -5.056,0 z" />
|
||||||
|
<path fill="#33bacf" d="m 647.63086,597.66456 3.687,0 0,6.024 -3.687,0 z" />
|
||||||
|
<path fill="#6ca9db" d="m 652.61286,603.52156 5.03,0 0,1.77 -5.03,0 z" />
|
||||||
|
<path fill="#de5097" d="m 653.38886,599.64156 2.402,0 0,3.882 -2.402,0 z" />
|
||||||
|
<path fill="#604596" d="m 655.06986,600.86256 2.228,0 0,1.628 -2.228,0 z" />
|
||||||
|
<path fill="#fad803" d="m 654.49786,602.49156 3.145,0 0,1.627 -3.145,0 z" />
|
||||||
|
<path fill="#5061aa" d="m 645.72286,595.89456 1.89,0 0,1.53 -1.89,0 z m -6.402,0.047 3.43,0 0,3.803 -3.43,0 z" />
|
||||||
|
<path fill="#0bb8e7" d="m 628.72586,595.94156 10.61,0 0,8.52 -10.61,0 z" />
|
||||||
|
<path fill="#41ad4c" d="m 634.16786,593.00456 3.692,0 0,4.805 -3.692,0 z" />
|
||||||
|
<path fill="#e7b720" d="m 626.49286,603.73456 6.85,0 0,2.67 -6.85,0 z" />
|
||||||
|
<path fill="#b9cf37" d="m 642.74286,593.44056 2.66,0 0,4.224 -2.66,0 z" />
|
||||||
|
<path fill="#92c143" d="m 646.29486,609.50056 1.077,0 0,1.074 -1.08,0 z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.1 KiB |
47
static/airline-logos/AE.svg
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32.9 6.6">
|
||||||
|
<title>Mandarin Airlines logo</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="linearGradient1" x1="0" y1="0" x2="1" y2="0" spreadMethod="pad" gradientTransform="matrix(9.2235865,0.74211037,-0.74211037,9.2235865,-32.662449,22.569799)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" style="stop-opacity:1;stop-color:#fbc707" />
|
||||||
|
<stop offset="1" style="stop-opacity:1;stop-color:#f68712" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g transform="translate(32.930722,-22.957844)">
|
||||||
|
<g transform="translate(0.13229099,-0.13229233)">
|
||||||
|
<path fill="url(#linearGradient1)" d="m -28.491029,24.725977 c 0,0 -0.04339,0.457552 0.0074,0.561269 v 0 l -0.08643,-0.176036 c -0.207433,-0.422628 -0.771172,-0.741186 -1.211439,-0.884767 v 0 c -0.188736,-0.0695 -0.412397,-0.04304 -0.412397,-0.04304 v 0 c -0.222603,0.02293 -0.324203,0.05327 -0.324203,0.05327 v 0 c 0.309739,0.0822 0.598664,0.335139 0.783167,0.640291 v 0 c 0.19685,0.324909 0.254,0.706262 0.156633,1.045281 v 0 c 0,0 -0.01376,0.05256 -0.01588,0.04763 v 0 c 0,0 -0.534458,-1.535642 -1.571625,-1.613958 v 0 c -0.553861,-0.0448 -0.947914,0.188736 -1.180394,0.391936 v 0 c -0.336903,0.294216 -0.559153,0.717903 -0.579967,1.105958 v 0 c -0.04516,0.611717 0.257881,1.119717 0.351367,1.260475 v 0 c 0.268817,0.419806 0.994833,1.150408 1.680986,1.656292 v 0 c 0,0 0.810683,0.604308 1.646061,0.724252 v 0 h 0.531989 c 0.127,-0.02152 0.250825,-0.06032 0.367947,-0.121355 v 0 c -0.893939,-0.350661 -1.800225,-0.997303 -2.412647,-1.764242 v 0 c -0.208139,-0.303389 -0.447675,-0.741186 -0.417689,-1.114778 v 0 c 0.03528,-0.440619 0.426156,-0.769408 0.871714,-0.733424 v 0 c 0.300567,0.02399 0.560564,0.208491 0.677686,0.481541 v 0 c 0.142875,0.900642 1.007181,1.932164 1.863372,2.550583 v 0 c 0,0 0.327378,0.297039 0.832556,0.153459 v 0 l 1.523647,-0.466725 -0.553156,-0.286809 c -0.75565,-0.402519 -1.408288,-0.913341 -1.846086,-1.450975 v 0 c -0.548569,-0.720724 -0.567972,-1.189919 -0.567972,-1.189919 v 0 c -0.0021,-0.135467 0.01623,-0.280105 0.105481,-0.404636 v 0 c 0.131586,-0.183797 0.408516,-0.299508 0.650169,-0.305506 v 0 c 0,0 0.257881,-0.0035 0.419806,0.08819 v 0 c 0.552802,0.258586 0.89923,1.2319 0.961319,1.34373 v 0 c 0,0 1.007181,2.18052 2.423231,1.72967 v 0 c -0.522464,-0.303389 -1.102431,-1.712384 -1.102431,-1.712384 v 0 c -0.141464,-0.385233 -0.293158,-0.972608 -0.363361,-1.390649 v 0 c -0.157692,-0.937684 -0.456494,-1.593145 -1.448153,-1.672873 v 0 c -0.04445,-0.0035 -0.08855,-0.0053 -0.132291,-0.0053 v 0 c -0.843139,0 -1.559631,0.649816 -1.628423,1.503539" />
|
||||||
|
<path fill="#2a46a2" d="m -20.726266,29.515292 h 0.280458 v -0.991658 c 0,-0.182739 -0.09807,-0.260703 -0.32773,-0.260703 h -0.859367 c -0.05045,0 -0.15628,0.0254 -0.191911,0.120297 l -0.04269,0.1143 h 0.426508 v 1.017764 h 0.280811 v -1.017764 h 0.433917 z m -1.422753,-1.047044 v 1.047044 h 0.274109 v -1.252361 c -0.288573,-3.53e-4 -0.274109,0.205317 -0.274109,0.205317" />
|
||||||
|
<path fill="#2a46a2" d="m -21.731974,25.237852 -0.285397,0.445206 h 0.475544 l 0.209197,-0.282575 0.223309,0.282575 h 0.434622 l -0.460728,-0.634295 h -0.237419 c -0.243064,0 -0.359128,0.189089 -0.359128,0.189089" />
|
||||||
|
<path fill="#2a46a2" d="m -19.505029,25.237852 -0.28575,0.445206 h 0.475544 l 0.209198,-0.282575 0.222955,0.282575 h 0.434622 l -0.460375,-0.634295 h -0.237066 c -0.243417,0 -0.359128,0.189089 -0.359128,0.189089" />
|
||||||
|
<path fill="#2a46a2" d="m -22.159752,26.718117 v 0 h 1.629128 v 0.218722 h 0.620889 v -0.218722 h 1.2446 c 0.185561,-0.06385 0.297391,-0.160867 0.349955,-0.337256 h -1.594555 v -0.213077 h 1.246716 c 0.182739,-0.03528 0.298097,-0.13335 0.348897,-0.335139 h -1.595613 v -0.937331 h 1.246716 c 0.188031,-0.01975 0.303389,-0.117475 0.34925,-0.337608 h -3.515783 c -0.265642,0 -0.3302,0.337608 -0.3302,0.337608 h 1.629128 v 0.937331 h -1.301045 c -0.283633,0 -0.328083,0.335139 -0.328083,0.335139 h 1.629128 v 0.213077 h -1.264709 c -0.316441,0 -0.364419,0.337256 -0.364419,0.337256" />
|
||||||
|
<path fill="#2a46a2" d="m -19.806521,28.488708 -0.513292,1.026583 h 0.315031 l 0.12065,-0.261408 h 0.361244 c 0.109714,-0.01094 0.179917,-0.07761 0.206728,-0.197203 h -0.476603 l 0.274814,-0.606072 0.258939,0.606072 h -0.0042 l 0.206022,0.458611 h 0.344664 l -0.585964,-1.252361 h -0.216253 c -0.186619,-0.0194 -0.291747,0.225778 -0.291747,0.225778" />
|
||||||
|
<path fill="#2a46a2" d="m -15.29654,28.488708 -0.513292,1.026583 h 0.314678 l 0.12065,-0.261408 h 0.361597 c 0.109714,-0.01094 0.179917,-0.07761 0.206728,-0.197203 h -0.475897 l 0.274814,-0.606072 0.258233,0.606072 h -0.0042 l 0.205669,0.458611 h 0.34537 l -0.58635,-1.252361 h -0.216253 c -0.186619,-0.0194 -0.291747,0.225778 -0.291747,0.225778" />
|
||||||
|
<path fill="#2a46a2" d="m -9.3351074,28.488708 -0.5129389,1.026583 h 0.3146778 l 0.12065,-0.261408 h 0.3612444 c 0.1100667,-0.01094 0.1799167,-0.07761 0.2067278,-0.197203 h -0.47625 l 0.2748139,-0.606072 0.2585861,0.606072 h -0.00423 l 0.2060222,0.458611 H -8.240438 L -8.8271074,28.26293 h -0.2162528 c -0.1862666,-0.0194 -0.2917472,0.225778 -0.2917472,0.225778" />
|
||||||
|
<path fill="#2a46a2" d="m -4.1000364,26.923433 v 0 l 0.8960555,-0.0039 2.4253472,-0.0042 c 0.19720278,-0.02364 0.34007777,-0.144992 0.43568055,-0.371475 H -1.9424476 V 25.94765 h 1.13488613 c 0.2204861,-0.04727 0.34995555,-0.168275 0.39299443,-0.376767 h -0.79551386 -1.9939 -0.4998861 c -0.2755194,0 -0.3961694,0.376767 -0.3961694,0.376767 h 1.5409333 v 0.596194 H -3.703867 c -0.2596444,-0.0099 -0.3961694,0.379589 -0.3961694,0.379589" />
|
||||||
|
<path fill="#2a46a2" d="m -13.989472,24.068394 h -0.651581 c -0.300919,-3.53e-4 -0.357716,0.338314 -0.357716,0.338314 h 2.228497 c 0.213078,-0.01376 0.335492,-0.121708 0.384528,-0.338314 h -0.987072 v -0.165806 h -0.422981 c -0.225425,0 -0.193675,0.165806 -0.193675,0.165806" />
|
||||||
|
<path fill="#2a46a2" d="m -7.5933814,24.126602 v 0 h -0.2790472 c -0.2592917,0.0095 -0.2233083,0.309386 -0.2233083,0.309386 h 1.4012333 c 0.2215444,-0.02575 0.3464277,-0.129822 0.3714749,-0.309386 h -0.7207249 v -0.224014 h -0.282575 c -0.2956278,0 -0.2670528,0.224014 -0.2670528,0.224014" />
|
||||||
|
<path fill="#2a46a2" d="m -2.0275814,24.62931 v 0.393347 c 0,0.189442 0.1195917,0.28575 0.3563055,0.28575 h 0.74012781 c 0.30091944,0 0.47519166,-0.123472 0.53234165,-0.376061 H -1.2892175 c -0.1058334,0 -0.1213556,-0.06562 -0.1213556,-0.105128 V 24.62931 Z" />
|
||||||
|
<path fill="#2a46a2" d="m -14.949089,24.959166 v 0 h 2.178756 c 0.180622,-0.01094 0.298097,-0.106539 0.367947,-0.300919 h -2.228145 c -0.219075,0 -0.318558,0.300919 -0.318558,0.300919" />
|
||||||
|
<path fill="#2a46a2" d="m -19.465685,24.059927 h -1.595967 c 0,-0.159456 -0.258939,-0.157692 -0.258939,-0.157692 h -0.353483 l 0.107597,0.153459 h -0.224719 c -0.282222,0.01376 -0.337608,0.304094 -0.337608,0.304094 h 3.499908 c 0.142875,-0.05644 0.229658,-0.146755 0.293511,-0.304094 h -0.598664 l 0.0956,-0.153459 h -0.306564 c -0.343606,0 -0.320675,0.157692 -0.320675,0.157692" />
|
||||||
|
<path fill="#2a46a2" d="m -14.949089,25.536302 v 0 h 2.179108 c 0.175331,-0.0078 0.299156,-0.113242 0.367947,-0.313619 h -2.244019 c -0.216958,0 -0.303036,0.313619 -0.303036,0.313619" />
|
||||||
|
<path fill="#2a46a2" d="m -15.814223,24.406716 -0.313267,0.735189 h 0.27305 v 1.78188 h 0.484717 v -2.430638 l 0.24765,-0.574323 h -0.173919 c -0.350309,-0.01658 -0.518231,0.487892 -0.518231,0.487892" />
|
||||||
|
<path fill="#2a46a2" d="m -14.977902,26.923777 h 2.564694 v -0.734131 c 0,-0.240594 -0.0956,-0.36195 -0.310444,-0.3937 h -2.25425 z m 1.864078,-0.325967 h -1.288697 v -0.484011 h 1.414286 v 0.358422 c 0,0.08326 -0.04233,0.125589 -0.125589,0.125589" />
|
||||||
|
<path fill="#2a46a2" d="m -3.3953184,24.870981 -0.5972528,0.437444 h 0.7912806 l 0.7909277,-0.679097 h -0.428625 c -0.2596444,-0.01834 -0.5563305,0.241653 -0.5563305,0.241653" />
|
||||||
|
<path fill="#2a46a2" d="m -8.0708754,25.031477 v 1.058686 c 0,0.433917 -0.1315861,0.697442 -0.1880306,0.809978 l -0.00176,0.0035 c -0.00176,0.0039 -0.00388,0.0078 -0.00635,0.01199 h 0.4758972 c 0.0127,-0.01235 0.0254,-0.02399 0.0381,-0.03528 0.1277055,-0.116416 0.23495,-0.208844 0.23495,-0.827616 v -0.989542 h 0.4660194 v 1.852436 h 0.346075 c 0.3051528,-0.01482 0.4275666,-0.116064 0.4462639,-0.371828 -0.039864,-3.52e-4 -0.080786,-0.0018 -0.1153584,-0.01094 -0.064558,-0.01764 -0.077964,-0.05609 -0.077964,-0.08573 V 25.30519 c 0,-0.305506 -0.1315862,-0.479073 -0.4025195,-0.531284 -0.053269,-0.0067 -0.123825,-0.01623 -0.2014361,-0.01164 h -0.7528278 c -0.2666999,-0.0014 -0.2610555,0.269169 -0.2610555,0.269169" />
|
||||||
|
<path fill="#2a46a2" d="m -3.5206514,24.406716 h 2.52236106 l 0.008467,0.274108 h 0.61630277 l -0.0155222,-0.32138 C -0.43455107,24.135783 -0.6296372,24.031008 -1.0021705,24.031008 h -0.9401528 v -0.128764 h -0.3139722 c -0.3139722,0 -0.3030361,0.128764 -0.3030361,0.128764 h -1.2160249 c -0.3922889,0.0071 -0.36195,0.346427 -0.36195,0.346427 v 0.303389 h 0.6166555 z" />
|
||||||
|
<path fill="#2a46a2" d="m -5.9733654,28.468229 v 1.047044 h 0.7129639 c 0.1389944,-0.0067 0.219075,-0.08255 0.244475,-0.230011 h -0.6561667 v -1.02235 c -0.3012722,0 -0.3012722,0.205317 -0.3012722,0.205317" />
|
||||||
|
<path fill="#2a46a2" d="m -1.4502074,29.285289 v 0.230364 h 0.80045276 c 0.28045833,0 0.31855833,-0.123472 0.31855833,-0.25647 v -0.249061 c 0,-0.172155 -0.0261056,-0.244122 -0.18979444,-0.244122 H -1.1574019 v -0.271992 h 0.65334448 c 0.0994833,-0.01305 0.15451666,-0.08643 0.17039166,-0.230716 H -1.1312963 c -0.01905,0 -0.039511,0.0032 -0.060325,0.006 l -0.015169,0.0025 c -0.1114778,0.02716 -0.2434167,0.108303 -0.2434167,0.248356 v 0.220133 c 0,0.115359 0.018697,0.220839 0.2423583,0.239536 0.00882,-3.52e-4 0.022578,0.0011 0.034572,0.0018 0.014817,0.0014 0.028222,0.0025 0.041981,0.0025 h 0.50799999 v 0.301272 z" />
|
||||||
|
<path fill="#2a46a2" d="m -2.7251814,28.468229 v 1.047044 h 0.828675 c 0.1097139,-0.006 0.1725083,-0.07761 0.2024944,-0.230011 H -2.4323759 V 28.98399 h 0.536575 c 0.136525,-0.02187 0.1788584,-0.116064 0.2014361,-0.218017 h -0.7380111 v -0.503061 c -0.3069166,0 -0.2928055,0.205317 -0.2928055,0.205317 m 0.314325,0.02575 h 0.5150555 c 0.1372306,-0.02187 0.1795639,-0.122414 0.2014361,-0.23107 h -0.5542138 c -0.071614,0.01094 -0.1143,0.04833 -0.1329973,0.117828 z" />
|
||||||
|
<path fill="#2a46a2" d="m -10.064351,24.194335 v 0 1.099256 h -0.116064 v 0.350661 h 0.116064 v 0.545041 c 0,0.249414 -0.01552,0.404989 -0.153106,0.734484 h 0.4490865 c 0.1608667,-0.184503 0.2180167,-0.387703 0.2180167,-0.771525 v -0.508 h 0.212725 v 0.871361 c 0.1016,-0.03492 0.1725083,-0.0949 0.2056694,-0.173214 v -0.698147 h 0.2264834 v 1.271058 h 0.5087055 v -1.271058 h 0.10795 v -0.350661 h -0.10795 v -0.839964 c -0.027164,-0.237067 -0.1700389,-0.357011 -0.4360333,-0.364773 h -0.581025 l 0.078669,-0.170391 h -0.2247195 c -0.4258028,0 -0.5044727,0.275872 -0.5044727,0.275872 m 1.1588755,1.099256 h -0.3534834 l 0.052917,-0.04586 c 0.006,-0.0056 0.012347,-0.01058 0.017992,-0.01517 0.065264,-0.05397 0.070555,-0.05856 0.056797,-0.509058 l -0.206375,-0.0064 v 0.576439 h -0.212725 v -0.828675 h 0.6448778 z" />
|
||||||
|
<path fill="#2a46a2" d="m -12.606283,28.468229 v 1.047044 h 0.305153 v -1.252361 c -0.331259,-0.0053 -0.305153,0.205317 -0.305153,0.205317" />
|
||||||
|
<path fill="#2a46a2" d="m -4.7915244,28.468229 v 1.047044 h 0.3055055 v -1.252361 c -0.3312583,-0.0053 -0.3055055,0.205317 -0.3055055,0.205317" />
|
||||||
|
<path fill="#2a46a2" d="m -8.0665624,28.468229 v 1.047044 h 0.3048 v -1.252361 c -0.3312583,-0.0053 -0.3048,0.205317 -0.3048,0.205317" />
|
||||||
|
<path fill="#2a46a2" d="m -13.742615,28.468944 h 0.529872 v 0.288219 h -0.516466 l 0.549275,0.758473 h 0.333022 l -0.402872,-0.606425 h 0.214488 c 0.111478,-0.01164 0.144639,-0.05821 0.161573,-0.129823 l -3.53e-4,-0.284338 c 0,-0.132292 -0.1016,-0.232128 -0.236008,-0.232128 h -0.41522 c -0.170744,0 -0.217311,0.206022 -0.217311,0.206022 m -0.01199,-0.206022 v 0 c -0.307623,0 -0.292806,0.224366 -0.292806,0.224366 v 1.028348 h 0.292806 z" />
|
||||||
|
<path fill="#2a46a2" d="m -7.1081094,28.468944 h 0.5298722 v 0.288219 h -0.5161139 l 0.549275,0.758473 h 0.3326695 L -6.6152789,28.909211 H -6.40079 c 0.1114778,-0.01164 0.1449917,-0.05821 0.161925,-0.129823 l -0.00106,-0.284338 c 0,-0.132292 -0.1012472,-0.232128 -0.2356556,-0.232128 H -6.8908 c -0.1707444,0 -0.2173111,0.206022 -0.2173111,0.206022 m -0.012347,-0.206022 v 0 c -0.3069167,0 -0.2928056,0.224366 -0.2928056,0.224366 v 1.028348 h 0.2928056 z" />
|
||||||
|
<path fill="#2a46a2" d="m -17.241571,28.499292 v 1.016353 h 0.671689 c 0.116417,-0.0042 0.198614,-0.0081 0.249414,-0.01623 0.05891,-0.01058 0.122414,-0.03493 0.172508,-0.06703 0.0882,-0.05009 0.153458,-0.119239 0.194381,-0.205316 0.04621,-0.08784 0.06809,-0.192617 0.06809,-0.321028 0,-0.132645 -0.02187,-0.241653 -0.06773,-0.333022 -0.0448,-0.08996 -0.114652,-0.163689 -0.201788,-0.213431 -0.06138,-0.0381 -0.121003,-0.06209 -0.187678,-0.0762 -0.04304,-0.0092 -0.118181,-0.02046 -0.227189,-0.02046 h -0.06209 l -0.114653,0.0088 c -0.05962,0 -0.1143,0.05962 -0.145344,0.115711 l -0.04833,0.08643 v -0.210961 c -0.340783,0 -0.301272,0.236361 -0.301272,0.236361 m 0.559858,0.785989 h -0.258586 v -0.7874 h 0.258586 c 0.03916,0 0.0822,0.0046 0.115006,0.0085 0.101247,0.01341 0.183797,0.04445 0.245533,0.09278 0.08361,0.06914 0.126295,0.170745 0.126295,0.302683 0,0.129117 -0.04233,0.232481 -0.117828,0.291042 -0.06562,0.04727 -0.143933,0.07444 -0.254,0.08784 -0.03457,0.0046 -0.07373,0.0046 -0.115006,0.0046" />
|
||||||
|
<path fill="#2a46a2" d="m -17.79373,29.515292 h 0.275872 v -0.991658 c 0,-0.150989 0,-0.260703 -0.18168,-0.260703 h -0.41522 c -0.04022,0 -0.103364,0.04974 -0.129469,0.120297 l -0.04198,0.1143 h 0.496359 v 0.02646 z m -0.785283,-1.024114 v 1.024114 h 0.284339 v -1.252361 c -0.301625,0.02117 -0.284339,0.228247 -0.284339,0.228247" />
|
||||||
|
<path fill="#2a46a2" d="m -11.73628,28.492942 h 0.481542 v 0.02505 0.991306 l 0.273755,-0.0014 v -0.991659 c -7.05e-4,-0.150989 -0.0035,-0.259291 -0.185561,-0.258586 h -0.388055 c -0.18415,0 -0.181681,0.235303 -0.181681,0.235303 m -0.305858,0.0064 v 1.014236 l 0.284339,-0.0014 v -1.252361 7.05e-4 c -0.297745,0 -0.284339,0.238831 -0.284339,0.238831" />
|
||||||
|
<path fill="#2a46a2" d="m -3.7752604,28.492942 h 0.4815417 v 0.02505 0.991306 l 0.2741083,-0.0014 v -0.991659 c -7.056e-4,-0.150989 -0.00388,-0.259291 -0.1855611,-0.258586 h -0.3884083 c -0.1845028,0 -0.1816806,0.235303 -0.1816806,0.235303 m -0.3055055,0.0092 v 1.011414 l 0.2836333,-0.0014 v -1.252361 7.05e-4 c -0.2973917,0 -0.2836333,0.241653 -0.2836333,0.241653" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 14 KiB |
19
static/airline-logos/AF.svg
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 34.9">
|
||||||
|
<title>Air France</title>
|
||||||
|
<desc>Air France logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air France</Airline:name>
|
||||||
|
<Airline:iataCode>AF</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AF</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#ED1C24" d="M378.4.29l-17.9 25.9c-2.36 3.41-6.2 6.7-10.8 7.06v.79h19.9c5.3 0 9.16-3.45 11.7-7.25L399.7.29h-21.3z"/>
|
||||||
|
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="374.7" y1=".29" x2="374.7" y2="34.1">
|
||||||
|
<stop offset=".33" stop-color="#FF1E27"/>
|
||||||
|
<stop offset="1" stop-color="#E81B23"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#a)" d="M378.4.29l-17.9 25.9c-2.36 3.42-6.2 6.71-10.8 7.06v.79h19.9c5.3 0 9.16-3.45 11.7-7.25L399.7.29h-21.3z"/>
|
||||||
|
<path fill="#002157" d="M47.8 34.1V3.15h9.04v30.9H47.8v.05zm208.4 0l-21.7-18.3v18.3h-7.63V3.15h6.48l21.4 18.1V3.15h7.63v30.9h-6.18v.05zm47.3-21c-4.08-2.01-8.68-3.64-14.7-3.64-7.28 0-12.7 3.76-12.7 9 0 5.37 5.52 9.16 12.6 9.16 5.87 0 10.5-1.5 15.1-4.15v7.66c-4.06 2.01-9.45 3.51-15.5 3.51-12.3 0-22.1-6.32-22.1-16.1 0-9.71 9.93-15.9 22.1-15.9 5.74 0 10.9 1.08 15.2 2.84v7.62zm-196.4 21V3.15h30.2v6.64h-21.1v7.7h20.6v6.64h-20.6v9.99h-9.1v-.02zm201.8 0V3.15h31.3v6.64h-22.3v5.36h21.9v6.65h-21.9v5.68h22.2v6.64h-31.2v-.02zM168.7 22.5l12.4 11.6h-9.64c-2.13 0-3.54-.67-4.66-1.75l-8.49-8.23c-.16-.16-.41-.25-.73-.25h-5.78v10.2h-9.04V3.15h19.5c10.1 0 14.4 4.56 14.4 9.61.24 5.84-5.06 8.64-7.96 9.74zm-7.2-5.2c3.57 0 5.3-1.82 5.3-3.86s-1.53-3.74-5.3-3.74h-9.61v7.6h9.61zm-70.4 5.2l12.4 11.6h-9.64c-2.14 0-3.54-.67-4.66-1.75l-8.49-8.23c-.15-.16-.41-.25-.73-.25h-5.77v10.2h-9.04V3.15h19.5c10.1 0 14.4 4.56 14.4 9.61.23 5.84-5.07 8.64-7.97 9.74zm-7.2-5.2c3.57 0 5.3-1.82 5.3-3.86S87.67 9.7 83.9 9.7h-9.61v7.6h9.61zM33.6 34.1l-3.96-6.8H12.3l-3.6 6.8H.15L17.4 3.18h7.85l19.5 30.9H33.6v.02zM15.8 20.8h10l-5.23-9.45-4.77 9.45zm198.3 13.3l-3.86-6.8h-16.8l-3.48 6.8h-8.4l16.8-30.9h7.63l19 30.9H214.1zm-17.4-13.3h9.83l-5.11-9.45-4.72 9.45z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.1 KiB |
10
static/airline-logos/AG.svg
Normal file
|
After Width: | Height: | Size: 10 KiB |
30
static/airline-logos/AI.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 137 32">
|
||||||
|
<title>Air India</title>
|
||||||
|
<desc>Air India logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air India</Airline:name>
|
||||||
|
<Airline:iataCode>AI</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AI</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_9219_4184" x1="148.721" y1="45.4234" x2="115.402" y2="0.306412" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0.1805" stop-color="#FED9A0"/>
|
||||||
|
<stop offset="0.3124" stop-color="#ECC890"/>
|
||||||
|
<stop offset="0.5738" stop-color="#BF9A66"/>
|
||||||
|
<stop offset="0.7464" stop-color="#9E7947"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<path d="M41.5617 22.7969C42.8433 22.0612 43.6589 20.6734 43.6589 18.9846C43.6589 15.2393 40.9792 14.002 36.2355 14.002H27.9965V26.6928H32.0411V24.0342H36.2521C36.8846 24.0342 37.4838 24.0008 38.0331 23.9339C38.7821 24.6696 39.4312 25.8568 39.6975 26.6761H43.8919C43.4425 25.3217 42.5604 23.7165 41.5617 22.7969ZM36.4352 21.1081H32.0411V16.928H36.4352C38.5657 16.928 39.7808 17.3126 39.7808 18.9846C39.7641 20.6734 38.5657 21.1081 36.4352 21.1081Z" fill="#DA0E29"/>
|
||||||
|
<path d="M24.7342 14.002H20.6896V26.6928H24.7342V14.002Z" fill="#DA0E29"/>
|
||||||
|
<path d="M57.324 14.002H53.2794V26.6928H57.324V14.002Z" fill="#DA0E29"/>
|
||||||
|
<path d="M102.647 14.002H98.6021V26.6928H102.647V14.002Z" fill="#DA0E29"/>
|
||||||
|
<path d="M88.0662 14.002H80.0769V26.6928H88.0662C92.7599 26.6928 96.2219 24.5693 96.2219 20.339C96.2219 16.1087 92.7599 14.002 88.0662 14.002ZM87.5835 23.6664H84.1215V17.0284H87.5835C90.5961 17.0284 92.194 18.0985 92.194 20.339C92.194 22.5795 90.5961 23.6664 87.5835 23.6664Z" fill="#DA0E29"/>
|
||||||
|
<path d="M72.9364 19.7872C70.523 17.0785 67.6102 15.1222 63.9984 14.002H60.5696V26.6928H64.4478V18.1152C68.1428 19.3191 71.5549 23.0979 73.236 26.6928H76.7979V14.002H72.9198V19.7872H72.9364Z" fill="#DA0E29"/>
|
||||||
|
<path d="M7.04121 14.002C4.37811 17.0284 0.633118 22.1281 0.633118 26.6928H4.66106C4.66106 26.0072 4.74429 25.305 4.91073 24.6194H14.0818C14.2482 25.3217 14.3315 26.0072 14.3315 26.6928H18.3594C18.3594 22.1281 14.6144 17.0284 11.9513 14.002H7.04121ZM5.82617 21.9442C6.80819 19.7872 8.23961 17.7808 9.48794 16.3261C10.7363 17.7808 12.1677 19.7872 13.1497 21.9442H5.82617Z" fill="#DA0E29"/>
|
||||||
|
<path d="M116.295 14.002H111.385C108.722 17.0284 104.977 22.1281 104.977 26.6928H109.005C109.005 26.0072 109.088 25.305 109.255 24.6194H118.426C118.592 25.3217 118.675 26.0072 118.675 26.6928H122.703C122.703 22.1114 118.958 17.0284 116.295 14.002ZM110.17 21.9442C111.152 19.7872 112.583 17.7808 113.832 16.3261C115.08 17.7808 116.511 19.7872 117.493 21.9442H110.17Z" fill="#DA0E29"/>
|
||||||
|
<path d="M136.884 22.0276C137.217 19.5529 136.618 17.4127 136.119 16.0082C135.769 15.0217 135.486 14.2358 135.236 13.5336C134.105 10.34 133.888 9.75477 133.106 6.56116L132.84 5.50778L131.808 5.17337C128.679 4.15342 128.129 3.90261 125.033 2.51482C124.351 2.21385 123.585 1.86272 122.637 1.44471C121.521 0.959816 119.824 0.290997 117.776 0.224116C114.631 0.107073 111.618 1.39455 108.805 4.03638L108.855 4.01966C108.139 4.65503 107.407 5.39073 106.658 6.24348C106.658 6.24348 106.675 6.29364 106.841 6.15987C107.823 5.35729 111.035 2.34761 119.774 6.29364C124.068 8.23321 128.196 9.95542 128.196 9.95542C128.196 9.95542 129.544 14.2191 131.092 18.7002C134.238 27.7794 130.975 30.7389 130.093 31.6418C129.96 31.7923 130.01 31.809 130.01 31.809C131.275 30.8894 132.29 29.9698 133.139 29.0669C135.27 26.9099 136.535 24.5524 136.884 22.0276Z" fill="url(#paint0_linear_9219_4184)"/>
|
||||||
|
<path d="M132.856 5.47457L131.824 5.14016C128.695 4.12022 128.146 3.86941 125.05 2.48161C124.368 2.18065 123.602 1.82952 122.653 1.4115C121.538 0.926612 119.84 0.257794 117.793 0.190913C114.647 0.0738694 111.635 1.36134 108.822 4.00317L108.872 3.98645C108.156 4.62183 107.424 5.35753 106.675 6.21027C106.675 6.21027 106.691 6.26044 106.858 6.12667C107.84 5.32409 111.052 2.31441 119.79 6.26044C124.085 8.20001 128.212 9.92221 128.212 9.92221L132.856 5.47457Z" fill="#FED9A0"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
49
static/airline-logos/AJ.svg
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1617 647">
|
||||||
|
<title>Aero Contractors</title>
|
||||||
|
<desc>Aero Contractors logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Aero Contractors</Airline:name>
|
||||||
|
<Airline:iataCode>AJ</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AJ</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path d="M 1429.00 32.39 C 1483.03 32.41 1537.07 32.28 1591.10 32.42 C 1585.11 44.62 1578.64 56.59 1572.63 68.78 C 1534.09 69.08 1495.54 68.82 1457.00 68.98 C 1435.27 69.57 1414.39 78.67 1399.02 94.01 C 1394.25 98.71 1390.27 104.00 1386.49 109.50 C 1349.14 163.15 1311.79 216.80 1274.45 270.45 C 1266.84 282.42 1255.53 292.56 1242.89 298.96 C 1231.00 304.95 1218.92 306.02 1205.96 307.89 C 1187.91 310.16 1170.10 309.13 1152.00 309.49 C 1138.77 309.46 1125.53 309.55 1112.30 309.44 C 1128.89 284.69 1145.51 259.95 1161.99 235.13 C 1181.51 235.00 1200.43 235.62 1219.81 232.37 C 1226.64 231.09 1232.98 230.73 1239.20 227.26 C 1250.40 221.31 1260.56 212.11 1267.36 201.38 C 1297.52 158.21 1327.71 115.06 1357.88 71.90 C 1361.05 67.42 1364.07 62.78 1367.57 58.56 C 1371.65 53.61 1376.83 49.70 1382.13 46.16 C 1395.90 37.15 1412.52 32.07 1429.00 32.39 Z" fill="#f28121" />
|
||||||
|
<path d="M 1467.00 83.67 C 1499.69 83.68 1532.38 83.59 1565.07 83.69 C 1558.89 94.92 1553.06 106.33 1547.52 117.90 C 1541.67 118.30 1535.85 118.06 1530.00 118.11 C 1508.00 118.11 1486.00 118.12 1464.00 118.11 C 1455.81 118.05 1447.69 121.03 1441.83 126.82 C 1438.17 130.26 1436.19 134.34 1433.53 138.53 C 1393.29 203.63 1353.10 268.78 1312.83 333.86 C 1303.27 347.60 1292.15 360.55 1279.23 371.25 C 1258.18 388.64 1232.89 399.14 1206.18 404.17 C 1186.88 407.94 1166.62 408.66 1147.00 408.50 C 1113.36 408.45 1079.72 408.54 1046.08 408.45 C 1063.22 382.76 1080.45 357.14 1097.58 331.44 C 1127.75 331.44 1157.83 331.38 1188.00 331.28 C 1200.79 331.04 1213.45 329.86 1226.02 327.48 C 1238.48 325.68 1250.05 320.70 1259.94 312.93 C 1266.08 308.02 1271.86 302.76 1276.15 296.11 C 1314.43 241.07 1352.75 186.06 1391.04 131.02 C 1396.34 123.53 1400.98 116.07 1407.52 109.52 C 1423.06 93.58 1444.69 83.98 1467.00 83.67 Z" fill="#f28121" />
|
||||||
|
<path d="M 1473.00 132.66 C 1495.25 132.71 1517.51 132.59 1539.77 132.72 C 1532.99 144.30 1527.30 156.53 1521.12 168.44 C 1513.73 168.46 1506.35 168.39 1498.97 168.46 C 1492.26 168.48 1485.23 169.90 1479.47 173.47 C 1473.87 176.98 1469.85 182.06 1466.68 187.79 C 1438.31 239.02 1409.97 290.27 1381.40 341.40 C 1366.11 368.72 1350.90 396.10 1335.12 423.15 C 1331.04 430.40 1325.90 437.17 1320.75 443.75 C 1314.21 452.13 1306.94 459.94 1299.01 467.02 C 1284.22 480.06 1266.84 489.88 1248.20 496.26 C 1223.61 504.80 1196.90 507.52 1171.00 507.44 C 1107.27 507.38 1043.54 507.46 979.81 507.40 C 996.95 481.84 1014.11 456.29 1031.14 430.66 C 1076.42 430.27 1121.72 430.61 1167.00 430.43 C 1193.73 429.81 1220.28 426.26 1245.17 416.09 C 1263.37 408.70 1280.07 397.86 1293.99 383.99 C 1302.32 375.61 1310.06 366.46 1316.71 356.69 C 1360.08 286.74 1403.45 216.76 1446.79 146.79 C 1452.44 137.89 1462.54 132.77 1473.00 132.66 Z" fill="#f28121" />
|
||||||
|
<path d="M 136.01 235.37 C 153.61 234.59 171.37 235.16 188.82 237.65 C 199.72 239.45 210.14 241.90 220.02 247.01 C 231.12 252.69 241.35 260.30 248.09 270.97 C 253.46 279.28 255.31 289.44 256.85 299.05 C 258.80 313.36 258.88 327.59 258.75 342.00 C 258.59 365.00 258.38 388.00 258.30 411.00 C 258.26 430.01 258.03 448.14 261.56 466.95 C 264.08 479.11 268.52 490.39 273.85 501.56 C 251.12 501.60 228.39 501.56 205.66 501.58 C 201.93 492.31 199.73 482.57 196.46 473.17 C 182.12 487.07 165.35 497.93 146.01 503.35 C 128.72 508.25 110.10 508.62 92.49 505.36 C 76.35 502.28 61.28 495.12 49.87 483.13 C 36.19 469.47 28.83 450.27 29.28 431.00 C 28.74 414.52 33.81 398.01 43.89 384.93 C 51.88 374.34 62.81 366.92 75.01 361.94 C 94.55 353.99 115.45 350.05 136.04 346.13 C 154.51 342.20 173.69 338.49 191.25 331.42 C 191.31 322.60 191.35 314.25 188.05 305.89 C 185.80 300.26 181.69 295.49 176.12 292.95 C 166.94 288.66 156.96 288.25 147.00 287.80 C 135.90 287.76 124.57 288.71 115.21 295.29 C 107.16 301.08 102.08 311.26 98.92 320.43 C 78.02 316.78 57.17 312.84 36.28 309.22 C 39.11 298.92 43.11 288.77 48.58 279.58 C 56.66 265.88 68.14 254.41 82.48 247.36 C 99.09 239.22 117.72 236.41 136.01 235.37 Z" fill="#000000" />
|
||||||
|
<path d="M 387.50 235.74 C 406.29 234.02 425.72 235.55 443.78 241.20 C 467.44 248.61 488.32 264.33 501.80 285.16 C 516.25 307.48 521.93 333.86 524.31 359.99 C 524.83 370.39 525.55 380.70 525.24 391.13 C 467.60 391.15 409.95 391.13 352.31 391.14 C 352.50 398.85 353.49 406.49 355.48 413.94 C 358.83 426.24 365.66 437.39 375.91 445.13 C 385.29 452.46 397.10 456.17 409.00 455.80 C 419.74 456.03 430.32 452.62 438.20 445.17 C 445.65 438.15 449.88 428.30 452.74 418.64 C 475.50 422.36 498.22 426.40 521.00 429.96 C 520.38 434.27 518.47 437.88 516.79 441.82 C 509.10 459.02 497.74 474.33 482.54 485.59 C 466.26 497.76 447.05 504.12 427.00 506.44 C 402.95 508.90 377.17 507.18 354.39 498.62 C 335.31 491.50 318.58 478.75 306.79 462.13 C 292.17 441.65 284.93 417.71 282.53 392.85 C 280.30 367.08 282.00 339.85 290.22 315.18 C 297.28 293.88 310.00 274.63 327.46 260.44 C 344.38 246.25 365.55 237.79 387.50 235.74 Z" fill="#000000" />
|
||||||
|
<path d="M 675.00 235.08 C 691.65 234.61 707.63 239.52 721.95 247.83 C 720.54 253.41 718.25 258.77 716.41 264.23 C 711.30 278.84 705.93 293.37 700.97 308.03 C 696.55 305.69 692.48 303.07 687.83 301.19 C 679.35 297.65 670.17 295.75 661.01 297.48 C 651.17 298.99 642.16 304.31 636.82 312.82 C 628.52 325.94 625.50 342.01 624.41 357.28 C 622.67 376.53 622.36 395.67 622.28 415.00 C 622.27 443.85 622.27 472.71 622.28 501.56 C 599.28 501.60 576.28 501.57 553.28 501.58 C 553.27 418.72 553.28 335.86 553.27 253.00 C 553.27 248.92 553.24 244.84 553.37 240.76 C 570.58 240.80 587.79 240.76 605.00 240.78 C 609.21 240.81 613.29 240.50 617.47 241.22 C 617.38 253.41 617.32 265.62 617.51 277.81 C 624.12 267.23 631.69 256.35 640.97 247.95 C 650.32 239.55 662.53 235.39 675.00 235.08 Z" fill="#000000" />
|
||||||
|
<path d="M 850.00 235.13 C 874.18 235.78 897.83 241.64 918.46 254.54 C 941.57 269.05 960.22 291.09 970.19 316.54 C 979.51 340.17 981.54 366.94 978.44 392.00 C 975.57 415.09 966.93 437.31 952.70 455.78 C 936.23 477.32 913.64 493.88 887.52 501.58 C 851.40 512.15 811.38 508.40 777.75 491.53 C 759.13 482.49 743.03 468.58 731.99 451.02 C 718.64 430.20 712.24 404.52 711.21 379.99 C 709.21 356.40 713.31 332.48 722.98 310.86 C 729.26 296.64 737.48 283.53 748.46 272.45 C 758.78 261.91 771.12 253.65 784.54 247.59 C 805.10 238.17 827.48 234.47 850.00 235.13 Z" fill="#000000" />
|
||||||
|
<path d="M 415.00 288.68 C 427.25 290.94 438.26 298.46 445.41 308.57 C 453.74 320.51 456.17 334.57 456.67 348.83 C 422.29 348.85 387.92 348.84 353.54 348.84 C 353.61 339.69 354.53 330.41 357.72 321.76 C 361.91 309.89 370.38 299.53 381.50 293.52 C 391.55 288.04 403.83 286.71 415.00 288.68 Z" fill="#ffffff" />
|
||||||
|
<path d="M 831.48 292.70 C 844.76 289.95 859.57 291.03 871.79 297.21 C 886.20 304.43 897.22 317.34 902.75 332.42 C 909.07 349.32 909.33 366.24 908.35 384.04 C 906.86 398.70 903.43 412.68 895.00 425.00 C 887.12 436.06 876.09 444.95 862.91 448.77 C 849.59 452.76 835.03 452.07 822.14 446.84 C 807.70 440.80 795.88 428.76 789.50 414.52 C 782.38 398.73 780.82 380.11 781.65 362.99 C 782.67 347.53 785.77 332.39 794.29 319.20 C 802.99 306.17 816.00 296.10 831.48 292.70 Z" fill="#ffffff" />
|
||||||
|
<path d="M 191.23 376.43 C 191.19 386.36 191.44 396.26 190.78 406.19 C 190.34 413.31 189.85 421.35 186.96 427.96 C 184.76 433.35 181.36 438.15 177.16 442.17 C 168.35 450.61 156.13 456.66 144.05 458.37 C 136.89 458.99 129.00 459.18 122.20 456.60 C 112.50 453.27 104.02 445.06 100.30 435.52 C 98.07 430.07 97.90 423.71 98.59 417.94 C 99.98 409.63 106.04 402.38 113.09 398.09 C 119.79 394.39 127.63 392.32 134.98 390.28 C 153.78 385.62 172.70 382.37 191.23 376.43 Z" fill="#ffffff" />
|
||||||
|
<path d="M 1056.38 530.60 C 1055.77 533.48 1055.15 536.35 1054.45 539.20 C 1050.08 538.41 1044.68 536.98 1040.80 539.90 C 1039.47 544.06 1038.53 548.30 1037.56 552.55 C 1041.30 552.61 1045.03 552.60 1048.76 552.60 C 1048.25 555.18 1047.70 557.76 1047.24 560.36 C 1043.50 560.38 1039.77 560.38 1036.03 560.41 C 1032.49 577.38 1028.92 594.34 1025.38 611.32 C 1022.05 611.31 1018.72 611.32 1015.39 611.31 C 1018.85 594.33 1022.58 577.40 1025.96 560.41 C 1023.01 560.38 1020.06 560.38 1017.11 560.36 C 1017.63 557.77 1018.17 555.18 1018.71 552.59 C 1021.67 552.59 1024.64 552.60 1027.60 552.61 C 1028.64 548.16 1029.38 543.63 1030.60 539.23 C 1031.61 535.41 1033.71 532.09 1037.43 530.47 C 1043.58 527.86 1050.13 529.20 1056.38 530.60 Z" fill="#000000" />
|
||||||
|
<path d="M 108.56 530.43 C 107.86 533.47 107.18 536.51 106.51 539.56 C 97.73 539.56 88.96 539.53 80.19 539.58 C 75.20 563.49 70.23 587.41 65.23 611.31 C 61.61 611.32 57.99 611.32 54.36 611.30 C 59.45 587.41 64.36 563.47 69.36 539.56 C 60.58 539.55 51.81 539.57 43.03 539.55 C 43.43 536.47 43.93 533.43 44.75 530.44 C 66.01 530.34 87.30 530.37 108.56 530.43 Z" fill="#000000" />
|
||||||
|
<path d="M 118.54 530.49 C 121.81 530.23 125.13 530.42 128.41 530.41 C 126.39 540.69 123.92 550.90 122.19 561.23 C 125.82 557.93 129.31 554.82 133.97 553.04 C 137.81 551.37 141.90 551.19 146.01 551.62 C 151.33 552.36 155.98 556.31 157.22 561.59 C 158.07 565.91 157.20 570.28 156.29 574.51 C 153.66 586.77 151.21 599.07 148.58 611.33 C 145.26 611.31 141.93 611.31 138.61 611.31 C 141.28 598.55 143.94 585.77 146.64 573.02 C 147.22 570.08 147.93 566.75 147.30 563.79 C 145.94 560.85 143.12 559.59 139.99 559.55 C 131.47 559.51 123.83 565.15 120.59 572.91 C 117.54 580.40 116.26 589.13 114.51 597.00 C 113.46 601.76 112.53 606.55 111.51 611.32 C 108.18 611.31 104.84 611.31 101.51 611.30 C 105.90 590.54 110.17 569.74 114.54 548.97 C 115.96 542.84 116.83 536.54 118.54 530.49 Z" fill="#000000" />
|
||||||
|
<path d="M 385.91 530.41 C 380.52 557.40 374.68 584.34 369.15 611.30 C 365.81 611.32 362.48 611.32 359.14 611.30 C 364.70 584.37 370.45 557.47 375.92 530.52 C 379.24 530.30 382.59 530.39 385.91 530.41 Z" fill="#000000" />
|
||||||
|
<path d="M 401.42 530.47 C 404.61 530.24 407.84 530.41 411.04 530.41 C 410.48 534.16 409.72 537.87 408.92 541.58 C 405.64 541.60 402.36 541.60 399.07 541.59 C 399.75 537.89 400.25 534.05 401.42 530.47 Z" fill="#000000" />
|
||||||
|
<path d="M 489.49 530.47 C 492.70 530.24 495.95 530.42 499.17 530.42 C 497.47 540.04 495.16 549.55 493.40 559.15 C 498.28 554.89 503.17 551.26 510.00 551.43 C 518.79 551.06 526.10 557.76 528.07 566.07 C 531.38 580.39 526.87 597.77 515.06 607.12 C 508.72 612.21 499.77 614.53 492.23 610.63 C 487.75 608.40 486.04 604.62 483.18 600.82 C 482.63 604.34 482.01 607.84 481.19 611.32 C 478.26 611.31 475.32 611.31 472.38 611.30 C 477.47 587.23 482.47 563.14 487.46 539.05 C 488.08 536.19 488.56 533.24 489.49 530.47 Z" fill="#000000" />
|
||||||
|
<path d="M 562.00 530.41 C 556.68 557.42 550.81 584.35 545.26 611.31 C 541.92 611.32 538.58 611.32 535.24 611.30 C 540.79 584.39 546.71 557.47 551.95 530.51 C 555.30 530.37 558.65 530.36 562.00 530.41 Z" fill="#000000" />
|
||||||
|
<path d="M 1071.00 530.42 C 1065.68 557.42 1059.80 584.34 1054.26 611.31 C 1050.92 611.32 1047.58 611.32 1044.24 611.30 C 1048.69 590.22 1053.04 569.12 1057.47 548.03 C 1058.53 542.17 1060.13 536.41 1060.95 530.51 C 1064.30 530.37 1067.65 530.36 1071.00 530.42 Z" fill="#000000" />
|
||||||
|
<path d="M 914.75 531.32 C 913.23 538.40 911.83 545.51 910.30 552.59 C 913.51 552.60 916.72 552.60 919.92 552.59 C 919.55 555.22 919.07 557.79 918.48 560.38 C 915.22 560.38 911.97 560.38 908.72 560.39 C 906.14 572.58 903.47 584.76 901.08 596.99 C 900.47 599.55 900.71 601.09 901.69 603.47 C 904.78 603.71 907.78 603.68 910.87 603.44 C 910.29 606.08 909.73 608.73 909.22 611.39 C 903.48 612.55 896.82 613.18 892.21 608.80 C 889.29 605.80 890.22 601.94 890.81 598.23 C 893.33 585.60 896.07 573.01 898.70 560.40 C 896.13 560.38 893.56 560.38 891.00 560.38 C 891.36 557.74 891.80 555.14 892.45 552.56 C 895.06 552.59 897.68 552.60 900.29 552.60 C 901.41 547.72 902.20 542.80 903.52 537.97 C 907.35 535.88 911.03 533.57 914.75 531.32 Z" fill="#000000" />
|
||||||
|
<path d="M 198.99 551.44 C 206.89 551.41 214.52 555.83 218.03 562.98 C 221.49 569.61 220.73 577.22 220.20 584.40 C 205.70 584.55 191.19 584.42 176.69 584.47 C 176.44 590.76 176.88 597.56 182.14 601.83 C 187.86 606.44 195.81 604.37 201.03 600.06 C 204.09 597.73 205.58 594.54 207.69 591.47 C 210.84 591.57 213.99 592.07 217.11 592.47 C 215.17 598.43 211.14 603.41 206.17 607.14 C 197.69 613.69 184.48 614.65 175.61 608.34 C 169.99 604.31 167.29 597.76 166.66 591.05 C 165.79 580.63 169.17 569.79 175.75 561.66 C 181.29 554.87 190.21 550.87 198.99 551.44 Z" fill="#000000" />
|
||||||
|
<path d="M 302.78 553.49 C 301.38 556.45 300.07 559.44 298.91 562.51 C 295.66 561.29 292.66 560.32 289.23 561.65 C 282.32 564.59 278.38 571.16 276.15 578.03 C 272.73 588.84 271.18 600.30 268.44 611.32 C 265.31 611.31 262.18 611.31 259.05 611.30 C 263.22 591.73 267.04 572.07 271.46 552.57 C 274.30 552.59 277.15 552.60 280.00 552.60 C 279.35 556.52 278.57 560.42 277.80 564.31 C 281.34 559.51 285.27 554.30 291.03 552.08 C 295.20 550.61 298.95 551.73 302.78 553.49 Z" fill="#000000" />
|
||||||
|
<path d="M 335.24 551.86 C 342.34 553.28 348.32 558.27 350.88 565.05 C 353.13 571.14 352.89 578.15 351.89 584.47 C 337.46 584.46 323.03 584.46 308.59 584.48 C 308.18 591.99 309.32 600.38 317.14 603.61 C 326.26 606.85 335.92 599.78 339.28 591.47 C 342.55 591.67 345.81 592.03 349.06 592.45 C 346.66 599.51 341.49 605.31 335.14 609.10 C 327.29 613.51 316.65 613.96 308.84 609.21 C 304.24 606.44 301.15 601.91 299.65 596.80 C 297.56 589.61 298.28 581.53 300.64 574.48 C 303.60 566.19 308.42 558.59 316.52 554.55 C 322.29 551.41 328.83 550.83 335.24 551.86 Z" fill="#000000" />
|
||||||
|
<path d="M 443.01 551.42 C 449.94 551.26 457.01 552.94 462.03 557.98 C 465.15 561.30 465.81 565.64 465.22 570.03 C 464.07 578.43 461.79 586.68 460.10 594.99 C 458.91 600.43 459.04 605.90 460.33 611.31 C 456.95 611.31 453.57 611.31 450.19 611.32 C 449.77 608.92 449.40 606.52 449.07 604.11 C 444.67 607.48 440.55 610.56 435.02 611.81 C 428.46 613.36 421.12 612.78 415.98 608.02 C 409.84 602.36 409.15 592.66 413.79 585.86 C 416.43 581.87 420.55 579.62 425.05 578.34 C 434.81 575.46 444.64 577.65 454.42 574.56 C 454.98 571.62 455.78 568.81 455.32 565.79 C 454.07 561.86 450.23 560.40 446.51 559.73 C 441.61 559.10 435.83 559.52 431.91 562.86 C 429.37 564.89 427.97 567.54 426.38 570.28 C 423.12 569.81 419.86 569.53 416.57 569.32 C 418.03 565.69 419.65 562.25 422.43 559.42 C 427.72 553.68 435.34 551.24 443.01 551.42 Z" fill="#000000" />
|
||||||
|
<path d="M 946.71 551.92 C 951.92 551.17 957.92 551.03 962.86 553.13 C 968.61 555.43 973.20 560.30 975.12 566.19 C 977.51 573.34 976.85 581.67 974.78 588.82 C 972.34 597.09 967.46 604.43 959.78 608.64 C 950.77 613.84 938.62 614.19 929.98 608.04 C 924.44 604.06 921.58 597.72 921.19 591.01 C 920.79 582.19 922.64 572.97 927.50 565.50 C 931.86 558.61 938.62 553.47 946.71 551.92 Z" fill="#000000" />
|
||||||
|
<path d="M 406.64 552.61 C 402.48 572.16 398.47 591.76 394.33 611.32 C 391.00 611.31 387.68 611.32 384.35 611.30 C 388.49 591.76 392.38 572.15 396.71 552.65 C 400.02 552.53 403.34 552.60 406.64 552.61 Z" fill="#000000" />
|
||||||
|
<path d="M 596.00 551.46 C 603.41 551.64 610.50 555.56 614.08 562.13 C 617.81 569.11 617.81 576.85 616.51 584.47 C 602.11 584.46 587.71 584.47 573.31 584.47 C 573.27 587.29 573.13 590.27 573.60 593.06 C 574.50 597.89 577.79 602.45 582.61 603.92 C 587.52 605.38 592.68 603.63 596.69 600.73 C 600.10 598.35 602.11 595.02 603.99 591.41 C 607.25 591.69 610.49 592.06 613.73 592.46 C 611.34 599.15 606.56 604.59 600.71 608.52 C 592.47 613.70 580.59 614.19 572.44 608.56 C 565.84 604.05 562.85 595.78 563.16 588.00 C 562.87 579.99 565.33 572.23 569.50 565.46 C 575.05 556.33 585.21 550.58 596.00 551.46 Z" fill="#000000" />
|
||||||
|
<path d="M 777.03 551.85 C 782.27 552.75 788.02 555.38 790.98 559.99 C 792.94 563.10 792.89 566.45 792.58 570.00 C 791.45 580.16 788.01 589.97 786.82 599.95 C 786.30 603.90 787.14 607.46 787.71 611.33 C 784.36 611.31 781.01 611.31 777.66 611.31 C 777.24 608.89 776.81 606.48 776.43 604.07 C 772.09 607.65 767.65 610.70 762.05 611.90 C 755.21 613.41 747.76 612.58 742.71 607.33 C 738.21 602.69 737.41 596.03 739.15 589.99 C 741.04 584.35 746.09 580.13 751.75 578.55 C 761.72 575.40 771.74 577.68 781.78 574.61 C 782.40 571.55 783.57 567.53 782.25 564.57 C 780.50 561.35 776.46 560.00 773.04 559.62 C 767.94 559.13 762.38 559.82 758.54 563.51 C 756.40 565.39 755.33 567.75 754.03 570.21 C 750.67 569.79 747.30 569.55 743.92 569.31 C 746.06 564.17 748.70 559.51 753.40 556.29 C 760.31 551.32 768.83 550.79 777.03 551.85 Z" fill="#000000" />
|
||||||
|
<path d="M 660.52 552.60 C 663.76 552.59 667.00 552.59 670.24 552.62 C 671.17 565.48 673.21 578.35 673.61 591.25 C 673.72 594.22 674.10 597.15 674.40 600.10 C 675.72 595.07 677.52 590.23 679.70 585.52 C 684.69 574.53 689.68 563.54 694.76 552.59 C 698.34 552.60 701.93 552.60 705.52 552.59 C 706.14 561.06 706.67 569.53 707.32 577.99 C 707.92 585.17 707.33 592.29 708.52 599.42 C 710.44 592.95 713.71 586.69 716.49 580.52 C 720.91 571.21 725.26 561.86 729.74 552.59 C 733.06 552.60 736.38 552.59 739.69 552.62 C 730.11 572.16 720.56 591.71 711.05 611.28 C 707.58 611.32 704.10 611.32 700.62 611.32 C 699.82 595.74 698.10 580.31 698.15 564.69 C 691.40 580.34 684.22 595.80 677.16 611.31 C 673.66 611.31 670.16 611.31 666.66 611.31 C 664.66 591.75 662.61 572.15 660.52 552.60 Z" fill="#000000" />
|
||||||
|
<path d="M 806.38 552.60 C 809.65 552.59 812.92 552.60 816.18 552.60 C 818.52 568.26 820.98 583.82 822.83 599.54 C 823.97 597.76 825.07 595.95 826.11 594.11 C 833.75 580.27 841.48 566.47 849.11 552.63 C 852.60 552.59 856.08 552.59 859.57 552.61 C 847.00 575.02 834.38 597.41 821.75 619.80 C 818.61 625.04 814.92 631.71 808.91 634.00 C 804.56 635.80 800.58 635.02 796.14 634.17 C 796.27 630.96 796.48 627.76 796.71 624.55 C 800.72 625.36 804.99 626.41 808.40 623.41 C 811.53 620.23 813.80 615.99 815.70 611.98 C 815.98 609.06 815.23 605.96 814.77 603.07 C 811.89 586.26 809.16 569.42 806.38 552.60 Z" fill="#000000" />
|
||||||
|
<path d="M 1076.40 552.60 C 1079.67 552.59 1082.93 552.60 1086.20 552.60 C 1088.52 568.21 1091.00 583.83 1092.85 599.51 C 1095.64 595.29 1097.89 590.81 1100.38 586.42 C 1106.63 575.15 1112.90 563.90 1119.14 552.62 C 1122.62 552.59 1126.10 552.59 1129.58 552.61 C 1117.04 574.98 1104.44 597.33 1091.84 619.68 C 1089.06 624.33 1085.78 630.19 1080.99 632.99 C 1076.76 635.75 1070.92 634.80 1066.19 634.29 C 1066.28 631.04 1066.49 627.80 1066.71 624.56 C 1070.38 625.28 1074.60 626.32 1077.84 623.87 C 1080.94 621.34 1082.91 617.26 1084.87 613.83 C 1086.34 611.59 1085.69 609.46 1085.45 606.99 C 1082.36 588.89 1079.39 570.72 1076.40 552.60 Z" fill="#000000" />
|
||||||
|
<path d="M 207.24 562.80 C 211.12 566.67 211.32 571.58 211.41 576.75 C 200.38 576.67 189.34 576.87 178.31 576.64 C 180.32 571.38 182.42 566.53 187.01 562.99 C 192.43 558.51 202.07 557.39 207.24 562.80 Z" fill="#ffffff" />
|
||||||
|
<path d="M 339.65 563.35 C 343.10 567.16 343.24 571.86 343.35 576.73 C 332.31 576.71 321.27 576.83 310.24 576.67 C 312.40 570.64 315.06 565.22 320.71 561.75 C 326.26 558.22 335.15 557.91 339.65 563.35 Z" fill="#ffffff" />
|
||||||
|
<path d="M 604.46 563.55 C 607.79 567.47 607.70 571.81 607.83 576.69 C 596.87 576.79 585.90 576.74 574.94 576.71 C 576.89 570.77 579.49 565.42 584.97 561.98 C 590.61 558.14 599.88 557.86 604.46 563.55 Z" fill="#ffffff" />
|
||||||
|
<path d="M 948.45 559.62 C 952.21 558.99 956.66 558.79 959.93 561.09 C 963.36 563.31 965.51 566.79 966.28 570.77 C 967.54 577.18 966.05 584.29 963.61 590.27 C 961.02 596.37 956.34 602.29 949.74 604.19 C 945.36 605.26 940.44 605.11 936.80 602.13 C 932.94 599.17 931.51 594.71 931.20 590.01 C 930.93 584.49 932.05 578.84 934.03 573.69 C 936.53 567.48 941.75 561.33 948.45 559.62 Z" fill="#ffffff" />
|
||||||
|
<path d="M 501.49 560.60 C 506.38 558.35 512.08 559.22 515.64 563.37 C 520.19 568.33 519.75 576.88 518.39 582.99 C 516.92 589.36 514.22 596.77 508.99 601.01 C 504.88 604.55 498.14 605.75 493.44 602.72 C 489.32 600.28 487.48 595.63 487.28 591.02 C 486.80 584.13 488.68 577.72 491.51 571.52 C 493.63 567.05 496.91 562.74 501.49 560.60 Z" fill="#ffffff" />
|
||||||
|
<path d="M 452.78 581.66 C 451.51 588.68 449.89 595.36 444.21 600.17 C 440.13 603.75 435.39 605.21 429.98 604.73 C 426.24 604.60 422.72 602.33 421.34 598.81 C 419.23 594.00 422.25 587.86 427.13 586.16 C 434.10 583.53 442.54 584.18 449.53 582.54 C 450.61 582.26 451.70 581.96 452.78 581.66 Z" fill="#ffffff" />
|
||||||
|
<path d="M 780.08 581.75 C 779.33 586.79 778.14 591.97 775.22 596.24 C 771.43 601.86 764.83 605.38 757.99 604.77 C 754.19 604.70 750.61 602.88 749.01 599.31 C 746.85 594.28 749.18 588.40 754.24 586.30 C 762.14 583.17 771.74 584.42 780.08 581.75 Z" fill="#ffffff" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 20 KiB |
55
static/airline-logos/AK.svg
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
|
||||||
|
<title>AirAsia logo</title>
|
||||||
|
<path fill="#E32526" d="M295.312,150.305c0,80.078-64.913,145.001-145.006,145.001c-80.072,0-144.994-64.924-144.994-145.001
|
||||||
|
c0-80.077,64.922-144.999,144.994-144.999C230.398,5.307,295.312,70.228,295.312,150.305"/>
|
||||||
|
<path fill="#FFFFFF" d="M109.494,121.304c3.279-0.593,5.716,1.4,5.471,4.431
|
||||||
|
c-0.245,3.027-3.111,5.985-6.384,6.57c-3.258,0.581-5.716-1.412-5.456-4.445C103.374,124.828,106.221,121.904,109.494,121.304
|
||||||
|
M74.235,143.04c2.838-10.566,6.273-21.355,9.672-29.411c-6.849,8.978-14.188,20.401-20.801,31.806
|
||||||
|
C66.955,144.534,70.699,143.735,74.235,143.04 M132.566,134.806c2.556-0.465,8.297,3.01,5.551,6.23
|
||||||
|
c-2.854,3.313-6.074,2.652-11.129,4.762c-2.865,1.188-5.063,3.753-8.201,8.268c-3.99,5.854-5.818,11.588-6.146,15.897
|
||||||
|
c-0.027,1.279-0.129,1.918-0.805,2.359c-6.68,4.363-8.735,1.084-8.566-2.924c0.043-0.946,0.374-2.442,0.964-4.284
|
||||||
|
c-5.14,7.707-9.69,11.605-12.666,12.14c-3.989,0.721-6.24-2.048-5.811-7.171c0.196-2.33,0.897-5.069,2.202-8.521
|
||||||
|
c1.368-3.505,3.524-8.297,5.52-12.223c0.509-1.023,1.001-2.005,1.415-2.884c-3.028,0.585-7.324,1.473-12.381,2.626
|
||||||
|
c-0.068,0.166-0.125,0.257-0.187,0.267c-2.149,10.038-2.318,13.822-3.476,22.574c-0.49,3.828,0.248,7.946-4.311,8.575
|
||||||
|
c-4.558,0.661-6.071-4.033-6.098-8.041c-0.059-4.081,0.695-8.985,3.579-20.856c-4.736,1.206-9.742,2.593-14.696,4.114
|
||||||
|
c-0.07,0.111-0.119,0.169-0.119,0.169c-8.227,15.06-16.347,33.694-17.69,39.72c-1.071,4.831-3.254,6.311-6.466,4.911
|
||||||
|
c-3.206-1.405-5.073-4.635-3.907-8.236c2.113-6.464,8.548-20.973,14.28-31.386c-0.043,0.019,0-0.125,0.135-0.389
|
||||||
|
c-4.201,1.632-8.107,3.382-11.521,5.264c-2.251,1.212-5.077,0.092-5.619-2.422c-0.388-1.783-1.24-5.304,3.121-7.218
|
||||||
|
c6.588-2.88,13.715-5.319,20.834-7.379c15.119-25.437,33.911-51.608,39.315-51.13c2.339,0.202,1.969,2.73,4.032,5.021
|
||||||
|
c2.036,2.281,2.333,3.678-0.104,9.725c-4.997,12.412-4.599,9.521-9.394,28.884c8.793-1.458,16.447-2.299,17.164-2.41
|
||||||
|
c2.427-0.345,6.604,1.308,4.396,6.048c0,0-2.314,4.075-3.227,5.82c-1.65,2.887-3.791,7.226-5.083,10.158
|
||||||
|
c-0.821,1.729-1.194,3.051-1.261,4.019c-0.067,0.629,0.169,0.985,0.677,0.894c0.673-0.122,1.66-0.849,2.85-2.081
|
||||||
|
c1.157-1.353,5.064-4.558,12.047-16.323l1.843-3.812c0.594-1.136,1.445-3.138,1.607-4.057c0.193-1.366,0.245-1.721,1.387-2.44
|
||||||
|
c1.843-1.176,5.174-2.149,7.097-0.894c1.81,1.197,1.341,3.365-0.162,5.995C129.642,135.312,131.207,135.03,132.566,134.806
|
||||||
|
M251.649,154.617c3.422-4.208,8.716-13.862,9.047-16.498c0.152-1.21-0.196-1.688-1.147-1.565
|
||||||
|
c-1.176,0.156-3.815,2.312-6.327,5.387c-3.679,4.415-8.633,13.32-9.021,16.254c-0.163,1.2,0.327,1.988,1.173,1.887
|
||||||
|
C246.735,159.895,249.087,157.853,251.649,154.617 M272.153,147.651c1.487-2.361,4.635-1.589,3.793,0.582
|
||||||
|
c-0.727,1.879-2.101,4.929-5.604,9.067c-4.305,5.293-8.27,7.861-11.854,8.337c-2.89,0.407-4.938-0.831-5.438-3.42l-0.168-0.527
|
||||||
|
c-0.009-0.456-0.238-0.683-0.489-0.641c-0.264,0.028-0.457,0.225-0.94,0.681c-3.635,3.852-6.415,6.221-9.775,6.681
|
||||||
|
c-5.019,0.656-7.94-3.262-7.229-8.947c-1.343,1.988-2.73,3.898-4.007,5.307c-3.922,4.357-7.137,7.125-10.12,7.515
|
||||||
|
c-4.025,0.538-6.132-2.331-5.454-7.414c0.303-2.316,1.166-5.013,2.639-8.435c1.53-3.413,3.903-8.105,6.096-11.932
|
||||||
|
c1.751-3.136,3.441-6.682,3.704-7.891c0.202-0.952,0.306-1.136,1.05-1.62c0.935-0.664,2.78-1.451,3.905-1.54
|
||||||
|
c2.841-0.214,6.611,1.84,4.117,6.099l-0.94,1.62c-0.135,0.333-1.841,3.416-2.822,5.098c-1.81,2.834-4.127,7.058-5.582,9.917
|
||||||
|
c-0.903,1.702-1.341,3.004-1.46,3.952c-0.099,0.634,0.119,1.012,0.615,0.938c0.695-0.086,1.718-0.769,2.961-1.969
|
||||||
|
c1.275-1.334,2.054-2.219,4.896-5.979l1.031-1.301c0.82-1.07,7.296-9.539,9.243-11.636c5.224-6.233,11.124-10.651,14.913-11.141
|
||||||
|
c2.489-0.343,4.497,0.793,5.465,3.092c0.683,1.877,0.818,2.006,2.483,2.725c2.663,1.056,3.536,1.95,3.331,3.307
|
||||||
|
c-0.099,0.968-0.462,1.718-2.155,4.379c-1.19,2.035-2.501,4.411-3.441,6.242c-1.979,3.917-3.062,6.583-1.143,7.263
|
||||||
|
c0.727,0.251,2.071-0.44,3.749-2.217C269.379,151.876,270.693,149.928,272.153,147.651 M237.838,127.997
|
||||||
|
c3.268-0.582,6.123-3.527,6.381-6.567c0.235-3.034-2.211-5.009-5.463-4.424c-3.275,0.588-6.141,3.53-6.38,6.574
|
||||||
|
C232.115,126.607,234.577,128.585,237.838,127.997 M188.147,113.623c-6.8,8.931-14.105,20.305-20.725,31.664
|
||||||
|
c3.871-0.885,7.591-1.65,11.068-2.308C181.348,132.449,184.755,121.668,188.147,113.623 M189.855,141.074
|
||||||
|
c1.953-0.288,8.304-1.041,8.06,1.623c-0.374,4.293-1.991,4.229-7.671,5.447c-1.074,0.242-2.217,0.487-3.416,0.741
|
||||||
|
c-0.087,0.288-0.179,0.456-0.245,0.466c-2.14,10.038-2.309,13.834-3.484,22.574c-0.505,3.828,0.244,7.946-4.313,8.575
|
||||||
|
c-4.556,0.661-6.13-4.036-6.103-8.041c0.016-7.088,3.592-20.985,3.61-21.067c-4.636,1.181-9.607,2.525-14.553,4.068
|
||||||
|
c-5.893,10.008-16.633,34.12-17.962,40.146c-1.081,4.831-3.261,6.311-6.482,4.896c-3.205-1.39-4.996-4.592-3.897-8.221
|
||||||
|
c2.991-9.976,14.298-31.581,14.476-31.971c-4.194,1.685-8.104,3.493-11.475,5.416c-2.088,1.188-4.752,0.055-5.318-2.449
|
||||||
|
c-0.374-1.801-1.204-5.309,2.875-7.173c6.542-2.982,13.655-5.476,20.758-7.524c15.095-25.389,33.815-51.438,39.209-50.957
|
||||||
|
c2.351,0.199,1.985,2.728,4.04,5.018c2.045,2.275,2.333,3.678-0.118,9.725c-4.974,12.421-4.565,9.521-9.377,28.918
|
||||||
|
C188.943,141.218,189.392,141.142,189.855,141.074 M197.066,176.26c3.729-0.382,14.629-2.771,14.738-14.738
|
||||||
|
c0.025-4.632-4.402-7.074-5.478-10.303c-0.694-1.995-0.527-6.112,2.621-7.349c3.889-1.531,4.694,1.025,6.037,2.936
|
||||||
|
c0.558,0.784,2.339,0.597,2.948-0.04c0.849-0.882,2.089-2.202,2.624-4.443c0.472-2.054-1.708-5.505-8.042-5.291
|
||||||
|
c-2.214,0.049-5.346,0.426-9.782,4.657c-2.046,1.947-8.559,10.854-3.738,18.502c1.301,2.076,4.43,4.614,2.418,6.564
|
||||||
|
c-3.139,3.025-8.531-1.661-9.556-3.076c-0.462-0.651-1.8-1.412-2.679-0.122c-0.508,0.74-2.927,5.052-2.553,6.646
|
||||||
|
C187.713,175.178,194.133,176.554,197.066,176.26"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.6 KiB |
17
static/airline-logos/AM.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 475.7 84.8">
|
||||||
|
<title>Aeroméxico</title>
|
||||||
|
<desc>Aeroméxico logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Aeroméxico</Airline:name>
|
||||||
|
<Airline:iataCode>AM</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AM</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g fill="#0B2343">
|
||||||
|
<path d="M74.7,25.6c1.7,0,2.9,0.5,3.8,1c2,0.9,4.2,2,7.1,3.4c0,0,4.6-3.3,4.9-3.5c1.6-1.1,3.1-0.3,3.6,0.7c1.7,3.3,4.9,10,6.6,16.2c0.2,0.7,0,1.9-1.2,2.2c-0.7,0.2-1.8,0.4-3,0.5c-1.7,0.2-1.6,1.6-1.6,2.4c0,1,0,7.9,0,10.2c0,1.4-1.1,6.1-6.5,6.1c-0.4,0-12.4,0-12.4,0c-4.7,0-8.4-3.9-8.4-8.1c0-2.8,0-22,0-24.2C67.5,28.3,71.3,25.5,74.7,25.6"/>
|
||||||
|
<path d="M55.1 64.8H15v4.5h47.1c0 0 1.7-3.9 1.7-8.3 0-.2 0-30.3 0-30.3 0-2.4 1-6.4 5.9-7.5.1 0 .3-.1.4-.1 13.9-3.3 28.2-.3 36.3 3.2 1.5.7 1.8-.5 1.7-1 .2-6.8-5-14.6-14.5-15-7.7-.2-12 2.6-13.6 3.4-.1.1-.3 0-.5-.2C78.1 12.1 75 10 71.6 9c-.5-.1-.6-.9 0-.9 7.3-.8 13.7 0 16.4.5.6.1 1.1-.3.8-.8-.2-.4-.3-.6-.6-1.3-.7-1.4-2.4-2.9-4.6-3.5-5.7-1.6-15.5-3-24.3-3-9.8-.1-20.2 1.9-22.8 2.5-.6.1-1.5.4-1.7.4-.5 0-.7.7-.4 1 .2.2.7.7 1 1 .3.4.5 1-.1 1.6L17.1 22.8h12.4.1c.8 0 1.6.7 1.6 1.6 0 .8-.7 1.6-1.5 1.6h-.1H13.5l-4.9 4.5h21.1.1c.8 0 1.5.9 1.5 1.6 0 .7-.6 1.6-1.5 1.6h-.1H5l-5 4.6h42.7.1c.8 0 1.5.9 1.5 1.6 0 .9-.6 1.7-1.5 1.7h-.1H0v4.5h42.6.1c1 0 1.5.9 1.5 1.7 0 .7-.7 1.5-1.6 1.5h-.1H0v4.5h55.7.1c.9 0 1.5.8 1.5 1.7 0 .8-.7 1.6-1.5 1.6h-.1H15v4.5h40.1.8c.8 0 1.4.9 1.4 1.7 0 .8-.7 1.6-1.4 1.6L55.1 64.8 55.1 64.8zM30 80.2v4.6c0 0 6 0 9.5 0 8.5-.1 14-4.6 14-4.6H30zM30 72.5V77h27.3c1.3-1.3 2.9-3.6 3.3-4.5H30zM469.5 44.9c0-.1 0-.2 0-.2-.2-3.5-1.3-6.6-2.9-9-3.4-5.3-9.3-8.2-16.4-8.1-7.1-.1-13.1 2.8-16.4 8.1-1.6 2.4-2.8 5.5-2.9 9 0 .1 0 .2 0 .2-1 11.6 5.8 19.7 17.4 20.6.7.1 1.4.1 2 .1.7 0 1.3 0 2-.1C463.7 64.6 470.4 56.6 469.5 44.9M451 60.1c-.3 0-.6 0-.9 0s-.6 0-.9 0c-1.7-.2-3-.8-4.2-1.7-.3-.3-.7-.6-1-1-1.8-2-2.7-5.4-3-8.1-.5-6.3.7-15.5 8.4-16.1.2 0 .4 0 .6 0h.1.1c.2 0 .4 0 .6 0 7.7.6 9 9.8 8.5 16.1-.2 2.7-1.1 6.1-3 8.1-.3.4-.7.7-1 1C454 59.3 452.6 59.9 451 60.1M392.7 36.3c0-2.9.3-7.9.3-7.9l0 0h-9.5l0 0c0 0 .3 5.1.3 7.9V57c0 2.9-.3 7.8-.3 7.8l0 0h9.4l0 0c0 0-.3-4.9-.3-7.8L392.7 36.3zM337.3 59.1c-2 0-4.6 0-6.6 0-.1-3.7-.1-7.2-.1-10.4v-.5l0 0v-.1h10.9V43h-10.9c0-5.5.1-9.2.1-9.2h13.6v-5.5c-9.5 0-23.2 0-23.2 0s.2 5 .2 7.9v20.7c0 2.6-.2 7.1-.2 7.9h24.1V59C345.3 59 340.5 59.1 337.3 59.1M179.5 59.1c-2 0-4.6 0-6.6 0-.1-3.7-.1-7.2-.1-10.4v-.5l0 0v-.1h10.9v-5.2h-10.9c0-5.5.1-9.2.1-9.2h13.6v-5.5c-9.5 0-23.2 0-23.2 0s.2 5 .2 7.9v20.8c0 2.6-.2 7.1-.2 7.9h24.1V59C187.4 59 182.6 59.1 179.5 59.1M368.3 45.2l10.5-16.8h-7.2l-.1.2c-2.2 3.8-4.9 8.4-6 10.1l-.4.7L359 28.3h-10.9l10.5 18.9-10.9 17.6h7.2c4.7-8 7.1-11.6 7.1-11.6l6.5 11.6h10.8L368.3 45.2zM422.2 59.8c-8.4 0-13-6.2-12.7-13.8.2-6.6 3.2-12.3 10.5-12.8 2.8-.2 5 .3 8.9 1.3l-.4-5.7c0 0-3.3-1-8-1.2-6-.2-11.4.9-15.8 4.9-3.9 3.5-6.2 8.8-6.2 13.9 0 5.6 2.3 10.8 6.7 14.4 4.5 3.8 9.4 4.7 15.1 4.7 3.8 0 6-.3 9.7-1.2l-.6-5.6C428.7 59 426 59.8 422.2 59.8M300.6 22.9h10.5l.3 2.4c2.4 24.3 3.8 39.5 3.8 39.5h-11l-1.1-15.1-1-13.5-9.3 28.5c-2.5 0-5.9 0-5.9 0s-2.9-10.1-3.5-11.6L278.1 36c0 0-.8 9.5-1.1 13.6-.6 8.2-1.2 15.1-1.2 15.1h-8.2c0 0 3.4-34.1 3.6-36.2.3-2.1.7-5.8.7-5.8h10.8l8.9 24.5L300.6 22.9zM263.2 45c0-.1 0-.2 0-.2-.2-3.5-1.3-6.6-2.9-9-3.4-5.3-9.3-8.1-16.4-8-7.1-.1-13 2.7-16.4 8-1.6 2.4-2.8 5.5-2.9 9 0 .1 0 .2 0 .2-1 11.6 5.8 19.6 17.3 20.5.7.1 1.4.1 2 .1.7 0 1.3 0 2-.1C257.4 64.6 264.1 56.6 263.2 45M244.8 60.1c-.3 0-.6 0-.9 0-.3 0-.6 0-.9 0-1.7-.2-3-.8-4.2-1.7-.3-.3-.7-.6-1-1-1.8-2-2.7-5.4-3-8.1-.5-6.3.7-15.4 8.4-16 .2 0 .4 0 .6 0h.1.1c.2 0 .4 0 .6 0 7.7.6 8.9 9.8 8.4 16-.2 2.7-1.1 6-2.9 8.1-.3.4-.7.7-1 1C247.8 59.3 246.3 59.9 244.8 60.1M161 64.8c-.3-.8-2.3-5.4-3.7-9.1L145 22.9h-9.6c0 0-2.7 7.7-3.1 9l-9 25.4c-1.2 3.3-2.8 7.5-2.8 7.5h7.8c0 0 2.2-7.1 2.7-8.3l1.2-3.5h13.6l1.9 5.4c.4 1 2 6.4 2 6.5L161 64.8 161 64.8zM134.2 46.9l4.6-13.6.3-.8 4.8 14.4H134.2zM225.1 64.8c-2.3-3.2-3.1-4.6-4.8-7l-6.5-10.2c3.1-1.5 6.1-4.1 6.5-9.6.3-3.4-1.5-6.2-2.6-7.2-1.6-1.4-3.1-2-5.3-2.2-1.7-.2-3-.2-4-.3H193c0 0 .2 5 .2 7.9v20.6c0 2.9-.2 7.9-.2 7.9h9.5c0 0-.3-5-.3-7.9l.1-6.6c0 0 2.1 0 3.5 0l6 11c.8 1.4 2 3.1 2.2 3.6H225.1zM208.3 44.4c-1.4.7-4.6.5-6.2.4l.1-10.4.9-.1c2.9-.2 5 .2 5.9.6 1.3.6 2.1 1.8 2.1 3.9C211.3 41.9 210.1 43.5 208.3 44.4M468.5 61.2c0-2 1.6-3.6 3.6-3.6s3.6 1.6 3.6 3.6-1.6 3.6-3.6 3.6S468.5 63.2 468.5 61.2M474.8 61.2c0-1.7-1.2-2.9-2.7-2.9s-2.7 1.2-2.7 2.9 1.2 2.9 2.7 2.9C473.6 64.1 474.8 62.9 474.8 61.2M470.7 59.2h1.5c1 0 1.5.3 1.5 1.2 0 .7-.4 1-1.1 1.1l1.1 1.8h-.8l-1.1-1.8h-.5v1.8h-.8v-4.1H470.7zM471.4 60.9h.7c.4 0 .8-.1.8-.6s-.4-.6-.8-.6h-.7V60.9z"/>
|
||||||
|
</g>
|
||||||
|
<path fill="#ED3024" d="M368.6,75.8c-70.8-15.4-101,8.8-101,8.8s33-19.5,101-4.7c69.4,15.1,101-9.2,101-9.2S434.3,90.2,368.6,75.8z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.7 KiB |
19
static/airline-logos/AN.svg
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 86 29">
|
||||||
|
<title>Advanced Air</title>
|
||||||
|
<desc>Advanced Air logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Advanced Air</Airline:name>
|
||||||
|
<Airline:iataCode>AN</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AN</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#0b233f" d="M81.127 9.32173H55.9924L54.7408 6.54492H85.8267C85.1749 9.28913 81.127 9.32173 81.127 9.32173Z" />
|
||||||
|
<path fill="#0b233f" d="M76.2317 13.6235H57.9805L56.7289 10.8467H80.9314C80.2796 13.5909 76.2317 13.6235 76.2317 13.6235Z" />
|
||||||
|
<path fill="#0b233f" d="M66.9366 17.9838H60.0598L58.8083 15.207H71.6363C70.9845 17.9512 66.9366 17.9838 66.9366 17.9838Z" />
|
||||||
|
<path fill="#0b233f" d="M4.69319 9.32173H29.8278L31.0793 6.54492H0C0.61924 9.28913 4.69319 9.32173 4.69319 9.32173Z" />
|
||||||
|
<path fill="#0b233f" d="M9.62104 13.6235H27.8723L29.1239 10.8467H4.89526C5.52102 13.6235 9.62104 13.6235 9.62104 13.6235Z" />
|
||||||
|
<path fill="#0b233f" d="M18.8901 17.9838H25.7669L27.0184 15.207H14.1838C14.8357 17.9512 18.8836 17.9838 18.8836 17.9838" />
|
||||||
|
<path fill="#0b233f" d="M59.2971 22.0971L49.3828 0.358507C49.3246 0.261238 49.245 0.17844 49.1502 0.116343C49.0553 0.0542455 48.9477 0.0144668 48.8352 0H48.5158C48.4025 0.0144519 48.2939 0.0541694 48.198 0.116221C48.1021 0.178273 48.0214 0.261073 47.9618 0.358507L42.9166 11.4918L37.8649 0.358507C37.8067 0.261238 37.7272 0.17844 37.6323 0.116343C37.5375 0.0542455 37.4298 0.0144668 37.3174 0H36.998C36.8847 0.0144519 36.7761 0.0541694 36.6802 0.116221C36.5843 0.178273 36.5035 0.261073 36.4439 0.358507L26.5687 22.0971C26.5207 22.1876 26.4978 22.2892 26.5024 22.3915C26.507 22.4938 26.5389 22.593 26.5948 22.6788C26.6506 22.7646 26.7285 22.8339 26.8201 22.8795C26.9118 22.925 27.0141 22.9452 27.1162 22.938H29.1499C29.308 22.9381 29.4627 22.8918 29.5947 22.8049C29.7268 22.718 29.8305 22.5943 29.893 22.4491C30.5448 20.9694 31.1967 19.5158 31.8485 18.0297H39.9834L39.0643 20.0569L34.9577 28.9479C38.1256 29.5997 40.1333 25.3954 40.1333 25.3954L41.7563 21.7973L42.9362 19.1899L44.129 21.7973L45.6543 25.3563C45.6543 25.3563 47.6619 29.5866 50.8298 28.9087L46.7754 20.0373L45.8564 18.0101H53.9847C54.6365 19.4963 55.2884 20.9499 55.9402 22.4295C56.0034 22.5743 56.1072 22.6975 56.2391 22.7843C56.3711 22.8711 56.5254 22.9177 56.6833 22.9184H58.717C58.8198 22.9279 58.9233 22.9092 59.0163 22.8642C59.1092 22.8192 59.1881 22.7497 59.2445 22.6632C59.3008 22.5766 59.3325 22.4764 59.336 22.3732C59.3395 22.2699 59.3148 22.1677 59.2645 22.0775L59.2971 22.0971ZM37.0371 6.39447H37.1935L41.1632 15.2333H33.087L37.0371 6.39447ZM44.6765 15.2333L48.6462 6.39447H48.8092L52.7201 15.2333H44.6765Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
7
static/airline-logos/AR.svg
Normal file
|
After Width: | Height: | Size: 40 KiB |
29
static/airline-logos/AS.svg
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 83 35">
|
||||||
|
<title>Alaska Airlines</title>
|
||||||
|
<desc>Alaska Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Alaska Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>AS</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AS</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g fill="#01426a">
|
||||||
|
<path d="M10.2 33.4H7.59999L7.09999 34.9H5.79999L8.19999 28.5H9.59999L12 34.9H10.7L10.2 33.4ZM7.99999 32.2H9.79999L8.89999 29.8L7.99999 32.2Z"/>
|
||||||
|
<path d="M16.5 34.8V28.4H17.8V34.8H16.5Z"/>
|
||||||
|
<path d="M25 32.4H24.4V34.9H23.2V28.5H25.7C26.9 28.5 27.7 29.4 27.7 30.5C27.7 31.4 27.2 32.1 26.3 32.3L27.7 34.9H26.3L25 32.4ZM25.3 31.3C25.9 31.3 26.3 30.9 26.3 30.4C26.3 29.9 25.9 29.5 25.3 29.5H24.3V31.3H25.3V31.3Z"/>
|
||||||
|
<path d="M32.6 34.8V28.4H33.8V33.6H36.6V34.8H32.6V34.8Z"/>
|
||||||
|
<path d="M41.6 34.8V28.4H42.9V34.8H41.6Z"/>
|
||||||
|
<path d="M52.3 34.8L49.4 30.3V34.8H48.2V28.4H49.7L52.3 32.6V28.4H53.5V34.8H52.3V34.8Z"/>
|
||||||
|
<path d="M59 34.8V28.4H63V29.6H60.3V31.1H62.8V32.2H60.3V33.7H63V34.9H59V34.8Z"/>
|
||||||
|
<path d="M71.3 30.3C71.2 29.9 70.9 29.4 70.1 29.4C69.5 29.4 69.1 29.8001 69.1 30.2001C69.1 30.6001 69.3 30.8 69.8 30.9L70.7 31.1C71.9 31.3 72.5 32.1 72.5 33C72.5 34 71.7 35 70.2 35C68.5 35 67.8 33.9 67.7 33L68.8 32.7001C68.9 33.3001 69.3 33.9001 70.2 33.9001C70.9 33.9001 71.2 33.6 71.2 33.1C71.2 32.7 70.9 32.4 70.4 32.3L69.5 32.1C68.5 31.9 67.8 31.2 67.8 30.3C67.8 29.2 68.8 28.3 70 28.3C71.5 28.3 72.1 29.2 72.3 30L71.3 30.3Z"/>
|
||||||
|
<path d="M39.7 1L30.5 16.5C29.5 18.1 29 19.7 28.9 21.3H25.3C25.5 19.3 26.3 17.5 27.9 14.8L34.4 4C35.6 1.7 36.9 1 39.2 1H39.7Z"/>
|
||||||
|
<path d="M39 17.3C38.3 17.9 37 18.9 35.9 18.9C35.1 18.9 35.1 18.2 35.6 17.2C37.6 13.5 39.6 11.5 42.1 11.5H42.6L39 17.3ZM42.4 9.30005C37.7 9.30005 34.8 12 32.3 18C31.7 19.5 31.3 21.4 33.5 21.3C34.7 21.3 36.8 20.6 38.3 19.6C38.2 20.1 38.1 20.8 38.2 21.2H41.5C41.6 19.9 42.1 18.3 43.2 16.4L47.3 9.50005C45.6 9.40005 44 9.30005 42.4 9.30005Z"/>
|
||||||
|
<path d="M72.8 17.3C72.1 17.9 70.8 18.9 69.7 18.9C68.9 18.9 68.9 18.2 69.4 17.2C71.4 13.5 73.4 11.5 75.9 11.5H76.4L72.8 17.3ZM76.2 9.30005C71.5 9.30005 68.6 12 66.1 18C65.5 19.5 65.1 21.4 67.3 21.3C68.5 21.3 70.6 20.6 72.1 19.6C72 20.1 71.9 20.8 72 21.2H75.3C75.4 19.9 75.9 18.3 77 16.4L81 9.60005C79.4 9.40005 77.8 9.30005 76.2 9.30005Z"/>
|
||||||
|
<path d="M65.5 24.6001H64.4C63 24.6001 61.8 23.7001 61.4 22.3001L59.8 16.1001L56.7 21.2001H53.2L63 4.60007C64.3 2.50007 65.6 1.70007 67.9 1.70007H68.3L61.8 12.7001L66.7 9.30007H70.6L62.4 15.0001L65.5 24.6001Z"/>
|
||||||
|
<path d="M33.3 4.88311e-05C30 4.88311e-05 28.3 0.900049 25.1 3.20005L14.1 11.1H7C5 11.1 3.3 11.2 2.1 12.4L0.3 14.1C0.3 14.1 5.6 13.9 10.5 13.7L0 21.2001H4.5L15.2 13.5C17.3 13.4 18.7 13.4 18.7 13.4C21.2 13.3 22.6 11.1 22.6 11.1H18.5L27.2 4.80005L20.8 15.2C19.4 17.6 18.8 19.3001 18.5 21.1H22.2C22.3 19.5 22.9 17.9 23.8 16.3L32.6 1.60005C33.2 0.600049 33.7 -0.199951 33.7 -0.199951L33.3 4.88311e-05Z"/>
|
||||||
|
<path d="M50.7 12.7C50.7 13 50.8 13.2 51.4 13.6L52.4 14.3C53.5 15 53.9 16.1 53.8 17C53.4 19.5 51.6 21.4 47.8 21.4C46.1 21.4 45.4 21.3 43.4 21L44.9 18.5C46.3 18.7 47.1 18.9 48.1 18.9C49.5 18.9 50.1 18.2 50.2 17.7C50.2 17.4 50.1 17 49.4 16.5L48.6 15.9C47.3 15 47 14.3 47.2 13.1C47.5 10.9 50 9.30005 53.5 9.30005C54.6 9.30005 55.8 9.40005 57.1 9.50005L55.7 11.9C54.8 11.8 53.4 11.8 52.5 11.8C51.5 11.8 50.8 12.2 50.7 12.7Z"/>
|
||||||
|
<path d="M80.7 17.7001C81.7 17.7001 82.5 18.5001 82.5 19.6001C82.5 20.6001 81.7 21.5001 80.7 21.5001C79.7 21.5001 78.9 20.7001 78.9 19.6001C78.9 18.6001 79.7 17.7001 80.7 17.7001ZM80.7 21.1001C81.5 21.1001 82.1 20.5001 82.1 19.6001C82.1 18.8001 81.5 18.1001 80.7 18.1001C79.9 18.1001 79.3 18.7001 79.3 19.6001C79.3 20.4001 79.9 21.1001 80.7 21.1001ZM80.5 20.6001H80.1V18.6001H80.8C81.2 18.6001 81.5 18.9001 81.5 19.2001C81.5 19.5001 81.3 19.7001 81.1 19.8001L81.6 20.6001H81L80.6 19.8001H80.4V20.6001H80.5ZM80.7 19.5001C80.9 19.5001 81.1 19.4001 81.1 19.2001C81.1 19.0001 81 18.9001 80.7 18.9001H80.4V19.5001H80.7Z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
30
static/airline-logos/AV.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 169 40">
|
||||||
|
<title>Avianca</title>
|
||||||
|
<desc>Avianca logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Avianca</Airline:name>
|
||||||
|
<Airline:iataCode>AV</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AV</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_802_9192">
|
||||||
|
<rect width="168.131" height="40" fill="white" transform="translate(0.454071)"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path="url(#clip0_802_9192)">
|
||||||
|
<path d="M43.19 4.40874C41.5211 4.40874 40.16 5.73681 40.16 7.36478C40.16 8.99274 41.49 10.3539 43.19 10.3539C44.89 10.3539 46.259 9.01611 46.259 7.36478C46.259 5.71344 44.9114 4.40874 43.19 4.40874Z" fill="#FF0000"/>
|
||||||
|
<path d="M123.798 19.2785C123.798 14.4375 121.229 12.089 115.952 12.089C112.984 12.089 110.283 12.9263 108.149 14.342L109.954 17.8024C111.681 16.7567 113.245 16.2796 114.855 16.2796C116.466 16.2796 118.39 16.7976 118.39 19.2805V19.5453L115.212 19.6563C109.97 19.8335 106.957 22.2034 106.957 26.1662C106.957 30.129 109.641 32.5554 113.473 32.5554C115.597 32.5554 117.397 31.9128 118.964 30.5847C119.352 31.6304 119.862 32.1523 121.171 32.1523H124.244C123.944 31.1377 123.796 29.9771 123.796 28.2518V19.2785H123.798ZM118.392 27.1535C117.523 27.876 116.446 28.244 115.173 28.244C113.37 28.244 112.293 27.3346 112.293 25.8001C112.293 24.8362 112.659 23.5412 115.87 23.4419L118.392 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M40.5261 32.1523H45.8559V30.2595V12.531H40.5261V32.1523Z" fill="#FF0000"/>
|
||||||
|
<path d="M28.9025 32.1523H30.7525L38.9195 12.5291H33.5897L28.848 25.2451L24.1861 12.5291H18.8212L25.9854 30.018C26.5307 31.3714 27.3505 32.1523 28.9045 32.1523H28.9025Z" fill="#FF0000"/>
|
||||||
|
<path d="M86.738 32.1523V19.2045C86.738 13.9545 83.4938 12.089 80.4618 12.089C78.1756 12.089 76.1329 12.8153 73.8721 14.4414L73.8448 14.3401C73.3969 13.1269 72.433 12.531 70.879 12.531H68.8441V32.1542H74.1661V18.6301C75.8856 17.3468 77.3967 16.7256 78.8027 16.7256C80.6001 16.7256 81.4043 17.9349 81.4043 20.6592V32.1523H86.738Z" fill="#FF0000"/>
|
||||||
|
<path d="M105.826 30.5379L104.429 26.7484C103.312 27.3969 101.69 28.1661 99.7871 28.1661C95.834 28.1661 94.4358 24.9491 94.4358 22.1975C94.4358 18.7664 96.7044 16.2777 99.828 16.2777C101.645 16.2777 103.409 16.8736 104.794 17.9154L104.971 13.5281C103.267 12.5758 101.477 12.087 99.2632 12.087C96.4377 12.087 93.8555 13.1328 91.9997 15.0314C90.1303 16.93 89.106 19.5609 89.106 22.441C89.106 25.3211 89.9784 27.7649 91.5499 29.5526C93.2674 31.5194 95.7736 32.5534 98.7764 32.5534C101.594 32.5534 104.408 31.5077 105.828 30.536L105.826 30.5379Z" fill="#FF0000"/>
|
||||||
|
<path d="M65.7731 32.1523C65.4732 31.1377 65.3213 29.9771 65.3213 28.2518V19.2785C65.3213 14.4375 62.7528 12.089 57.4697 12.089C54.5079 12.089 51.8089 12.9263 49.6707 14.342L51.4759 17.8024C53.207 16.7567 54.7688 16.2796 56.3734 16.2796C57.978 16.2796 59.9117 16.7976 59.9117 19.2805V19.5453L56.7336 19.6563C51.4934 19.8335 48.4848 22.2034 48.4848 26.1662C48.4848 30.129 51.1662 32.5554 54.9986 32.5554C57.127 32.5554 58.9185 31.9128 60.4881 30.5847C60.8834 31.6304 61.3877 32.1523 62.7002 32.1523H65.7731ZM59.9156 27.1535C59.051 27.876 57.9663 28.244 56.7025 28.244C54.8954 28.244 53.8185 27.3346 53.8185 25.8001C53.8185 24.8362 54.1846 23.5412 57.3977 23.4419L59.9156 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M17.7404 32.1523C17.4405 31.1377 17.2886 29.9771 17.2886 28.2518V19.2785C17.2886 14.4375 14.7201 12.089 9.43703 12.089C6.47515 12.089 3.77616 12.9263 1.638 14.342L3.44317 17.8024C5.17434 16.7567 6.73609 16.2796 8.34069 16.2796C9.94529 16.2796 11.879 16.7976 11.879 19.2805V19.5453L8.70094 19.6563C3.46264 19.8335 0.454025 22.2034 0.454025 26.1662C0.454025 30.129 3.13549 32.5554 6.96783 32.5554C9.09625 32.5554 10.8878 31.9128 12.4573 30.5847C12.8526 31.6304 13.357 32.1523 14.6695 32.1523H17.7424H17.7404ZM11.8829 27.1535C11.0183 27.876 9.9336 28.244 8.66979 28.244C6.86267 28.244 5.7858 27.3346 5.7858 25.8001C5.7858 24.8362 6.1519 23.5412 9.36498 23.4419L11.8829 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.467 31.2565H158.152C159.68 31.2565 160.358 31.3831 160.784 31.5759C160.13 29.5448 158.068 27.9616 150.8 27.4183C151.961 28.762 153.18 30.0492 154.465 31.2565H154.467Z" fill="#FF0000"/>
|
||||||
|
<path d="M150.801 27.4203C143.747 19.224 138.996 8.73765 137.091 0C137.091 0 133.214 3.4195 132.907 10.611C132.566 18.4704 136.782 26.394 150.666 27.4047C150.711 27.4125 150.758 27.4125 150.801 27.4183V27.4203Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.465 31.2565C148.991 31.2565 139.541 31.2565 139.541 31.2565C139.74 31.72 140.423 32.0452 141.979 32.1367C151.295 32.6897 152.613 40 165.947 40C167.117 40 167.847 39.9299 168.585 39.7916C163.316 38.1715 158.584 35.1258 154.465 31.2546V31.2565Z" fill="#FF0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.7 KiB |
21
static/airline-logos/AY.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 21.88">
|
||||||
|
<title>Finnair</title>
|
||||||
|
<desc>Finnair logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Finnair</Airline:name>
|
||||||
|
<Airline:iataCode>AY</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AY</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(-1.751, -2.05831)">
|
||||||
|
<path d="M 19.736,2.859 C 20.74,2.328 21.868,2.052 23.003,2.078 28.075,2.076 33.147,2.095 38.219,2.072 37.557,3.541 36.854,5.475 34.973,5.644 30.26,5.775 25.535,5.632 20.817,5.71 19.651,5.69 18.489,6.304 17.995,7.388 c -1.016,1.991 -1.928,4.035 -2.926,6.038 4.043,-0.003 8.088,0.003 12.132,-0.006 -0.354,0.688 -0.619,1.452 -1.175,2.01 -0.678,0.534 -1.601,0.435 -2.406,0.459 -3.131,-0.041 -6.266,0.034 -9.396,-0.044 -1.129,2.116 -2.082,4.318 -3.173,6.453 -0.497,1.007 -1.584,1.658 -2.709,1.619 -2.196,0 -4.397,0.08 -6.591,-0.072 v -0.118 c 0.038,0.009 0.116,0.031 0.156,0.04 1.9,-4.104 3.881,-8.165 5.844,-12.24 C 8.716,9.486 10.366,7.8 12.354,6.73 14.8,5.412 17.275,4.15 19.736,2.859 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 40.747,3.859 c 0.509,-1.078 1.675,-1.75 2.853,-1.769 2.156,-0.034 4.312,0.013 6.469,-0.022 -3.174,6.676 -6.424,13.319 -9.621,19.985 -0.447,1.091 -1.543,1.875 -2.734,1.858 -2.215,0.031 -4.431,0.007 -6.645,0.01 3.222,-6.687 6.451,-13.373 9.678,-20.062 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 58.716,2.195 c 0.706,-0.351 1.525,0.047 1.909,0.678 3.159,4.344 6.337,8.675 9.527,12.994 0.351,0.478 0.615,1.006 0.875,1.537 2.021,-3.998 3.9,-8.069 5.856,-12.098 0.503,-0.997 0.872,-2.197 1.929,-2.756 1.461,-0.781 3.185,-0.375 4.769,-0.462 -3.524,7.279 -7.041,14.56 -10.561,21.842 -1.785,-0.025 -3.572,0.037 -5.354,-0.027 -1.109,-0.035 -1.965,-0.856 -2.594,-1.688 -2.465,-3.281 -4.934,-6.56 -7.4,-9.834 -0.531,-0.673 -1.047,-1.356 -1.413,-2.134 -2.006,3.994 -3.853,8.067 -5.834,12.074 -0.456,0.881 -1.372,1.528 -2.372,1.582 -1.166,0.067 -2.332,0.01 -3.496,0.024 2.48,-5.319 5.021,-10.616 7.555,-15.91 0.82,-1.744 2.045,-3.344 3.731,-4.319 0.934,-0.544 1.882,-1.069 2.873,-1.503 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 93.111,2.195 c 0.692,-0.344 1.498,0.028 1.889,0.644 3.166,4.347 6.348,8.688 9.544,13.016 0.358,0.481 0.622,1.022 0.888,1.556 2.248,-4.478 4.351,-9.033 6.553,-13.537 0.461,-0.983 1.47,-1.633 2.537,-1.746 1.145,-0.098 2.295,-0.022 3.441,-0.053 -3.479,7.303 -7.031,14.571 -10.551,21.858 -1.793,-0.03 -3.59,0.037 -5.385,-0.03 -1.188,-0.062 -2.057,-0.994 -2.713,-1.892 -2.797,-3.769 -5.674,-7.478 -8.438,-11.272 -0.09,-0.072 -0.271,-0.222 -0.361,-0.293 -1.801,3.848 -3.676,7.659 -5.492,11.5 -0.412,0.943 -1.236,1.781 -2.293,1.922 -1.246,0.131 -2.502,0.024 -3.75,0.071 2.021,-4.479 4.19,-8.899 6.297,-13.343 0.9,-1.771 1.588,-3.697 2.923,-5.207 1.309,-1.498 3.155,-2.345 4.911,-3.194 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 130.689,2.891 c 0.992,-0.538 2.109,-0.828 3.242,-0.811 2.398,0 4.799,-0.002 7.202,0 1.743,-0.006 3.459,0.639 4.8,1.75 1.534,1.182 3.112,2.307 4.631,3.507 0.683,0.469 0.734,1.384 0.345,2.069 -2.304,4.847 -4.679,9.662 -6.981,14.512 -1.99,0 -3.984,0.027 -5.975,-0.006 -1.072,0.074 -1.956,-1.172 -1.432,-2.142 0.854,-1.997 1.91,-3.905 2.791,-5.891 -4.709,-0.011 -9.416,-0.003 -14.125,-0.003 -1.031,2.087 -2.017,4.199 -3.047,6.287 -0.464,0.972 -1.438,1.722 -2.537,1.74 -2.264,0.06 -4.528,-0.014 -6.791,0.034 1.965,-4.135 3.955,-8.257 5.939,-12.382 0.963,-2.034 2.585,-3.729 4.562,-4.797 2.453,-1.301 4.916,-2.582 7.376,-3.867 M 129.3,7.394 c -1.013,1.988 -1.925,4.028 -2.928,6.025 4.716,0.013 9.428,0.003 14.144,0.003 0.947,-1.988 1.909,-3.969 2.879,-5.947 0.152,-0.419 0.519,-0.872 0.293,-1.328 -0.369,-0.537 -1.062,-0.435 -1.619,-0.459 -3.334,0.025 -6.668,-0.021 -10,0.022 -1.167,-0.031 -2.278,0.622 -2.769,1.684 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 158.925,4.568 c 0.44,-1.222 1.423,-2.306 2.778,-2.439 2.281,-0.125 4.572,0.003 6.855,-0.062 -3.078,6.647 -6.354,13.207 -9.502,19.822 -0.43,1.064 -1.406,1.953 -2.589,2.014 -2.291,0.062 -4.584,0.01 -6.878,0.024 3.114,-6.455 6.233,-12.902 9.336,-19.359 z" style="fill:#0b1560"/>
|
||||||
|
<path d="m 178.756,4.382 c 1.875,-0.872 3.638,-2.269 5.794,-2.291 2.51,-0.017 5.022,-0.028 7.531,0.006 2.278,0.078 4.222,1.388 5.916,2.794 1.234,1.059 2.766,1.807 3.753,3.125 v 0.809 c -0.578,1.492 -1.253,2.951 -2,4.363 -0.841,1.506 -2.675,1.984 -4.269,2.145 -2.636,0.209 -5.281,-0.055 -7.916,0.148 0.074,0.102 0.226,0.305 0.3,0.403 1.513,0.56 3.71,0.028 4.625,1.681 1.281,2.129 2.562,4.258 3.862,6.377 -2.574,-0.049 -5.152,0.019 -7.729,-0.031 -0.984,0.039 -1.906,-0.498 -2.4,-1.336 -1.184,-1.85 -2.242,-3.774 -3.394,-5.641 -0.44,-0.725 -1.122,-1.372 -2,-1.462 -1.481,-0.147 -2.972,-0.022 -4.456,-0.069 -1.088,2.166 -2.115,4.359 -3.188,6.531 -0.455,1.062 -1.446,1.956 -2.649,1.967 -2.267,0.074 -4.531,-0.008 -6.797,0.036 2.116,-4.399 4.159,-8.84 6.368,-13.19 1.778,-3.347 5.534,-4.628 8.649,-6.365 m 1.288,2.858 c -0.969,1.881 -1.841,3.812 -2.788,5.703 3.791,-0.006 7.582,0.012 11.372,-0.01 1.272,0.003 2.794,-0.259 3.469,-1.479 0.69,-1.299 1.257,-2.662 1.926,-3.971 0.162,-0.426 0.537,-0.897 0.284,-1.363 -0.391,-0.49 -1.054,-0.428 -1.608,-0.435 -3.332,0.025 -6.663,-0.022 -9.994,0.022 -1.077,0.006 -2.161,0.556 -2.661,1.533 z" style="fill:#0b1560"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.2 KiB |
24
static/airline-logos/AZ.svg
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13547 5656">
|
||||||
|
<title>ITA Airways</title>
|
||||||
|
<desc>ITA Airways logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>ITA Airways</Airline:name>
|
||||||
|
<Airline:alternateName>Italia Trasporto Aereo</Airline:alternateName>
|
||||||
|
<Airline:iataCode>AZ</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/AZ</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#00683E" d="M1099 2373c0,627 -380,730 -612,777 -165,34 -332,69 -487,95 0,-791 0,-1582 0,-2373 0,-627 380,-730 612,-777 165,-34 332,-69 487,-95 0,791 0,1582 0,2373z"/>
|
||||||
|
<path fill="#00683E" d="M1484 900l0 -900 6769 0c-127,166 -233,336 -349,495 -161,220 -356,405 -776,405l-1859 0 0 2346 -1099 0 0 -2346 -2687 0z"/>
|
||||||
|
<path fill="#BF1E0C" d="M8704 2473c259,-357 483,-442 846,-442l804 0 -883 1214 -1328 0 562 -772z"/>
|
||||||
|
<path fill="#00683E" d="M8405 442c259,-357 483,-442 846,-442 645,0 1290,0 1935,0 787,1082 1574,2164 2361,3246l-804 0c-362,0 -586,-85 -846,-442l-1941 -2669 -2262 3111 -1328 0 2039 -2804z"/>
|
||||||
|
<path fill="#00683E" d="M1654 4544l-233 499 467 0 -233 -499zm-333 712l-161 344 -303 0 796 -1619 796 1619 -303 0 -161 -344 -665 0z"/>
|
||||||
|
<path fill="#00683E" d="M8796 4544l-233 499 467 0 -233 -499zm-332 712l-161 344 -303 0 796 -1619 796 1619 -303 0 -161 -344 -665 0z"/>
|
||||||
|
<rect fill="#00683E" x="3052" y="4037" width="303" height="1563"/>
|
||||||
|
<polygon fill="#00683E" points="10370,5599 10651,5599 10651,4895 11241,4037 10922,4037 10522,4631 10106,4037 9787,4037 10370,4895"/>
|
||||||
|
<path fill="#00683E" d="M4160 5599l266 0 0 -609 150 0 457 609 322 0 -487 -648c188,-73 319,-242 319,-437 0,-263 -238,-477 -531,-477l-497 0 0 1563zm266 -1328l231 0c130,0 236,109 236,242 0,134 -106,242 -236,242l-231 0 0 -485z"/>
|
||||||
|
<polygon fill="#00683E" points="6387,5004 5996,4037 5694,4037 6352,5656 6797,4614 7227,5656 7885,4037 7597,4037 7206,5004 6797,3995"/>
|
||||||
|
<path fill="#00683E" d="M12609 4168l0 296c-156,-144 -299,-214 -430,-214 -154,0 -233,74 -233,190 0,103 118,186 393,285 242,86 348,253 348,435 0,267 -223,467 -548,467 -172,0 -333,-44 -484,-161l0 -289c160,140 319,212 477,212 175,0 290,-84 290,-198 0,-132 -122,-182 -347,-276 -271,-113 -400,-251 -400,-448 0,-288 217,-452 497,-452 167,0 312,46 436,154z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
52
static/airline-logos/B6.svg
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 584.8 196.1">
|
||||||
|
<title>JetBlue logo</title>
|
||||||
|
<path fill="#003876" d="M239.601,240.469l11.482-24.482l11.484,24.482H239.601
|
||||||
|
L239.601,240.469L239.601,240.469L239.601,240.469z M217.92,262.302h11.4l5.825-12.609h31.652l5.743,12.609h11.33l-26.668-54.926
|
||||||
|
H244.96L217.92,262.302L217.92,262.302L217.92,262.302z"/>
|
||||||
|
<path fill="#003876" d="M298.456,207.377h10.726v54.926h-10.726V207.377
|
||||||
|
L298.456,207.377z"/>
|
||||||
|
<path fill="#003876" d="M340.387,231.788v-15.492h20.695
|
||||||
|
c8.767,0,13.229,1.278,13.229,7.706c0,6.499-4.462,7.786-13.229,7.786H340.387L340.387,231.788L340.387,231.788L340.387,231.788z
|
||||||
|
M329.657,262.302h10.728V240.7h16.998l15.938,21.603h13.221l-16.844-22.361c8.084-0.446,15.332-6.042,15.332-16.163
|
||||||
|
c0-13.453-9.365-16.4-22.357-16.4h-33.017v54.927h0.001V262.302z"/>
|
||||||
|
<path fill="#003876" d="M398.562,207.377h10.725l10.584,37.773h0.141
|
||||||
|
l10.508-37.773h10.277l10.657,37.693h0.145l10.505-37.693h10.503l-16.015,54.926h-10.277l-10.429-38.976h-0.151l-10.504,38.976
|
||||||
|
h-10.491L398.562,207.377L398.562,207.377z"/>
|
||||||
|
<path fill="#003876" d="M500.339,240.469l11.487-24.482l11.478,24.482H500.339
|
||||||
|
L500.339,240.469L500.339,240.469L500.339,240.469z M478.659,262.302h11.408l5.816-12.609h31.651l5.74,12.609h11.344
|
||||||
|
l-26.676-54.926h-12.241L478.659,262.302L478.659,262.302L478.659,262.302z"/>
|
||||||
|
<path fill="#003876" d="M570.463,240.306l-26.815-32.931h13.141l19.034,23.267
|
||||||
|
l18.969-23.267h13.225l-26.826,32.931v21.995h-10.726L570.463,240.306L570.463,240.306z"/>
|
||||||
|
<path fill="#003876" d="M659.758,224.074c-1.736-4.915-6.187-9.142-19.263-9.142
|
||||||
|
c-7.255,0-14.579,1.812-14.579,6.869c0,2.349,1.359,4.841,12.316,6.202l12.995,1.962c12.312,1.894,19.576,6.646,19.576,15.866
|
||||||
|
c0,12.997-12.396,17.833-27.058,17.833c-23.572,0-29.316-11.638-30.603-15.794l10.354-3.248c1.962,4.004,6.038,9.828,20.552,9.828
|
||||||
|
c8.76,0,16.008-2.874,16.008-7.637c0-3.55-4.072-5.891-11.931-6.873l-13.146-1.811c-12.693-1.743-19.801-7.259-19.801-15.648
|
||||||
|
c0-16.465,21.39-16.465,25.614-16.465c23.651,0,27.724,10.957,29.082,14.729L659.758,224.074L659.758,224.074L659.758,224.074z"/>
|
||||||
|
<path fill="#003876" d="M18.864,44.986h22.379V164.9
|
||||||
|
c0,18.646-13.61,31.159-32.481,31.159H0v-21.064h6.352c7.681,0,12.512-3.521,12.512-11.854V44.986L18.864,44.986L18.864,44.986z
|
||||||
|
M18.864,0h22.379v22.383H18.864V0L18.864,0z"/>
|
||||||
|
<path fill="#003876" d="M78.068,90.624c0.435-16.893,10.312-25.887,23.483-25.887
|
||||||
|
c13.17,0,22.821,8.994,23.471,25.887H78.068L78.068,90.624L78.068,90.624z M147.403,109.047V90.624
|
||||||
|
c0-28.742-21.292-46.954-45.85-46.954c-21.517,0-45.864,14.036-45.864,57.269c0,45.636,26.545,56.611,49.371,56.611
|
||||||
|
c14.91,0,29.178-5.277,40.141-17.999l-16.222-13.815c-6.593,6.795-15.803,10.747-24.36,10.747c-15.362,0-26.55-9.221-26.55-27.436
|
||||||
|
H147.403L147.403,109.047z"/>
|
||||||
|
<path fill="#003876" d="M165.146,11.191h22.379v33.795h16.225v17.115h-16.225v64.722
|
||||||
|
c0,6.15,2.409,8.342,7.879,8.342h8.346v21.064h-11.624c-15.585,0-26.98-9.891-26.98-27.429V62.101h-11.209V44.986h11.209V11.191
|
||||||
|
L165.146,11.191L165.146,11.191z"/>
|
||||||
|
<path fill="#003876" d="M278.146,86.894c17.55,0,25.434,11.185,25.434,23.471
|
||||||
|
c0,12.294-7.886,23.481-25.434,23.481h-36.431V86.894H278.146L278.146,86.894L278.146,86.894z M218.007,156.229h65.833
|
||||||
|
c23.483,0,43.442-17.336,43.442-44.32c0-15.799-8.334-32.035-25.446-35.995v-0.432c18.212-8.121,23.044-20.627,23.044-33.568
|
||||||
|
C324.878,17.338,309.064,0,278.574,0h-60.567V156.229L218.007,156.229L218.007,156.229L218.007,156.229z M275.938,21.072
|
||||||
|
c17.118,0,25.234,10.308,25.234,22.378c0,12.279-8.116,22.386-25.234,22.386h-34.223V21.072H275.938L275.938,21.072z"/>
|
||||||
|
<path fill="#003876" d="M340.146,0h22.379v127.483c0,5.046,2.854,7.682,8.357,7.682
|
||||||
|
h7.668v21.064h-9.873c-16.248,0-28.531-7.017-28.531-26.994V0L340.146,0L340.146,0z"/>
|
||||||
|
<path fill="#003876" d="M387.981,44.986h22.382v66.257
|
||||||
|
c0,15.15,9.431,23.922,22.174,23.922c12.501,0,21.924-8.771,21.924-23.922V44.986h22.389v111.243h-22.389v-11.855h-0.42
|
||||||
|
c-7.029,8.782-17.126,13.175-28.759,13.175c-17.541,0-37.301-13.393-37.301-38.617V44.986L387.981,44.986z"/>
|
||||||
|
<path fill="#003876" d="M511.257,90.624c0.455-16.893,10.311-25.887,23.479-25.887
|
||||||
|
c13.163,0,22.815,8.994,23.49,25.887H511.257L511.257,90.624L511.257,90.624z M580.6,109.047V90.624
|
||||||
|
c0-28.742-21.285-46.954-45.864-46.954c-21.505,0-45.869,14.036-45.869,57.269c0,45.636,26.561,56.611,49.372,56.611
|
||||||
|
c14.938,0,29.189-5.277,40.163-17.999l-16.244-13.814c-6.584,6.795-15.785,10.748-24.347,10.748
|
||||||
|
c-15.357,0-26.554-9.22-26.554-27.437L580.6,109.047L580.6,109.047L580.6,109.047z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.4 KiB |
93
static/airline-logos/BA.svg
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 241.995 37.833">
|
||||||
|
<title>British Airways</title>
|
||||||
|
<desc>British Airways logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>British Airways</Airline:name>
|
||||||
|
<Airline:iataCode>BA</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/BA</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path fill="#2E5C99" d="M0.388,37.242c0.53-0.271,0.767-0.914,0.767-1.464V22.285c0-0.571-0.237-1.195-0.767-1.482h6.431
|
||||||
|
c2.868,0,5.666,1.174,5.666,4.43c0,1.727-1.505,3.089-3.128,3.395c2.338-0.021,4.597,1.407,4.597,3.987
|
||||||
|
c0,3.687-3.867,4.628-6.587,4.628H0.388z M5.594,22.219c-0.298,0-0.505,0-1.054,0.066v5.754h0.651
|
||||||
|
c1.971,0,3.876-0.609,3.876-2.893C9.067,22.88,7.544,22.219,5.594,22.219z M6.004,29.52c-0.47,0-0.892,0-1.464,0.043v6.076
|
||||||
|
c0.713,0.14,1.484,0.186,2.195,0.186c1.65,0,3.328-0.736,3.328-3.257C10.063,30.08,8.079,29.52,6.004,29.52z M20.314,22.219
|
||||||
|
c-0.294,0-0.553,0.048-0.843,0.089v5.685c0.269,0.019,0.513,0.047,0.779,0.047c1.85,0,3.219-1.021,3.219-3.033
|
||||||
|
C23.469,22.951,22.123,22.219,20.314,22.219z M28.603,37.339c-0.63,0-1.325,0.023-1.927-0.155
|
||||||
|
c-1.119-0.33-2.664-2.852-3.278-3.841c-0.955-1.608-1.785-3.823-3.926-3.847v6.282c0,0.55,0.249,1.216,0.779,1.464h-4.937
|
||||||
|
c0.519-0.271,0.766-0.889,0.766-1.464V22.285c0-0.571-0.248-1.195-0.766-1.482h5.944c2.586,0,5.822,0.993,5.822,4.1
|
||||||
|
c0,2.607-2.157,3.943-4.562,3.943c3.422,0.02,5.432,8.047,9.21,8.07C30.715,37.216,29.659,37.339,28.603,37.339z M31.976,37.242
|
||||||
|
c0.408-0.187,0.835-0.726,0.835-1.464V22.285c0-0.749-0.427-1.279-0.835-1.482h5.059c-0.434,0.203-0.83,0.733-0.83,1.482v13.493
|
||||||
|
c0,0.738,0.396,1.277,0.83,1.464H31.976z M42.954,37.242c0.542-0.248,0.807-0.889,0.807-1.464v-13.09h-3.633
|
||||||
|
c-0.838,0-1.837,0.103-2.557,0.53l1.129-2.416h12.05c0.976,0,1.974-0.021,2.922-0.223c-0.459,1.237-1.825,2.154-2.612,2.154
|
||||||
|
c-0.957-0.022-2.54-0.086-3.904-0.086v13.13c0,0.575,0.285,1.216,0.817,1.464H42.954z M54.274,37.242
|
||||||
|
c0.404-0.187,0.828-0.726,0.828-1.464V22.285c0-0.749-0.424-1.279-0.828-1.482h5.059c-0.43,0.203-0.842,0.733-0.842,1.482v13.493
|
||||||
|
c0,0.738,0.412,1.277,0.842,1.464H54.274z M69.183,33.523c0-3.131-7.375-3.838-7.375-8.836c0-3.094,2.943-4.107,5.531-4.107
|
||||||
|
c1.155,0,2.826,0.16,3.882,0.646l0.184,3.073c-0.649-1.357-2.274-2.34-3.783-2.34c-1.193,0-2.443,0.59-2.443,1.954
|
||||||
|
c0,3.247,7.5,4.04,7.5,8.774c0,3.436-3.002,4.859-6.032,4.859c-1.585,0-3.741-0.305-5.078-1.219
|
||||||
|
c-0.081-0.55-0.118-1.125-0.118-1.688c0-0.671,0.059-1.344,0.158-2.006c0.834,1.901,2.56,3.388,4.716,3.388
|
||||||
|
C67.963,36.022,69.183,35.308,69.183,33.523z M84.983,37.242c0.357-0.161,0.739-0.726,0.739-1.464v-6.117
|
||||||
|
c-0.88-0.099-2.109-0.142-3.488-0.142c-1.4,0-2.639,0.043-3.541,0.142v6.117c0,0.738,0.372,1.277,0.734,1.464h-4.871
|
||||||
|
c0.361-0.161,0.746-0.726,0.746-1.464V22.285c0-0.749-0.385-1.301-0.746-1.482h4.871c-0.362,0.182-0.734,0.733-0.734,1.482v5.527
|
||||||
|
c0.902,0.095,2.119,0.141,3.541,0.141c1.379,0,2.608-0.06,3.488-0.141v-5.527c0-0.749-0.381-1.301-0.739-1.482h4.864
|
||||||
|
c-0.364,0.182-0.725,0.733-0.725,1.482v13.493c0,0.738,0.361,1.277,0.725,1.464H84.983z"/>
|
||||||
|
<path fill="#2E5C99" d="M107.902,37.242c0.157-0.161,0.299-0.281,0.299-0.572c0-0.098-0.037-0.262-0.157-0.568
|
||||||
|
c0,0-1.35-3.674-1.508-4.102c-1.014-0.125-2.071-0.125-3.106-0.125c-0.982,0-1.979,0.023-2.952,0.125
|
||||||
|
c-0.138,0.368-1.585,4.022-1.585,4.022c-0.195,0.494-0.262,0.663-0.262,0.771c0,0.244,0.21,0.363,0.388,0.449H95.71
|
||||||
|
c0.488-0.248,0.911-0.758,1.12-1.266l5.438-14.036c0.025-0.058,0.034-0.123,0.034-0.202c0-0.387-0.257-0.754-0.603-0.936h4.266
|
||||||
|
l5.531,15.16c0.226,0.609,0.708,1.053,1.113,1.279H107.902z M103.607,23.932l-2.493,6.4c0.743,0.082,1.514,0.101,2.266,0.101
|
||||||
|
c0.862,0,1.714,0,2.552-0.101L103.607,23.932z M113.451,37.242c0.408-0.187,0.83-0.726,0.83-1.464V22.285
|
||||||
|
c0-0.749-0.422-1.279-0.83-1.482h5.056c-0.43,0.203-0.831,0.733-0.831,1.482v13.493c0,0.738,0.4,1.277,0.831,1.464H113.451z
|
||||||
|
M126.193,22.219c-0.273,0-0.535,0.048-0.819,0.089v5.685c0.264,0.019,0.505,0.047,0.762,0.047c1.854,0,3.22-1.021,3.22-3.033
|
||||||
|
C129.355,22.951,128.004,22.219,126.193,22.219z M134.895,37.339c-0.63,0-1.31,0.023-1.926-0.155
|
||||||
|
c-1.121-0.33-2.662-2.852-3.277-3.841c-0.951-1.608-2.189-3.847-4.318-3.847v6.282c0,0.55,0.238,1.216,0.762,1.464h-4.933
|
||||||
|
c0.53-0.271,0.777-0.889,0.777-1.464V22.285c0-0.571-0.247-1.195-0.777-1.482h5.957c2.579,0,5.81,0.993,5.81,4.1
|
||||||
|
c0,2.607-2.357,3.943-4.141,3.943c3.547,0.204,5.686,8.07,9.205,8.07C137.014,37.216,135.958,37.339,134.895,37.339z
|
||||||
|
M155.405,22.408l-4.996,14.834c-0.412,0-0.816-0.142-1.045-0.303c-0.494-0.476-1.271-2.463-1.551-3.196l-2.258-5.704
|
||||||
|
l-3.252,9.203h-1.548l-5.591-14.871c-0.24-0.633-0.65-1.24-1.26-1.568h4.859c-0.205,0.159-0.346,0.34-0.346,0.686
|
||||||
|
c0,0.166,0.082,0.395,0.141,0.572l3.641,9.838l3.877-11.096l4.27,10.697l3.234-9.683c0.08-0.263,0.127-0.36,0.127-0.526
|
||||||
|
c0-0.201-0.087-0.329-0.29-0.488h3.218C156.04,21.115,155.61,21.796,155.405,22.408z M161.377,23.932l-2.492,6.4
|
||||||
|
c0.752,0.082,1.521,0.101,2.271,0.101c0.853,0,1.715,0,2.548-0.101L161.377,23.932z M165.667,37.242
|
||||||
|
c0.17-0.161,0.299-0.281,0.299-0.572c0-0.098-0.05-0.262-0.149-0.568c0,0-1.341-3.674-1.504-4.102
|
||||||
|
c-1.023-0.125-2.078-0.125-3.113-0.125c-0.973,0-1.971,0.023-2.949,0.125c-0.141,0.368-1.578,4.022-1.578,4.022
|
||||||
|
c-0.207,0.494-0.264,0.663-0.264,0.771c0,0.244,0.201,0.363,0.377,0.449h-3.31c0.489-0.248,0.911-0.758,1.116-1.266l5.457-14.036
|
||||||
|
c0.016-0.058,0.031-0.123,0.031-0.202c0-0.387-0.258-0.754-0.613-0.936h4.27l5.529,15.16c0.229,0.609,0.717,1.053,1.119,1.279
|
||||||
|
H165.667z M180.522,22.529l-3.894,6.828v6.421c0,0.522,0.214,1.216,0.734,1.464h-4.845c0.495-0.271,0.723-0.959,0.723-1.464
|
||||||
|
v-6.442l-3.385-5.423c-0.303-0.507-1.715-2.87-3.436-2.87c0.468-0.178,1.891-0.449,2.846-0.449c1.593,0,2.382,0.146,3.357,1.673
|
||||||
|
l3.132,4.964c0.263-0.487,2.743-4.799,2.743-4.799c0.299-0.525,0.504-0.896,0.504-1.08c0-0.236-0.102-0.39-0.342-0.549h3.49
|
||||||
|
C181.465,21.131,180.895,21.883,180.522,22.529z M189.637,33.523c0-3.131-7.376-3.838-7.376-8.836
|
||||||
|
c0-3.094,2.935-4.107,5.524-4.107c1.159,0,2.82,0.16,3.881,0.646l0.184,3.073c-0.656-1.357-2.274-2.34-3.784-2.34
|
||||||
|
c-1.195,0-2.437,0.59-2.437,1.954c0,3.247,7.5,4.04,7.5,8.774c0,3.436-2.981,4.859-6.033,4.859c-1.584,0-3.745-0.305-5.084-1.219
|
||||||
|
c-0.087-0.55-0.129-1.125-0.129-1.688c0-0.671,0.064-1.344,0.166-2.006c0.833,1.901,2.565,3.388,4.721,3.388
|
||||||
|
C188.415,36.022,189.637,35.308,189.637,33.523z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="231.4927" y1="5.96" x2="219.1567" y2="27.3264">
|
||||||
|
<stop offset="0" style="stop-color:#E6EBEF"/>
|
||||||
|
<stop offset="0.0764" style="stop-color:#BBCEE5"/>
|
||||||
|
<stop offset="0.1854" style="stop-color:#85A9D8"/>
|
||||||
|
<stop offset="0.2796" style="stop-color:#5D8FCF"/>
|
||||||
|
<stop offset="0.3543" style="stop-color:#457EC9"/>
|
||||||
|
<stop offset="0.4" style="stop-color:#3C78C7"/>
|
||||||
|
<stop offset="0.9" style="stop-color:#2E5C99"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path fill="url(#SVGID_1_)" d="M235.014,9.296c-2.764,2.747-8.752,5.105-11.698,6.209c-4.025,1.512-5.811,2.047-8.063,2.78
|
||||||
|
c-2.549,0.827-7.648,2.37-7.648,2.37c10.563,3.154,18.007,4.105,18.007,4.105s3.468-1.072,8.962-4.01
|
||||||
|
c2.975-1.512,4.439-2.53,5.486-3.503c0.386-0.349,1.383-1.387,1.631-2.715c0.016-0.097,0.064-0.351,0.064-0.601
|
||||||
|
c0,0,0-0.176-0.016-0.329c-0.006-0.176-0.037-0.294-0.037-0.294s-0.059-0.315-0.137-0.536c-0.081-0.221-0.421-0.903-0.972-1.346
|
||||||
|
c-0.368-0.299-1.004-1.044-3.308-1.854c-0.783-0.272-2.051-0.523-2.051-0.523L235.014,9.296z"/>
|
||||||
|
<path fill="#CE210F" d="M241.754,13.861c0,0-0.016-0.294-0.088-0.543c-0.056-0.222-0.155-0.434-0.304-0.657
|
||||||
|
c-0.18-0.265-0.423-0.576-0.782-0.92c-0.271-0.256-0.568-0.482-0.926-0.722c-1.441-0.944-3.301-1.476-4.947-1.701
|
||||||
|
c-2.551-0.339-5.477-0.279-5.754-0.289c-0.941-0.013-7.021,0.037-8.584,0.065c-6.941,0.143-15.438,0.162-17.664,0.162
|
||||||
|
c-22.979,0.105-32.981-0.39-44.113-2.622c-9.47-1.881-14.724-3.668-14.724-3.668c8.353-0.289,57.091-2.311,65.982-2.547
|
||||||
|
c5.821-0.164,9.954-0.199,13.261-0.008c1.696,0.095,3.274,0.239,5.256,0.576c1.777,0.304,3.391,0.82,4.331,1.169
|
||||||
|
c1.98,0.733,3.649,1.793,4.474,2.879c0,0,0.244,0.25,0.575,0.694c0.371,0.516,0.802,1.151,0.948,1.388
|
||||||
|
c1.205,1.826,1.777,2.973,1.976,3.373c0.215,0.42,0.405,0.856,0.59,1.283c0.181,0.424,0.255,0.681,0.313,0.86
|
||||||
|
c0.127,0.449,0.158,0.858,0.164,0.95L241.754,13.861z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.3 KiB |
31
static/airline-logos/BC.svg
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1475.928 252.098">
|
||||||
|
<title>Skymark Airlines logo</title>
|
||||||
|
<desc>スカイマーク</desc>
|
||||||
|
<polygon fill="#1E398D" points="1179.659,237.893 1409.626,237.893 1470.381,95.854 1405.236,95.854 1248.297,183.132 "/>
|
||||||
|
<polygon fill="#DCAA0D" points="1317.077,151.196 1405.236,95.854 1310.924,95.854 1301.075,7.32 1254.337,95.854 1162.535,95.854
|
||||||
|
1225.599,150.291 1179.659,237.893 1264.722,184.063 1326.678,237.54 "/>
|
||||||
|
<path fill="#FFDD00" d="M1179.659,237.893l85.063-53.831l62,53.83l-9.608-86.357l88.122-55.681
|
||||||
|
C1405.235,95.854,1267.432,104.199,1179.659,237.893z"/>
|
||||||
|
<path fill="#1E398D" d="M91.593,238.002H10.938l12.38-29.165h70.178c0,0,13.335-1.365,20.134-10.938
|
||||||
|
c6.795-9.569-12.23-14.127-12.23-14.127s-35.844-10.024-39.104-10.936c-3.26-0.91-35.39-10.024-16.653-45.57
|
||||||
|
c18.73-35.542,59.826-31.438,59.826-31.438h78.374l-12.376,29.164h-70.178c0,0-11.85,0-16.888,8.656
|
||||||
|
c-5.045,8.656,7.729,11.85,11.183,12.303c3.45,0.455,32.711,7.746,38.84,10.48c6.132,2.73,36.051,12.761,19.972,44.204
|
||||||
|
C140.159,228.461,119.848,238.002,91.593,238.002z"/>
|
||||||
|
<polygon fill="#1E398D" points="215.771,198.813 199.136,238.002 157.211,238.002 217.561,95.828 259.485,95.828 235.305,152.787
|
||||||
|
300.042,95.828 352.442,95.828 279.243,152.332 307.588,238.002 258.829,238.002 241.598,178.76 "/>
|
||||||
|
<polyline fill="#1E398D" points="502.362,95.828 452.698,95.828 399.547,152.332 400.291,95.828 356.089,95.828 363.622,186.507
|
||||||
|
341.767,238.002 383.688,238.002 405.547,186.507 502.362,95.828 "/>
|
||||||
|
<polygon fill="#1E398D" points="513.923,94.15 456.186,238.491 491.514,238.491 534.601,134.22 530.296,238.491 560.454,238.491
|
||||||
|
630.258,130.774 593.201,238.491 629.396,238.491 691.441,93.719 622.499,93.719 562.18,191.095 563.038,93.719 "/>
|
||||||
|
<path fill="#1E398D" d="M759.681,93.985L636.223,237.551h39.826l22.787-30.286h51.555v30.286h42.479V93.985H759.681z M753.933,183
|
||||||
|
h-35.406l37.76-48.381L753.933,183z"/>
|
||||||
|
<polygon fill="#1E398D" points="1019.211,198.648 1002.576,237.837 960.654,237.837 1020.997,95.664 1062.922,95.664
|
||||||
|
1038.747,152.622 1103.482,95.664 1155.884,95.664 1082.681,152.167 1111.031,237.837 1062.269,237.837 1045.034,178.595 "/>
|
||||||
|
<path fill="none" stroke="#B3B3B3" stroke-miterlimit="10" d="M832.029,256.776"/>
|
||||||
|
<path fill="none" stroke="#B3B3B3" stroke-miterlimit="10" d="M633.594,256.776"/>
|
||||||
|
<path fill="#1E398D" d="M943.126,94.304c-32.652,0-83.382,0-83.382,0l-63.363,143.247h41.037l21.937-55.2h25.656l15.919,55.2h51.72
|
||||||
|
l-22.351-60.838c0,0,22.934-9.329,40.427-37.317C988.218,111.407,975.78,94.304,943.126,94.304z M897.839,153.39
|
||||||
|
c-5.733,0-25.46,0-25.46,0l14.188-32.847c0,0,24.101,0,31.877,0c7.775,0,16.326,0.193,16.326,10.106
|
||||||
|
C934.77,148.725,910.059,153.39,897.839,153.39z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
28
static/airline-logos/BR.svg
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55.438084 11.487348">
|
||||||
|
<title>EVA Air</title>
|
||||||
|
<desc>EVA Air logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>EVA Air</Airline:name>
|
||||||
|
<Airline:alternateName>長榮航空</Airline:alternateName>
|
||||||
|
<Airline:iataCode>BR</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/BR</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g transform="translate(-99.087445 -71.214336)">
|
||||||
|
<g fill="#00a64f">
|
||||||
|
<path d="m105.15081 79.073309v-1.269173h-5.931073v4.758366h5.931073v-1.269173h-3.76755v-.525032h3.76755v-1.172711h-3.76755v-.522277zm0 0"/>
|
||||||
|
<path d="m105.77782 77.800002h2.2903l1.22645 2.95038 1.2361-2.960026h2.26963l-2.20072 4.770768h-2.6169zm0 0"/>
|
||||||
|
<path d="m115.09336 80.686992.5774-1.160308.57188 1.160308zm2.07532 1.874132h2.24207l-2.43499-4.770768h-2.6169l-2.45153 4.779037h2.2531l.33761-.680751h2.33854zm0 0"/>
|
||||||
|
<path d="m123.50628 80.686992.57464-1.160308.57327 1.160308zm2.07257 1.874132h2.24207l-2.435-4.770768h-2.61551l-2.45291 4.779037h2.25585l.33624-.680751h2.33715zm0 0"/>
|
||||||
|
<path d="m128.5747 77.800002h2.21176v4.761122h-2.21176zm0 0"/>
|
||||||
|
<path d="m135.59719 79.690671h-1.54478v-.689019h1.54478c.19154 0 .34588.15434.34588.344509 0 .191548-.15434.34451-.34588.34451m1.9072.709689c.565 0 .5526-.633897.5526-.633897v-.825445c0-1.043175-1.10519-1.139638-1.10519-1.139638l-5.08496-.0014v4.761121h2.21037v-1.642621h1.46899c.10887 0 .17777.03721.22324.08682.0799.09095.0772.219108.0772.219108v1.336697h2.21313v-1.336697c-.001-.766189-.55535-.824067-.55535-.824067"/>
|
||||||
|
</g>
|
||||||
|
<path d="m143.28113 78.076988c.48507 1.539269 1.92374 2.656858 3.62424 2.656858 2.09875 0 3.79787-1.701878 3.79787-3.797874 0-2.018826-1.57372-3.669715-3.56223-3.790983zm0 0" fill="#fff"/>
|
||||||
|
<path d="m146.90399 80.888186c-1.66191 0-3.11988-1.02526-3.69314-2.565907v-.0014l4.141-5.291667h.001c1.97473.22462 3.4947 1.904449 3.4947 3.916385 0 2.173166-1.77078 3.942567-3.94394 3.942567m1.52411-9.541536-8.77535 11.214474h10.83551l3.90536-11.214474zm0 0" fill="#00a64f"/>
|
||||||
|
<path d="m150.13549 78.753605c-.28801-.157097-.58566-.292144-.89159-.403766.14745-.423057.23151-.873676.2384-1.340831h1.12448c-.01.63252-.18052 1.226454-.47129 1.744597m-1.32016 1.36288c-.11162-.151585-.23702-.289389-.3762-.4079.32521-.36518.58291-.782725.76205-1.240234.29766.110243.59118.241156.8723.395497-.31282.511252-.74552.943956-1.25815 1.252637m-1.55994.514008c.41617-.21773.78824-.496094 1.09968-.826823.12953.110243.24667.237022.34864.376204-.43684.242535-.92604.402387-1.44832.450619m.49196-1.198893c.1819.07441.35278.172254.5085.292143-.32522.343132-.71521.63252-1.15618.846116.2577-.35829.47405-.740006.64768-1.138259m-.78135-.162609c.22876.0069.452.04685.66284.118511-.17639.403766-.39825.789616-.66284 1.15204zm-.12678 1.267795c-.2632-.361046-.48369-.745518-.66008-1.147906.21084-.07304.43271-.112999.66008-.119889zm-1.28571-.811664c.15572-.11989.3266-.21773.50712-.293522.17501.398253.38999.779969.6463 1.138259-.43959-.213596-.8282-.502984-1.15342-.844737m-.44924.458886c.10336-.14056.22049-.267339.35002-.37896.31144.329351.68076.607715 1.09555.824067-.51677-.04685-1.00597-.20395-1.44557-.445107m-.49609-1.714279c.17915.457509.43822.876432.76068 1.240234-.13781.121268-.26459.257693-.37483.412034-.51125-.308681-.94533-.735873-1.25953-1.255393.28112-.15434.57465-.286632.87368-.396875m-.15572-1.460721h1.0983c.003.354156.0345.700044.0951 1.040419-.32659.06201-.64768.148828-.96049.257694-.14469-.4079-.226-.844738-.23289-1.298113m1.31878-1.149283c.35278.06063.70969.09371 1.06798.09784v.924664h-1.16306c.004-.34451.0358-.686263.0951-1.022504m.36381-1.240235c.22599.07855.46302.122646.70417.129536v1.080382c-.3514-.0028-.70004-.03583-1.04455-.09371.0772-.380339.19155-.753787.34038-1.116211m1.54064.0041c.14883.35829.26183.731739.33762 1.112077-.34451.05788-.69591.09095-1.04731.09371v-1.079004c.24529-.0055.48507-.04961.70969-.12678m.66008-.354155c.31282.354155.56362.759299.73725 1.197515-.30316.104731-.61736.188791-.9343.248047-.0786-.388607-.19293-.768945-.34314-1.135504.19293-.07855.37483-.183279.54019-.310058m-1.08451-1.010102c.52503.04823 1.01837.209462 1.45658.451996-.10473.143316-.226.272852-.35829.384473-.31281-.332107-.68212-.617361-1.09829-.836469m2.81946 1.766645c-.28249.15434-.57739.286632-.88056.396875-.17777-.451997-.43408-.868164-.75517-1.233345.14194-.121267.2701-.260449.3831-.413411.51263.310059.94257.738629 1.25263 1.249881m-1.81212 1.856217c-.003-.352778-.0386-.701421-.0978-1.041797.32522-.06201.64492-.146072.95774-.256315.14883.412034.23151.85025.2384 1.298112zm-.0951 1.167199c.0593-.340376.0923-.687642.0951-1.040419h1.0983c-.007.453374-.0882.887456-.23289 1.295356-.31419-.107487-.63528-.192926-.96049-.254937m-.0248.124023c.3197.05926.63665.144694.94395.250803-.17363.445106-.42581.851627-.74138 1.205784-.16674-.129536-.35002-.235645-.5457-.315571.15158-.367936.26596-.748275.34313-1.141016m-1.17271-.115755c.3514.0055.70279.03721 1.04868.09508-.0772.383094-.19017.756542-.33762 1.117588-.226-.07855-.46578-.122645-.71107-.128158zm-.95361 1.258148c-.19568.08131-.37758.186036-.54432.315571-.31557-.355534-.56775-.762055-.74139-1.205783.30731-.106109.6215-.190169.9412-.252181.0786.394119.19431.774458.34451 1.142393m-.2191-1.161685c.34451-.05788.69453-.09095 1.04593-.09509v1.083138c-.24391.0069-.48369.05099-.70831.129535-.14883-.359668-.26183-.734494-.33762-1.117588m2.33853-1.14515c-.004.344509-.0358.687641-.0937 1.019748-.35416-.05926-.71107-.09371-1.07211-.09646v-.923286zm-1.16582-1.051444c.35829-.0041.71795-.03721 1.07073-.09784.0579.334863.0909.677994.0951 1.022504h-1.16582zm-1.28985 1.051444h1.16307v.923285c-.35967.0041-.71658.03858-1.06798.09784-.0606-.333485-.0923-.675239-.0951-1.021126m4.93062-.12678h-1.12448c-.007-.464399-.0923-.915018-.24529-1.340831.30868-.113.60771-.248047.8971-.405144.29215.518143.46303 1.114833.47267 1.745975m-3.25355-3.852995-.0882.111621-.0703.09095-.0179.02205-.0606.07717c.43133.216352.81305.501606 1.13551.844738-.1571.117133-.3266.214974-.50575.28801-.17087-.392741-.38309-.770324-.63665-1.125857l-.0813.106108c.23702.336242.43684.693154.59807 1.062468-.20947.07166-.43271.111621-.66008.117133v-1.099635l-.12678.16123v.937066c-.21911-.0069-.43684-.04548-.64217-.115755-.005 0-.30041.384473-.30041.384473-.0937.270095-.17088.544325-.226.824066-.11989-.02067-.2384-.04961-.35829-.07855l-.0854.110243c.13918.03583.27974.06615.42031.09371-.0606.341753-.0937.689019-.0965 1.041797h-1.09967l.006-.151584-.21773.278363h.0868c.008.468533.0923.919152.24254 1.340831-.3073.114378-.60634.248047-.89435.405144-.11575-.205328-.21222-.424436-.28801-.654568l-.0868.110243-.0882.111621c.57327 1.540647 2.03123 2.565907 3.69315 2.565907 2.17454 0 3.94394-1.769401 3.94394-3.942568 0-2.011935-1.5186-3.691764-3.49471-3.916384" fill="#f0451c"/>
|
||||||
|
<path d="m147.29122 77.830319.93018.425814-.4396-.942578 1.20165-.296278v-.141938l-1.20165-.300413.45751-.963249-.95498.447863-.29766-1.710145h-.1695l-.29214 1.707389-.95085-.445107.44787.966005-1.1989.297657v.139181l1.1989.290767-.43408.95498.9343-.424436.29215 1.70739.16536-.0014zm0 0" fill="#fff"/>
|
||||||
|
<path d="m146.90675 74.444479.31143 1.745975.83647-.395497-.39549.836469 1.25401.312814-1.25401.312815.38171.819933-.82269-.376204-.31695 1.730816-.30868-1.730816-.82268.377582.37896-.821311-1.25264-.312815 1.25264-.312814-.39136-.836469.83508.391363zm0 0" fill="#00a64f"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.3 KiB |
13
static/airline-logos/BT.svg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 184 42">
|
||||||
|
<title>airBaltic logo</title>
|
||||||
|
<path d=" M 28.66 7.466 L 28.66 0.102 L 36.024 0.102 L 36.024 7.466 L 28.66 7.466 Z M 28.66 41.4 L 28.66 10.352 L 36.024 10.352 L 36.024 41.4 L 28.66 41.4 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 46.473 41.4 L 39.109 41.4 L 39.109 10.352 L 46.274 10.352 L 46.274 16.124 C 48.562 12.74 51.846 9.755 56.324 9.755 C 57.121 9.755 57.618 9.855 58.016 9.954 L 58.016 16.92 C 57.419 16.82 56.324 16.82 55.827 16.82 C 52.443 16.82 46.373 20.005 46.373 26.175 L 46.373 41.4 L 46.473 41.4 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 60.106 41.4 L 60.106 0.102 L 73.341 0.102 C 76.824 0.102 88.666 0.102 88.666 10.153 C 88.666 17.119 83.293 18.91 80.506 19.905 C 83.691 20.701 89.661 22.393 89.661 30.056 C 89.661 36.325 84.984 41.4 74.336 41.4 L 60.106 41.4 Z M 67.868 16.92 L 73.341 16.92 C 80.407 16.92 81.004 12.74 81.004 11.347 C 81.004 6.173 75.63 6.173 74.038 6.173 L 67.868 6.173 L 67.868 16.92 Z M 67.868 35.33 L 72.744 35.33 C 77.919 35.33 81.601 33.638 81.601 29.16 C 81.601 26.274 80.009 22.891 73.242 22.891 L 67.868 22.891 L 67.868 35.33 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 110.559 41.4 L 109.763 38.116 C 107.972 39.708 104.986 42.097 100.409 42.097 C 94.836 42.097 90.856 38.514 90.856 33.539 C 90.856 30.354 92.05 26.573 98.817 24.184 L 107.673 21.199 C 108.967 20.801 109.067 20.701 109.067 19.806 L 109.067 18.512 C 109.067 15.925 106.678 15.129 103.792 15.129 C 98.916 15.129 94.438 18.114 92.647 19.308 L 92.647 12.84 C 94.637 11.745 98.419 9.556 104.887 9.556 C 114.54 9.556 116.431 14.432 116.431 20.303 L 116.431 41.301 L 110.559 41.4 L 110.559 41.4 Z M 102.499 28.065 C 99.414 29.16 98.319 30.653 98.319 32.842 C 98.319 35.927 101.006 36.624 102.3 36.624 C 103.494 36.624 106.081 36.226 109.067 33.141 L 109.067 25.478 C 108.668 25.777 108.469 25.876 107.176 26.374 L 102.499 28.065 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 19.604 41.4 L 18.808 38.116 C 17.017 39.708 14.131 42.097 9.454 42.097 C 3.881 42.097 0 38.514 0 33.539 C 0 30.354 1.095 26.573 7.961 24.184 L 16.917 21.199 C 18.211 20.801 18.31 20.701 18.31 19.806 L 18.31 18.512 C 18.31 15.925 15.922 15.129 13.036 15.129 C 8.16 15.129 3.682 18.114 1.891 19.308 L 1.891 12.84 C 3.881 11.745 7.663 9.556 14.131 9.556 C 23.784 9.556 25.674 14.432 25.674 20.303 L 25.674 41.301 L 19.604 41.4 L 19.604 41.4 Z M 11.643 28.065 C 8.558 29.16 7.463 30.653 7.463 32.842 C 7.463 35.927 10.15 36.624 11.444 36.624 C 12.638 36.624 15.226 36.226 18.211 33.141 L 18.211 25.478 C 17.813 25.777 17.614 25.876 16.32 26.374 L 11.643 28.065 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 119.515 41.4 L 119.515 0.102 L 126.879 0.102 L 126.879 41.4 L 119.515 41.4 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 133.149 15.925 L 128.671 15.925 L 128.671 10.253 L 133.149 10.253 L 133.149 0.003 L 140.513 0.003 L 140.513 10.253 L 146.085 10.253 L 146.085 15.925 L 140.513 15.925 L 140.513 31.648 C 140.513 33.937 140.811 36.026 144.195 36.026 C 145.09 36.026 145.787 35.927 146.384 35.827 L 146.384 41.4 C 145.389 41.5 144.394 41.599 142.901 41.599 C 134.641 41.599 133.149 37.519 133.149 32.046 L 133.149 15.925 L 133.149 15.925 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 148.971 7.466 L 148.971 0.003 L 156.335 0.003 L 156.335 7.466 L 148.971 7.466 Z M 148.971 41.4 L 148.971 10.352 L 156.335 10.352 L 156.335 41.4 L 148.971 41.4 Z " fill="rgb(21,38,73)"/>
|
||||||
|
<path d=" M 183.303 18.711 C 181.811 17.418 179.422 15.527 175.243 15.527 C 168.874 15.527 166.287 20.801 166.287 25.876 C 166.287 28.065 166.884 36.226 175.044 36.226 C 179.323 36.226 182.01 34.335 184 32.942 L 184 39.509 C 182.507 40.306 179.124 41.997 173.85 41.997 C 163.301 41.997 158.823 34.036 158.823 25.777 C 158.823 17.218 163.699 9.556 174.148 9.556 C 179.223 9.556 182.01 11.148 183.303 11.845 L 183.303 18.711 L 183.303 18.711 Z " fill="rgb(21,38,73)"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.8 KiB |
21
static/airline-logos/BX.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513.11 159">
|
||||||
|
<title>Air Busan</title>
|
||||||
|
<desc>Air Busan logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air Busan</Airline:name>
|
||||||
|
<Airline:iataCode>BX</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/BX</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#293982" d="M233.3,79.81c8-16.27,20-28.95,35.06-39.15-1.19-.24-2.16-.41-3.12-.63a58.15,58.15,0,0,1-18.75-8.22c-6.61-4.25-13.07-8.76-19.56-13.2a54.27,54.27,0,0,0-20.93-9c-6.76-1.24-13.41-1.17-19.9,1.36-1.09.42-2.1,1-3.2,1.58,2.36,1.45,4.6,2.68,6.67,4.15,8,5.71,13.28,13.56,17,22.55a84.42,84.42,0,0,1,5.76,23.24c.37,3.45.59,6.91.91,10.7a4.55,4.55,0,0,1-.59-.52c-7.22-12-18-19.43-31.14-23.61A84.24,84.24,0,0,0,158,45.33c-18.25-.47-35.71,3.38-52.77,9.53a126.75,126.75,0,0,1-26.84,6.75c-13.05,1.7-25.89,1.12-38.25-3.94A44.35,44.35,0,0,1,27.84,50.2a12.3,12.3,0,0,1-3.31-4.3l.17-.33a13.42,13.42,0,0,1,2.08.82,54.83,54.83,0,0,0,11.1,5.28,62.66,62.66,0,0,0,23.23,3c13.08-.66,25.47-4.36,37.81-8.39,8.55-2.79,17.09-5.68,25.76-8.08a84.18,84.18,0,0,1,30.15-2.55,86,86,0,0,1,45.95,17.92c.78.61,1.53,1.26,2.32,1.91.06-.15.13-.24.1-.3-3.5-8.75-7.33-17.33-13.17-24.84-7.48-9.61-17.07-15.67-29.19-17.63a65.55,65.55,0,0,0-12.73-1.16c-1.16,0-2.31.2-3.46.22s-1.34-.53-.91-1.48a2.69,2.69,0,0,1,.43-.71c3.53-3.88,7.6-6.4,13.16-5.54,4.3.66,8.61,1.26,12.93,1.66a12.29,12.29,0,0,0,5-.58A101.44,101.44,0,0,1,192,.59a46.48,46.48,0,0,1,28,4.26,128.31,128.31,0,0,1,17.51,10.8c6.36,4.44,12.79,8.77,20,11.72A55,55,0,0,0,281,31.55a55.24,55.24,0,0,0,13.19-2.71,112.63,112.63,0,0,1,23.26-4.25,121.2,121.2,0,0,1,53.49,8c10.61,4,21.23,8.07,31.9,11.94a150.63,150.63,0,0,0,27.94,7.33,98.76,98.76,0,0,0,25.3.85c18.38-1.83,34.32-9.36,48.68-20.62,2-1.55,3.87-3.22,5.83-4.79a25.11,25.11,0,0,1,2.13-1.39l.36.27a7.14,7.14,0,0,1-.63,2.07,71.35,71.35,0,0,1-4.47,6,76.72,76.72,0,0,1-40.95,25.12A98.46,98.46,0,0,1,448.25,62c-16.77.74-33.08-2-49.1-6.65-11.22-3.22-22.31-6.89-33.48-10.26a227.71,227.71,0,0,0-29.15-7,104.82,104.82,0,0,0-28-.92A106.6,106.6,0,0,0,261.05,54a108.18,108.18,0,0,0-27,25.06c-.17.22-.34.44-.52.65A.44.44,0,0,1,233.3,79.81Z"/>
|
||||||
|
<path fill="#293982" d="M467.81,113.6v43.87H449.68V87.59c.46,0,.89-.06,1.32-.06,5.27,0,10.55,0,15.83,0a1.92,1.92,0,0,1,1.91,1.06q12.57,20.31,25.2,40.58a2.37,2.37,0,0,0,.94,1V87.62c.54,0,1-.09,1.38-.09,5.16,0,10.31,0,15.47,0,1.07,0,1.34.32,1.34,1.36q0,33.67,0,67.36c0,1.05-.29,1.36-1.35,1.35-5,0-10.07,0-15.11,0a1.86,1.86,0,0,1-1.8-1q-13-20.75-26-41.48C468.54,114.67,468.27,114.29,467.81,113.6Z"/>
|
||||||
|
<path fill="#293982" d="M165.87,157.55v-70c.49,0,.95-.07,1.42-.07,7.88,0,15.75-.06,23.63,0,5.51.06,11,.28,16.26,2.32,7.48,2.92,11.56,8.81,11.33,16.58-.17,5.44-2.84,9.43-7.46,12.19l-1.4.82,1.91.86c6,2.76,10,7.2,10.72,13.91.82,7.81-1.94,14.17-8.6,18.64a24.37,24.37,0,0,1-11.76,4c-4.81.39-9.65.58-14.47.65-6.68.11-13.36,0-20,0ZM184,136c0,2.4,0,4.79,0,7.19,0,.62,0,1.1.87,1.09,2.36,0,4.72.09,7.07-.05a38.93,38.93,0,0,0,7.09-.86c4-1,5.68-3.82,5.38-8.26-.26-3.87-2.47-6.34-6.52-6.65-4.33-.33-8.69-.25-13-.37-.73,0-.86.35-.86,1C184,131.33,184,133.65,184,136Zm0-21.8a6.17,6.17,0,0,0,.76.09c2.51,0,5,.06,7.54-.1a17.62,17.62,0,0,0,4.78-.94c2.78-1,3.84-3,3.72-6.25a5.35,5.35,0,0,0-4.17-5.21c-4.13-1.28-8.37-.62-12.63-.8Z"/>
|
||||||
|
<path fill="#293982" d="M276.41,87.6c.52,0,.87-.07,1.23-.07,5.35,0,10.71,0,16.07,0,1,0,1.29.27,1.29,1.28,0,14.46,0,28.93,0,43.39,0,5.77-1.12,11.26-4.71,16a24.8,24.8,0,0,1-13.9,9c-9.92,2.61-19.79,2.55-29.26-1.75-8.9-4-13.61-11.27-13.8-21-.29-15.3-.16-30.6-.22-45.9,0-.54,0-1,.77-1l17.39,0c.11,0,.22.09.41.16v1.52q0,20.74,0,41.48a35.16,35.16,0,0,0,.46,5.11,9.14,9.14,0,0,0,7.21,7.88,17.67,17.67,0,0,0,9.46-.06c4.6-1.29,7.08-4.4,7.37-9.32.16-2.75.23-5.51.24-8.26,0-12.3,0-24.61,0-36.92Z"/>
|
||||||
|
<path fill="#293982" d="M362.51,109.14h-17a13.52,13.52,0,0,1-.24-1.51,6.79,6.79,0,0,0-4.33-6.1,13.26,13.26,0,0,0-10.91,0,7,7,0,0,0-2.33,1.64c-2,2.09-1.69,4.56.75,6.07a26.79,26.79,0,0,0,4.64,2.15c5.82,2.18,11.7,4.19,17.49,6.45,4,1.55,7.64,3.66,10.31,7.14a18.05,18.05,0,0,1,3.58,13.3c-1,9.62-6.5,15.8-15.54,18.63a40.45,40.45,0,0,1-28.79-1.28,22.19,22.19,0,0,1-13.67-16.84,21.34,21.34,0,0,1-.31-2.25c-.05-.67,0-1.34,0-2.09h16.64c.13.59.24,1.17.4,1.74a10.3,10.3,0,0,0,6.39,7.12,16.76,16.76,0,0,0,12.38.18,9.4,9.4,0,0,0,2.41-1.31c2.36-1.76,2.52-4.7.09-6.34a41.25,41.25,0,0,0-7.09-3.64c-5.51-2.32-11.13-4.37-16.6-6.75a21.65,21.65,0,0,1-9.28-7.35,19.15,19.15,0,0,1,5.74-26.94,32.66,32.66,0,0,1,15.24-4.78,33.86,33.86,0,0,1,17.37,3c7.3,3.44,11.66,9.08,12.4,17.28C362.34,107.46,362.42,108.25,362.51,109.14Z"/>
|
||||||
|
<path fill="#293982" d="M441.18,157.55h-2.32c-5.16,0-10.31,0-15.47,0a1.61,1.61,0,0,1-1.84-1.35c-1.24-3.91-2.6-7.78-3.86-11.68a1.32,1.32,0,0,0-1.51-1.1q-11.1.06-22.19,0a1.26,1.26,0,0,0-1.43,1c-1.3,4-2.68,8-4,12-.22.66-.47,1.07-1.3,1.07-5.8,0-11.59,0-17.39,0-.19,0-.39,0-.72-.06.14-.46.23-.86.38-1.25q12.94-33.75,25.88-67.5a1.63,1.63,0,0,1,1.82-1.23q7.86.07,15.71,0a1.55,1.55,0,0,1,1.76,1.15q13,33.9,26.1,67.79C440.9,156.74,441,157,441.18,157.55Zm-36-48.86-.29,0c-2.32,6.78-4.63,13.56-7,20.41h14.3C409.89,122.2,407.56,115.44,405.22,108.69Z"/>
|
||||||
|
<path fill="#293982" d="M86.42,157.45V87.62c.46,0,.88-.09,1.3-.09,5,0,9.91-.08,14.87,0,4.7.09,9.42.12,14,1.56a18,18,0,0,1,13,17.12c.25,9.44-4.07,16-12.85,19.51l-1.55.62,18.45,31.19h-3.69c-1.56,0-3.12-.05-4.68,0a1.67,1.67,0,0,1-1.69-1c-5.48-9.33-11-18.62-16.47-28a1.78,1.78,0,0,0-1.79-1c-3.6,0-7.19,0-10.93,0v29.81ZM94.32,121c5.28-.2,10.5-.25,15.69-.64a11.8,11.8,0,0,0,8.11-4c3.08-3.5,3.72-7.65,2.94-12.1-.62-3.57-2.44-6.4-5.79-7.84a21.63,21.63,0,0,0-6.64-1.8c-4.49-.36-9-.29-13.52-.38a3.6,3.6,0,0,0-.79.12Z"/>
|
||||||
|
<path fill="#293982" d="M55.16,157.54c-2.63,0-5.06,0-7.49,0-.3,0-.72-.55-.85-.92-1.86-5.42-3.72-10.85-5.51-16.3a1.62,1.62,0,0,0-1.84-1.34q-11.88.08-23.75,0A1.49,1.49,0,0,0,14,140.15c-1.83,5.48-3.75,10.93-5.6,16.4-.24.71-.54,1-1.33,1-2.31,0-4.62,0-7.1,0l3.31-9.64q10.14-29.55,20.26-59.1a1.6,1.6,0,0,1,1.88-1.31,38.68,38.68,0,0,0,4.44,0,1.51,1.51,0,0,1,1.79,1.23c4.34,12.82,8.75,25.62,13.13,38.43l9.93,29.06C54.86,156.59,55,157,55.16,157.54Zm-27.4-60h-.32l-10.91,34.6H38.77C35.07,120.55,31.42,109.06,27.76,97.57Z"/>
|
||||||
|
<path fill="#293982" d="M63.44,87.6h8v69.87h-8Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.1 KiB |
9
static/airline-logos/BY.svg
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 105.5">
|
||||||
|
<title>TUI Airways logo</title>
|
||||||
|
<g fill="#d40e14">
|
||||||
|
<path d="m239.07 91.1a1.79 1.79 0 0 0 0.51-0.65 2.86 2.86 0 0 0 0.16-1.09v-35.68a3 3 0 0 0-0.16-1.11 1.55 1.55 0 0 0-0.51-0.62q-0.81-0.62-3.76-0.62t-3.82 0.62a1.55 1.55 0 0 0-0.51 0.62 3 3 0 0 0-0.13 1.11v35.7a2.14 2.14 0 0 0 0.62 1.73q0.81 0.62 3.82 0.62t3.78-0.63zm-26.62 0.2a13.6 13.6 0 0 0 5-2.92 11.26 11.26 0 0 0 2.92-4.38 16.28 16.28 0 0 0 0.92-5.55v-24.77a2.09 2.09 0 0 0-0.62-1.75q-0.88-0.62-3.76-0.62t-3.82 0.62a1.38 1.38 0 0 0-0.52 0.62 3.24 3.24 0 0 0-0.2 1.13v24.66a9.43 9.43 0 0 1-0.51 3 4.69 4.69 0 0 1-2.23 2.54 9 9 0 0 1-4.55 1 10.52 10.52 0 0 1-3.34-0.47 5.81 5.81 0 0 1-2.26-1.33 5.18 5.18 0 0 1-1.3-2.08 8.3 8.3 0 0 1-0.41-2.67v-24.65a2.09 2.09 0 0 0-0.62-1.75q-0.88-0.62-3.76-0.62t-3.82 0.62a1.38 1.38 0 0 0-0.52 0.62 3.24 3.24 0 0 0-0.12 1.13v24.76a16.29 16.29 0 0 0 0.92 5.55 11.26 11.26 0 0 0 2.88 4.42 13.6 13.6 0 0 0 5 2.88 26.25 26.25 0 0 0 14.7 0zm-43.62-0.2a1.65 1.65 0 0 0 0.49-0.65 3.08 3.08 0 0 0 0.15-1.09v-30.45h8.9a5.55 5.55 0 0 0 1.6-0.19 1.63 1.63 0 0 0 0.95-0.83 7.32 7.32 0 0 0 0.62-2.19 15.27 15.27 0 0 0 0.22-2.24 3.7 3.7 0 0 0-0.12-1.07 1.12 1.12 0 0 0-0.47-0.62 1.85 1.85 0 0 0-0.62-0.22 7.09 7.09 0 0 0-1.17-0.07h-27.71a5.55 5.55 0 0 0-1.6 0.19 1.64 1.64 0 0 0-1 0.83 6.29 6.29 0 0 0-0.62 1.92 13.78 13.78 0 0 0-0.22 2.47 3.82 3.82 0 0 0 0.17 1.11 1.08 1.08 0 0 0 0.49 0.62 3.7 3.7 0 0 0 1.78 0.29h9.91v30.43a2 2 0 0 0 0.67 1.75q0.81 0.62 3.82 0.62t3.75-0.6z"/>
|
||||||
|
<path d="m6.46 29.64h31.19c3.08 0 5.36 1 6.26 5.31 1 4.83 0.62 8.19-4.84 8.57l-9.8 0.7c7.22 45.5 49.32 60.34 72.25 11.31 3.8-8.11 5-9.59 9.19-8.56 5.63 1.4 6.4 4.32 3.7 12.47-19.79 60.44-86.41 66.5-99.48-14.19l-7.93 0.57c-6.47 0.46-6.73-5-6.73-8-0.02-6.03 2.21-8.18 6.19-8.18z"/>
|
||||||
|
<circle cx="119.8" cy="11.99" r="11.56"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
165
static/airline-logos/CA.svg
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 65">
|
||||||
|
<title>Air China</title>
|
||||||
|
<desc>Air China logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air China</Airline:name>
|
||||||
|
<Airline:alternateName>中国国际航空公司</Airline:alternateName>
|
||||||
|
<Airline:iataCode>CA</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/CA</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g>
|
||||||
|
<path d="M78.49,18.175h-3.619c0,0-2.088,0.519-1.359-1.811l0.309-1.421
|
||||||
|
c0.315-1.682,2.889-1.295,2.889-1.295h2.845L78.49,18.175 M74.4,9.381c0,0-4.151,0.259-4.992,5.951l-2.609,15.39h4.659l1.457-8.537
|
||||||
|
h4.403l-1.333,8.537h4.657l4.107-21.341H74.4z M193.744,18.175h-3.623c0,0-2.09,0.519-1.23-1.811l0.178-1.421
|
||||||
|
c0.316-1.682,2.895-1.295,2.895-1.295h2.844L193.744,18.175z M189.781,9.381c0,0-4.279,0.259-4.988,5.951l-2.613,15.39h4.525
|
||||||
|
l1.469-8.537h4.523l-1.33,8.537h4.658L200,9.381H189.781z M94.708,9.381h-5.432l-4.239,21.341h5.431L94.708,9.381z M164.299,9.381
|
||||||
|
h-5.951l-4.104,21.341h5.82L164.299,9.381z M173,30.723h4.785l4.234-21.342h-4.781l-2.076,11.255l-1.549-11.255h-4.916
|
||||||
|
l-4.238,21.342h4.918l1.92-10.478L173,30.723z M148.65,9.381l-1.557,7.501h-3.232l1.553-7.501h-5.434l-4.234,21.341h5.432
|
||||||
|
l1.891-9.702h3.234l-1.893,9.702h5.438l4.234-21.341H148.65z M107.84,14.943l-0.598,2.327c-0.602,2.328-2.264,1.812-2.264,1.812
|
||||||
|
h-3.621l1.352-5.435h2.848C105.557,13.648,108.154,13.262,107.84,14.943z M109.195,9.381H98.98l-4.63,21.341h4.662l1.815-7.629
|
||||||
|
l1.033,0.127l1.809,7.502h4.914L106.9,23.22c0,0,3.631-0.127,4.328-5.431l0.602-2.457C113.324,9.64,109.195,9.381,109.195,9.381z
|
||||||
|
M128.273,22.315l-0.787,4.138h-3.75l2.389-12.805h3.877l-0.93,4.399h5.045l1.105-5.691c0.447-1.682-0.672-3.105-2.35-3.105h-8.15
|
||||||
|
c-1.682,0-3.285,1.423-3.602,3.105l-3.119,15.263c-0.314,1.681,0.795,3.103,2.479,3.103h8.021c1.68,0,3.414-1.422,3.729-3.103
|
||||||
|
l1.09-5.305H128.273z M190.736,41.232c-0.594,0-1.088-1.066-0.789-1.6c1.773-1.709,3.551-3.098,5.918-3.949
|
||||||
|
c1.48-0.215,2.275,1.391,2.078,2.773c-0.598,5.871-0.301,11.42-0.795,17.186c0,0.531-0.291,1.922-1.084,1.389
|
||||||
|
c-0.982-1.07-1.777-2.455-2.566-3.842c0.789,0,1.283,1.066,2.07,1.066c0.297,0,0.496-0.322,0.496-0.535
|
||||||
|
c0-5.227-0.199-10.246,0-15.477c0-0.32-0.496-0.854-0.982-0.637c-1.285,1.17-2.277,2.025-3.361,3.414
|
||||||
|
C191.523,41.021,190.934,41.232,190.736,41.232z M192.215,49.238c-0.199,0.639-0.1,1.494-0.592,1.814
|
||||||
|
c-0.492,0.213-0.986-0.213-0.986-0.535c0-0.748,0.986-2.025,1.873-1.496L192.215,49.238z M193.797,47.316
|
||||||
|
c-1.287-0.857-2.275,1.176-3.357,1.922c-0.193,0-0.492,0-0.492-0.217c-0.299-0.85,0.299-1.385,0.492-1.918
|
||||||
|
c0.494-0.854,1.281-0.854,2.07-1.387c0.496-0.645,0.297-1.389,0.496-2.242c0,0-0.1-0.318-0.199-0.535
|
||||||
|
c-0.592-0.531-2.07-0.852-2.07-0.316c-0.49,2.771-1.58,5.549-1.283,8.322c0,0.32,0.195,0.854,0.494,1.066
|
||||||
|
c0.789,0.322,1.574-0.213,2.268,0c0.592,0.322,1.582,0,1.875-0.533c0.197-0.852,0.197-1.602,0.197-2.457
|
||||||
|
C194.09,48.492,194.09,47.637,193.797,47.316z M67.094,44.328l0.3,0.215c-0.3,0.531-0.594,1.174-0.793,1.709H65.81
|
||||||
|
c-0.791-1.178-2.07-3.096-0.984-3.844c0.984-0.854,1.281,0.748,1.476,1.6C66.601,44.328,66.799,44.328,67.094,44.328z
|
||||||
|
M73.015,43.156c-1.873,0.318-1.089-2.135-0.79-3.309c0.196-1.07,2.271-1.389,2.765,0C75.284,41.232,74.296,42.941,73.015,43.156z
|
||||||
|
M74.99,37.605c-0.987-0.531-1.779,0.854-2.765,0.639c-0.792-0.639,0-1.387,0-2.24s-0.299-1.389-0.792-1.922h-0.785
|
||||||
|
c0,1.602,0.493,3.309,0,4.91c-0.199,1.707-2.568,2.029-2.764,4.164c0.984-0.215,1.775-1.068,2.565-1.924
|
||||||
|
c0.199,0,0.494,0,0.494,0.322c0.198,1.387,0.489,2.988-0.494,3.52c-1.086,0.643-2.565,0.855-2.565,2.563
|
||||||
|
c0.196,0,0.491,0.213,0.491,0.213c0.791-0.213,1.48-0.533,2.074-1.391c0.199-0.209,0.692,0.324,0.692,0.645
|
||||||
|
c-0.198,3.309-0.692,6.299,0,9.605c0.292,0.322,0.591,0.855,0.591,0.643c0.688-3.949-1.283-7.795,0.492-11.102
|
||||||
|
c0.79-1.707,2.765-2.775,4.044-4.162C77.355,40.699,76.269,38.459,74.99,37.605z M86.829,52.652c0.494-0.213,0.986,0,1.283-0.639
|
||||||
|
c0,0.32,0.196,0.32,0.494,0.32v0.854c-0.791,0.533-1.777,0.533-2.566,1.389c-0.787,0.533-0.989-0.643-0.989-1.174
|
||||||
|
C85.05,52.867,86.04,52.867,86.829,52.652z M85.546,45.93c0.198-0.213,0.493-0.857,0.987-0.533c0.295,0,0.295,0.32,0.295,0.533
|
||||||
|
c-0.295,0.32-0.295,0.32-0.295,0.529c0,0.324-0.296,0.645-0.494,0.645C85.744,46.783,85.253,46.459,85.546,45.93z M90.383,44.008
|
||||||
|
c0-2.455,0.983-4.695,1.28-7.15c-1.28-1.174-2.86-0.854-4.146,0c-2.759,2.135-2.759,5.764-4.536,8.859
|
||||||
|
c-0.296,0.213-0.49,0-0.49-0.32c-0.302-1.389,0.094-2.67,0.49-4.164c0.197-1.066-0.296-1.92-1.088-2.24
|
||||||
|
c-0.197,5.336,0.598,10.564,0.296,15.795c0.302,0,0.496,0,0.496,0.322c1.084-3.311-0.989-6.938,1.084-10.037h0.989
|
||||||
|
c0.985,0.645,0,1.711,0.292,2.564c0,0.213,0.202,0.213,0.495,0.213c0.198-0.213,0.198-0.213,0.493-0.213
|
||||||
|
c0.198,0,0.494,0.213,0.198,0.535c-0.493,0.531-0.691,0.85-0.984,1.385c-0.202,0.32-0.494,0-0.494-0.32
|
||||||
|
c-0.299,0.32-0.299,0.855-0.494,1.389h0.494c0.985-0.748,1.281-1.922,2.07-2.988h0.495c0.787,1.066-0.296,2.24-0.791,2.988
|
||||||
|
c0.494,0,0.494-0.213,0.791-0.533c0.491-0.535,0.787,0.854,1.281,0.32c0-0.32-0.494-0.855-0.494-1.176
|
||||||
|
c0.197-0.744,0-1.92,0.693-2.453c-0.199,0-0.199-0.324-0.199-0.533c-0.494,0-1.281,0-1.577-0.533c0-1.176,0-2.029-0.199-2.775
|
||||||
|
c-0.591-1.389-0.789,1.066-1.777,1.6c-0.592,0.322-1.281,0-1.082-0.854c0.49-1.066,1.082-2.135,1.577-3.307
|
||||||
|
c0.987-1.389,1.971-2.455,3.553-2.99c0.494-0.318,0.985,0,1.283,0.535c0.293,1.922,0,3.627-0.298,5.549
|
||||||
|
c-0.2,0.533-1.282,0-1.48,0.213c0,0.32-0.494,0.641-0.297,1.176c0.496,0.533,1.086,0,1.286-0.322c0.292-0.213,0.491,0,0.491,0.322
|
||||||
|
c0.298,3.84,0.298,8.004,0.298,11.846c0.293,0.854,1.28,1.387,1.28,0.643C92.159,52.867,90.676,48.492,90.383,44.008z
|
||||||
|
M103.406,45.93c0.297,0.854,0.49,1.707,0.297,2.242c-0.494,0.85-1.084,1.385-1.777,1.92c-0.295,0-0.492,0-0.492-0.215
|
||||||
|
c0.197,0,0.098-0.32,0.197-0.639c0.492-1.066,0.789-1.922,0.789-2.988C102.123,45.717,103.406,45.395,103.406,45.93z
|
||||||
|
M107.057,45.717c0-1.174-0.295-2.027,0.199-3.094c0.787-1.068-0.199-2.244-0.199-3.631c0-0.748-0.59-1.068-0.787-1.385
|
||||||
|
c-3.061-0.533-4.146,3.625-5.428,5.867c-0.202,0.854-0.493,1.389-0.686,2.242c-0.301,1.6-0.301,3.305-1.09,4.695
|
||||||
|
c-0.493-1.391-0.197-3.096-0.197-4.482c0.197-1.922,0.197-3.521,0.693-5.551c-0.204,0-0.496-1.066-0.496-0.213
|
||||||
|
c-0.789,3.309-0.493,6.293-0.985,9.711c0,0.75,0,1.922,0.789,2.777c0.693-2.242,1.287-4.805,1.771-7.26
|
||||||
|
c0-0.32,0.202-0.531,0.5-0.531c0.492,0,0.984,0.211,0.984,0.531c0,0.855,0,1.922-0.197,2.777c-0.492,0.85-0.787,1.385-1.287,2.24
|
||||||
|
c-0.291,0.533,0.202,0.854,0.202,1.066h0.592c0.689-0.852,1.186-1.922,1.973-1.922c0.49-0.318,0.49,0.855,0.297,1.389
|
||||||
|
c-0.787,1.389-2.072,1.389-3.064,2.244c-0.291,0.211,0,0.531,0.202,0.531c1.084,0,2.075-0.32,3.055-0.854
|
||||||
|
c0-0.213-0.49-0.854-0.49-1.068c0.297-0.533,0.789-0.533,1.283,0c-0.197-1.172-0.494-2.242-0.197-3.305
|
||||||
|
c0.197-0.322,0.492-0.857,0.492-1.391c-0.492,0-1.088-0.32-1.088-0.645c0-1.064,0.596-2.131,0-3.303h-0.688
|
||||||
|
c-0.59,0.852-0.789,1.707-1.578,1.707c-0.197,0-0.79-0.32-0.492-0.855c0.984-1.6,1.48-3.629,3.057-4.695
|
||||||
|
c0.494-0.32,1.283,0,1.777,0.535c0.789,1.385,0.789,2.561,0.494,3.842c-0.197,0.639-1.283,0.318-0.988,1.174
|
||||||
|
c0.299,0.211,0.494,0.854,0.791,1.066c0.197,3.309,0.787,6.404,0.787,9.391c0,0.322,0.5,0.322,0.5,0.322
|
||||||
|
C107.748,52.334,106.467,49.021,107.057,45.717z M121.861,36.857c-0.891,0-0.793,1.6-1.281,2.135
|
||||||
|
c-0.791-1.387,0.789-2.135,0.789-3.523c0.195,0,0.492,0,0.492-0.318c0.49,0.854,1.578,0.533,1.578,1.068
|
||||||
|
c0.191,1.172,0,2.238-0.592,3.414c-0.496,1.92-1.283,3.842-2.268,5.762c-0.303,0.855-0.494,2.242-1.486,2.242
|
||||||
|
c-0.586-0.32-0.783-1.178-0.586-1.707c0.787-1.602,1.578-2.99,2.072-4.697c-0.303,1.391-0.791,2.775-1.486,4.162
|
||||||
|
c0,0.322,0,0.855,0.201,0.855c2.074-2.242,3.357-5.871,3.357-9.178C122.652,36.857,122.154,36.857,121.861,36.857z M127.287,36.857
|
||||||
|
c0,0.32-0.297,0.748-0.592,1.066c-0.492,0.533-1.777,0.854-1.482,1.389c0.199,1.389,2.074,2.24,3.555,2.24
|
||||||
|
c0.494,0,0.789,0.855,0.494,1.387h-0.494c-0.498-0.531-0.99-0.852-1.777-0.852c-0.787-0.32-1.281-1.387-2.072-1.922
|
||||||
|
c-0.492-0.318-1.477,0.213-1.287-0.318c0-0.855,1.287-1.07,1.781-1.924c0.297-0.533-0.199-0.852-0.494-1.066
|
||||||
|
c-0.195-0.854,0.494-1.389,0.494-2.242c0-0.316,0.297-0.533,0.592-0.316c0.494,0.531,0.691,1.385,1.283,1.92V36.857z
|
||||||
|
M117.814,37.924c0,0.854-0.299,1.068-0.793,1.709c-0.291,0.215-0.789,0.215-1.08,0.215c-0.494-0.215-0.203-0.855-0.203-1.07
|
||||||
|
c0.203-1.387,1.48-2.773,2.77-1.705C118.311,37.391,117.814,37.605,117.814,37.924z M117.219,42.939
|
||||||
|
c-0.488,0.217-0.986-0.316-0.986-0.531c0.303-0.641,0.498-1.176,0.986-1.389c0.297,0,0.596,0,0.596,0.213
|
||||||
|
C117.814,41.768,117.814,42.623,117.219,42.939z M118.012,39.313c0.496-1.068,1.582-1.922,1.283-3.094
|
||||||
|
c0-0.75-1.283-0.215-1.779-0.215c-0.785,0.531-1.479,1.174-2.564,1.92c-0.791,0.533-2.072,0.854-1.58,2.242
|
||||||
|
c0.303,0.535,1.287,0.213,1.58-0.318c0.496,0.318,0.99,0.531,1.281,1.172v0.533c-0.291,0.535-0.986,0.535-0.785,1.387
|
||||||
|
c0.494,0.535,0.785,1.068,0.494,1.602c0,1.709,0.291,3.096,0.291,4.697c-0.291,2.24-0.494,4.162-0.494,6.404
|
||||||
|
c0,0.318,0.203,0.852,0.797,1.068c0.486-4.057-0.797-8.219,0.195-12.383c0.291-0.639,1.281-0.854,1.777-1.389
|
||||||
|
c0.295-0.316-0.197-0.852,0.295-1.172C118.311,41.02,117.814,40.166,118.012,39.313z M122.848,45.93
|
||||||
|
c-0.195,0-0.498-0.213-0.195-0.535c0.488-0.322,0.488-1.387,1.281-1.387c0.193,0,0.193,0.32,0.492,0.533
|
||||||
|
C123.934,45.072,123.631,45.93,122.848,45.93z M123.141,52.012c-0.791,0-0.988-1.387,0-1.92h0.49c0.303,0,0.203,0.32,0.303,0.533
|
||||||
|
C124.127,51.479,123.631,52.334,123.141,52.012z M127.484,49.877c-0.494-1.172-2.072-0.639-2.564-1.172
|
||||||
|
c-1.289-1.068,0-2.775,0.492-4.164c0-0.213-0.592,0-0.691-0.213c-0.594-1.172-1.279-1.92-2.068-0.854c0,0,0.488,0.215,0.488,0.533
|
||||||
|
c0.301,0.855-0.791,1.387-1.279,1.922c-0.297,0.32,0,1.174,0.291,1.387c0.5,0.32,0.695-0.857,1.289-1.066
|
||||||
|
c0.189,0,0.492,0,0.492,0.209c0.193,1.178,0.492,2.246-0.492,3.098c-0.594,0.32-1.092,0.535-1.877,0.535
|
||||||
|
c-0.494,0.32-0.197,0.854-0.197,1.174c0.785,1.389,2.074,1.924,2.566,3.311h0.492c0-1.387,0.295-2.777,0-4.484
|
||||||
|
c0-0.535,0.494-1.07,1.283-0.854c0.789,0.639,0.492,1.707,1.281,2.24h0.494C128.27,50.945,127.484,50.412,127.484,49.877z
|
||||||
|
M145.445,40.381c-0.199-0.107-0.199-0.215-0.398-0.215c-0.297,0-0.688-0.318-0.887-0.318c-0.295-1.604,0.984-2.988,2.268-1.922
|
||||||
|
c0.496,0.854,0.791,1.922-0.297,2.773C145.939,40.699,145.645,40.699,145.445,40.381z M140.408,44.008
|
||||||
|
c-0.297,0.748,0.496,1.064-0.197,1.281c-0.787,0.318-0.492-0.426-0.984-0.748c0.787-0.852,0.492-2.133,1.279-2.773
|
||||||
|
c0.301,0,0.795,0.641,0.301,1.172C140.506,43.156,140.408,43.793,140.408,44.008z M139.521,45.93c-0.295,0.529,0,1.92-0.984,1.387
|
||||||
|
c-0.396-0.426-0.494-1.492,0.197-2.244C139.029,45.072,139.621,45.717,139.521,45.93z M148.895,51.373
|
||||||
|
c-0.094-0.213-0.193-0.961-0.193-1.281c0-0.215-0.496-0.215-0.496-0.215c-0.199,1.068,0.395,3.844-0.986,2.775
|
||||||
|
c-1.68-1.279-0.889-4.48-0.391-6.723c0-0.213-0.697-0.213-0.889-0.213c-0.297,0.213-1.283,0.742-0.99,0.213
|
||||||
|
c0-1.389,1.182-2.24,1.975-3.309v-0.854c0-0.215-0.195-0.215-0.496-0.215c-1.479,1.387-2.764,2.137-4.637,3.311
|
||||||
|
c0,0,0,0.533-0.191,0.533h-0.5c-0.293-0.324-0.293-0.533-0.293-0.855c0.494-1.066,0.984-1.92,0.793-2.988
|
||||||
|
c-0.299-0.533-0.5-1.705-1.289-1.174c-0.789,1.174-0.486,3.096-1.773,3.949c-0.297,0-0.297-0.32-0.297-0.32
|
||||||
|
c0.396-1.387,0-1.281,0.494-2.348c0-0.32,0.195-0.535,0.096-1.174l-0.096-0.426c-0.098-0.535,0.096-0.428,0.096-0.643
|
||||||
|
c0.297-0.318,0.1-0.426,0.396-0.641c0.787-0.533,1.279-1.387,2.074-1.92c-0.201,0-0.201-0.322-0.201-0.639
|
||||||
|
c-0.594,0-0.789-0.535-1.086-0.535c-0.984,0.535-1.773,1.922-2.07,3.309c-0.197,3.096,0,5.871-0.492,8.857
|
||||||
|
c-0.201,0.854-1.777,0.854-2.564,1.387c-0.199,0,0,1.176,0.787,1.176l0.791-0.855c0.293,0,0.785,0,0.785,0.32
|
||||||
|
c0,1.602-1.279,2.99-1.082,4.697c0,0,0.789-0.109,0.789-0.428c0.195-1.918,0.59-3.842,1.086-5.764
|
||||||
|
c0.295-0.318,0.197-0.533,0.494-0.746c0.197,0,0.197,0.213,0.492,0.535c0.197,0.531-1.283,0.961-0.199,1.279
|
||||||
|
c0.199,0.105,0.396-0.748,0.691-0.959c0.303,0,0.492,0,0.492,0.211c0.297,1.709-0.787,2.775-0.492,4.486
|
||||||
|
c0.303,0.531,0.492,1.066,0.492,1.598h0.492l-0.195-0.213c0-0.318,0.496-0.531,0.496-0.531c-1.088-2.244-0.301-4.486-0.301-6.621
|
||||||
|
c0-0.854,0.992-1.385,1.584-1.705c0.686,0,1.475-0.854,2.271-1.07c0.295,0,0,0.426,0,0.75c-0.496,1.387-0.697,2.775-1.283,4.16
|
||||||
|
c-0.492,1.709-0.893,3.205-0.695,4.908c0,0,0.596,0,0.596-0.318c-0.203-1.918,0.789-3.521,1.084-5.229
|
||||||
|
c0.199-0.535,0.594-1.602,1.084-1.814c0.299,0,0.496,0,0.496,0.213c0,1.92-0.197,3.309,0,5.336
|
||||||
|
c0.297,0.748,1.086,1.068,1.773,1.281c0.297,0,0.199,0.213,0.59,0.109c0.494,0.104,0.494-0.109,0.695-0.109
|
||||||
|
C149.781,53.4,149.492,52.117,148.895,51.373z M154.619,45.396c-0.199,0-0.494,0-0.494-0.322c-0.492-2.133,0.791-3.52,2.271-4.693
|
||||||
|
c0,1.174-0.197,2.24-0.984,2.773c0.197,0.32,0.49,0.533,0.49,0.533c2.568-2.133,4.633-4.908,7.695-4.908
|
||||||
|
c1.779-0.32,4.838,2.242,3.357,3.842c-0.592,0.533-2.072,0.32-3.158,0.32c0.299-0.854,1.283-1.172,1.873-1.709v-0.533
|
||||||
|
c-1.082-1.066-2.365-1.387-3.648-0.852c-1.486,0.852-3.059,2.24-4.543,3.094c-1.082,0.533-1.082,2.133-2.066,2.775
|
||||||
|
C155.115,45.717,154.916,45.396,154.619,45.396z M160.736,37.926c-0.887-0.32-1.479-1.922-0.492-2.242
|
||||||
|
c0.492-0.213,0.791,0.535,1.285,1.176C161.828,37.393,161.529,38.244,160.736,37.926z M161.035,44.008
|
||||||
|
c0,0.855-0.498,1.709-0.988,1.389c-1.084,0-1.576,1.063-2.568,0.854c0.199,0,0.199-0.32,0.199-0.533h0.496
|
||||||
|
c0.592-0.854,1.084-1.389,1.576-2.242c0-0.318,0-0.533-0.295-0.533c0.295,0,0.295-0.32,0.295-0.533
|
||||||
|
C160.537,42.621,161.035,42.941,161.035,44.008z M162.611,44.328c-0.492-0.426-0.783-1.387-0.295-1.387
|
||||||
|
c0.492-0.32,0.789,0.533,1.281,1.066c-0.293,0-0.293,0.32-0.293,0.535C163.105,44.543,162.809,44.543,162.611,44.328z
|
||||||
|
M162.021,48.172c-0.193,0.852,0,1.705-0.492,2.453c-0.494,0.641-1.482,0.855-1.285,1.389c0,0.854,1.092-0.215,1.777-0.215
|
||||||
|
c0.295,0,0.59,0.215,0.59,0.535c0.197,0.854,0,1.6-0.783,1.922c-1.291,0-2.865,0.32-4.15,0c0.299-0.535-0.793-1.389,0-1.604
|
||||||
|
c0.793,0,1.578-0.639,1.578-1.387c0.199,0,0.494,0,0.494-0.32c0.297-0.854,0.986-1.709,0.297-2.24
|
||||||
|
c-0.297,0-0.791-0.213-1.084-0.213c0.787-0.643,1.574-0.855,2.373-1.389C161.828,47.104,162.316,47.316,162.021,48.172z
|
||||||
|
M173.863,46.25c-0.299,0.209-0.59,0.533-0.791,0.854c0-0.854,0.492-1.174,0.986-1.709c0.793-1.705,1.09-3.84,2.367-5.229
|
||||||
|
c0.197-0.318,0.988-0.318,1.486,0c0.787,0.535,0.787,1.389,0.492,2.242c-0.197,0.215-0.492,0.531-0.99,0.531
|
||||||
|
c-0.791,0.535-0.988,1.604-1.773,2.455C175.148,45.717,174.355,45.717,173.863,46.25z M177.215,52.439
|
||||||
|
c0.992,0,1.777-1.174,2.467-2.027v-0.535c0.299,0,0.592-0.639,1.088-0.32c0.693,0.535,0.693,1.389,1.283,1.922
|
||||||
|
c0.199,0.855,0,1.922-1.084,1.922c-0.695-0.211-0.199-1.389-0.988-1.602c-0.299,0-0.393,0.213-0.59,0.213
|
||||||
|
c-1.283,0.855-2.078,2.775-3.65,2.244c0,0-0.396-1.066-0.1-1.389c0.191-0.533,0.488-0.855,0.488-1.389
|
||||||
|
c0.791-1.066,1.285-2.24,2.078-2.986c0.785-1.176,0.785-3.42,2.264-3.42c0.299,0,0.498,0.43,0.498,0.752
|
||||||
|
c-0.598,0.531-1.287,0-1.578,0.854c-0.297,0.535,0.787,0.318,0.492,0.854c-0.992,1.707-2.27,2.773-3.061,4.48
|
||||||
|
C176.529,52.547,176.92,52.439,177.215,52.439z M181.758,42.621c-0.295,0-0.492,0-0.492-0.213c0-0.854,0-1.709,0.492-2.561
|
||||||
|
c0.295,0.533,0.982,0.533,1.277,1.174c0.301,0.746-0.295,1.6-0.783,1.92C182.252,42.941,182.053,42.621,181.758,42.621z"/>
|
||||||
|
<path fill="#ED1C24" d="M1.928,23.908c1.502-0.094,2.731,0.971,3.003,2.364v18.47
|
||||||
|
c-0.033,5.234,4.181,9.453,9.432,9.449c5.138,0.004,9.348-4.215,9.431-9.449V31.425c-0.098-10.148,8.112-18.372,18.224-18.468
|
||||||
|
c7.142-0.051,12.987-4.927,14.578-11.6c-3.669,2.795-8.338,4.561-13.292,4.512c-0.983,0.049-0.879,0.106-1.716,0h0.214
|
||||||
|
c-14.197,0-25.441,11.349-25.51,25.556v12.458V43.67c-0.007,0.098-0.007,0.102,0,0.213c-0.007,1.266-1.115,2.377-2.571,2.363
|
||||||
|
c-1.276,0.014-2.387-1.098-2.359-2.363c-0.027-0.109-0.027-0.115,0-0.213V26.486c-0.027-1.734-1.351-3.065-3-3.007
|
||||||
|
c0.14-0.983,0.971-1.722,1.931-1.719c0.359-0.003,0.659,0.071,0.858,0.216c0.416,0.096,0.882,0.168,1.286,0.214
|
||||||
|
c2.687-0.046,4.799-2.162,4.716-4.726c0.083-0.101,0.081-0.156,0-0.213c-1.001,1.367-2.712,2.275-4.716,2.362
|
||||||
|
c-0.25-0.178-0.735-0.174-1.074-0.215c-2.213,0.041-3.995,1.823-4.072,4.081H0v0.429h2.146H1.928"/>
|
||||||
|
<path fill="#ED1C24" d="M42.018,21.546c-5.46-0.05-9.895,4.395-9.862,9.879v-0.213v15.464
|
||||||
|
c-0.039,7.621-6.108,13.75-13.72,13.746c-5.279,0.004-9.906-3.068-12.219-7.518c2.078,1.986,4.933,3.273,8.146,3.221
|
||||||
|
c6.231,0.053,11.331-5.057,11.363-11.383V31.425c-0.024-9.037,7.289-16.36,16.292-16.323h-0.43
|
||||||
|
c4.839-0.038,9.213-2.017,12.434-5.156c-0.507,6.436-5.891,11.55-12.434,11.6H42.018"/>
|
||||||
|
<path fill="#ED1C24" d="M39.659,35.936c-0.072-1.447,1.02-2.543,2.357-2.576c1.366,0.033,2.458,1.129,2.357,2.576
|
||||||
|
c0.101,0.201,0.049,0.484,0,0.645c-0.133,0.5-0.619,0.924-1.283,0.861c-0.569,0.063-1.096-0.467-1.074-1.074
|
||||||
|
c-0.022-0.207,0.008-0.361,0-0.432v-0.213c-0.148,0.566-0.248,1.076-0.215,1.502c-0.033,2.471,1.885,4.391,4.289,4.295
|
||||||
|
c1.675,0.096,3.154-0.916,3.86-2.359c0.586-1.098,0.943-2.414,0.855-3.867c0.087-4.571-3.662-8.33-8.357-8.377
|
||||||
|
c-4.569,0.047-8.32,3.806-8.363,8.377v11.383c0,8.684-6.978,15.674-15.65,15.68c-1.15-0.006-2.336-0.145-3.429-0.43h-0.214
|
||||||
|
c2.182,1.035,4.729,1.648,7.505,1.717c9.485-0.068,17.244-7.842,17.148-17.396V35.723L39.659,35.936"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 17 KiB |
50
static/airline-logos/CC.svg
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 131.077">
|
||||||
|
<title>Air Atlanta Icelandic</title>
|
||||||
|
<desc>Air Atlanta Icelandic logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Air Atlanta Icelandic</Airline:name>
|
||||||
|
<Airline:iataCode>CC</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/CC</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#CAB999" d="M84.096,0C47.797,0,11.018,29.344,1.945,65.544c2.407,3.614,19.825,7.409,33.142,8.539
|
||||||
|
c66.977-74.545,112.226-62.565,83.57-10.301c-1.001,1.83-2.073,3.218-3.096,4.936c9.33-1.809,17.324-4.574,18.281-5.186
|
||||||
|
C141.757,28.162,119.794,0,84.096,0z M41.756,74.876c17.194,2.08,30.914-0.342,40.389-1.825c5.34-5.747,11.083-12.234,14.777-17.321
|
||||||
|
C125.696,16.018,92.461,20.601,41.756,74.876z"/>
|
||||||
|
<path fill="#004886" d="M166.3,55.098l-19.089,35.386h11.479l4.497-8.174h17.496l4.494,8.174h11.481l-19.089-35.386H166.3z
|
||||||
|
M165.4,75.997l6.572-12.359l6.573,12.359H165.4z M213.002,55.098h-9.821v35.386h9.821V55.098z M248.689,78.121
|
||||||
|
c2.628,1.116,4.149,3.553,4.632,7.316c0.348,2.496,0.692,4.194,1.037,5.046h10.997c-0.482-1.067-0.829-2.814-1.106-5.364
|
||||||
|
c-0.273-2.545-0.826-4.556-1.798-5.882c-1.243-1.807-3.458-3.133-6.567-3.984c5.877-1.482,8.781-4.93,8.781-10.289
|
||||||
|
c0-3.502-1.796-6.151-5.464-7.955c-2.562-1.277-7.057-1.911-13.485-1.911h-22.548v35.386h9.824V77.06h7.884
|
||||||
|
C244.331,77.06,246.958,77.377,248.689,78.121z M232.992,61.411h13.762c1.796,0,3.042,0.105,3.803,0.318
|
||||||
|
c2.214,0.584,3.32,1.959,3.32,4.137c0,1.963-0.764,3.289-2.212,4.084c-0.969,0.531-2.631,0.793-4.911,0.793h-13.762V61.411z
|
||||||
|
M318.158,55.098h-11.273l-19.086,35.386h11.479l4.495-8.174h17.5l4.493,8.174h11.479L318.158,55.098z M305.987,75.997l6.569-12.359
|
||||||
|
l6.567,12.359H305.987z M373.04,55.098h-39.765v6.313h14.659v29.072h9.822V61.411h15.283V55.098z M393.063,83.318
|
||||||
|
c-1.664-0.583-2.696-1.693-3.039-3.343c-0.284-1.487-0.421-3.181-0.421-4.986V55.098h-9.751v19.892c0,3.391,0.205,5.893,0.759,7.424
|
||||||
|
c1.385,3.822,4.637,6.313,9.688,7.429c2.006,0.426,5.529,0.642,10.717,0.642h8.912v-6.318h-7.874
|
||||||
|
C397.766,84.165,394.791,83.954,393.063,83.318z M430.339,55.098l-19.096,35.386h11.481l4.497-8.174h17.496l4.492,8.174h11.485
|
||||||
|
l-19.091-35.386H430.339z M429.434,75.997l6.572-12.359l6.563,12.359H429.434z M498.893,81.464l-18.328-26.366h-12.582v35.386h9.401
|
||||||
|
v-25.94l18.813,25.94h12.039V55.098h-9.343V81.464z M553.822,55.098h-39.772v6.313h14.662v29.072h9.822V61.411h15.288V55.098z
|
||||||
|
M580.915,55.098h-11.275l-19.092,35.386h11.481l4.497-8.174h17.496l4.492,8.174H600L580.915,55.098z M568.739,75.997l6.572-12.359
|
||||||
|
l6.567,12.359H568.739z M29.426,117.864c0,0,21.361-10.943,41.854-32.701c-13.952,1.958-23.596,1.943-38.64-0.293
|
||||||
|
c-15.391,21.523-18.854,15.469-18.854,15.469c3.284-3.904,10.214-13.218,12.873-16.404c-6.937-1.678-21.114-5.172-26.199-10.923
|
||||||
|
c-3.907,32.202,17.352,58.065,50.774,58.065c35.194,0,70.844-27.586,81.248-62.252c-4.845,2.508-10.747,5.895-21.932,8.576
|
||||||
|
C67.655,138.487,29.426,117.864,29.426,117.864z M158.691,127.647h5.202v-20.805h-5.202V127.647z M190.278,110.362
|
||||||
|
c1.857,0,3.346,0.371,4.365,0.773l1.082-3.705c-0.928-0.436-2.971-0.926-5.662-0.926c-6.935,0-12.538,3.921-12.538,11.017
|
||||||
|
c0,5.961,4.089,10.468,12.041,10.468c2.755,0,4.923-0.499,5.851-0.895l-0.741-3.705c-1.052,0.4-2.755,0.676-4.365,0.676
|
||||||
|
c-4.612,0-7.336-2.619-7.336-6.789C182.974,112.618,186.192,110.362,190.278,110.362z M215.594,118.853h8.449v-3.826h-8.449v-4.322
|
||||||
|
h8.945v-3.861h-14.113v20.805h14.576v-3.857h-9.408V118.853z M245.295,106.843h-5.166v20.805h14.3v-3.949h-9.134V106.843z
|
||||||
|
M271.753,106.843l-7.027,20.805h5.388l1.61-5.34h6.593l1.764,5.34h5.602l-7.15-20.805H271.753z M272.463,118.789l1.397-4.414
|
||||||
|
c0.366-1.204,0.712-2.78,1.021-4.013h0.09c0.343,1.203,0.744,2.779,1.147,4.013l1.425,4.414H272.463z M314.303,112.892
|
||||||
|
c0,3.152,0.094,5.961,0.401,8.707h-0.063c-1.052-2.345-2.381-4.938-3.744-7.131l-4.767-7.625h-6.065v20.805h4.764v-6.265
|
||||||
|
c0-3.396-0.061-6.327-0.244-9.107h0.151c1.084,2.437,2.602,5.095,3.967,7.346l4.918,8.026h5.447v-20.805h-4.765V112.892z
|
||||||
|
M351.23,108.85c-2.168-1.513-5.016-2.158-9.411-2.158c-2.601,0-5.077,0.151-6.995,0.46v20.402c1.272,0.157,3.22,0.313,5.882,0.313
|
||||||
|
c4.518,0,8.231-0.837,10.646-2.687c2.2-1.669,3.776-4.449,3.776-8.428C355.128,113.049,353.616,110.455,351.23,108.85z
|
||||||
|
M341.819,124.192c-0.616,0-1.36,0-1.827-0.094v-13.614c0.467-0.093,1.24-0.181,2.354-0.181c4.52,0,7.304,2.129,7.304,6.602
|
||||||
|
C349.649,121.877,346.556,124.222,341.819,124.192z M369.266,127.647h5.197v-20.805h-5.197V127.647z M400.854,110.362
|
||||||
|
c1.859,0,3.343,0.371,4.365,0.773l1.087-3.705c-0.935-0.436-2.976-0.926-5.667-0.926c-6.936,0-12.543,3.921-12.543,11.017
|
||||||
|
c0,5.961,4.091,10.468,12.043,10.468c2.761,0,4.924-0.499,5.854-0.895l-0.744-3.705c-1.052,0.4-2.75,0.676-4.36,0.676
|
||||||
|
c-4.614,0-7.341-2.619-7.341-6.789C393.547,112.618,396.768,110.362,400.854,110.362z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.8 KiB |
45
static/airline-logos/CI.svg
Normal file
|
After Width: | Height: | Size: 26 KiB |
31
static/airline-logos/CM.svg
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 210 36">
|
||||||
|
<title>Copa Airlines</title>
|
||||||
|
<desc>Copa Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Copa Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>CM</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/CM</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#016cb2" d="M78.205677,17.1136472 L75.8312565,11.9031714 L73.4382858,17.1136472 L78.205677,17.1136472 Z M73.6223605,8.21212295 L78.0415795,8.21212295 C78.8092707,9.86595032 85.1734027,23.4644008 85.1734027,23.4644008 L81.1337485,23.4644008 L79.4713688,19.8907756 L72.1383477,19.8907756 L70.5216299,23.4672303 L66.4662794,23.4672303 L73.6223605,8.21212295 Z" />
|
||||||
|
<path fill="#016cb2" d="M125.843488,11.6274392 C123.283566,11.6274392 122.039278,12.9629507 122.039278,12.9629507 L121.829518,11.859456 L118.373481,11.859456 C118.510467,12.2739739 118.738776,13.0407613 118.738776,13.7198349 L118.738776,23.4673718 L122.156287,23.4673718 L122.156287,16.7063444 C122.156287,14.896896 123.283566,13.956096 125.843488,13.956096 C127.250446,13.956096 128.112315,14.4173002 128.112315,16.7063444 L128.112315,23.4673718 L131.515556,23.4673718 L131.515556,16.7063444 C131.515556,13.257216 130.392558,11.6274392 125.843488,11.6274392" />
|
||||||
|
<path fill="#016cb2" d="M137.625551,16.4946998 C137.825322,15.0644008 138.480285,13.9679798 141.175766,13.9679798 C143.154925,13.9679798 143.864112,15.2270956 143.978267,16.4946998 L137.625551,16.4946998 Z M141.175766,11.6662029 C135.37242,11.6662029 134.081043,14.3612766 134.081043,17.6646872 C134.081043,21.0034661 135.346735,23.7084429 141.459726,23.7084429 C143.697161,23.7084429 145.787621,23.2939251 146.264218,23.1963082 C146.355541,22.6049482 146.553885,21.3217819 146.618098,20.8817987 C146.291329,20.9143377 143.642937,21.3981777 141.459726,21.3981777 C138.618698,21.3981777 137.858141,20.3243924 137.625551,18.8318451 L147.450001,18.8318451 L147.450001,17.6646872 C147.450001,13.5039461 145.208285,11.6662029 141.175766,11.6662029 Z" />
|
||||||
|
<path fill="#016cb2" d="M25.983123,21.4158619 C23.1292522,21.4158619 22.2816525,20.0081987 22.2816525,17.6752977 C22.2816525,15.3848387 23.1292522,13.9842493 25.983123,13.9842493 C28.8198706,13.9842493 29.6746049,15.3848387 29.6746049,17.6752977 C29.6746049,20.0081987 28.8198706,21.4158619 25.983123,21.4158619 M25.983123,11.6570072 C21.7165861,11.6570072 18.8727038,13.5159714 18.8727038,17.6752977 C18.8727038,21.8841398 21.7165861,23.7190535 25.983123,23.7190535 C30.2439521,23.7190535 33.0764189,21.8841398 33.0764189,17.6752977 C33.0764189,13.5159714 30.2439521,11.6570072 25.983123,11.6570072" />
|
||||||
|
<path fill="#016cb2" d="M60.5082533,19.0492901 C60.5082533,21.2011048 58.4292084,21.3892648 56.5256766,21.3892648 C55.8678594,21.3892648 54.8304773,21.2492059 54.8304773,19.9801869 C54.8304773,19.1426627 55.9805873,18.5824269 57.378984,18.5824269 L60.5082533,18.5824269 L60.5082533,19.0492901 Z M63.9114943,15.3610712 C63.9114943,13.0253406 61.3886725,11.6275806 57.664371,11.6275806 C55.7465699,11.6275806 53.3892726,12.3703175 52.5787732,12.6476059 C52.5017187,13.1342754 52.2591397,14.6664354 52.2106239,14.9875806 C52.9512034,14.8248859 55.8564439,13.9562375 57.664371,13.9562375 C59.5293756,13.9562375 60.5082533,14.5872101 60.5082533,15.4997154 L60.5082533,16.4843722 C60.5082533,16.4843722 58.2051796,16.2608438 57.378984,16.2608438 C53.6618172,16.2608438 51.4115401,17.5779638 51.4115401,19.9801869 C51.4115401,23.0232859 54.7976578,23.6882122 56.5256766,23.6882122 C58.8558621,23.6882122 60.0758919,23.0728017 60.648093,22.5564227 L60.8450101,23.4675133 L64.2610934,23.4675133 C64.2211393,23.2864269 63.9114943,22.4729533 63.9114943,21.3892648 L63.9114943,15.3610712 Z" />
|
||||||
|
<path fill="#016cb2" d="M9.3630355,7.76450021 C13.3684432,7.75884126 15.8555916,9.01371284 17.2368651,10.9872707 L13.659538,12.3652244 C12.887566,11.2787065 11.5933355,10.5656792 9.40869743,10.5529465 L9.32022744,10.5529465 C7.1826782,10.5642644 5.90414407,11.2320202 5.12218346,12.2746813 C4.4386814,13.1786981 4.06625126,14.3430265 4.06625126,15.6643907 L4.06625126,15.8822602 L4.06339739,15.8822602 C4.07909368,17.1427907 4.45580463,18.3608792 5.12218346,19.2366013 C5.90414407,20.2707739 7.1826782,20.9540918 9.32022744,20.958336 L9.40869743,20.958336 C11.5519544,20.9540918 12.841904,20.2537971 13.6210108,19.2040623 L17.2368651,20.5791865 C15.8484569,22.5258644 13.3341967,23.7184876 9.38158566,23.7184876 L9.3630355,23.7184876 C5.84992052,23.7184876 3.49405016,22.7989086 2.04856459,21.2144034 C0.732930142,19.7911781 0.0636974347,17.8996749 0.067978241,15.8058644 L0.067978241,15.6643907 C0.0636974347,13.6172665 0.734357077,11.7186897 2.04571072,10.3039528 C3.49119629,8.72369179 5.84849359,7.76167074 9.3630355,7.76450021" />
|
||||||
|
<path fill="#016cb2" d="M108.508505,21.6245356 L108.508505,8.21848926 L105.096703,8.21848926 L105.096703,21.6245356 C105.096703,22.4380093 105.386371,23.2684598 105.459145,23.4679377 L108.873801,23.4679377 C108.823858,23.2712893 108.508505,22.4762072 108.508505,21.6245356" />
|
||||||
|
<path fill="#016cb2" d="M97.1125712,16.6839916 C97.1268406,14.8985937 98.4581713,13.9563789 100.806907,13.9563789 C101.197887,13.9563789 102.734697,14.1501979 103.393941,14.2364968 C103.363975,13.9379874 103.127104,12.4977853 103.028645,11.9035958 C102.54206,11.8130526 101.451882,11.6277221 100.806907,11.6277221 C98.8063436,11.6277221 97.6833454,12.3563116 97.0612016,12.9080589 L96.7729606,11.8597389 L93.3411809,11.8597389 C93.4039661,12.0945853 93.6950609,12.8854232 93.7007687,13.6904084 L93.7007687,23.4648253 L97.1125712,23.4648253 L97.1125712,16.6839916 Z" />
|
||||||
|
<path fill="#016cb2" d="M42.737057,21.4007242 C39.843232,21.4007242 39.0455751,19.7582147 39.0455751,17.6672337 C39.1069333,15.4432674 39.843232,13.9705263 42.737057,13.9705263 C45.3569104,13.9705263 45.8663264,15.6059621 45.8663264,17.6672337 C45.8663264,19.7582147 45.3569104,21.4007242 42.737057,21.4007242 M42.737057,11.6404547 C40.6094963,11.6404547 38.9613859,12.8797642 38.9613859,12.8797642 C38.9613859,12.8797642 38.7787382,12.1936168 38.7031106,11.8767158 L35.271331,11.8767158 C35.3940474,12.2954779 35.6366264,13.1032926 35.6366264,13.9705263 L35.6366264,27.1629474 L39.0455751,27.1629474 L39.0455751,22.5678821 C39.7319311,23.0644547 41.0047574,23.7109895 42.737057,23.7109895 C48.4547872,23.7109895 49.2795559,21.0031832 49.2795559,17.6672337 C49.2795559,14.3638232 48.4547872,11.6404547 42.737057,11.6404547" />
|
||||||
|
<path fill="#016cb2" d="M159.744476,12.251904 L159.744476,14.8776556 C159.078098,14.5211419 158.381753,14.2466829 157.659724,14.0670114 C156.929133,13.8845103 156.202823,13.7939672 155.47794,13.7939672 C154.668867,13.7939672 154.056712,13.8929987 153.63862,14.0896472 C153.231943,14.2806366 153.01933,14.5763166 153.01933,14.9597103 C153.01933,15.5086282 153.908311,15.9500261 155.672003,16.2938072 L155.806135,16.3221019 L156.852078,16.5229945 C158.181982,16.7847208 159.150871,17.2034829 159.763027,17.7792808 C160.382317,18.3678114 160.6834,19.1459166 160.6834,20.1263293 C160.6834,21.3217819 160.215365,22.2187251 159.276442,22.8058408 C158.344653,23.3986156 156.929133,23.6914661 155.045578,23.6914661 C154.212248,23.6914661 153.350379,23.6348766 152.472814,23.5202829 C151.60381,23.3929566 150.711975,23.2217735 149.814433,22.9784387 L149.814433,20.3314661 C150.614944,20.7176893 151.431151,21.0034661 152.261627,21.2043587 C153.08925,21.4094956 153.894041,21.5113566 154.671721,21.5113566 C155.519321,21.5113566 156.165722,21.4024219 156.605219,21.1972851 C157.039007,20.9864893 157.264463,20.6908093 157.264463,20.2932682 C157.264463,19.9141187 157.103219,19.6184387 156.799282,19.4062282 C156.489637,19.1954324 155.74335,18.9902956 154.583251,18.7540345 L153.574408,18.5630451 C152.191707,18.3154661 151.177156,17.9023629 150.545024,17.3492008 C149.911464,16.7875503 149.590404,16.0547166 149.590404,15.1238198 C149.590404,14.0090072 150.071281,13.1530914 151.037317,12.5447545 C152.00906,11.9180261 153.364648,11.6138577 155.115498,11.6138577 C155.900312,11.6138577 156.682273,11.6662029 157.475649,11.768064 C158.253329,11.875584 159.011032,12.0382787 159.744476,12.251904" />
|
||||||
|
<path fill="#016cb2" d="M113.619788,10.9615225 C114.356087,10.9615225 114.865503,10.8681499 115.138047,10.668672 C115.407738,10.4635352 115.546151,10.1070215 115.546151,9.57508042 C115.546151,9.07284884 115.413446,8.71492042 115.155171,8.51544253 C114.884053,8.31737937 114.387479,8.21693305 113.648327,8.21693305 C112.897759,8.21693305 112.394051,8.32303832 112.120079,8.52817516 C111.850388,8.73472674 111.721964,9.10114358 111.721964,9.62742568 C111.721964,10.1381457 111.84468,10.480512 112.101529,10.6757457 C112.369793,10.8681499 112.873501,10.9615225 113.619788,10.9615225 M115.329257,21.6243941 L115.329257,11.8542215 L111.924589,11.8542215 L111.924589,21.6243941 C111.924589,22.4859688 112.245649,23.3461288 112.292738,23.4677962 L115.695979,23.4677962 C115.634621,23.2527562 115.329257,22.4534299 115.329257,21.6243941" />
|
||||||
|
<path fill="#016cb2" d="M88.573219,10.9615225 C89.3123715,10.9615225 89.8146528,10.8681499 90.0914782,10.668672 C90.3597421,10.4635352 90.5052895,10.1070215 90.5052895,9.57508042 C90.5052895,9.07284884 90.362596,8.71492042 90.1071745,8.51544253 C89.8389107,8.31737937 89.3394833,8.21693305 88.6046115,8.21693305 C87.8526166,8.21693305 87.3474814,8.32303832 87.0763637,8.52817516 C86.8095268,8.73472674 86.6753949,9.10114358 86.6753949,9.62742568 C86.6753949,10.1381457 86.8038191,10.480512 87.0620944,10.6757457 C87.3232235,10.8681499 87.8269317,10.9615225 88.573219,10.9615225 M90.2869684,21.6243941 L90.2869684,11.8542215 L86.8780197,11.8542215 L86.8780197,21.6243941 C86.8780197,22.4859688 87.203361,23.3461288 87.2504498,23.4677962 L90.64941,23.4677962 C90.5880518,23.2527562 90.2869684,22.4534299 90.2869684,21.6243941" />
|
||||||
|
<path fill="#016cb2" d="M207.507715,32.8794745 L207.162396,32.8794745 L207.162396,32.3263124 L207.716047,32.3263124 C207.951492,32.3263124 208.244013,32.3659251 208.244013,32.5922829 C208.244013,32.9318198 207.775978,32.8794745 207.507715,32.8794745 M208.540816,32.5922829 C208.540816,32.1310787 208.165532,32.0278029 207.780259,32.0278029 L206.864167,32.0278029 L206.864167,34.1753735 L207.162396,34.1753735 L207.162396,33.1949608 L207.507715,33.1949608 L208.154116,34.1753735 L208.513704,34.1753735 L207.867302,33.1949608 C208.249721,33.1808135 208.540816,33.0237777 208.540816,32.5922829" />
|
||||||
|
<path fill="#016cb2" d="M207.580203,34.7556985 C206.69693,34.7556985 205.914969,34.0398417 205.914969,33.1230922 C205.914969,32.1936101 206.69693,31.4678501 207.580203,31.4678501 C208.474891,31.4678501 209.249717,32.1936101 209.249717,33.1230922 C209.249717,34.0398417 208.474891,34.7556985 207.580203,34.7556985 M207.580203,31.1990501 C206.492878,31.1990501 205.615313,32.0224269 205.615313,33.1230922 C205.615313,34.2110248 206.492878,35.0598669 207.580203,35.0598669 C208.678943,35.0598669 209.552228,34.2110248 209.552228,33.1230922 C209.552228,32.0224269 208.678943,31.1990501 207.580203,31.1990501" />
|
||||||
|
<path fill="#016cb2" d="M166.56694,15.4736842 L166.56694,16.5743495 C170.324061,15.1214147 174.114001,14.2357895 177.75126,13.7123368 C174.399388,13.6260379 170.458193,14.1919326 166.56694,15.4736842" />
|
||||||
|
<path fill="#016cb2" d="M187.106962,16.6217432 C186.220835,15.9851116 185.2919,15.4036547 184.091847,14.9155705 C184.492816,14.8901053 184.908054,14.8264421 185.378943,14.8023916 C186.128084,15.29472 187.1355,16.0770695 187.731959,16.8226358 L187.106962,16.6217432 Z M178.849287,12.04224 C177.926059,11.6970442 176.834454,11.4664421 175.749983,11.3136505 C176.219445,11.2103747 176.678918,11.1212463 177.202603,11.0575832 C177.96316,11.2641347 178.967722,11.6220632 179.926623,12.2091789 L178.849287,12.04224 Z M166.566227,9.67821474 C167.577924,9.64850526 168.735168,9.98379789 169.988018,10.1479074 L167.786256,10.4280253 C167.410972,10.4435874 166.990026,10.4775411 166.566227,10.5185684 L166.566227,11.0108968 C168.16154,10.7152168 169.906682,10.5228126 171.524827,10.5086653 C185.702857,7.14583579 197.447963,10.3120168 197.447963,10.3120168 C194.927995,9.74046316 180.88695,7.83622737 166.566227,13.4286821 L166.566227,14.2775242 C168.69236,13.5630821 170.938357,13.0113347 173.087321,12.7580968 C176.273668,12.3676295 179.235986,12.5416421 181.730269,13.2433516 C192.209683,12.4977853 199.803833,14.73024 199.803833,14.73024 C196.952816,14.2676211 181.653215,12.1794695 166.566227,19.0395284 L166.566227,19.7214316 C170.742866,17.7365558 175.123558,16.5920337 178.857848,16.3472842 C182.643508,16.1449768 186.029626,16.6811621 188.575278,18.1864421 C194.578396,18.0944842 199.15315,18.8669305 201.710219,19.4851705 L201.710219,0.226357895 L166.566227,0.226357895 L166.566227,9.67821474 Z" />
|
||||||
|
<path fill="#016cb2" d="M166.56694,21.1271141 L166.56694,23.2548783 C172.739863,20.2711983 179.032648,18.853632 184.514934,18.3839394 C179.50639,17.5039731 173.086608,18.4108194 166.56694,21.1271141" />
|
||||||
|
<path fill="#016cb2" d="M193.542155,23.6623225 C192.477661,22.1004531 191.129207,20.9205625 189.258495,20.0165457 C189.817854,19.9500531 190.521333,19.9302467 191.046445,19.9061962 C191.233374,20.0434257 191.41174,20.2146088 191.580119,20.4225752 C191.644331,20.5145331 193.729084,22.5559983 194.428282,24.6342467 L193.542155,23.6623225 Z M166.567368,26.0603015 L166.567368,26.944512 C166.991168,26.7040067 167.416395,26.4748194 167.815937,26.2611941 C170.973745,24.5734131 174.128699,23.3977667 177.282226,22.6819099 C180.267375,21.9745415 183.191166,21.7241331 185.863816,21.9603941 C190.916594,22.4116952 194.545291,24.605952 196.293287,28.3946173 C196.308983,28.422912 197.557551,31.2056994 197.677414,33.8300362 L197.070966,32.3275857 C196.91115,31.5777752 196.704244,30.8067436 196.308983,30.116352 C195.014752,27.6150973 192.491931,25.8197962 189.08869,24.767232 C185.997948,23.7967225 181.939743,23.7542804 177.728857,24.5734131 C173.991713,25.277952 170.187503,26.6813709 166.567368,28.4639394 L166.567368,35.062272 L166.918394,35.062272 C169.09019,33.4565457 171.433218,32.2794846 173.868997,31.3188783 C180.253106,28.5884362 186.463128,27.7622299 191.1235,28.9916362 C194.545291,29.9649752 196.781298,31.9739015 197.691683,35.062272 L201.71136,35.062272 L201.71136,19.7647225 C195.960811,19.1139436 180.635524,18.0599646 166.567368,26.0603015 Z" />
|
||||||
|
<path fill="#016cb2" d="M190.447275,31.4454973 C187.397914,30.6419267 183.890507,30.5938257 180.000681,31.3096825 C176.530374,31.9406552 172.893115,33.1120573 169.395697,35.0629794 L196.086524,35.0629794 C194.843663,33.2606046 192.864503,32.1061794 190.447275,31.4454973" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 14 KiB |
6
static/airline-logos/CN.svg
Normal file
|
After Width: | Height: | Size: 78 KiB |
33
static/airline-logos/CO.svg
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95.317001 19.816017">
|
||||||
|
<title>Continental Airlines</title>
|
||||||
|
<desc>Continental Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Continental Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>CO</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/CO</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g fill="#039" transform="translate(-.5 -.092)">
|
||||||
|
<path d="m63.107 14.162c-.852 0-1.105.927-1.107 1.626 0 0 2.172.005 2.17 0 .047-.643-.211-1.626-1.063-1.626m-.027-.476c2.34 0 3.061 1.723 3.111 2.703h-4.193c-.055 1.2.586 2.534 2.045 2.534.969 0 1.473-.653 1.719-1.081l.332.154c-.361.878-1.313 1.917-3.045 1.912-1.52-.004-3.064-1.034-3.064-3.105-.001-2.125 1.71-3.119 3.095-3.117"/>
|
||||||
|
<path d="m51.805 14.063c.545-.019 2.766-.225 2.766-.225l.01.906c.729-.504 1.512-1.049 2.439-.878 1.363.251 1.631 1.37 1.625 2.123v2.571c.006.35.162.818.783.818v.289h-3.533v-.291c.33.002.801-.119.807-.857v-2.504c0-.537-.238-.887-.617-1.035-.572-.228-1.133.105-1.5.479 0 0 .006 2.781.006 3.051 0 .345.09.868.771.868v.291h-3.492v-.29c.393 0 .775-.194.777-.891 0 0-.002-2.886 0-3.253 0-.641-.148-.91-.842-.906"/>
|
||||||
|
<path d="m33.404 19.371c-.93.018-1.055-1.023-1.333-1.657l-2.224-5.937-1.458-.002-2.483 6.382c-.186.407-.378.866-.806 1.12-.102.156-.545.111-.545.111l.005.27 2.811.007-.007-.267c-.269.002-.537-.045-.698-.318-.187-.717.208-1.385.447-2.029h2.511l.504 1.387c.04.235.118.519-.059.705-.196.235-.475.211-.732.266v.24l3.976.013m-5.959-3.278 1.041-2.724.977 2.724z"/>
|
||||||
|
<path d="m37.67 19.387s.361.016.462-.094c.284-.137.36-.419.396-.691l.004-3.813c-.188-.535-.544-.519-.842-.558.024-.078.009-.17.009-.246l2.746-.137-.007 1.561c.537-.672 1.119-1.903 2.203-1.561l.393.153c-.101.642-.26 1.321-.396 1.974-.495-.32-1.102-.798-1.711-.388-.215.158-.379.367-.49.591v2.393c.02.328.143.604.38.722.211.103.46.089.46.089l-.014.278-3.599-.011"/>
|
||||||
|
<path d="m33.422 19.371c.571 0 .746-.327.746-1.113v-3.076c0-.133.026-.535-.201-.746-.162-.146-.417-.189-.637-.196v-.271l2.753-.128v4.428c0 1.037.44 1.103.819 1.103v.291h-3.581"/>
|
||||||
|
<path d="m43.021 19.376c.352-.015.896-.088.896-.942v-5.673c0-.554-.165-.875-.896-.823v-.289l2.875-.229s-.009 5.655 0 7.001c.005.809.374.961.855.959-.004.002 0 .291 0 .291h-3.73c0-.002-.004-.298 0-.295"/>
|
||||||
|
<path d="m47.466 19.367c.566 0 .809-.318.809-1.104-.005-1.32 0-3.055 0-3.055-.005-.127.02-.532-.204-.734-.168-.151-.421-.197-.641-.197v-.267l2.75-.13s.007 3.562 0 4.394c0 1.031.45 1.095.817 1.095v.293h-3.532"/>
|
||||||
|
<path d="m49.167 13.201c.598 0 1.081-.469 1.081-1.047 0-.574-.483-1.041-1.081-1.041-.59 0-1.073.467-1.073 1.041-.001.578.483 1.047 1.073 1.047"/>
|
||||||
|
<path d="m35.091 13.201c.596 0 1.079-.469 1.079-1.047 0-.574-.483-1.041-1.079-1.041-.589 0-1.075.467-1.075 1.041.001.578.486 1.047 1.075 1.047"/>
|
||||||
|
<path d="m67.256 17.615c.445-.149.289.428.529.596.488.717 1.234 1.362 2.15 1.16.207-.092.453-.225.561-.45.113-.315.018-.669-.207-.887-1-.767-2.852-.646-2.994-2.291-.051-.632.205-1.169.688-1.55.881-.676 2.307-.506 3.289-.176.314.09.395-.345.691-.257l.068 1.81-.26.017c-.242-.618-.85-1.25-1.488-1.442-.316-.088-.732-.059-1.018.076-.191.118-.369.313-.365.555-.014.271.137.504.371.646 1.145.475 2.996.721 3.051 2.383.031.615-.236 1.129-.703 1.514-.918.846-2.494.557-3.555.216-.178-.024-.355.057-.426.227v.036l-.246.02c-.074-.714-.119-1.457-.136-2.203"/>
|
||||||
|
<path d="m4.742.612c1.377.002 1.742.427 2.26.427.372 0 .448-.293.481-.402l.352-.005v2.895h-.421c-.09-.888-.704-2.304-2.366-2.302-1.386.002-2.3 1.342-2.3 3.243.007 2.143 1.03 3.48 2.636 3.48.956 0 1.861-.633 2.372-1.265l.378.19c-.66 1.21-1.908 1.993-3.612 1.993-2.46.002-4.022-1.812-4.022-4.188 0-2.015 1.482-4.073 4.242-4.066m7.537 2.569c-1.025.002-1.431 1.116-1.436 2.563-.002 1.605.437 2.571 1.44 2.573.967.002 1.424-1.05 1.424-2.573.001-1.479-.406-2.565-1.428-2.563m0-.534c2.388-.01 3.583 1.572 3.59 3.095 0 1.755-1.538 3.124-3.563 3.124-2.199-.004-3.57-1.399-3.563-3.122.003-1.563 1.374-3.09 3.536-3.097m4.234.385c.551-.021 2.764-.225 2.764-.225l.021.908c.729-.51 1.505-1.05 2.437-.884 1.363.253 1.626 1.372 1.626 2.122v2.578c0 .344.163.814.783.816v.287h-3.534v-.291c.327.002.8-.115.8-.857.005-.416 0-1.961 0-2.503.005-.539-.232-.884-.611-1.033-.578-.225-1.131.105-1.498.479 0 0 .002 2.782.002 3.05 0 .348.095.867.775.867v.291h-3.494v-.292c.388 0 .779-.192.779-.89v-3.25c.003-.642-.152-.915-.849-.908zm8.028.289c.932-.634 1.893-1.628 2.547-2.417h.21v2.043h1.736v.64h-1.743s-.004 2.009 0 3.245c.003.735.308 1.103.858 1.103.264-.002.533-.116.723-.311l.301.13c-.459.757-1.153 1.103-1.989 1.106-1.28.002-1.825-.845-1.822-1.776.004-.793.004-3.497.004-3.497h-.825zm20.834-.2c-.851 0-1.104.927-1.108 1.626h2.17c.045-.644-.215-1.626-1.062-1.626m-.032-.474c2.343 0 3.06 1.716 3.115 2.701h-4.197c-.054 1.199.587 2.532 2.045 2.532.972 0 1.476-.654 1.72-1.081l.334.157c-.365.878-1.314 1.915-3.046 1.91-1.521-.004-3.062-1.032-3.062-3.107 0-2.125 1.709-3.118 3.091-3.112m20.288 4.737-.008-1.835c-1.162.394-1.566.787-1.564 1.667 0 .379.207.748.678.75.392.001.759-.364.894-.582m-1.881 1.493c-.955 0-1.725-.643-1.725-1.541 0-1.722 2.598-2.145 3.605-2.333 0-1.145-.842-1.33-1.387-1.326-.852 0-1.293.56-1.447.821l-.318-.153c.24-.659.926-1.699 2.566-1.705 1.842 0 2.543.971 2.545 2.271 0 0-.002 2.334 0 2.727 0 .273.113.355.229.355.193-.002.34-.263.396-.415l.328.147c-.201.527-.766 1.153-1.523 1.151-.779 0-1.129-.519-1.281-.871-.306.262-1.049.872-1.988.872m5.215-.536c.352-.01.891-.087.891-.94.006-.236.006-4.96 0-5.667 0-.559-.164-.885-.896-.828v-.291l2.885-.232s-.012 5.657 0 7.006c.002.807.367.956.854.956v.289h-3.73c-.004 0-.01-.296-.004-.293m-39.091.007c.579-.002.814-.322.814-1.099v-3.057c0-.131.021-.534-.203-.739-.166-.149-.419-.192-.639-.195v-.27l2.752-.126s.005 3.556 0 4.394c0 1.03.446 1.089.815 1.089v.291h-3.54zm1.712-6.165c.589 0 1.072-.47 1.072-1.045 0-.578-.483-1.046-1.072-1.046-.596 0-1.08.468-1.08 1.046 0 .575.485 1.045 1.08 1.045m2.544.847c.549-.021 2.764-.225 2.764-.225l.011.911c.732-.51 1.517-1.053 2.441-.884 1.368.251 1.63 1.372 1.63 2.122 0 0-.004 2.291 0 2.575 0 .344.159.814.782.816-.003-.002 0 .289 0 .289h-3.532v-.293c.325.002.798-.115.798-.858.002-.416 0-1.96 0-2.502.002-.541-.235-.882-.614-1.031-.575-.225-1.133.103-1.493.477v3.05c0 .349.089.867.774.867l-.004.292h-3.492v-.293c.395 0 .784-.192.784-.89v-3.25c.005-.639-.152-.913-.849-.908zm14.836 0c.547-.021 2.766-.225 2.766-.225l.012.911c.732-.51 1.516-1.053 2.439-.884 1.369.251 1.629 1.372 1.625 2.122v2.575c.004.344.162.814.783.816v.289h-3.531v-.293c.326.002.797-.115.799-.858v-2.503c0-.541-.234-.882-.609-1.031-.576-.225-1.135.103-1.496.477v3.05c0 .349.092.867.771.867v.292h-3.493v-.292c.395 0 .781-.192.786-.89 0 0-.005-2.882 0-3.25 0-.639-.157-.913-.852-.908zm7.995.291c.934-.631 1.895-1.624 2.549-2.415h.211v2.043h1.73v.642h-1.742s-.004 2.006 0 3.245c.008.737.307 1.103.859 1.103.264-.002.531-.114.725-.314l.299.132c-.461.757-1.154 1.104-1.988 1.104-1.283.004-1.818-.842-1.818-1.773.006-.793.006-3.497.006-3.497h-.828v-.27z"/>
|
||||||
|
<path d="m76.643 2.586c1.701-.075 2.602.888 2.896 2.071.588 2.348-.723 4.644-2.896 6.122l.004-.837c.242-.131.902-.685 1.086-.976-.277-.099-.783-.168-1.09-.164v-1.058c.52-.032 1.316.065 1.807.179.209-.326.324-.599.404-.967-.531-.096-1.639-.072-2.211.011v-.739c.59-.165 1.898-.289 2.402-.235.041-.229.031-.526-.047-.792-.506-.04-1.783.114-2.355.287v-.604c.529-.224 1.73-.436 2.234-.47-.043-.213-.18-.463-.332-.603-.475.035-1.354.222-1.902.401v-.564c.324-.149 1.023-.32 1.387-.348-.197-.133-.832-.319-1.383-.278"/>
|
||||||
|
<path d="m78.08 2.341c3.928-.727 5.707 1.013 4.639 5.256-.986 3.488-3.074 5.834-6.072 7.631v-1.838c.172.145.396.432.555.682.33-.165.779-.481 1.012-.734-.238-.345-1.117-1.211-1.566-1.48-.004.004-.004-.226 0-.239.404-.216 1.115-.743 1.426-1.149.504.221 1.5 1.037 1.723 1.333.357-.358.779-.954.963-1.348-.402-.348-1.178-.798-1.746-1 .311-.326.629-.867.771-1.25.49.112 1.396.376 1.816.621.207-.367.369-.857.475-1.383-.424-.17-1.299-.328-1.863-.387.076-.236.133-.833.115-1.078.645-.014 1.533.078 2.01.19.064-.284.09-.619.037-.965-.557-.083-1.482-.136-2.107-.09-.008-.259-.092-.646-.189-.828.498-.083 1.512-.092 2.094-.025-.09-.278-.199-.562-.457-.771-.406-.037-1.34.007-1.918.11-.109-.21-.295-.431-.492-.563.377-.113 1.146-.192 1.57-.168-.346-.177-.994-.341-1.998-.21-.372-.239-.798-.317-.798-.317"/>
|
||||||
|
<path d="m76.648 2.103c2.734-.867 8.176-.374 11.338 2.473 2.568 2.311 4.324 5.243 4.539 9.275.133 2.457-.5 4.643-1.104 5.838h4.396v-19.164h-19.17"/>
|
||||||
|
<path d="m84.861 4.722c-.357-.158-.91-.321-1.342-.344.082.268.119.598.129.945.438.059 1.197.268 1.578.436.146.444.154.834.15 1.272-.424-.243-1.211-.557-1.773-.659-.016.391-.104.952-.242 1.376.578.186 1.432.619 1.822.899-.072.583-.275 1.238-.563 1.786-.432-.381-1.289-.917-1.846-1.153-.158.512-.633 1.486-.959 1.881.486.291 1.291 1.009 1.605 1.397-.365.643-.779 1.154-1.248 1.545-.244-.449-.871-1.271-1.314-1.621-.354.586-1.197 1.447-1.771 1.81.389.386.932 1.138 1.17 1.572-.328.336-.934.764-1.432 1.021-.186-.592-.484-1.214-.818-1.725-.324.334-.85.611-1.365.88v2.683c3.498-1.27 8.043-4.9 9.123-9.816.523-2.394-.002-3.841-.502-4.631-.811-1.292-2.307-1.548-2.979-1.647.285.151.688.514.891.832 1.104.202 1.499.873 1.686 1.261"/>
|
||||||
|
<path d="m76.643 19.676v-.224c1.107-.339 2.406-1.044 2.953-1.522.195.461.389 1.223.445 1.659.496-.305 1.096-.71 1.504-1.194-.119-.39-.365-.92-.613-1.299.717-.482 1.643-1.369 2.189-2.056.221.345.488.944.627 1.401.539-.447 1.207-1.254 1.533-1.806-.203-.376-.545-.823-.908-1.163.539-.647 1.117-1.771 1.289-2.35.309.175.842.77 1.039 1.07.381-.7.615-1.438.738-2.242-.244-.287-.676-.635-1.074-.814.129-.454.264-1.217.232-1.716.342.147.814.494 1.045.748.061-.512.008-1.011-.125-1.514-.219-.224-.709-.515-1.006-.6-.031-.333-.166-.75-.277-.971.246.052.732.35.918.51-.186-.458-.707-.908-1.104-1.06-.119-.212-.348-.564-.563-.766 2.217.748 2.479 2.321 2.643 2.945.367 2.377-.129 4.494-1.189 6.545-1.344 2.596-2.998 4.094-5.861 6.418"/>
|
||||||
|
<path d="m82.119 19.686c1.018-.675 1.713-1.285 2.359-2.107.209.469.318 1.361.318 1.361.471-.398 1.447-1.457 1.775-2.043-.098-.323-.322-.83-.504-1.062.641-.638 1.279-1.803 1.508-2.577.264.26.527.727.627 1.03.408-.759.791-1.679.967-2.698-.141-.299-.373-.631-.631-.888.184-.527.287-1.284.266-1.903.195.149.543.582.717.89-.006-1.062-.113-1.746-.75-2.314-.01-.316-.107-.841-.303-1.252.939.796 1.766 1.853 1.533 4.22-.359 3.568-2.459 6.974-4.941 9.343"/>
|
||||||
|
<path d="m88.955 19.689c.521-.479.787-.955 1.078-1.572.123.3.182.662.199 1.063.156-.451.992-1.828.975-3.759.287-.944.455-1.971.504-2.772.287 1.385.287 4.451-1.064 7.041"/>
|
||||||
|
<path d="m90.797 11.333c.063-.371-.021-.972-.289-1.369.014-.282-.053-.975-.111-1.28.555.759 1.025 1.608.84 3.6-.311 2.704-1.125 5.421-3.195 7.405h-.803c.018-.229-.018-.834-.141-1.236.771-.795 1.605-2.109 1.92-3.068.219.439.33.854.391 1.385.535-.973.951-2.384 1.07-3.347-.076-.3-.217-.6-.367-.821.188-.475.35-1.375.354-1.867.13.133.266.433.331.598"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 11 KiB |
6
static/airline-logos/CV.svg
Normal file
|
After Width: | Height: | Size: 12 KiB |
14
static/airline-logos/CX.svg
Normal file
|
After Width: | Height: | Size: 51 KiB |
84
static/airline-logos/CZ.svg
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 579.1 128.2">
|
||||||
|
<title>China Southern Airlines logo</title>
|
||||||
|
<desc>中国南方航空</desc>
|
||||||
|
<g>
|
||||||
|
<polygon fill="#0093D0" points="0,128.1 128.2,128.1 179.6,0 179.6,0 128.2,0"/>
|
||||||
|
<path fill="#FFFFFF" d="M119.5,49.3c-2-1-3.3-3-3.3-5.3c0-3.2,2.6-5.9,5.9-5.9c3.2,0,5.9,2.6,5.9,5.9
|
||||||
|
c0,2.3-1.4,4.4-3.4,5.3V51c1.8,0.2,4,0.9,5.4,1.6c0.6-0.1,1.4-0.1,2.2-0.1c7.4,0,12.6,4.9,12.6,11.6c0,4.2-3.7,8-7.9,8
|
||||||
|
c-4.2,0-8-4.1-7.2-8.3c0,0-0.4,1.4-0.4,3.2c0,1.1,0,21.2,0,21.2c-0.2,2.4-3.4,15.7-18.4,15.7S92.7,90.6,92.5,88.2
|
||||||
|
c0,0,0-20.1,0-21.2c0-1.7-0.5-3.2-0.5-3.2c0.8,4-3.1,8.3-7.2,8.3c-4.2,0-7.9-3.8-7.9-8c0-6.7,5.2-11.6,12.6-11.6
|
||||||
|
c0.8,0,1.6,0,2.2,0.1c1.3-0.7,3.6-1.5,5.4-1.6v-1.7c-2-1-3.3-3-3.3-5.3c0-3.2,2.6-5.9,5.9-5.9c3.3,0,5.9,2.6,5.9,5.9
|
||||||
|
c0,2.3-1.4,4.4-3.4,5.3v2.2c0.5,0.2,1,0.3,1.5,0.6c0.9-2,2.7-3.5,4.8-4.2v-1.8c-2-0.9-3.4-3-3.4-5.3c0-3.2,2.6-5.9,5.9-5.9
|
||||||
|
c3.2,0,5.9,2.6,5.9,5.9c0,2.3-1.4,4.4-3.3,5.3v1.8c2.1,0.7,3.9,2.2,4.8,4.2c0.5-0.2,1-0.4,1.5-0.6L119.5,49.3L119.5,49.3
|
||||||
|
L119.5,49.3z"/>
|
||||||
|
<path fill="#ED1B2F" d="M142.3,64.2c0-5.5-3.7-9.9-11.4-9.9c-5.1,0-11.1,4.3-11.1,15.2c0,8.5,0,16.2,0,16.2
|
||||||
|
c2.2-1.5,5.3-2.8,6.9-2.8c0-4.8,0-14.3,0-15.1c0-5.8,4.2-7.5,6.1-7.5c-1.1,1-1.8,2.2-1.8,3.9c0,3.1,2.5,5.6,5.6,5.6
|
||||||
|
C139.8,69.8,142.2,67.5,142.3,64.2L142.3,64.2z"/>
|
||||||
|
<path fill="#ED1B2F" d="M79,64.2c0-5.5,3.7-9.9,11.4-9.9c5.1,0,11.2,4.3,11.2,15.2c0,8.5,0,16.2,0,16.2
|
||||||
|
c-2.2-1.5-5.3-2.8-6.9-2.8c0-4.8,0-14.3,0-15.1c0-5.8-4.2-7.5-6.1-7.5c1.1,1,1.8,2.2,1.8,3.9c0,3.1-2.6,5.6-5.6,5.6
|
||||||
|
C81.5,69.8,79.1,67.5,79,64.2L79,64.2z"/>
|
||||||
|
<path fill="#ED1B2F" d="M110.7,101.6c12.8,0,15.7-10.7,16.1-13.5c0,0,0-3,0-3.6c-4,1-7.5,3.1-9.9,6.3
|
||||||
|
c-0.8-3.7-3.2-6.8-6.2-8.9c-3,2-5.3,5.2-6.2,8.9c-2.4-3.2-5.9-5.3-9.9-6.3c0,0.6,0,3.6,0,3.6C94.9,90.9,97.8,101.6,110.7,101.6
|
||||||
|
L110.7,101.6z"/>
|
||||||
|
<path fill="#ED1B2F" d="M111.6,44.9v4.5c2.2,0.3,4.1,1.8,4.8,3.6c-2.6,1.7-4.7,4.3-5.7,7.5c-1-3.2-3.1-5.8-5.7-7.5
|
||||||
|
c0.8-1.8,2.6-3.3,4.8-3.6v-4.5c-1.8-0.4-3.2-2.1-3.2-4c0-2.3,1.9-4.1,4.1-4.1c2.3,0,4.1,1.8,4.1,4.1
|
||||||
|
C114.8,42.8,113.4,44.5,111.6,44.9L111.6,44.9L111.6,44.9z"/>
|
||||||
|
<path fill="#ED1B2F" d="M100.3,48.1v4.7c5.6,1.1,9.6,7,9.6,12.5c0,5.8,0,15.2,0,15.2c-2.6,1.5-5.2,4.6-6,7.1
|
||||||
|
c-0.2-0.2-0.4-0.5-0.7-0.7c0,0,0-11.1,0-19.6c0-5.9-3.2-11.9-8.8-13.8c0,0,1.8-0.8,4.1-0.8V48c-1.8-0.4-3.2-2-3.2-4
|
||||||
|
c0-2.3,1.8-4.1,4.1-4.1s4.1,1.8,4.1,4.1C103.5,46,102.1,47.6,100.3,48.1L100.3,48.1z"/>
|
||||||
|
<path fill="#ED1B2F" d="M122.9,48.1v4.6c2.3,0,4.1,0.8,4.1,0.8c-5.7,2-8.8,8-8.8,13.8c0,8.5,0,19.6,0,19.6
|
||||||
|
c-0.3,0.3-0.5,0.5-0.7,0.7c-0.8-2.6-3.4-5.7-6-7.1c0,0,0-9.4,0-15.2c0-5.5,4-11.4,9.6-12.5V48c-1.8-0.4-3.2-2-3.2-4
|
||||||
|
c0-2.3,1.8-4.1,4.1-4.1s4.1,1.8,4.1,4.1C126.2,46,124.8,47.7,122.9,48.1L122.9,48.1L122.9,48.1z"/>
|
||||||
|
<path fill="#002052" d="M239.3,27.8h16V43h-16V27.8L239.3,27.8z M216.9,52.2V49H232v20.5h7.4V49h15.9v2.9h7.4V21.5
|
||||||
|
h-23.4c0,0,0-12,0-12.1c0.1,0-7.2,0-7.3,0v12.1h-22.3v30.7H216.9L216.9,52.2z M232,43h-15.1V27.8H232V43z"/>
|
||||||
|
<g transform="matrix(2.1710517,0,0,-2.1710517,432.0481,942.03671)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5h3.5v-4.8h11.5v-3h-16l-0.1-3.3h13c-0.2-3.2-0.4-6.9-0.6-9.9
|
||||||
|
c-0.2-2.7-0.5-4-1.4-4.8c-0.8-0.7-3-0.9-5.7-1.3c-0.2,1.3-0.8,2.4-1.4,3.6c3.2,0.2,4.9-0.1,5.1,1.7c0.2,1.7,0.4,4.4,0.4,7.7h-9.6
|
||||||
|
c-0.7-9-4.4-11.1-7.8-13.3c-0.8,0.9-1.5,1.8-2.6,2.6c7.4,3.3,7.3,8.5,7.4,17h-7v3h11.4C-4.8,424.6-4.8,429.5-4.8,429.5"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(2.1710517,0,0,-2.1710517,566.88083,964.35295)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5l1.7,2.5c3.3-1.7,7.1-3.5,9.2-4.9c0,0-1.3-1.6-2.2-2.7
|
||||||
|
C1.5,426.2-2.7,428.3-4.8,429.5 M2.3,424.2v-2.9h-7.5v-4.8H5.6v-3h-25v3h10.5v4.8h-7.2v2.9H2.3z M-17.9,424.1
|
||||||
|
c-0.5,0.8-1.3,1.9-1.9,2.8c2.4,0.9,6.7,3.1,8.9,5.3c0,0,2.1-2.2,2.2-2.3C-10,428.5-15.1,425.4-17.9,424.1 M-8.8,439.6h3.5v-3.1H5
|
||||||
|
v-6.3H1.7v3.5h-17.1v-3.6h-3.3v6.4h9.8C-8.8,436.5-8.8,439.6-8.8,439.6"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(2.1710517,0,0,-2.1710517,319.39982,971.96335)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5H-3v2.5h-5v3h5.9v2.4h-14.4V435h5.6v-3h-4.9v-2.4h4.9v-4.2H-17v-2.6h15.3v2.6h-6.2
|
||||||
|
v4.2H-5l-2-1.2c0.8-0.8,1.7-2,2.3-2.8l2,1.3C-3.4,427.7-4.4,428.9-4.8,429.5 M-18.3,416.1v2.3h17.7v-2.2h3.2v25.9h-24v-25.9
|
||||||
|
C-21.4,416.1-18.3,416.1-18.3,416.1z M-0.5,420.9h-17.8v18.4h17.7L-0.5,420.9L-0.5,420.9z"/>
|
||||||
|
</g>
|
||||||
|
<g id="g4801" transform="matrix(2.1710517,0,0,-2.1710517,379.58788,965.74938)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5c-1-1.5-1.5-2.5-2.4-3.7h-2.7l1.2,0.6c-0.5,0.9-1.8,2.5-2.3,3.1L-4.8,429.5z
|
||||||
|
M-4.4,429.5h4.6v-11.8c0-1.1-0.5-1.5-1.9-1.5H-3c0.6-1.3,1.1-2.1,1.5-3.3c2.3,0.3,3.2,0.7,3.8,1.1c0.7,0.5,1.1,0.9,1.1,2.7V432
|
||||||
|
h-9.7v2.2H5.5v2.8H-6.3v3.3h-3.3V437h-12v-2.8h12V432h-9.6v-19h3.1v16.4h4.9l-2.3-1c0.6-0.8,1.3-1.9,1.8-2.7h-2.9v-2.4h5.1v-2.1
|
||||||
|
h-5.9v-2.6h5.9v-4.9h3v4.9h6v2.6h-6v2.1h5.4v2.4h-3.1c0.5,0.6,1.8,2.1,2.1,2.5L-4.4,429.5z"/>
|
||||||
|
</g>
|
||||||
|
<g id="g4805" transform="matrix(2.1710517,0,0,-2.1710517,487.00111,958.06276)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5l-2.4-0.4c0.4-1.6,0.6-2.9,0.8-3.9l2.3,0.5C-4.2,426.6-4.6,428.6-4.8,429.5
|
||||||
|
M-3.3,424.4h-4.5v5.9h4.5V424.4z M-1.1,411.2c1-0.5,1.9-1.1,2.7-1.6c2,2.2,3.6,5.3,3.5,13.9v0.8h2.5l-0.2-11.2
|
||||||
|
c0-2,0.3-2.7,2.2-2.8h2.5c0.9,0,1.5,1.3,2.3,4.1c-0.8,0.4-1.9,1-2.5,1.6c-0.2-1.2-0.4-2.4-0.7-2.7c-0.2-0.2-0.4-0.1-0.5-0.1
|
||||||
|
c-0.2,0-0.3,0.2-0.2,0.6c0,3,0.3,13.1,0.3,13.1H2.3v-6C2.3,416.4,1.1,412.9-1.1,411.2 M-4.9,420.9l-2.5-0.3
|
||||||
|
c0.3-1.5,0.6-3.7,0.8-4.8l2.5,0.6C-4.2,417.6-4.7,420-4.9,420.9 M-12.6,424.4v-2.8h2.1v-0.8c-0.1-3.9-0.8-7-2.2-9.1
|
||||||
|
c0.7-0.6,1.7-1.5,2.5-2.3c1.7,2.5,2.4,5.3,2.4,12.2h4.5v-7.5c0-0.9-0.5-0.9-3.1-0.9c0.6-1,0.8-1.9,1-3.1c3.7,0.4,4.8,1.2,4.8,2.6
|
||||||
|
v20h-3.8c0.2,0.9,0.6,2.6,0.8,3.3c-0.6,0.2-2.7,0.5-3,0.6c-0.1-0.9-0.3-2.5-0.6-3.9h-3.3v-8.3C-10.5,424.4-12.6,424.4-12.6,424.4z
|
||||||
|
M8.3,432.2v4.6H5v-4.6H0.2v-2.8h13.4v2.8C13.5,432.2,8.3,432.2,8.3,432.2z"/>
|
||||||
|
</g>
|
||||||
|
<g id="g4809" transform="matrix(2.1710517,0,0,-2.1710517,588.10069,1046.7805)">
|
||||||
|
<path fill="#002052" d="M-4.8,429.5v15.8h-1.4v-11.2l-10.1,11.2h-0.6v-15.8h1.5v11l10.1-11H-4.8z M-18.2,429.5l-4,7.8
|
||||||
|
c1.7,0.5,3.4,1.1,3.4,4c0,3-2.6,4-4.7,4H-29v-15.7h2.4v7.6h2.1l3.9-7.6C-20.7,429.5-18.2,429.5-18.2,429.5z M-24.1,438.3h-2.6v5.4
|
||||||
|
h2.6c1.5,0,2.7-1.2,2.7-2.7S-22.6,438.3-24.1,438.3 M-38.7,437.1h7.8v1.4h-7.8v5.2h7.8v1.4H-41v-15.6h10.1v1.5h-7.8V437.1z
|
||||||
|
M-45.4,429.5h2.3v15.8h-2.3v-6.9h-7.5v6.9h-2.4v-15.8h2.4v7.5h7.5C-45.4,436.9-45.4,429.5-45.4,429.5z M-60.9,443.7h4.7v1.4
|
||||||
|
h-11.9v-1.4h4.8v-14.2h2.4C-60.9,429.5-60.9,443.7-60.9,443.7z M-69.1,435v10.3h-1.4v-10.5c0-2.3-2-3.9-3.8-3.9
|
||||||
|
c-2.1,0-4.2,1.5-4.2,3.9v10.5h-2.3v-10.4c0-2.8,2.4-5.5,5.9-5.5C-70.8,429.5-69.1,432.7-69.1,435 M-82.4,437.5
|
||||||
|
c0,4.5-3.6,8.1-8,8.1s-8-3.6-8-8.1s3.6-8.1,8-8.1S-82.4,433-82.4,437.5 M-84.9,437.4c0-3.7-2.5-6.7-5.5-6.7s-5.5,3-5.5,6.7
|
||||||
|
c0,3.7,2.5,6.7,5.5,6.7S-84.9,441.1-84.9,437.4 M-100,443.1v1.9c-9.2,2.6-9.9-4.9-6.9-6.9c1.2-0.8,3.2-2.1,4.4-2.9
|
||||||
|
c2.8-1.8-0.4-6.6-5.8-3v-2.1c8.6-3,11.2,4.1,7.3,7.1c-1.5,1.1-2.6,1.9-4,2.7C-107.8,441.6-106.4,445.6-100,443.1 M-119,429.5h2.7
|
||||||
|
l-4.8,15.9h-2.5l-4.8-15.9h1.9l1.4,4.9h4.7L-119,429.5L-119,429.5z M-120.8,435.8h-4l2,6.8L-120.8,435.8L-120.8,435.8z
|
||||||
|
M-129.9,429.5h0.6v15.7h-1.4V434l-10.1,11.2h-0.6v-15.7h1.5v11C-140,440.5-129.9,429.5-129.9,429.5z M-146.4,429.5h2.4v15.8h-2.4
|
||||||
|
V429.5z M-151.2,429.5h2.3v15.8h-2.3v-6.8h-7.5v6.8h-2.3v-15.8h2.3v7.4h7.5C-151.2,437-151.2,429.5-151.2,429.5z M-167.8,429.3
|
||||||
|
c2.1,0,3.8,0.4,5.1,0.7v1.8c-1.4-0.7-2.5-1.1-4-1.1c-8.8,0-8.1,13.3-0.9,13.3c2.8,0,4-0.5,4.9-0.8v1.7c-1.3,0.3-2.8,0.5-5.1,0.5
|
||||||
|
C-179,445.5-178.3,429.3-167.8,429.3"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.4 KiB |
17
static/airline-logos/D7.svg
Normal file
|
After Width: | Height: | Size: 16 KiB |
71
static/airline-logos/D8.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
22
static/airline-logos/DD.svg
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="81.9">
|
||||||
|
<title>Nok Air logo</title>
|
||||||
|
<g>
|
||||||
|
<path d="m1.05934,40.64647c0,-21.86011 17.72685,-39.59057 39.59041,-39.59057c21.86011,0 39.59041,17.73046 39.59041,39.59057c0,21.86668 -17.7303,39.59025 -39.59041,39.59025c-21.86356,0 -39.59041,-17.72358 -39.59041,-39.59025" id="path478" fill-rule="nonzero" fill="#ffffff"/>
|
||||||
|
<path d="m40.64975,2.11868c-21.25137,0 -38.5309,17.28315 -38.5309,38.52778c0,21.24464 17.27953,38.52746 38.5309,38.52746c21.2379,0 38.52418,-17.28283 38.52418,-38.52746c0,-21.24463 -17.28627,-38.52778 -38.52418,-38.52778zm0,79.17721c-22.41827,0 -40.64975,-18.23132 -40.64975,-40.64943c0,-22.40858 18.23148,-40.64647 40.64975,-40.64647c22.41499,0 40.64301,18.23788 40.64301,40.64647c0,22.41811 -18.22803,40.64943 -40.64301,40.64943" id="path482" fill-rule="nonzero" fill="#231f20"/>
|
||||||
|
<path d="m31.00089,35.58475c-1.91358,0.02036 -4.97731,0.32646 -6.52092,0.37014c-1.55034,0.04697 -2.72414,-1.38235 -2.22641,-2.84516c0.50775,-1.46314 2.21294,-6.33963 7.9302,-11.76097c6.28905,-5.96588 12.17775,-7.7315 13.13955,-7.98374c0.97543,-0.25584 2.35416,0.06733 3.33961,0.84734c7.71492,6.16786 6.5513,12.1206 11.75736,17.04438c3.61533,3.41663 1.68483,8.28326 -1.26461,10.48602c-4.35511,3.26227 -18.45317,8.88198 -22.42517,9.67218c-2.99312,0.59183 -5.05811,0.07751 -5.5693,-1.56397c-0.34978,-1.16 0.89463,-5.31691 1.21403,-7.95024c0.31283,-2.51213 0.56161,-5.89559 0.62565,-6.31598" id="path486" fill-rule="nonzero" fill="#231f20"/>
|
||||||
|
<path d="m45.1832,42.02192c1.24096,-0.82731 2.27337,-1.14358 2.2599,-1.72194c-0.01347,-0.58197 -1.23767,-2.89902 -4.16019,-2.09175c-2.92234,0.80366 -5.06483,2.15908 -6.49398,4.07939c0,0 0.86425,-1.79584 2.01785,-2.91249c1.15343,-1.10975 1.52686,-1.34195 1.52686,-1.34195c0,0 -2.05152,-0.9416 -3.71287,0.2322c-1.65461,1.1669 -2.6064,2.40441 -3.03007,4.93691c-0.42039,2.5256 0.2051,3.55128 0.80366,3.69284c0.59527,0.13761 2.07845,-0.47425 2.84861,-0.85785c0.77345,-0.37309 6.70599,-3.18147 7.94022,-4.01535" id="path490" fill-rule="evenodd" fill="#ea2227"/>
|
||||||
|
<path d="m32.25203,35.50067c0,0 -0.05714,2.88227 -0.65915,6.3058c-0.59856,3.43371 -1.94724,7.56696 -0.87099,8.25994c1.85627,1.19712 6.63193,-0.48081 12.8571,-3.13122c6.23847,-2.65336 11.65309,-4.63411 13.5532,-6.99188c1.46298,-1.81259 2.16581,-3.72272 1.48318,-5.95603c-0.49773,-1.6244 -3.19838,-3.61861 -3.83734,-4.69486c-0.63895,-1.07264 -4.80571,-9.662 -6.93129,-11.72025c-2.12213,-2.04807 -2.7509,-3.25537 -5.21952,-2.4146c-2.45499,0.84406 -8.48508,3.7664 -12.53426,8.2698c-4.04573,4.49288 -5.45156,7.17351 -6.56805,10.27418c-0.18835,0.5245 0.68263,1.34195 2.42822,1.07954c1.75216,-0.2657 10.16318,-0.65915 14.82454,0.14122c4.65447,0.81384 12.02979,1.3991 13.86586,0.93832c1.8162,-0.46407 2.6335,-0.83387 1.50666,0.27916c-1.71849,1.6983 -4.21044,4.07611 -13.47586,8.6534c-1.96728,0.9751 -8.83814,4.47942 -10.16662,3.29215c-0.99547,-0.88774 -0.13778,-3.07375 0.48426,-6.91437c0.47425,-2.92596 0.72993,-5.68705 0.72993,-5.68705l-1.46971,0.01675" id="path494" fill-rule="evenodd" fill="#ffcc08"/>
|
||||||
|
<path d="m41.8807,24.0159c0.20855,-0.40364 1.11304,-1.71176 1.9236,-1.90685c0.82386,-0.18852 1.5638,0.26898 0.84077,0.85752c-0.72976,0.58526 -1.33177,0.66934 -1.76563,0.94489c-0.43385,0.27916 -1.21074,0.51136 -0.99874,0.10444" id="path498" fill-rule="evenodd" fill="#231f20"/>
|
||||||
|
<path d="m47.40615,59.37864c0,0.81384 -0.87444,2.52922 -4.04918,4.59732c-1.04916,0.66933 -3.53125,0.73666 -6.00315,0.73666l-0.42696,-0.06043c-0.76343,-0.4171 -1.14358,-0.97542 -1.14358,-1.67826c0,-0.34977 0.13121,-0.88117 0.38015,-1.57743c0.24878,-0.71268 0.37671,-1.2408 0.37671,-1.59747l-0.12792,-0.28573l-0.12447,-0.30609c0,-0.18819 0.61219,-0.54815 1.82277,-1.06279c1.23767,-0.51793 2.06498,-0.78363 2.4921,-0.78363c1.2142,0 2.60328,0.20527 4.18038,0.61219c1.74543,0.44075 2.62315,0.91138 2.62315,1.40567" id="path502" fill-rule="evenodd" fill="#ffcc08"/>
|
||||||
|
<path d="m42.36824,60.77445c-0.48755,-0.36324 -1.00564,-0.46078 -2.08173,-0.63551c-0.3061,-0.06733 -0.77689,0 -0.82402,0c0.08408,0 -0.0404,0.0335 -0.39017,0.10411c-0.13778,0.46407 -0.20494,0.7232 -0.20494,0.77016c0,0.60201 0.40003,0.9012 1.18365,0.9012c0.3969,0 0.8475,-0.09754 1.35197,-0.28902c0.5112,-0.19837 0.84406,-0.66933 0.96525,-0.85096" id="path506" fill-rule="nonzero" fill="#ffffff"/>
|
||||||
|
<path d="m33.76214,61.75973c0,0.43057 -0.15469,1.35542 -0.45733,2.77456c-0.65242,0.12447 -1.28481,0.09426 -1.9103,0.21545c-0.74996,0.13794 -1.4193,0.20493 -1.98419,0.20493c-1.1536,0 -1.85315,-0.28244 -2.11212,-0.83715c-0.08408,-0.52155 -0.1514,-2.09209 -0.23203,-2.62348c-0.23548,-0.558 -1.68483,-0.47064 -2.71067,-0.05714c-0.51448,0.21873 -0.48098,0.78363 -1.1536,1.517c-0.64897,0.73962 -1.36199,1.59386 -2.23298,1.59386c-1.80602,0 -2.67028,0.1514 -3.06718,-0.15469c0.03021,-0.4171 -0.02348,-1.87302 0.3969,-2.78802c0.39345,-0.86081 0.59182,-1.53343 0.59182,-2.01424l-0.12776,-0.58854l-0.08408,-0.59216c0,-0.85062 0.99891,-1.27791 3.00658,-1.27791c1.11994,0 1.87992,0.12448 2.27682,0.36324c0.22546,0.16487 0.36997,0.4575 0.41365,0.87788c0.06043,0.48739 -0.13104,1.03915 0.09426,1.25426l0.71958,-0.29919c0.35996,-0.29953 0.85752,-0.77345 1.83952,-0.89792c1.01254,-0.12447 2.24332,-0.49461 2.78473,-0.49461c1.12338,0 2.0952,0.65915 3.13434,0.85785c0.50791,0.70612 0.814,2.08847 0.814,2.96603" id="path510" fill-rule="evenodd" fill="#ffcc08"/>
|
||||||
|
<path d="m64.25529,55.21516c-0.36669,0.40035 -1.4799,1.31174 -3.33288,2.71741c-1.69501,1.30845 -2.59966,2.07172 -2.71067,2.31048c0.53813,0.46407 1.39582,0.95507 2.57947,1.45953c1.04259,0.40364 2.09864,0.81746 3.16472,1.23784c-0.0202,0.28573 -0.67262,0.58854 -1.94051,0.89103c-1.12667,0.27916 -2.05825,0.42367 -2.78802,0.43713c-0.47754,-0.19147 -1.40911,-0.42367 -2.79147,-0.70284c-1.01221,-0.21183 -2.02787,-0.42696 -3.04353,-0.62532c-0.41694,0.02332 -0.76671,0.21512 -1.04916,0.56818c-0.42384,0.56851 -0.67936,0.88445 -0.76688,0.95178c-0.3969,0.32974 -0.96853,0.48443 -1.73196,0.4575l-0.50791,0c-0.30938,-0.3465 -0.46407,-0.60201 -0.46407,-0.78362c0,-0.17506 0.05386,-0.44075 0.17144,-0.7971c0.13794,-0.36652 0.20855,-0.63912 0.20855,-0.81713c0,-0.1918 -0.07061,-0.47425 -0.20855,-0.85424c-0.14451,-0.40036 -0.21183,-0.6897 -0.21183,-0.87789c0,-0.36324 0.10772,-0.7232 0.33302,-1.06279c0.70284,-0.16488 1.38547,-0.81385 2.03477,-1.94725c0.5043,-0.99874 1.01221,-2.00111 1.52341,-2.99986c0.53139,-1.06936 1.02568,-1.62768 1.473,-1.67465c0.28589,-0.01708 0.6961,-0.05058 1.2275,-0.09755l0.67606,-0.424c0.28245,-0.2657 0.63896,-0.39674 1.0559,-0.39674l2.03148,0l0.12776,0.17834c-0.14812,0.24533 -0.94521,1.30156 -2.41805,3.15783c-1.03586,1.32849 -1.56068,2.3811 -1.56068,3.17129l0.21529,0.42039c0.14467,-0.07389 1.26789,-0.79676 3.38,-2.16893c1.40911,-0.91138 2.66354,-1.57415 3.75983,-1.99454c0.67607,0.06076 1.19728,0.15141 1.56397,0.2657" id="path514" fill-rule="evenodd" fill="#ffcc08"/>
|
||||||
|
<path d="m103.72778,19.08227l10.70148,0l8.98953,26.35661l0.1143,-0.11462c-0.44059,-5.05121 -1.27135,-10.04198 -1.27135,-15.09681l0,-11.14518l10.8092,0l0,43.77408l-10.8092,0l-8.38408,-25.25375l-0.11102,0.1179c0.27917,4.11979 0.77345,8.18243 0.77345,12.30879l0,12.82705l-10.81232,0l0,-43.77408" id="path518" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
<path d="m154.29883,52.57855c4.25429,0 4.42244,-8.87837 4.42244,-11.60924c0,-2.73087 -0.16815,-11.61285 -4.42244,-11.61285c-4.24098,0 -4.4024,8.88198 -4.4024,11.61285c0,2.73087 0.16142,11.60924 4.4024,11.60924zm0,-34.25298c11.42778,0 15.89046,11.9623 15.89046,22.64374c0,10.68439 -4.46268,22.64702 -15.89046,22.64702c-11.41104,0 -15.8773,-11.96263 -15.8773,-22.64702c0,-10.68143 4.46626,-22.64374 15.8773,-22.64374" id="path522" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
<path d="m204.93687,19.08227l-8.9861,21.13363l10.03197,22.64045l-12.07692,0l-7.00191,-20.08791l0.05386,0l-0.11118,0l0,20.08791l-11.24927,0l0,-43.77408l11.24927,0l0,18.63824l0.05731,0l6.17805,-18.63824l11.8549,0" id="path526" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
<path d="m235.97488,47.93427l-1.2175,-10.15989c-0.33286,-2.7243 -0.55157,-5.51232 -0.83075,-8.2363l-0.10426,0c-0.32614,2.72397 -0.61533,5.51199 -1.04918,8.2363l-1.54361,10.15989l4.7453,0zm2.14888,14.92208l-0.82385,-5.63318l-7.55695,0l-0.94159,5.63318l-11.58577,0l9.98846,-43.77408l13.7312,0l8.825,43.77408l-11.63651,0" id="path530" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
<path d="m253.45952,62.85635l11.24617,0l0,-43.77408l-11.24617,0l0,43.77408z" id="path532" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
<path d="m282.34186,39.34819c2.97626,0 4.57715,-2.73087 4.57715,-5.57603c0,-3.83045 -2.20294,-5.45485 -5.29013,-5.28998l0,10.79869l0.71298,0.06733zm5.45816,23.50816l-6.22845,-18.23132l-0.11102,0.11429c0.05731,2.15218 0.16833,4.3047 0.16833,6.44374l0,11.67328l-11.2496,0l0,-43.77408l10.85944,0c9.76315,0 16.81876,3.01661 16.81876,14.5756c0,4.81244 -1.98093,9.11057 -6.45032,10.96716l8.38406,18.23132l-12.19119,0" id="path536" fill-rule="nonzero" fill="#000000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.7 KiB |
15
static/airline-logos/DE.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 237 41">
|
||||||
|
<title>condor</title>
|
||||||
|
<desc>condor logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>condor</Airline:name>
|
||||||
|
<Airline:alternateName>Condor Flugdienst GmbH</Airline:alternateName>
|
||||||
|
<Airline:iataCode>DE</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/DE</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path d="M159.3,39h9V25.1c-0.2-3.5,2.6-6.5,6.1-6.6c0.2,0,0.4,0,0.7,0c1.2,0,2.3,0.2,3.4,0.5v-8.4c-0.7-0.2-1.4-0.2-2.1-0.2c-3.9,0-6.9,1.9-8.2,5.4H168V11h-8.7L159.3,39z M126.8,25c0,8.4,5.9,14.8,14.4,14.8s14.5-6.4,14.5-14.8s-6-14.8-14.5-14.8S126.8,16.6,126.8,25 M135.8,25c0-3.6,1.3-7.8,5.4-7.8c4.2,0,5.5,4.3,5.5,7.8s-1.3,7.8-5.5,7.8S135.8,28.6,135.8,25 M123.4,0.5h-9V14h-0.1c-1.8-2.5-4.7-4-7.8-3.8c-7.8,0-11.6,6.9-11.6,14.2c0,7.9,3.6,15.4,12.3,15.4c3.1,0.1,5.9-1.5,7.6-4h0.1V39h8.6V0.5z M109.4,17.2c3.9,0,5.3,3.7,5.3,7.8c0,3.6-1,7.8-5.3,7.8c-4.1,0-5.5-4.3-5.5-8.1C103.9,21.1,105.2,17.2,109.4,17.2 M64.1,39h9V23.7c0-3.1,1.5-6,4.9-6c4.9,0,4.5,3.9,4.5,7.7V39h9V21c0-4-0.7-10.8-9.9-10.8c-3.5,0-6.7,1.7-8.6,4.6h-0.1V11h-8.7L64.1,39z M31.7,25c0,8.4,5.9,14.8,14.4,14.8S60.6,33.4,60.6,25s-6-14.8-14.5-14.8S31.7,16.6,31.7,25 M40.7,25c0-3.6,1.3-7.8,5.4-7.8s5.5,4.3,5.5,7.8s-1.3,7.8-5.5,7.8S40.7,28.6,40.7,25 M29.6,20.5C28.9,12.8,22.6,9,15.5,9c-9.2,0-15,6.6-15,15.9c0,8.9,6.4,14.9,15,14.9c7.6,0,13.5-4.5,14.4-12.3h-9.1c-0.4,3.1-2.1,5-5.3,5c-4,0-5.6-3.9-5.6-7.6c0-4,0.8-8.6,6.1-8.6c2.4-0.1,4.4,1.8,4.6,4.2L29.6,20.5z"/>
|
||||||
|
<path d="M194.4,20.5c-0.2-10.9,8.6-19.9,19.5-20c0.1,0,0.3,0,0.4,0c10.9-0.1,19.8,8.7,19.9,19.6c0,0.1,0,0.3,0,0.4c0.1,10.9-8.6,19.8-19.4,20c-0.2,0-0.3,0-0.5,0c-10.9,0.1-19.8-8.6-19.9-19.5C194.4,20.9,194.4,20.7,194.4,20.5z M196.3,20.6c-0.1,9.9,7.7,18,17.6,18.2c0.1,0,0.3,0,0.4,0c9.9,0.1,18-7.8,18.1-17.7c0-0.1,0-0.3,0-0.4c0.2-9.9-7.8-18.1-17.7-18.2c-0.1,0-0.3,0-0.4,0c-9.9-0.1-18,7.9-18.1,17.9C196.3,20.3,196.3,20.4,196.3,20.6L196.3,20.6z M198.6,14.6h9.6v1.7l-1.9,0.5l6.2,4c0,0-3.3-2.9-2.2-5.1c0.5-0.8,1.4-1.2,2.4-1.1h17.5l-10.5,8.3l-1.2-1.2l5.1-4.9h-9.7c-0.1,0-0.6,0-0.7,0.3c-0.7,1.5,5,7.2,10.6,11l2.4,1.6v2.8L198.6,14.6z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
71
static/airline-logos/DH.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
30
static/airline-logos/DK.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1500 300.38">
|
||||||
|
<title>Sunclass Airlines</title>
|
||||||
|
<desc>Sunclass Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Sunclass Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>DK</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/DK</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#fe8c00" d="M302.59,689l-6.34-17H269.19l-6.45,17h-14.5L276,615H289.7L317,689Zm-19.87-56.93-9.56,28h19.23Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M327.12,689V615h13.64v74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M395.08,689,376,661.4H373.6V689H360V615h25.14c15.57,0,23.41,10.74,23.41,22.77,0,10.85-6.33,20.09-17.5,22.24l20.4,29Zm-13.54-40.17c9.13,0,13-4.52,13-10.53,0-6.77-4.94-10.74-13.1-10.74H373.6v21.27Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M424,689V615h13.64v61.55H462V689Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M473.43,689V615h13.64v74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M554.17,689,519.9,639.6V689H506.26V615h12.46l34.16,49.3V615h13.53v74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M585.78,689V615h41.46v12.57H599.42v17.94h25.46v12.35H599.42v18.69h28.25V689Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M674.28,635.41a9.2,9.2,0,0,0-9.67-9.13c-4.41,0-9.78,2.25-9.78,8.38,0,3.22,1.51,5.9,6.56,7.84,2.68,1.07,10,3.54,12.89,4.62,8.48,3.33,14.71,9.45,14.71,19.76,0,11.17-7.3,23.31-24.38,23.31-15.68,0-25-10.31-25.24-22.56h13.85c.22,6.12,4.62,10.31,11.07,10.31s11-4.19,11-10c0-4.51-2.68-7-7.19-8.59-7.42-2.68-9.78-3.54-13.11-4.83-5.26-2-13.75-6.55-13.75-18.69,0-13,9.67-22.24,23-22.24s23.63,9.46,23.63,21.81Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M210,522.14l13.32-2c2.55,24.65,21.53,46.47,54.4,46.47,28.9,0,49.87-16.43,50.15-43.35.29-26.07-21.25-36-39.38-41.09l-10.77-3.11c-23.52-6.8-37.4-14.74-37.4-33.44,0-18.13,13.6-32.3,36.27-32.3,25.5,0,36.27,17.57,38,33.15l-13.32,2c-2.27-11.9-8.79-22.1-24.65-22.1-13.32,0-22.67,7.09-22.67,18.7,0,13.32,10.2,17,27.48,21.82L292.74,470c26.92,7.37,48.73,21.82,48.73,52.7,0,35.71-28.9,57-63.75,57C236.92,579.66,213.12,551,210,522.14Zm24.08-3.4,13.32-2.27c2.27,15.87,10.49,26.63,30.32,26.63,16.44,0,25.5-7.65,25.5-20.4,0-12.46-11.05-16.71-24.65-20.12L264.4,498.9c-22.95-5.95-48.73-19-48.73-51.85,0-37.69,29.47-57.24,60.92-57.24,34.57,0,60.92,23.8,61.77,53l-13,2.26c-2.26-22.1-19-42.21-48.73-42.21-27.2,0-47,15.58-47.32,43.35-.29,25.22,19.27,34.57,41.65,40.8l14.45,4c15,4.25,31.45,11.33,31.45,31.73,0,19.84-15,33.44-39.1,33.44C248.54,556.14,235.79,536.87,234.08,518.74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M365.56,505.13V392.64h13.6V506.27c0,38,22.39,60.35,58.65,60.35s58.66-22.38,58.66-60.35V392.64h13.6V505.13c0,49-29.19,74.53-72.26,74.53S365.56,554.15,365.56,505.13Zm24.65-1.41V392.64h13.6v110.8c0,24.08,12.47,39.66,34,39.66s34-15.58,34-39.66V392.64h13.6V503.72c0,33.43-18.42,52.42-47.61,52.42S390.21,537.15,390.21,503.72Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M542.66,392.64h10.2L680.37,576.82H664.5L580.91,455.27V576.82h-13.6V434l-11-15.58V576.82h-13.6Zm23.8,0h15.87L666.2,514.77V392.64h13.6v143.1l11.05,15.58V392.64h13.6V576.82H694Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M907.33,526.1c-13.31,33.44-45.9,53.56-83.87,53.56-54.12,0-94.35-40.52-94.35-94.93s40.23-94.92,94.35-94.92c33.72,0,66.59,17.85,81,51l-12.75,5.1c-11.9-28.33-38.25-43.35-68.29-43.06-47.88.56-80.47,33.71-80.47,81.88s32.59,81.61,80.47,81.89c34.29,0,60.36-17.85,71.12-45.62Zm-139.4-41.37c0,34.29,23,58.37,55.53,58.37,22.67,0,40.24-11.61,48.46-31.45l12.46,5.1c-10.2,24.37-30.6,39.39-60.92,39.39-40.52,0-69.42-29.47-69.42-71.41s28.9-71.4,69.42-71.4c26.35,0,48.17,13,58.37,37.4l-12.75,5.38c-6.8-18.7-23.8-29.75-45.62-29.75C790.88,426.36,767.93,450.45,767.93,484.73Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M928,392.64h13.6V576.82H928V392.64Zm38.25,160.67v10.48h82.18v13H952.67V392.64h13.6V540.27h82.18v13Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M1147.06,392.64l-74,184.18h-14.73l51.35-127.41,22.88-56.77Zm17,20.41-6.24,14.45,59.79,149.32h-14.74l-12.75-31.73h-77.63l-12.76,31.73H1085l74-184.18h10.2l75.08,184.18h-14.73Zm21,119-4.25-10.48h-58.93l-4.25,10.48Zm-33.72-84.44-24.36,60.93h48.73Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M1244.53,522.14l13.32-2c2.55,24.65,21.53,46.47,54.4,46.47,28.9,0,49.87-16.43,50.15-43.35.29-26.07-21.25-36-39.38-41.09l-10.77-3.11c-23.52-6.8-37.4-14.74-37.4-33.44,0-18.13,13.6-32.3,36.27-32.3,25.5,0,36.27,17.57,38,33.15l-13.32,2c-2.27-11.9-8.79-22.1-24.65-22.1-13.32,0-22.67,7.09-22.67,18.7,0,13.32,10.2,17,27.48,21.82l11.34,3.12c26.92,7.37,48.73,21.82,48.73,52.7,0,35.71-28.9,57-63.75,57C1271.45,579.66,1247.65,551,1244.53,522.14Zm24.08-3.4,13.32-2.27c2.27,15.87,10.48,26.63,30.32,26.63,16.43,0,25.5-7.65,25.5-20.4,0-12.46-11-16.71-24.65-20.12l-14.17-3.68c-23-5.95-48.73-19-48.73-51.85,0-37.69,29.46-57.24,60.92-57.24,34.57,0,60.92,23.8,61.77,53l-13,2.26c-2.26-22.1-19-42.21-48.73-42.21-27.21,0-47,15.58-47.32,43.35-.29,25.22,19.26,34.57,41.65,40.8l14.45,4c15,4.25,31.45,11.33,31.45,31.73,0,19.84-15,33.44-39.1,33.44C1283.06,556.14,1270.31,536.87,1268.61,518.74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M1391.87,522.14l13.32-2c2.55,24.65,21.53,46.47,54.4,46.47,28.9,0,49.87-16.43,50.16-43.35.28-26.07-21.26-36-39.39-41.09l-10.77-3.11c-23.52-6.8-37.4-14.74-37.4-33.44,0-18.13,13.6-32.3,36.27-32.3,25.5,0,36.27,17.57,38,33.15l-13.32,2c-2.27-11.9-8.78-22.1-24.65-22.1-13.32,0-22.67,7.09-22.67,18.7,0,13.32,10.2,17,27.49,21.82l11.33,3.12c26.92,7.37,48.74,21.82,48.74,52.7,0,35.71-28.91,57-63.76,57C1418.79,579.66,1395,551,1391.87,522.14Zm24.09-3.4,13.31-2.27c2.27,15.87,10.49,26.63,30.32,26.63,16.44,0,25.5-7.65,25.5-20.4,0-12.46-11-16.71-24.65-20.12l-14.16-3.68c-23-5.95-48.74-19-48.74-51.85,0-37.69,29.47-57.24,60.92-57.24,34.57,0,60.92,23.8,61.77,53l-13,2.26c-2.27-22.1-19-42.21-48.74-42.21-27.2,0-47,15.58-47.32,43.35-.28,25.22,19.27,34.57,41.65,40.8l14.45,4c15,4.25,31.45,11.33,31.45,31.73,0,19.84-15,33.44-39.1,33.44C1430.41,556.14,1417.66,536.87,1416,518.74Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M1685.49,402.15c-11.85,4.49-19.61,7.69-27.78,9.52-1.5.34-2.93.63-4.3.87a54.59,54.59,0,0,1-6.82.88c-5.74.39-10-.32-13.19-2.18l-.06,0c-.17-.1-.33-.21-.49-.32a8.86,8.86,0,0,1-3.69-7.33v-1.13c0-.07,0-.13,0-.2v0a12.3,12.3,0,0,0-.46-3.31,11.73,11.73,0,0,0-4.68-6.46l-.54-.34c-4.93-2.9-12.66-3-24.32-.43a232.2,232.2,0,0,0-30.17,9.52c-7.58,2.88-14.84,5.89-21,8.54v13.59c6.44-2.8,14.3-6.08,22.53-9.2a230,230,0,0,1,30.17-9.53c1.5-.33,2.93-.62,4.3-.87a54.26,54.26,0,0,1,6.82-.87c5.74-.4,10,.32,13.2,2.18l0,0,.47.3a8.57,8.57,0,0,1,3.61,7h0s0,.07,0,.11v1.17A13.3,13.3,0,0,0,1630,418a11.67,11.67,0,0,0,4.41,5.77c.19.13.39.25.58.36,4.93,2.91,12.66,3,24.32.44,8.16-1.83,15.92-5,27.78-9.53,5.1-1.93,11.23-4.38,16.57-6.58l6.39-16.41C1703,395.18,1695.68,398.29,1685.49,402.15Z" transform="translate(-210 -389.81)"/>
|
||||||
|
<path fill="#fe8c00" d="M1685.5,426.8c-11.86,4.49-19.62,7.7-27.78,9.52-1.5.34-2.94.63-4.31.87a52.76,52.76,0,0,1-6.82.88c-5.74.39-10-.32-13.19-2.18l-.06,0-.48-.31a8.88,8.88,0,0,1-3.7-7.33v-1.14c0-.07,0-.13,0-.2v0a11.92,11.92,0,0,0-.46-3.31,11.73,11.73,0,0,0-4.68-6.46,4.86,4.86,0,0,0-.54-.33c-4.93-2.91-12.65-3.05-24.32-.44a230.91,230.91,0,0,0-30.17,9.53c-7.58,2.87-14.84,5.88-21,8.53V448c6.44-2.81,14.3-6.09,22.53-9.21a231.72,231.72,0,0,1,30.17-9.52c1.5-.34,2.93-.63,4.3-.87a52.87,52.87,0,0,1,6.83-.88c5.73-.4,10,.32,13.19,2.18l.06,0,.46.29a8.57,8.57,0,0,1,3.61,7h0s0,.07,0,.11v1.18a13.39,13.39,0,0,0,.79,4.38,11.67,11.67,0,0,0,4.42,5.77l.57.36c4.93,2.9,12.66,3,24.32.43,8.17-1.83,15.92-5,27.78-9.53,1.65-.62,3.4-1.3,5.2-2l6.24-16C1694.62,423.27,1690.39,424.94,1685.5,426.8Z" transform="translate(-210 -389.81)"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.8 KiB |
28
static/airline-logos/DL.svg
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 154">
|
||||||
|
<title>Delta Air Lines</title>
|
||||||
|
<desc>Delta Air Lines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Delta Air Lines</Airline:name>
|
||||||
|
<Airline:iataCode>DL</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/DL</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#98002E" d="M185.7,137.6l-89.3-43V0L185.7,137.6z M192.8,154l-96.4-40.7V154H192.8z"/>
|
||||||
|
<polyline fill="#E31837" points="7.1,137.6 96.4,0 96.4,94.6 7.1,137.6"/>
|
||||||
|
<polyline fill="#E31837" points="0,154 96.4,154 96.4,113.3 0,154"/>
|
||||||
|
<path fill="#98002E" d="M200.6,125.8c3.5,0,6.4,2.8,6.4,6.3c0,3.5-2.8,6.4-6.3,6.4c-3.5,0-6.4-2.8-6.4-6.3v0
|
||||||
|
C194.3,128.6,197.1,125.8,200.6,125.8z M200.6,137.5c3,0,5.4-2.4,5.4-5.4c0-3-2.4-5.4-5.4-5.4c-3,0-5.4,2.4-5.4,5.4l0,0v0
|
||||||
|
C195.2,135.1,197.6,137.5,200.6,137.5L200.6,137.5L200.6,137.5z M199.2,135.8h-0.9v-7.3h2.8c1.7,0,2.3,0.7,2.3,2
|
||||||
|
c0.1,1.1-0.8,2-1.8,2.1l2.2,3.2h-1l-2.2-3.2h-1.3L199.2,135.8z M199.2,131.7h1.2c1,0,2.1-0.1,2.1-1.3c0-0.9-0.9-1.2-1.6-1.2h-1.6
|
||||||
|
V131.7z"/>
|
||||||
|
<path fill="#003D79" d="M268.1,137.6h43.3c44.6,0,71.1-23.1,71.1-61.4S356,14.9,311.4,14.9h-43.3V137.6z M295.5,36.2h15.9
|
||||||
|
c28.9,0,43.4,14.3,43.4,40s-14.5,40-43.4,40h-15.9V36.2z"/>
|
||||||
|
<polygon fill="#003D79" points="475.7,84.4 527.8,84.4 527.8,63.1 475.7,63.1 475.7,36.2 534.6,36.2 534.6,14.9 448.2,14.9
|
||||||
|
448.2,137.6 536.5,137.6 536.5,116.3 475.7,116.3"/>
|
||||||
|
<polygon fill="#003D79" points="692.7,116.3 639.8,116.3 639.8,14.9 612.3,14.9 612.3,137.6 692.7,137.6"/>
|
||||||
|
<polygon fill="#003D79" points="840.7,14.9 730.6,14.9 730.6,36.2 771.8,36.2 771.8,137.6 799.4,137.6 799.4,36.2 840.7,36.2"/>
|
||||||
|
<path fill="#003D79" d="M1000,137.6h-28.7l-12-30.7h-49.9l-12,30.7h-26.8l51.3-123.2h27.7L1000,137.6z M951.5,86.3l-17.1-43.6
|
||||||
|
l-17.2,43.6H951.5z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
55
static/airline-logos/DS.svg
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="1.9 159.7 397.4 89.1">
|
||||||
|
<title>easyJet Switzerland logo</title>
|
||||||
|
<path fill="#FF6600" d="M49.4,207.9H25.2c-1.1,0-1.6,0.5-1.6,1.4c0,2.2,1.2,4.3,3.6,6.3s5,3,7.8,3c1.6,0,3.5-0.3,5.5-0.9
|
||||||
|
s3.7-1.4,5-2.3c1.2-0.8,2.1-1.2,2.8-1.2c0.9,0,1.8,0.5,2.6,1.6c0.9,1.1,1.3,2.2,1.3,3.4c0,2.5-1.5,4.8-4.6,7.1
|
||||||
|
c-5.4,4.1-11.7,6.1-18.8,6.1c-7.2,0-13.2-2.1-18.1-6.3c-2.4-2.1-4.3-4.5-5.8-7.4c-2-3.9-3-7.9-3-12.2c0-5.7,1.7-10.9,5.2-15.5
|
||||||
|
c3-4,6.8-6.9,11.5-8.9c3.5-1.5,7.3-2.2,11.3-2.2c6.5,0,12,1.8,16.6,5.5c2.3,1.8,4.1,4,5.5,6.6c1.6,2.9,2.4,5.7,2.4,8.4
|
||||||
|
c0,2.2-0.5,4-1.4,5.5C52,207.2,50.8,207.9,49.4,207.9z M26.6,198.3h5.2c2.2,0,3.3-1,3.3-3c0-1.8-0.5-3.4-1.6-4.5
|
||||||
|
c-1.1-1.2-2.4-1.7-4.2-1.7c-1.9,0-3.4,0.8-4.5,2.3c-1,1.4-1.5,2.8-1.5,4.3c0,1,0.2,1.7,0.7,2.2C24.5,198.1,25.3,198.3,26.6,198.3z"/>
|
||||||
|
<path fill="#FF6600" d="M87,179.7c6,0,11,1.5,15.1,4.5c2.2,1.6,3.7,3.4,4.6,5.5s1.3,4.9,1.3,8.5l-0.1,7.6c0,5.3,0.4,8.7,1.1,10.3
|
||||||
|
c0.4,0.8,0.7,1.2,1.1,1.4c0.3,0.2,1.1,0.4,2.2,0.6c1.1,0.2,1.6,0.9,1.6,2.2c0,1.6-0.7,3.4-2,5.1c-1.3,1.8-3,3.3-5.1,4.5
|
||||||
|
c-2.6,1.5-5.3,2.3-8.1,2.3c-3.6,0-6.4-1.2-8.5-3.7c-0.7-0.9-1.4-1.3-2-1.3c-0.7,0-1.6,0.4-2.7,1.3c-3.4,2.5-7.3,3.7-11.6,3.7
|
||||||
|
c-4.5,0-8.1-1-10.9-2.9c-1.8-1.3-3.2-2.9-4.3-5c-1.1-2-1.6-4.2-1.6-6.4c0-3.6,1.4-6.7,4.3-9.4c4.5-4.3,11.2-6.5,20.1-6.5
|
||||||
|
c2,0,3.2-0.2,3.7-0.6c0.5-0.4,0.8-1.3,0.8-2.7c0-3.6-0.4-6.3-1.1-7.9c-0.8-1.6-2-2.4-3.7-2.4c-1,0-1.9,0.3-2.7,0.9
|
||||||
|
c-0.8,0.6-1.8,1.7-3,3.4c-3,4.3-6.2,6.5-9.5,6.5c-1.7,0-3-0.5-4.1-1.5s-1.6-2.3-1.6-3.9c0-1.6,0.7-3.3,2-4.9
|
||||||
|
c1.3-1.6,3.1-3.1,5.4-4.3C73.8,181.3,80.2,179.7,87,179.7z M83.5,209.4c-1.5,0-2.8,0.6-3.9,1.8s-1.7,2.7-1.7,4.4c0,1.6,0.4,3,1.2,4
|
||||||
|
c0.8,1,1.8,1.5,3.1,1.5c2.7,0,4.1-2.3,4.1-6.9c0-1.9-0.2-3.1-0.6-3.8C85.4,209.8,84.6,209.4,83.5,209.4z"/>
|
||||||
|
<path fill="#FF6600" d="M137.8,179.7c1.7,0,4.5,0.4,8.4,1.1c0.8,0.1,1.4,0.2,1.9,0.2c0.6,0,1.7-0.3,3.4-0.9c0.8-0.3,1.5-0.5,2-0.5
|
||||||
|
c1.6,0,3.2,1,4.8,3c1.3,1.6,2.4,3.4,3.2,5.3c0.8,1.9,1.2,3.6,1.2,5s-0.5,2.5-1.4,3.4c-1,0.9-2.2,1.4-3.6,1.4
|
||||||
|
c-1.2,0-2.3-0.3-3.2-0.9c-0.9-0.6-2.5-1.9-4.5-3.8c-2.2-2.1-4-3.2-5.4-3.2c-1,0-1.8,0.4-2.5,1.1c-0.7,0.7-1.1,1.5-1.1,2.5
|
||||||
|
c0,1.7,1.6,3.2,4.8,4.7c5.8,2.6,10.2,5.4,13.3,8.5c2.6,2.6,3.9,5.8,3.9,9.5c0,4.8-2.1,8.7-6.3,11.9c-3.6,2.8-8,4.2-13.2,4.2
|
||||||
|
c-1.3,0-3.8-0.2-7.3-0.7c-3.3-0.4-5.2-0.6-5.6-0.6c-0.4,0-1,0.1-1.5,0.2c-1,0.1-1.7,0.2-2.2,0.2c-1.6,0-2.9-0.4-3.8-1.2
|
||||||
|
c-1.4-1.3-2.7-3.3-3.9-6c-1.2-2.7-1.8-5.1-1.8-7c0-3.1,1.2-4.7,3.7-4.7c1,0,1.8,0.3,2.6,0.9c0.8,0.6,2.5,2.3,5.1,5.1
|
||||||
|
c1.4,1.5,2.6,2.5,3.5,3.1s1.9,0.8,3,0.8s2-0.3,2.7-0.9c0.7-0.6,1-1.4,1-2.4c0-1.5-1.3-2.9-4-4.2c-5.5-2.7-9.5-5.5-11.9-8.4
|
||||||
|
s-3.7-6.2-3.7-10c0-4.1,1.2-7.6,3.7-10.5C126.7,181.9,131.6,179.7,137.8,179.7z"/>
|
||||||
|
<path fill="#FF6600" d="M216.2,205l-6.8,18.6c-1.7,4.6-3.4,8.4-5.1,11.3c-1.7,2.9-3.6,5.4-5.8,7.5c-4.4,4.2-9.8,6.4-16.1,6.4
|
||||||
|
c-5.1,0-9.2-1.3-12.3-4c-2.4-2.1-3.6-4.7-3.6-7.8c0-2.6,0.8-4.8,2.5-6.6s3.8-2.7,6.2-2.7c2.5,0,4.4,0.8,6,2.5
|
||||||
|
c0.7,0.8,1.2,1.4,1.4,2s0.6,1.9,1.1,3.8c0.4,1.5,1.2,2.3,2.6,2.3c1.1,0,1.9-0.5,2.7-1.4s1.1-2.1,1.1-3.4c0-1.6-0.9-4.3-2.7-8.1
|
||||||
|
L175,199.1c-1.3-2.7-2.3-4.4-2.9-5.1c-0.7-0.7-2.1-1.5-4.3-2.5c-0.7-0.3-1.3-0.8-1.8-1.6s-0.7-1.6-0.7-2.3c0-3,3-5.1,9.1-6.2
|
||||||
|
c4-0.7,8.6-1.1,13.8-1.1c3.6,0,6.5,0.4,8.6,1.1c2.8,1,4.2,2.7,4.2,5.1c0,0.9-0.4,1.9-1.2,3s-1.1,2.1-1.1,2.9c0,0.8,0.2,1.7,0.5,2.6
|
||||||
|
c0.4,0.9,1.1,2.4,2.3,4.5c1.3,2.4,2.4,3.6,3.4,3.6c1.1,0,2.2-1.1,3.3-3.2c1.1-2.1,1.7-4.1,1.7-6.1c0-1.6-0.4-2.9-1.3-3.8
|
||||||
|
c-1.3-1.5-2-2.9-2-4c0-1.7,1.2-3.1,3.5-4.2c2.3-1,5.4-1.6,9.3-1.6c7.3,0,10.9,1.7,10.9,5.2c0,1.3-0.4,2.3-1.1,3.1s-2.1,1.5-4,2.2
|
||||||
|
c-1.6,0.6-2.9,1.6-3.9,3.1C219.9,195.9,218.2,199.7,216.2,205z"/>
|
||||||
|
<path fill="#FF6600" d="M274.8,159.7c3.8,0,7.7,0.3,11.7,1c3.2,0.5,5.6,1.3,7,2.3s2.1,2.3,2.1,4c0,1.1-0.3,1.9-0.8,2.5
|
||||||
|
s-1.6,1.3-3.3,2.2c-2,1-3.1,2.2-3.4,3.6c-0.3,1.4-0.6,6.8-0.8,16.1c-0.1,9.1-0.2,14.5-0.3,16.3c-0.1,1.8-0.3,3.6-0.6,5.3
|
||||||
|
c-1,5-3,8.9-6,11.8c-2.5,2.3-5.6,4.2-9.5,5.5s-7.9,2-12.2,2c-3.8,0-7.6-0.5-11.4-1.5c-3.8-1-7.1-2.4-9.9-4.1
|
||||||
|
c-2.3-1.4-4.2-3.4-5.5-5.8c-1.4-2.4-2.1-5.1-2.1-7.8c0-3.4,1.1-6.3,3.2-8.5c2.2-2.2,4.9-3.4,8.1-3.4c3.2,0,5.9,0.9,8.1,2.8
|
||||||
|
c2.2,1.9,3.3,4.3,3.3,7.1c0,0.7-0.2,1.9-0.6,3.6c-0.1,0.3-0.1,0.7-0.1,1.1c0,1.1,0.4,2,1.2,2.7s1.8,1,3.1,1c2.3,0,4.1-1,5.5-3.1
|
||||||
|
s2.1-4.8,2.1-8.1l-0.1-4.7l-0.1-12.6c-0.3-7.6-0.5-12.1-0.7-13.5s-0.5-2.5-1.2-3.3c-0.5-0.7-1-1.1-1.4-1.3s-1.5-0.5-3.2-1
|
||||||
|
c-0.8-0.2-1.5-0.6-2.1-1.4c-0.6-0.8-0.9-1.6-0.9-2.5c0-1.8,0.7-3.3,2.2-4.4c1.5-1.1,3.8-2,7.1-2.7
|
||||||
|
C267.1,160.1,270.9,159.7,274.8,159.7z"/>
|
||||||
|
<path fill="#FF6600" d="M345.7,207.9h-24.1c-1.1,0-1.6,0.5-1.6,1.4c0,2.2,1.2,4.3,3.6,6.3s5,3,7.8,3c1.6,0,3.5-0.3,5.5-0.9
|
||||||
|
s3.7-1.4,5-2.3c1.2-0.8,2.1-1.2,2.8-1.2c0.9,0,1.8,0.5,2.6,1.6c0.9,1.1,1.3,2.2,1.3,3.4c0,2.5-1.5,4.8-4.6,7.1
|
||||||
|
c-5.4,4.1-11.7,6.1-18.8,6.1c-7.2,0-13.2-2.1-18.1-6.3c-2.4-2.1-4.3-4.5-5.8-7.4c-2-3.9-3-7.9-3-12.2c0-5.7,1.7-10.9,5.2-15.5
|
||||||
|
c3-4,6.8-6.9,11.5-8.9c3.5-1.5,7.3-2.2,11.3-2.2c6.5,0,12,1.8,16.6,5.5c2.3,1.8,4.1,4,5.5,6.6c1.6,2.9,2.4,5.7,2.4,8.4
|
||||||
|
c0,2.2-0.5,4-1.4,5.5C348.4,207.2,347.2,207.9,345.7,207.9z M322.9,198.3h5.2c2.2,0,3.3-1,3.3-3c0-1.8-0.5-3.4-1.6-4.5
|
||||||
|
c-1.1-1.2-2.4-1.7-4.2-1.7c-1.9,0-3.4,0.8-4.5,2.3c-1,1.4-1.5,2.8-1.5,4.3c0,1,0.2,1.7,0.7,2.2
|
||||||
|
C320.8,198.1,321.7,198.3,322.9,198.3z"/>
|
||||||
|
<path fill="#FF6600" d="M383.8,193.2v17.3c0,2.1,0.5,3.7,1.5,5s2.3,2,3.9,2c1.3,0,3.1-0.6,5.3-1.8c0.5-0.3,1-0.5,1.5-0.5
|
||||||
|
c0.8,0,1.6,0.5,2.3,1.5c0.7,1,1,2.1,1,3.2c0,2.1-1.2,4.2-3.5,6.1c-4.9,4.1-10.7,6.2-17.7,6.2c-5.5,0-9.9-1.5-13.2-4.6
|
||||||
|
c-3.3-3.1-5-7.2-5-12.2v-23.7c0-0.8-0.1-1.3-0.3-1.5c-0.2-0.2-0.7-0.3-1.5-0.3H353c-1,0-1.6-0.2-1.9-0.5s-0.4-1.1-0.4-2.3v-2.3
|
||||||
|
c0-1,0.4-1.8,1.2-2.3l23.5-14.8c0.6-0.3,1.3-0.5,2.2-0.5h4.2c0.9,0,1.4,0.2,1.7,0.6c0.3,0.4,0.4,1.2,0.4,2.3v6.9c0,1,0.2,1.7,0.5,2
|
||||||
|
s1,0.5,2.1,0.5h9.5c1.3,0,2.1,0.2,2.5,0.7s0.6,1.4,0.6,3v3c0,1.6-0.2,2.8-0.7,3.4c-0.5,0.6-1.4,0.9-2.6,0.9h-9.3
|
||||||
|
c-1,0-1.6,0.2-1.9,0.5C384,191.6,383.8,192.2,383.8,193.2z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.7 KiB |
71
static/airline-logos/DU.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
71
static/airline-logos/DY.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
20
static/airline-logos/EA.svg
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 992.4 123.5">
|
||||||
|
<title>Eastern Air Lines</title>
|
||||||
|
<desc>Eastern Air Lines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Eastern Air Lines</Airline:name>
|
||||||
|
<Airline:iataCode>EA</Airline:iataCode>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<polygon fill="#1F2B80" points="613.3,23.7 568.1,23.7 568.1,41.9 601.1,41.9 601.1,98.9 625.1,98.9 625.1,41.9 661.8,41.9 661.8,23.7 615.2,23.7"/>
|
||||||
|
<path fill="#1F2B80" d="M539.3,51.6h-54.5c-3.2,0-5-1.6-5-4.9c0-2.8,2.1-4.8,5.8-4.8h75.2V23.7h-75.6c-8,0-25.1,0-27.7,18.2c-0.2,1.6-0.4,3.3-0.4,5.2c0,1.6,0.1,3.1,0.3,4.5c1.5,12.7,9.7,18.8,23.6,18.8h55.6c3.3,0,5.1,1.6,5.1,4.9c0,2.9-2.1,4.9-6,4.9H460v18.8h78.6c14.3,0,25-3.7,25-24.9C563.6,58.4,556.2,51.6,539.3,51.6z"/>
|
||||||
|
<polygon fill="#1F2B80" points="714.4,23.7 670.3,23.7 670.3,28.1 670.3,41.9 670.3,52.2 670.3,70.4 670.3,80.8 670.3,98.9 693.4,98.9 714.4,98.9 716.3,98.9 761.7,98.9 761.7,80.8 716.3,80.8 714.4,80.8 693.4,80.8 693.4,70.4 714.4,70.4 716.3,70.4 761.7,70.4 761.7,52.2 716.3,52.2 714.4,52.2 693.4,52.2 693.4,41.9 714.4,41.9 716.3,41.9 761.7,41.9 761.7,23.7 716.3,23.7"/>
|
||||||
|
<polygon fill="#1F2B80" points="277.4,23.7 233.3,23.7 233.3,28.1 233.3,41.9 233.3,52.2 233.3,70.4 233.3,80.8 233.3,98.9 256.4,98.9 277.4,98.9 279.2,98.9 324.6,98.9 324.6,80.8 279.2,80.8 277.4,80.8 256.4,80.8 256.4,70.4 277.4,70.4 279.2,70.4 324.6,70.4 324.6,52.2 279.2,52.2 277.4,52.2 256.4,52.2 256.4,41.9 277.4,41.9 279.2,41.9 324.6,41.9 324.6,23.7 279.2,23.7"/>
|
||||||
|
<path fill="#1F2B80" d="M879.6,50.6c0-12.8-3.5-26.7-25.1-26.9c-0.2,0-0.4,0-0.6,0h-82v19.4v36v19.8h22.7V79.1v-8.7h52.7c4.2,0,7.6,3.4,7.6,7.6v21h22.3V78c0-7.3-9.2-9.7-9.4-9.8v0l0,0c0,0,0,0,0,0C874.8,65.3,879.6,59.3,879.6,50.6z M852,52.2h-57.4v-9.1v-1.2h56.9c4.9,0,5.7,3.1,5.7,6C857.2,50.7,854.9,52.2,852,52.2z"/>
|
||||||
|
<polygon fill="#1F2B80" points="971.7,23.7 971.7,73.4 922,23.7 907.4,23.7 886.8,23.7 886.8,98.9 907.4,98.9 907.4,40.8 967.9,98.9 977.2,98.9 992.4,98.9 992.4,23.7"/>
|
||||||
|
<path fill="#1F2B80" d="M411.2,23.7h-33l-49.3,75.2H352l7.3-10.8h63.3l6.3,10.8h27.4L411.2,23.7z M371.3,70.4L389.2,44l4.6-6.8l18.3,33.2H371.3z"/>
|
||||||
|
<path fill="#1F2B80" d="M156.5,61.7c0,34.1-35,61.7-78.3,61.7c-27.2,0-50.3-10.3-64.2-26C9.2,92,5.5,85.9,3.1,79.3C1.1,73.7,0,67.8,0,61.7C0,27.6,35,0,78.3,0C123.4,0,156.5,27.6,156.5,61.7z"/>
|
||||||
|
<path fill="#FFFFFF" d="M141.5,97.4H14C9.2,92,5.5,85.9,3.1,79.3h64.4L26.9,15.6H52l40.6,63.7h37.3L141.5,97.4z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
55
static/airline-logos/EC.svg
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="1.9 159.7 397.4 89.1">
|
||||||
|
<title>easyJet Europe logo</title>
|
||||||
|
<path fill="#FF6600" d="M49.4,207.9H25.2c-1.1,0-1.6,0.5-1.6,1.4c0,2.2,1.2,4.3,3.6,6.3s5,3,7.8,3c1.6,0,3.5-0.3,5.5-0.9
|
||||||
|
s3.7-1.4,5-2.3c1.2-0.8,2.1-1.2,2.8-1.2c0.9,0,1.8,0.5,2.6,1.6c0.9,1.1,1.3,2.2,1.3,3.4c0,2.5-1.5,4.8-4.6,7.1
|
||||||
|
c-5.4,4.1-11.7,6.1-18.8,6.1c-7.2,0-13.2-2.1-18.1-6.3c-2.4-2.1-4.3-4.5-5.8-7.4c-2-3.9-3-7.9-3-12.2c0-5.7,1.7-10.9,5.2-15.5
|
||||||
|
c3-4,6.8-6.9,11.5-8.9c3.5-1.5,7.3-2.2,11.3-2.2c6.5,0,12,1.8,16.6,5.5c2.3,1.8,4.1,4,5.5,6.6c1.6,2.9,2.4,5.7,2.4,8.4
|
||||||
|
c0,2.2-0.5,4-1.4,5.5C52,207.2,50.8,207.9,49.4,207.9z M26.6,198.3h5.2c2.2,0,3.3-1,3.3-3c0-1.8-0.5-3.4-1.6-4.5
|
||||||
|
c-1.1-1.2-2.4-1.7-4.2-1.7c-1.9,0-3.4,0.8-4.5,2.3c-1,1.4-1.5,2.8-1.5,4.3c0,1,0.2,1.7,0.7,2.2C24.5,198.1,25.3,198.3,26.6,198.3z"/>
|
||||||
|
<path fill="#FF6600" d="M87,179.7c6,0,11,1.5,15.1,4.5c2.2,1.6,3.7,3.4,4.6,5.5s1.3,4.9,1.3,8.5l-0.1,7.6c0,5.3,0.4,8.7,1.1,10.3
|
||||||
|
c0.4,0.8,0.7,1.2,1.1,1.4c0.3,0.2,1.1,0.4,2.2,0.6c1.1,0.2,1.6,0.9,1.6,2.2c0,1.6-0.7,3.4-2,5.1c-1.3,1.8-3,3.3-5.1,4.5
|
||||||
|
c-2.6,1.5-5.3,2.3-8.1,2.3c-3.6,0-6.4-1.2-8.5-3.7c-0.7-0.9-1.4-1.3-2-1.3c-0.7,0-1.6,0.4-2.7,1.3c-3.4,2.5-7.3,3.7-11.6,3.7
|
||||||
|
c-4.5,0-8.1-1-10.9-2.9c-1.8-1.3-3.2-2.9-4.3-5c-1.1-2-1.6-4.2-1.6-6.4c0-3.6,1.4-6.7,4.3-9.4c4.5-4.3,11.2-6.5,20.1-6.5
|
||||||
|
c2,0,3.2-0.2,3.7-0.6c0.5-0.4,0.8-1.3,0.8-2.7c0-3.6-0.4-6.3-1.1-7.9c-0.8-1.6-2-2.4-3.7-2.4c-1,0-1.9,0.3-2.7,0.9
|
||||||
|
c-0.8,0.6-1.8,1.7-3,3.4c-3,4.3-6.2,6.5-9.5,6.5c-1.7,0-3-0.5-4.1-1.5s-1.6-2.3-1.6-3.9c0-1.6,0.7-3.3,2-4.9
|
||||||
|
c1.3-1.6,3.1-3.1,5.4-4.3C73.8,181.3,80.2,179.7,87,179.7z M83.5,209.4c-1.5,0-2.8,0.6-3.9,1.8s-1.7,2.7-1.7,4.4c0,1.6,0.4,3,1.2,4
|
||||||
|
c0.8,1,1.8,1.5,3.1,1.5c2.7,0,4.1-2.3,4.1-6.9c0-1.9-0.2-3.1-0.6-3.8C85.4,209.8,84.6,209.4,83.5,209.4z"/>
|
||||||
|
<path fill="#FF6600" d="M137.8,179.7c1.7,0,4.5,0.4,8.4,1.1c0.8,0.1,1.4,0.2,1.9,0.2c0.6,0,1.7-0.3,3.4-0.9c0.8-0.3,1.5-0.5,2-0.5
|
||||||
|
c1.6,0,3.2,1,4.8,3c1.3,1.6,2.4,3.4,3.2,5.3c0.8,1.9,1.2,3.6,1.2,5s-0.5,2.5-1.4,3.4c-1,0.9-2.2,1.4-3.6,1.4
|
||||||
|
c-1.2,0-2.3-0.3-3.2-0.9c-0.9-0.6-2.5-1.9-4.5-3.8c-2.2-2.1-4-3.2-5.4-3.2c-1,0-1.8,0.4-2.5,1.1c-0.7,0.7-1.1,1.5-1.1,2.5
|
||||||
|
c0,1.7,1.6,3.2,4.8,4.7c5.8,2.6,10.2,5.4,13.3,8.5c2.6,2.6,3.9,5.8,3.9,9.5c0,4.8-2.1,8.7-6.3,11.9c-3.6,2.8-8,4.2-13.2,4.2
|
||||||
|
c-1.3,0-3.8-0.2-7.3-0.7c-3.3-0.4-5.2-0.6-5.6-0.6c-0.4,0-1,0.1-1.5,0.2c-1,0.1-1.7,0.2-2.2,0.2c-1.6,0-2.9-0.4-3.8-1.2
|
||||||
|
c-1.4-1.3-2.7-3.3-3.9-6c-1.2-2.7-1.8-5.1-1.8-7c0-3.1,1.2-4.7,3.7-4.7c1,0,1.8,0.3,2.6,0.9c0.8,0.6,2.5,2.3,5.1,5.1
|
||||||
|
c1.4,1.5,2.6,2.5,3.5,3.1s1.9,0.8,3,0.8s2-0.3,2.7-0.9c0.7-0.6,1-1.4,1-2.4c0-1.5-1.3-2.9-4-4.2c-5.5-2.7-9.5-5.5-11.9-8.4
|
||||||
|
s-3.7-6.2-3.7-10c0-4.1,1.2-7.6,3.7-10.5C126.7,181.9,131.6,179.7,137.8,179.7z"/>
|
||||||
|
<path fill="#FF6600" d="M216.2,205l-6.8,18.6c-1.7,4.6-3.4,8.4-5.1,11.3c-1.7,2.9-3.6,5.4-5.8,7.5c-4.4,4.2-9.8,6.4-16.1,6.4
|
||||||
|
c-5.1,0-9.2-1.3-12.3-4c-2.4-2.1-3.6-4.7-3.6-7.8c0-2.6,0.8-4.8,2.5-6.6s3.8-2.7,6.2-2.7c2.5,0,4.4,0.8,6,2.5
|
||||||
|
c0.7,0.8,1.2,1.4,1.4,2s0.6,1.9,1.1,3.8c0.4,1.5,1.2,2.3,2.6,2.3c1.1,0,1.9-0.5,2.7-1.4s1.1-2.1,1.1-3.4c0-1.6-0.9-4.3-2.7-8.1
|
||||||
|
L175,199.1c-1.3-2.7-2.3-4.4-2.9-5.1c-0.7-0.7-2.1-1.5-4.3-2.5c-0.7-0.3-1.3-0.8-1.8-1.6s-0.7-1.6-0.7-2.3c0-3,3-5.1,9.1-6.2
|
||||||
|
c4-0.7,8.6-1.1,13.8-1.1c3.6,0,6.5,0.4,8.6,1.1c2.8,1,4.2,2.7,4.2,5.1c0,0.9-0.4,1.9-1.2,3s-1.1,2.1-1.1,2.9c0,0.8,0.2,1.7,0.5,2.6
|
||||||
|
c0.4,0.9,1.1,2.4,2.3,4.5c1.3,2.4,2.4,3.6,3.4,3.6c1.1,0,2.2-1.1,3.3-3.2c1.1-2.1,1.7-4.1,1.7-6.1c0-1.6-0.4-2.9-1.3-3.8
|
||||||
|
c-1.3-1.5-2-2.9-2-4c0-1.7,1.2-3.1,3.5-4.2c2.3-1,5.4-1.6,9.3-1.6c7.3,0,10.9,1.7,10.9,5.2c0,1.3-0.4,2.3-1.1,3.1s-2.1,1.5-4,2.2
|
||||||
|
c-1.6,0.6-2.9,1.6-3.9,3.1C219.9,195.9,218.2,199.7,216.2,205z"/>
|
||||||
|
<path fill="#FF6600" d="M274.8,159.7c3.8,0,7.7,0.3,11.7,1c3.2,0.5,5.6,1.3,7,2.3s2.1,2.3,2.1,4c0,1.1-0.3,1.9-0.8,2.5
|
||||||
|
s-1.6,1.3-3.3,2.2c-2,1-3.1,2.2-3.4,3.6c-0.3,1.4-0.6,6.8-0.8,16.1c-0.1,9.1-0.2,14.5-0.3,16.3c-0.1,1.8-0.3,3.6-0.6,5.3
|
||||||
|
c-1,5-3,8.9-6,11.8c-2.5,2.3-5.6,4.2-9.5,5.5s-7.9,2-12.2,2c-3.8,0-7.6-0.5-11.4-1.5c-3.8-1-7.1-2.4-9.9-4.1
|
||||||
|
c-2.3-1.4-4.2-3.4-5.5-5.8c-1.4-2.4-2.1-5.1-2.1-7.8c0-3.4,1.1-6.3,3.2-8.5c2.2-2.2,4.9-3.4,8.1-3.4c3.2,0,5.9,0.9,8.1,2.8
|
||||||
|
c2.2,1.9,3.3,4.3,3.3,7.1c0,0.7-0.2,1.9-0.6,3.6c-0.1,0.3-0.1,0.7-0.1,1.1c0,1.1,0.4,2,1.2,2.7s1.8,1,3.1,1c2.3,0,4.1-1,5.5-3.1
|
||||||
|
s2.1-4.8,2.1-8.1l-0.1-4.7l-0.1-12.6c-0.3-7.6-0.5-12.1-0.7-13.5s-0.5-2.5-1.2-3.3c-0.5-0.7-1-1.1-1.4-1.3s-1.5-0.5-3.2-1
|
||||||
|
c-0.8-0.2-1.5-0.6-2.1-1.4c-0.6-0.8-0.9-1.6-0.9-2.5c0-1.8,0.7-3.3,2.2-4.4c1.5-1.1,3.8-2,7.1-2.7
|
||||||
|
C267.1,160.1,270.9,159.7,274.8,159.7z"/>
|
||||||
|
<path fill="#FF6600" d="M345.7,207.9h-24.1c-1.1,0-1.6,0.5-1.6,1.4c0,2.2,1.2,4.3,3.6,6.3s5,3,7.8,3c1.6,0,3.5-0.3,5.5-0.9
|
||||||
|
s3.7-1.4,5-2.3c1.2-0.8,2.1-1.2,2.8-1.2c0.9,0,1.8,0.5,2.6,1.6c0.9,1.1,1.3,2.2,1.3,3.4c0,2.5-1.5,4.8-4.6,7.1
|
||||||
|
c-5.4,4.1-11.7,6.1-18.8,6.1c-7.2,0-13.2-2.1-18.1-6.3c-2.4-2.1-4.3-4.5-5.8-7.4c-2-3.9-3-7.9-3-12.2c0-5.7,1.7-10.9,5.2-15.5
|
||||||
|
c3-4,6.8-6.9,11.5-8.9c3.5-1.5,7.3-2.2,11.3-2.2c6.5,0,12,1.8,16.6,5.5c2.3,1.8,4.1,4,5.5,6.6c1.6,2.9,2.4,5.7,2.4,8.4
|
||||||
|
c0,2.2-0.5,4-1.4,5.5C348.4,207.2,347.2,207.9,345.7,207.9z M322.9,198.3h5.2c2.2,0,3.3-1,3.3-3c0-1.8-0.5-3.4-1.6-4.5
|
||||||
|
c-1.1-1.2-2.4-1.7-4.2-1.7c-1.9,0-3.4,0.8-4.5,2.3c-1,1.4-1.5,2.8-1.5,4.3c0,1,0.2,1.7,0.7,2.2
|
||||||
|
C320.8,198.1,321.7,198.3,322.9,198.3z"/>
|
||||||
|
<path fill="#FF6600" d="M383.8,193.2v17.3c0,2.1,0.5,3.7,1.5,5s2.3,2,3.9,2c1.3,0,3.1-0.6,5.3-1.8c0.5-0.3,1-0.5,1.5-0.5
|
||||||
|
c0.8,0,1.6,0.5,2.3,1.5c0.7,1,1,2.1,1,3.2c0,2.1-1.2,4.2-3.5,6.1c-4.9,4.1-10.7,6.2-17.7,6.2c-5.5,0-9.9-1.5-13.2-4.6
|
||||||
|
c-3.3-3.1-5-7.2-5-12.2v-23.7c0-0.8-0.1-1.3-0.3-1.5c-0.2-0.2-0.7-0.3-1.5-0.3H353c-1,0-1.6-0.2-1.9-0.5s-0.4-1.1-0.4-2.3v-2.3
|
||||||
|
c0-1,0.4-1.8,1.2-2.3l23.5-14.8c0.6-0.3,1.3-0.5,2.2-0.5h4.2c0.9,0,1.4,0.2,1.7,0.6c0.3,0.4,0.4,1.2,0.4,2.3v6.9c0,1,0.2,1.7,0.5,2
|
||||||
|
s1,0.5,2.1,0.5h9.5c1.3,0,2.1,0.2,2.5,0.7s0.6,1.4,0.6,3v3c0,1.6-0.2,2.8-0.7,3.4c-0.5,0.6-1.4,0.9-2.6,0.9h-9.3
|
||||||
|
c-1,0-1.6,0.2-1.9,0.5C384,191.6,383.8,192.2,383.8,193.2z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.7 KiB |
55
static/airline-logos/EI.svg
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1417.3 265.1">
|
||||||
|
<title>Aer Lingus logo</title>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path fill="#82C341" d="M1415.8,139.4c-5.1,16.4-22.1,31.8-42.5,35c3.3,5.1,4.8,11.4,4,18.4c-2.2,19-20.4,34.3-39.9,34.5
|
||||||
|
c-13.2,0.1-31.1-5.6-43.7-25.5c-11.3-17.7-12.9-45.8-12.1-54.3c-13.8,14.1-22.4,27.8-26.5,37.3c-9.2,21.5-12.7,47.7-12.5,60
|
||||||
|
c0,0-1.7,1.6-3.3,1.9c-5.1-0.9-9.5-2.8-12.8-5.7c-4-3.6-4.9-7-4.9-7c6.1-30.5,15.8-49.5,30.3-71.2c19.5-29.3,49.6-47.4,85.3-58.3
|
||||||
|
c25.8-7.9,52.6-9.6,71,6C1418.1,118.7,1418.7,130.5,1415.8,139.4z M1263.8,123.2c-6.1,10.2-22.8,26.6-36,35.1
|
||||||
|
c-27.5,17.6-47.3,18.8-57.2,12.5c-1.2-0.7-2.2-1.6-3.1-2.5c-7.7-8.1-6.4-22.5,2.6-34.3c4.4-5.8,10.1-9.9,15.6-11.8
|
||||||
|
c-4.3-2-7.2-6.2-7.8-12.1c-1.2-11.8,7.7-27.3,20-33.6c10.8-5.5,34.1-11,51.2,14.5C1255.8,100.9,1261.8,115,1263.8,123.2
|
||||||
|
L1263.8,123.2z M1376.8,16c-1.5-14.7-17.2-20.1-34.5-12.7c-8.2,3.5-15.4,9.4-20.5,16.1c0.8-6.7-1.1-12.6-5.9-16.1
|
||||||
|
c-9.5-6.9-26.8-1.8-38.6,11c-4.1,4.5-17.5,20.7-18.2,44.5c-0.3,11.5,4.8,37,21.6,54.6l0,0c44.8-16.9,68.9-42.8,78.1-53.5
|
||||||
|
c10.6-12.4,15.1-23.3,17-31.3C1377.2,22.3,1377,17.8,1376.8,16z"/>
|
||||||
|
<path fill="#3CB14A" d="M1358.8,59.9c10.6-12.4,15.1-23.3,17-31.3c0.1-0.4,0.2-0.8,0.3-1.3c-2.2,8.9-21,31.9-47,51.5
|
||||||
|
c-27,20.3-42.4,30.5-48.3,34.5C1325.5,96.5,1349.6,70.6,1358.8,59.9z"/>
|
||||||
|
<path fill="#3CB14A" d="M1227.8,158.2c13.2-8.5,29.9-24.9,36-35.1l0,0c-11.8,11.2-29.2,27.9-59.1,41.1
|
||||||
|
c-14.8,6.3-29.3,8.7-34.1,6.4C1180.5,177,1200.3,175.8,1227.8,158.2z"/>
|
||||||
|
<path fill="#3CB14A" d="M1415.8,139.4c0.7-2.2,1.2-4.5,1.4-6.9c-1.4,9.5-7.8,21-18,27.3c-9,5.6-19.4,9.3-31.2,8.3
|
||||||
|
c1.9,1.8,3.4,3.3,5.3,6.2l0,0l0,0C1393.7,171.2,1410.7,155.8,1415.8,139.4z"/>
|
||||||
|
<path fill="#F9ED32" d="M1284.4,129.4L1284.4,129.4c-0.1,0.1-0.2,0.1-0.2,0.2C1284.2,129.5,1284.3,129.4,1284.4,129.4
|
||||||
|
C1284.4,129.4,1284.4,129.4,1284.4,129.4z"/>
|
||||||
|
<path fill="#3CB14A" d="M1284.2,129.5c-32.1,23-43,64.4-44.8,117.1l0,0c1.6-0.3,3.3-1.9,3.3-1.9c-0.2-12.3,3.3-38.4,12.5-60
|
||||||
|
c4.1-9.5,12.7-23.2,26.5-37.3c1-9.4,2.1-14.9,2.8-18C1284.3,129.4,1284.2,129.5,1284.2,129.5z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#006472" d="M800.9,184.7c18.6-9.4,25.3-28.5,25.3-43.8c0-17.1-5.2-30.6-15.3-40.5c-0.9-0.9-1.8-1.7-2.8-2.5l16-26.7
|
||||||
|
l-23.7,0l-10.2,17.1c-7.8-2.6-16-3.8-23.5-3.8c-14.9,0-29.8,5.3-40.8,14.6c-8.7,7.4-19.1,20.6-19.1,41.8
|
||||||
|
c0,36.8,27.7,45.8,54.5,54.6l14.9,4.7c15.9,4.7,25.5,7.6,25.5,20.1c0,5.7-2,10.6-6,14.3c-6.2,5.9-17.1,9.1-29.1,8.4
|
||||||
|
c-10.5-0.6-32.8-2.7-35.6-25.6l-23,0c0,29.2,26.1,47.7,58.5,47.7c20.8,0,36.2-5.9,46.5-15.9c8.1-7.8,12.4-17.9,12.4-29.2
|
||||||
|
C825.6,204,816.9,191.5,800.9,184.7z M797.2,163.3c-3.9,6.5-10.8,12.9-19.4,14.8c0,0-16.2-4.6-26.7-8.2
|
||||||
|
c-14.2-4.9-20.8-14.1-20.8-29c0-23.6,18.9-34.4,36.5-34.4c17.5,0,36.3,11,36.3,34.3C803.1,150.3,800.8,157.3,797.2,163.3z"/>
|
||||||
|
<rect x="531" y="88.3" fill="#006472" width="23.6" height="116.6"/>
|
||||||
|
<path fill="#006472" d="M529.6,59.2c0-7.4,4.9-12.7,13.3-12.7c8.2,0,13.1,5.3,13.1,12.7c0,7.8-4.9,13.1-13.1,13.1
|
||||||
|
C534.4,72.2,529.6,67,529.6,59.2z"/>
|
||||||
|
<path fill="#006472" d="M89,54.1l-24.5,0L0,204.9h25.4l16.4-38.3l69.9,0l16.4,38.3l25.4,0L89,54.1z M50.3,145.8l26.3-61.6
|
||||||
|
l26.3,61.6L50.3,145.8z"/>
|
||||||
|
<polygon fill="#006472" points="439.4,54.1 414.6,54.1 414.6,204.9 516.6,204.9 516.6,184.1 439.4,184.1"/>
|
||||||
|
<path fill="#006472" d="M992.5,90.3c-12.6,5.6-19.5,15.7-20,27.4c-1.3,27.3,19.6,33.7,47.6,37.6c22.3,3.1,35.1,6.4,34.5,17.6
|
||||||
|
c-0.2,3.4-3,7.7-7.1,9.7c-15,7.5-53.1,3.5-71-7.6l-4.9,19.9c10.8,7,27,11.1,42.4,11.8c16.7,0.8,33.6-0.4,45.8-6.2
|
||||||
|
c11.9-5.7,18.1-16.3,18.6-27.6c1.2-26.8-23.8-32.6-47.2-36.7c-26.6-4.6-36.3-7.3-35.6-18.8c0.3-5.4,5.3-8.9,9.3-10.1
|
||||||
|
c14.5-4.5,45-1.5,62.9,8.3l4.7-20.1C1049.2,83.8,1013.9,80.8,992.5,90.3z"/>
|
||||||
|
<path fill="#006472" d="M633,86.2c-25.9,0-43.3,3.7-51.4,6l-0.9,0.3v112.4l23.9,0l0-95.9c8.1-1.9,14.5-2.5,27.2-2.5
|
||||||
|
c19.5,0,32.6,4.9,32.6,28.8v69.5h23.6v-68.4C687.9,103.2,669.4,86.2,633,86.2z"/>
|
||||||
|
<path fill="#006472" d="M926.8,184.4c-7.7,1.7-14.7,2.3-27.2,2.3c-20.1,0-32.6-4.8-32.6-28.6l0-69.7l-23.6,0l0,68.6
|
||||||
|
c0,33.2,18.5,50.1,54.9,50.1c24.4,0,39.6-3,51.3-6l1-0.2l0-112.5l-23.9,0V184.4z"/>
|
||||||
|
<path fill="#006472" d="M343.3,86.2c-15.6,0-28.6,3-37.3,9.2c-13,9.2-18.1,23.1-18.1,41.1v68.4l23.6,0l0-69.5
|
||||||
|
c0-8.5,1.7-14.6,4.7-18.9c5.4-7.9,15.3-9.9,27.9-9.9c5.9,0,12.6,0.7,19.2,2l4.7-19.9C360.6,87.2,352.4,86.2,343.3,86.2z"/>
|
||||||
|
<path fill="#006472" d="M267.4,135.2c-2.8-32.1-21.9-48.9-55.8-48.9c-36.7,0-56.2,19.8-56.2,57.4l0,5.9
|
||||||
|
c0,37.6,21.5,57.4,62.1,57.4c16.5,0,32.2-2.4,45.6-7l-5-19.8l-1.1,0.4c-7.7,2.9-22.1,6.1-39.5,6.1c-17,0-37.2-5.4-37.7-30.6
|
||||||
|
l87.9,0v-12.3C267.7,140.7,267.6,137.9,267.4,135.2z M211.6,106.6c14.1,0,30.8,5.1,32,28.6l-63.7,0
|
||||||
|
C180.8,116.5,191.7,106.6,211.6,106.6z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.6 KiB |
14
static/airline-logos/EK.svg
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 90 60">
|
||||||
|
<title>Emirates</title>
|
||||||
|
<desc>Emirates logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Emirates</Airline:name>
|
||||||
|
<Airline:alternateName>طَيَران الإمارات</Airline:alternateName>
|
||||||
|
<Airline:iataCode>EK</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/EK</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#d71921" d="M86 41.4V41c0-.3-.1-.5-.5-.5h-.2v1.1h.3c.1 0 .3 0 .4-.2m1 1.7h-.6l-.4-.6c-.3-.4-.5-.7-.7-.7v1.3h-.5v-2.8h.8c.8 0 1.1.2 1.1.7l-.2.6-.5.2c.2 0 .3.2.5.5l.4.8m.2-3c-.3-.3-.9-.5-1.4-.5-.5 0-1 .2-1.4.6a2 2 0 0 0-.6 1.4 2 2 0 0 0 2 2c.6 0 1-.2 1.4-.6.4-.3.6-1 .6-1.4 0-.5-.2-1-.6-1.4m.3 3c-.5.5-1 .7-1.7.7s-1.2-.2-1.7-.7a2.2 2.2 0 0 1 0-3.2c.5-.5 1-.8 1.7-.8s1.2.3 1.7.8c.5.4.8 1 .8 1.6a2 2 0 0 1-.8 1.6m-7.6-.4c-1.9 0-3.6 1.3-3.5 2.9 0 1.3.6 2.3 1.7 3l1.6 1c.9.6 1.2 1.2 1.2 1.8 0 .8-.7 1.9-2.3 1.9-1.6 0-2.2-1.6-2.2-1.6v2s1.1 1 2.8 1c2.2 0 4.3-1.7 4.3-4a3 3 0 0 0-.7-2c-.7-1-2-1.7-3-2.3-.7-.3-1-.9-1-1.2 0-.4.3-1.1 1.9-1.1 1.4 0 2 1.6 2 1.6v-2s-1-1-2.8-1m-25.4 0c-1.9 0-2.9 1-2.9 1v2s.6-1.6 2.2-1.6 1.7.8 1.7 1.2c0 0 .2.5-.3 1.2-.7 1.3-6.3 1.6-5.4 5.8.4 1.8 1.5 2.3 2.8 2.3 1.6 0 2.3-.7 2.7-1.4.2 1.3 1 1.4 1 1.4h3S58 54 58 52.3v-6.6c0-1.5-2-2.9-3.8-2.9m-.9 10.5c-.8 0-1.2-.7-1.2-1.4 0-3 2.3-3.4 3-4.2v5c-.3.2-.6.6-1.9.6M39.1 39c-.8 0-1.4.7-1.4 1.5 0 .7.7 1.4 1.4 1.4.8 0 1.5-.7 1.5-1.4 0-.8-.7-1.5-1.5-1.5M71.5 43c-3.3 0-5 2.9-5 6.1 0 3.3 2.1 5.7 5.1 5.7 2.5 0 3.4-1 3.4-1V52c-.8 1.2-1.7 1.5-2.4 1.5a3 3 0 0 1-1.2-.3c-1.5-.6-1.7-2.5-1.7-2.5 1.2-1.3 2.5-1 4.2-2.8 2.4-2.4.7-5-2.5-5m-1.9 6.6s-.3-5.4 1.8-5.6c1.7 0 1.3 2.4.8 3.2-.8 1.5-1.9 1.6-2.5 2.4m-5.7-9.1s-.8 1.1-2.2 2.3c-.9.7-2.7 1.6-2.7 1.6h2v8.2c0 2.2.9 2.2.9 2.2h3s-1.1-.7-1.1-2.3v-8h.7c1 0 2 .4 2 .4V43h-2.7v-2.6m-19.7 2.6h-2s1.2.5 1.2 2.3v7c0 2.4 1 2.4 1 2.4h3s-1.1-1-1.1-2.4v-5.7c0-.5.3-.9.7-1.2.4-.3.9-.4 1.4-.4.6 0 1.4.3 1.9 1v-2.2s-.4-.9-1.6-.9c-2 0-2.5 2.4-2.5 2.4-.1-1.9-.6-2.4-2-2.4m-5.6 0h-2s1.2.5 1.2 2.4v7c0 2.3 1 2.4 1 2.4h3.1s-1.2-.8-1.2-2.4v-6.6c0-2.7-1.5-2.7-2.1-2.7m-13 0c-2.3 0-2.9 2.2-2.9 2.2s0-2.2-2-2.2h-1.9s1 .5 1 2.4v7c0 2.3 1 2.4 1 2.4H24s-1.3-1-1.3-2.4v-6.2c0-.3.6-1.3 2-1.3.6 0 1.4.9 1.4 1.8v5.6c0 2.5 1 2.5 1 2.5h3s-1.1-1-1.1-2.4v-6.2c0-.3.5-1.2 1.7-1.2 1 0 1.7.8 1.7 1.6v5.8c0 2.4 1 2.4 1 2.4h3s-1.1-.8-1.1-2.4v-6.2c0-2.5-2-3.2-3.6-3.2-2 0-2.5 1.7-2.8 2.2-.4-1.6-2-2.3-3.2-2.3M13.9 40H6.5s1.3 1 1.2 3.3v9c0 2.3 1 2.4 1 2.4H16c1.6 0 2.1-1.2 2.1-1.9V52s-.4 1.1-2.6 1.1H12c-1 0-1-1-1-1.7v-4.9h2.5c.8 0 1.6.2 2.3.5 0 0-.9-2-3.3-2H11v-1.6s0-1.3-.3-1.8h2.2c2 0 3.5 0 5.2 1 0 0-.3-2.5-4.2-2.5M36 26.5L34 28.7c1.5 1.4 2 2.2 2.2 2.8 0 0 2.1-1.7 2.1-2.3 0-1-.6-1.3-2-2.7M31 22.6h-1s1 .7 1 2.3v5.4c0 3.5 3 6.7 6.5 6.7h2.9c1.9 0 2.5-.3 3.5-1.3l1-1.1c.7-.7 1.4-1.3 1.4-3v-1.9c0-1.5-1-2-1.4-2.5l-1-1v3.6l1 1c1.7 1.3.4 3.4-1 3.4h-6.5c-3.1-.1-5.6-2.6-5.6-5.7v-2.9c0-3-.8-3-.8-3M45 1.8l-1.5 1.4c-.6.7-.4 2 .9 3v3.2c0 .2-.3.5-.3.5s-1.7-1.5-3.3-1.5h-2.5c-1.5 0-2.8 1.3-2.9 1.4-.7.8-.8 2.3 0 3l1.6 1.6s-.4-2.7 0-4.5c0-.4.5-.9 1.1-.9 1.4 1 2.7 1.9 3.9 3l-4.5 4.7c-.2.2-.8.7-1.4.7-.8 0-1-.4-1.4-.8v2.2c0 .8 1 1.5 1.9 1.5h6c.4 0 1 0 1.4-.4l1.9-2.1c.4-.3.5-.7.5-1.2v-2.4c0-2.1-1.7-3.8-1.7-3.8S45 10 45 9V6.7s.7.7.8 1l1.2-1.2c.6-.6-.4-1.8-.7-2.2C45 3 45 1.7 45 1.7m-7.6 15.8l5.2-5s2 2 2.8 3.3c.3.5.7 1.7-1.1 1.7h-6.9m3 9l-2.1 2c1.5 1.5 1.9 2.3 2 3 .2-.1 2.2-1.8 2.2-2.4 0-1-.6-1.3-2-2.7M32.4 13h-1c.6.3 1.1 1.5 1.1 2.3v4.4c0 1.1 1 5.5 4.8 5.5h11.4v7.2c0 1.1-.4 1.9-.7 2.2L46.2 36h.8l3-2.8c.6-.6 1.4-1.4 1.4-3.6v-4.5l1.3-1.4 2.2-2c0 1.8 1 2.5 1.8 2.5a2 2 0 0 0 1.2-.5l2-1.9c1-.9 1.4-3.8-.8-3.8-1.4 0-3 2-3.2 2.3l-1-1v1.7c-.2.4-1 1-1.8 1h-1.6v-1.8c0-.8.3-1.8.7-2l1.8-1.7H53l-3.4 3.2c-.6.6-1 1.9-1 2.2H36c-1.5 0-2.5-1.5-2.5-2.8v-3.3c0-2.7-.7-2.9-.9-3m26 9.6c-.3 0-.6 0-1-.5a5 5 0 0 1-1-1.2c.1-.2.7-.4 1.2-.4.4 0 .7 0 1 .3.6 1 .4 1.8-.3 1.8m-4.7 2v3.6l1.1 1.3c1 1 1 2.8-2 5.8-.5.5-2 2-4.1 2h-5.5l3.3 2.8h2.1c2.2 0 4.2-1 5.6-2.3 1.2-1.3 1.9-3 1.9-4.7v-4.7c0-1.5-1-2.5-1.4-2.7l-1-1M53 1.8l-3.3 3c-.3.2-1 1.4-1 2.9v8.8a5 5 0 0 1-.7 2l-1.7 1.4h.7l3.2-2.8c.3-.5 1.2-1.4 1.2-3V5.5c0-1.3.6-2 1-2.4.1-.3 1.2-1.2 1.4-1.4l-.8.1"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.1 KiB |
35
static/airline-logos/ET.svg
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 785 328">
|
||||||
|
<title>Ethiopian Airlines</title>
|
||||||
|
<desc>Ethiopian Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Ethiopian Airlines</Airline:name>
|
||||||
|
<Airline:alternateName>የኢትዮጵያ አየር መንገድ</Airline:alternateName>
|
||||||
|
<Airline:iataCode>ET</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/ET</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path d="M 775.33,0 L 779.8,0 C 782.12,1.99 783.99,4.47 785,7.38 L 785,23.55 C 783.21,27.92 782.6,32.65 781.04,37.1 C 778.94,43.67 775.79,50.01 771.03,55.05 C 765.46,60.94 758.75,65.6 752.01,70.04 C 735.42,80.71 718.22,90.38 700.92,99.85 C 665.97,118.66 630.42,136.42 593.85,151.88 C 590.87,152.66 587.92,153.49 584.92,154.16 C 585.2,150.65 588.91,149.21 591.41,147.43 C 651.93,111.3 706.14,65.58 756.28,16.28 C 762.38,10.59 768,4.15 775.33,0 z" style="opacity:1;fill:#548f46" />
|
||||||
|
<path d="M 756.48,74.53 C 758.68,73.48 761.79,74.52 762.29,77.08 C 763.08,80.89 761.54,84.68 760.12,88.14 C 754.45,100.53 745.54,111.71 733.82,118.83 C 727.57,122.43 720.68,124.71 713.93,127.16 C 680.86,138.42 646.85,146.64 612.8,154.33 C 613.14,154.55 613.84,154.99 614.19,155.22 C 613.6,155.36 612.44,155.64 611.85,155.78 C 611.38,153.88 607.04,154.6 609.18,156.39 C 605.26,157.03 601.04,157.18 597.68,159.54 C 597.15,158.83 596.64,158.12 596.14,157.4 C 592.27,157.59 588.43,157.97 584.58,158.31 C 584.67,156.92 584.78,155.54 584.92,154.16 C 587.92,153.49 590.87,152.66 593.85,151.88 C 596.29,151.43 598.72,150.83 601.07,149.99 C 613.61,145.6 625.83,140.35 637.95,134.89 C 672.24,119.25 705.9,102.2 738.82,83.83 C 744.68,80.69 750.26,76.93 756.48,74.53 z" style="opacity:1;fill:#f1d212" />
|
||||||
|
<path d="M 728.02,127.11 C 730.74,126.63 734.3,125.02 736.54,127.45 C 739.23,130.99 736.43,135.36 734.63,138.61 C 728.15,148.3 719.73,157.29 708.73,161.75 C 703.51,164.28 697.62,163.92 692.01,164.52 C 662.72,166.22 633.41,164.13 604.24,161.52 C 602,161.12 599.41,161.25 597.68,159.54 C 601.04,157.18 605.26,157.03 609.18,156.39 C 609.85,156.24 611.18,155.93 611.85,155.78 C 612.44,155.64 613.6,155.36 614.19,155.22 C 634.43,151.84 654.51,147.51 674.39,142.39 C 692.44,137.94 710.08,131.99 728.02,127.11 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 129.71,145.13 C 136.32,141.92 143.56,139.6 150.88,138.85 C 152.65,152.19 151.24,165.72 152.28,179.11 C 157.13,176.96 160.96,173.13 165.7,170.76 C 170.69,168.03 176.38,166.78 182.05,166.8 C 188.55,166.61 196.23,166.84 200.73,172.3 C 204.46,176.28 203.95,182.02 204.08,187.05 C 204.95,200.93 204.58,214.85 205.06,228.74 C 207.6,230.52 210.04,232.48 211.97,234.93 C 204.85,236.52 197.45,235.77 190.22,235.81 C 190.13,220.21 190.19,204.6 190.19,189 C 190.13,186.41 190.42,183.77 189.89,181.22 C 188.2,179.21 186.38,176.95 183.9,175.95 C 177.58,175.37 170.9,176.03 165.39,179.41 C 160.88,182.19 156.5,185.2 152.27,188.39 C 151.58,190.16 151.94,192.13 151.84,193.99 C 152,205.28 151.65,216.58 152,227.86 C 153.63,230.59 157.16,232 158.99,234.8 C 155.4,235.66 151.69,235.91 148,235.87 C 142,235.8 135.89,236.25 130,234.79 C 131.92,232.38 134.41,230.57 136.77,228.64 C 137.42,227.19 137.1,225.55 137.21,224.02 C 137.04,200.1 137.4,176.17 137.02,152.25 C 134.38,150.11 131.28,148.27 129.71,145.13 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 2.31,141.59 C 17.17,140.65 32.11,141.24 47,141.06 C 55.31,141.3 63.74,140.42 71.94,142.13 C 73.28,146.77 72.99,151.67 71.78,156.3 C 67.13,155.01 63.89,151.25 59.84,148.91 C 47.54,148.4 35.19,148.75 22.88,148.76 C 22.9,159.45 22.95,170.13 23.06,180.82 C 31.3,180.96 39.59,181.37 47.81,180.86 C 51.87,179.02 55.16,175.78 59.36,174.16 C 59.97,181.37 60.23,188.69 59.03,195.85 C 55.11,193.86 51.78,190.91 47.87,188.95 C 39.6,188.58 31.3,189.1 23.02,189.02 C 22.99,202.06 22.89,215.09 22.88,228.12 C 33.93,228.28 44.98,228.1 56.03,228.22 C 58.08,228.08 60.44,228.55 62.17,227.17 C 66,224.36 69.58,221.15 73.86,219.01 C 75.23,224.51 74.9,230.22 74.81,235.84 C 49.87,235.96 24.93,235.77 0,235.92 L 0,235.26 C 2.95,231.74 8.81,229.41 8.2,224.05 C 8.15,200.01 8.19,175.96 8.18,151.92 C 8.58,147.65 3.85,145.88 1.71,142.86 C 1.86,142.55 2.16,141.91 2.31,141.59 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 225.81,150.82 C 230.23,147.27 237.4,149.05 239.97,154.04 C 238.27,158.18 233.78,161.83 229.13,159.97 C 225.1,159.28 222.76,153.85 225.81,150.82 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 432.32,149.32 C 436.64,147.87 443.24,150.58 442.76,155.79 C 440.44,162.36 429.44,161.26 427.35,154.97 C 427.52,152.25 429.91,150.22 432.32,149.32 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 94.17,161.13 C 97.32,159.17 100.23,156.61 103.93,155.75 C 105.02,159.41 104.88,163.24 104.93,167.02 C 110.93,167.47 117.18,166.21 123,168.01 C 125.1,168.6 124.73,171.02 124.83,172.7 C 118.74,174.55 112.26,173.46 106,174 C 105.44,175.59 104.89,177.21 104.96,178.93 C 104.81,193.63 104.84,208.34 104.94,223.04 C 104.9,225.69 105.58,228.26 106.25,230.8 C 108.37,231.11 110.6,231.4 112.67,230.64 C 116.21,229.61 119.05,226.52 122.96,226.89 C 124.26,228.85 123.44,231.33 121.6,232.63 C 117.67,235.56 112.88,237.26 108.03,237.83 C 101.32,238.53 94.17,234.9 91.41,228.63 C 89.98,223.22 90.28,217.55 90.17,212 C 90.15,201.66 90.16,191.31 90.09,180.97 C 90.17,178.62 89.6,176.33 88.83,174.13 C 85.54,173.78 82.2,173.75 78.98,172.88 C 83.18,167.98 88.99,164.87 94.17,161.13 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 373.96,166.98 C 384.71,164.62 396.88,167.3 404.8,175.2 C 408.68,178.86 411.57,183.48 413.51,188.43 C 415.89,193.99 414.73,200.15 415.02,206.01 C 415.58,215.96 408.98,224.61 401.84,230.82 C 394.3,237.35 383.62,237.93 374.18,236.61 C 368.12,235.69 362.85,232.41 357.07,230.63 C 356.83,238.7 356.72,246.8 356.98,254.88 C 358.56,257.53 361.27,259.37 362.99,261.96 C 358.76,263.1 354.34,262.84 350.01,262.92 C 344.99,262.87 339.89,263.22 334.99,261.9 C 336.87,259.41 339.47,257.66 341.82,255.67 C 342.35,254.18 342.13,252.56 342.21,251.01 C 342.15,230.34 342.18,209.67 342.19,189 C 342.12,186.45 342.45,183.84 341.84,181.34 C 339.5,179.53 336.79,178.18 334.78,175.96 C 334.88,175.58 335.08,174.81 335.19,174.42 C 341.82,171.77 348.72,169.13 355.91,168.72 C 356.41,170.19 356.88,171.67 357.35,173.15 C 362.76,170.8 368.01,167.79 373.96,166.98 M 375.3,174.21 C 368.07,174.89 360.21,178.25 356.98,185.07 C 356.68,193.7 356.96,202.35 356.87,210.99 C 357.01,214.71 356.33,218.97 359,222.01 C 362.5,226.11 367.87,228.02 373.03,228.92 C 378.92,229.52 385.65,229.58 390.31,225.32 C 397.25,219.02 399.34,208.95 399,199.93 C 398.31,193.57 397.07,186.97 393.5,181.54 C 389.68,175.61 381.96,173.58 375.3,174.21 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 280.39,167.5 C 292.7,164.85 306.21,167.1 316.55,174.45 C 322.51,178.89 327.47,185 329.69,192.16 C 330.31,196.75 329.89,201.4 330.01,206.02 C 330.4,212.68 326.78,218.72 322.62,223.61 C 314.42,232.73 302.04,237.12 290.01,237.62 C 279.42,237.1 268.52,233.73 260.72,226.28 C 255.58,221.38 251.28,215.12 250.14,207.99 C 249.54,201.42 249.53,194.48 252.47,188.41 C 257.66,177.41 268.64,169.92 280.39,167.5 M 285.29,173.23 C 276.7,175.24 270,182.63 268.02,191.11 C 266.08,199.22 266.54,207.92 269.2,215.81 C 271.42,222.61 277.13,228.18 284.06,230.04 C 290.62,232.25 298.07,230.7 303.62,226.72 C 309.77,221.88 313.28,214.15 313.54,206.4 C 314.04,197.33 313.38,187.1 306.87,180.1 C 301.64,174 293.05,171.58 285.29,173.23 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 474.41,168.5 C 485.6,166.13 497.44,165.3 508.56,168.47 C 513.87,169.99 519.21,173.51 520.68,179.13 C 522.46,195.66 521.63,212.32 521.92,228.91 C 524.42,230.71 527.01,232.48 529.03,234.85 C 521.9,236.51 514.5,235.78 507.25,235.82 C 507.02,232.81 507.71,229.52 506,226.84 C 497.39,229.17 489.38,233.19 480.91,235.94 C 474.85,237.8 467.49,237.98 462.41,233.64 C 458.57,230.26 455.81,225.22 455.95,220.02 C 455.48,211.4 461.85,204.09 468.8,199.85 C 476,195.32 484.71,195.17 492.9,194.3 C 497.57,193.95 502.26,194.09 506.94,193.94 C 507.02,188.7 507.94,182.9 504.78,178.3 C 501.15,173.08 493.99,172.09 488.16,173.19 C 482.7,174.78 478.28,178.54 473.6,181.6 C 471.14,183.15 468.81,185.3 465.78,185.51 C 465,181.12 465.32,176.61 466.3,172.29 C 468.19,169.79 471.58,169.33 474.41,168.5 M 482.67,202.78 C 476.52,205.14 471.2,211.08 471.83,218.02 C 471.17,222.38 474.39,226.23 478.16,227.92 C 481.5,228.49 484.68,226.88 487.75,225.8 C 494.24,223.09 500.91,220.64 506.87,216.85 C 507.05,212.33 507.48,207.76 506.8,203.26 C 506.03,201.89 504.72,200.67 503.03,200.93 C 496.23,200.87 489.18,200.42 482.67,202.78 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 575.16,168.13 C 580.62,166.55 586.39,166.88 592.02,166.94 C 597.09,166.79 601.9,169.12 605.83,172.16 C 608.52,174.28 609.17,177.83 609.7,181.02 C 610.78,196.95 610.76,212.94 610.96,228.9 C 613.45,230.7 616.03,232.46 618.03,234.85 C 610.89,236.51 603.47,235.79 596.22,235.81 C 596.15,220.2 596.18,204.59 596.04,188.98 C 595.93,185.83 595.97,182.44 594.44,179.61 C 590.96,175.41 584.94,175.71 580.01,175.79 C 570.55,175.72 562.47,181.65 556.11,188.09 C 554.28,189.48 555.03,192.02 554.84,193.99 C 555.1,205.22 554.45,216.51 555.15,227.7 C 557.67,230.54 560.72,232.87 563.16,235.8 C 553.12,235.63 542.93,236.64 533,234.89 C 534.94,232.47 537.49,230.68 539.81,228.66 C 540.36,227.18 540.12,225.55 540.21,224.01 C 540.11,210 540.25,196 540.14,181.99 C 538.02,180 535.39,178.38 533.9,175.84 C 532.94,174.24 535.3,173.76 536.3,173.27 C 542.07,171.23 547.89,169.2 553.91,167.99 C 555,171.37 554.91,174.94 555.08,178.45 C 558.02,178.16 560.23,176.11 562.55,174.5 C 566.36,171.71 570.55,169.33 575.16,168.13 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 424.3,173.27 C 430.01,171.22 435.78,169.29 441.72,167.98 C 443.41,180.24 442.62,192.66 442.87,205 C 443.07,212.56 442.46,220.17 443.15,227.7 C 445.67,230.54 448.72,232.87 451.16,235.8 C 441.11,235.63 430.89,236.67 420.96,234.77 C 423.06,232.49 425.58,230.69 428.08,228.91 C 428.18,213.26 428.14,197.62 428.1,181.97 C 426,179.98 423.4,178.36 421.89,175.85 C 421.01,174.22 423.27,173.75 424.3,173.27 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 217.18,174.95 C 223.79,171.37 231.38,169.42 238.84,168.74 C 240.36,184.44 239.68,200.24 239.87,216 C 240.05,220.2 239.42,224.5 240.22,228.65 C 242.59,230.56 245.08,232.38 247,234.8 C 243.39,235.66 239.69,235.91 236,235.87 C 229.99,235.81 223.89,236.25 218,234.8 C 219.92,232.38 222.41,230.56 224.78,228.64 C 225.41,227.19 225.1,225.54 225.21,224.02 C 225.17,212.34 225.14,200.67 225.12,189 C 225.12,186.21 225.1,183.09 223.1,180.9 C 221.13,178.91 218.6,177.45 217.18,174.95 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 285.66,275.68 C 293.67,272.15 302.94,271.56 311.39,273.74 C 315.83,274.85 320.65,277.4 321.81,282.22 C 323.37,287.56 323.2,294.77 318.04,298.11 C 311.58,301.99 303.76,300.5 296.64,301.31 C 298.91,306.76 305.27,309.02 307.59,314.39 C 308.69,318.95 309.05,323.72 311.15,328 L 296,328 C 299.26,324.96 300.74,319.14 297.28,315.73 C 291.36,309.96 283.99,305.64 278.98,298.98 C 276.4,293.91 276.79,287.76 278.55,282.48 C 279.65,279.2 282.66,277.11 285.66,275.68 M 294.28,277.26 C 290.26,279.16 286.27,283.14 286.83,287.96 C 286.97,290.69 286.13,294.48 289.21,295.9 C 295.34,296.68 301.6,296.27 307.73,295.76 C 312.41,295.3 313.05,289.7 313.13,285.97 C 313.66,281.94 310.07,278.73 306.7,277.31 C 302.61,276.69 298.37,276.73 294.28,277.26 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 332.86,276.89 C 336.11,274.97 339.75,273.43 343.59,273.45 C 346.23,274.03 345.73,277.58 346.56,279.6 C 350.12,280.11 353.69,280.62 357.24,281.26 C 357.04,287.1 351.79,290.81 349.62,295.9 C 354.28,296.51 359.02,296.51 363.65,297.37 C 366.69,298.04 370.3,299.53 370.98,302.96 C 372.38,308.59 371.66,314.46 372.07,320.2 C 374.93,319.15 377.66,317.63 380.7,317.14 C 382.25,317.8 382.39,319.62 382.91,321.01 C 383.5,323.59 385.02,325.78 386.39,328 L 373.89,328 C 373.88,326.13 371.19,326.15 371.17,328 L 364.34,328 C 362.7,321.79 363.33,315.35 363.02,309.01 C 362.91,306.24 361.89,302.72 358.73,302.16 C 354.02,301.27 348.15,299.45 344.19,303.15 C 339.61,307.03 341.25,313.77 340.87,319.06 C 340.38,322.55 342.51,325.38 344.49,328 L 328.72,328 C 330.02,325.79 331.87,323.66 332,320.99 C 332.59,314.55 331.07,307.47 334.64,301.65 C 338.18,295.97 342.69,290.96 346.21,285.25 C 343.59,284.88 340.68,285.11 338.44,283.48 C 336.04,281.8 334.51,279.24 332.86,276.89 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 449.71,278.72 C 454.65,273.6 462.21,272.61 468.99,272.66 C 474.68,272.94 480.89,272.89 485.81,276.21 C 489.68,278.98 490.48,283.97 492.06,288.14 C 495.23,288.33 498.42,288.42 501.61,288.44 C 501.22,293 503.27,296.89 505.78,300.51 C 501.93,301.07 498.03,300.89 494.16,300.69 C 493.62,298.05 493.12,295.4 492.53,292.78 C 489.06,294.85 486.81,298.76 482.69,299.73 C 476.74,301.82 470.3,300.05 464.33,301.88 C 467.51,306.29 472.78,308.74 475.6,313.42 C 477.27,318.22 476.54,323.66 479.66,328 L 464.66,328 C 466.21,324.95 469.58,321.27 467.16,317.81 C 461.7,310.28 452.13,306.78 447.19,298.79 C 444.24,292.42 444.7,283.94 449.71,278.72 M 463.36,277.48 C 456.6,278.21 454.2,286.12 455.04,291.91 C 455.48,293.56 455.81,296.15 458.04,296.12 C 463.33,296.65 468.69,296.45 474,296.21 C 478.16,296.38 481.53,292.04 481.15,288.04 C 481.23,284.81 481.23,280.77 478.21,278.77 C 473.71,276.3 468.25,276.68 463.36,277.48 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 576.3,281.26 C 579.32,275.63 586.06,273.68 591.98,273.03 C 599.12,272.47 606.88,272.04 613.37,275.6 C 621,279.61 621.86,291.27 616.17,297.22 C 609.71,302.62 600.79,299.79 593.3,301.87 C 597.08,307.1 603.06,310.2 606.86,315.38 C 608.26,316.76 607.33,319.19 605.37,319.26 C 597.03,321.07 588.25,320.27 580.07,322.95 C 581.21,324.64 582.35,326.33 583.52,328 L 567.83,328 C 568.95,326.02 570.15,324.07 570.94,321.92 C 571.49,320.91 571.58,319.19 572.98,318.95 C 579.69,317.29 586.76,317.74 593.46,315.92 C 588.49,309.76 580.99,306.13 576.46,299.57 C 573.25,294.06 573.51,286.88 576.3,281.26 M 591.28,277.26 C 587.26,279.16 583.26,283.14 583.83,287.96 C 583.97,290.69 583.12,294.48 586.21,295.9 C 592.33,296.68 598.6,296.26 604.74,295.76 C 609.41,295.3 610.05,289.71 610.13,285.98 C 610.66,281.95 607.07,278.73 603.7,277.31 C 599.61,276.69 595.37,276.73 591.28,277.26 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 395.12,276.35 C 399.1,274.88 403.27,273.75 407.56,274.14 C 408.26,275.87 408.94,277.62 409.62,279.36 C 411.53,280.16 413.44,280.96 415.34,281.8 C 416.78,286.73 417.02,291.88 417.07,296.98 C 424.04,297.09 430.96,297.83 437.92,298.18 C 438.44,302.19 439.68,306.04 441.7,309.55 C 438.62,309.88 435.41,310.43 432.36,309.6 C 429.21,308.53 429.28,304.66 428.59,301.99 C 424.75,301.51 420.88,301.51 417.03,301.68 C 417.02,308.14 416.8,314.6 416.98,321.05 C 416.97,323.54 418.22,325.76 419.16,328 L 404,328 C 405.38,326.26 407.09,324.44 407,322.06 C 407.18,315.2 407.07,308.33 406.86,301.47 C 402.95,301.12 399.04,300.88 395.12,301.13 C 394.24,303.71 393.6,306.36 392.91,309 C 389.36,310.01 385.55,310.39 382.01,309.12 C 384.36,305.64 385.45,301.61 385.5,297.43 C 392.57,297.28 399.69,297.7 406.72,296.72 C 407.24,292.96 407.23,289.17 406.98,285.4 C 401.34,285.35 397.84,280.66 395.12,276.35 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 525.71,275.66 C 529.17,274.35 532.82,273.55 536.54,273.81 C 536.83,275.73 537.13,277.67 537.49,279.59 C 542.67,280.89 548.13,282.09 552.24,285.75 C 555.47,289.12 560.45,287.89 564.46,289.43 C 566.04,293.06 566.49,297.13 568.68,300.53 C 564.85,301.04 560.97,300.9 557.13,300.68 C 556.61,298.03 556.15,295.36 555.63,292.71 C 553.17,297.08 549.99,300.92 545.79,303.72 C 548.09,305.52 550.99,306.92 552.31,309.67 C 554.3,314.11 553.45,319.1 554.25,323.77 C 555.05,325.32 556.2,326.64 557.29,328 L 541.74,328 C 544.45,323.77 546.38,318.55 544.36,313.61 C 542.94,308.73 536.96,307.09 532.53,308.47 C 527.61,309.88 522.47,311.28 518.3,314.35 C 514.96,318.54 517.83,324.14 520.35,328 L 504.73,328 C 505.79,326.64 506.95,325.32 507.74,323.77 C 508.63,318.82 507.54,313.08 510.94,308.89 C 513.24,306.71 516.23,305.48 518.85,303.74 C 514.91,300.79 509.95,296.84 511.2,291.24 C 512.43,284.9 518.76,282 524.28,280.25 C 524.76,278.72 525.22,277.18 525.71,275.66 M 526.37,285.42 C 521.66,286.47 519.21,292.15 521.77,296.25 C 524.35,300.24 529.81,299.68 533.86,298.95 C 537.63,297.89 541.85,296.55 544.21,293.2 C 546.06,290.76 543.71,287.74 541.72,286.24 C 537.12,283.54 531.33,284.14 526.37,285.42 z" style="opacity:1;fill:#c12237" />
|
||||||
|
<path d="M 609.18,156.39 C 607.04,154.6 611.38,153.88 611.85,155.78 C 611.18,155.93 609.85,156.24 609.18,156.39 z" style="opacity:0.28999999;fill:#854728" />
|
||||||
|
<path d="M 371.17,328 C 371.19,326.15 373.88,326.13 373.89,328 L 371.17,328 z" style="opacity:0.28999999;fill:#854728" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 16 KiB |
26
static/airline-logos/EV.svg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4805.08 526.74">
|
||||||
|
<title>ExpressJet</title>
|
||||||
|
<desc>ExpressJet logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>ExpressJet</Airline:name>
|
||||||
|
<Airline:iataCode>EV</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/EV</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#c2262d" d="M334.4.77h690.36c-2,2.71-3.59,4.94-5.29,7.07q-140.78,176-281.5,352c-13.88,17.39-31.44,26-53.64,25.76s-44.67-.14-67,.05c-3.68,0-5.19-1.17-6.26-4.57a151.17,151.17,0,0,0-21.37-43.23c-5.56-7.72-7.31-8.06-15.79-3.95-1.5.72-2.95,1.53-4.41,2.33-11.73,6.46-11.73,6.46-17.71,17.49-2.73-4.84-5.31-9.41-7.88-14q-12.1-21.56-24.2-43.12c-3.1-5.54-2.86-6.35,2.59-9.26q22.73-12.11,45.44-24.19a28.63,28.63,0,0,1,7.45-2.76q85.38-18.81,170.75-37.66c3.53-.78,5.15-1.63,2.77-5.31-2.08-3.2-3.62-6.76-5.7-10-6.26-9.64-14.57-14.52-26.73-13.93-43.93,2.14-87.9,3.66-131.75,6.87a441.79,441.79,0,0,1-97.12-3.16c-6.75-1-13.54-1.9-20.34-2.28-4.59-.26-7.17-2.34-9.36-6.16-19.7-34.21-39.39-68.44-59.4-102.46-10.55-17.93-19.69-36.72-32.4-53.32C357.38,21.91,348,11.54,336.78,3,336.18,2.56,335.67,2,334.4.77Z"/>
|
||||||
|
<path fill="#c2262d" d="M293.5,19.38a166.29,166.29,0,0,0,21.56,66.94c14.55,25.45,29.25,50.82,43.88,76.23,12,20.92,24,41.89,36.18,62.74a10.64,10.64,0,0,1,.63,10.77q-12.48,27.8-24.58,55.77c-4.68,10.78-11.43,20.28-17.85,30q-19.79,30-39.49,60.12c-1.56,2.39-3.14,3.69-6.31,3.69q-152.23-.15-304.47-.09c-.65,0-1.31-.06-3-.14Z"/>
|
||||||
|
<path fill="#c2262d" d="M487.7,385.36h-109c-.65-1.82,1-2.36,1.71-3.33,1-1.34,2.28-2.41,3.32-3.71a126.78,126.78,0,0,1,38.36-32c9.31-5.11,18.13-11.12,27.1-16.86,2.93-1.87,5.07-1.94,7,1.32q15.69,26.64,31.49,53.22C487.82,384.21,487.7,384.6,487.7,385.36Z"/>
|
||||||
|
<path fill="#8e908f" d="M766.31,385.4c7.72-9.68,14.74-18.49,21.77-27.28q100.5-125.67,201-251.33c23.11-28.87,46.05-57.88,69.65-86.34,10.69-12.88,25.4-19.24,42.19-19.67C1116,.39,1131.14.7,1147.28.7l-22.07,27.43q-85.57,106.25-171.15,212.5-49.69,61.68-99.54,123.24A56.32,56.32,0,0,1,813,385.21C798,386.11,782.77,385.4,766.31,385.4Z"/>
|
||||||
|
<path fill="#233e95" d="M1195,300.67h258c-5.79,20-10.9,39.75-22.52,57-12.54,18.61-30,27.45-52.43,27.44q-145-.12-290,.05c-4.8,0-4.52-1.63-3.37-5.26q47-148.7,93.85-297.46c3.55-11.27,7.32-22.47,10.63-33.8C1197.05,21.5,1226.6,0,1255.35.18c95.32.77,190.66.29,286,.29,6.33,0,6.34,0,4.53,6.11-4.54,15.31-9,30.65-16.89,44.7-12.52,22.21-31,33.82-56.93,33.69-50.83-.26-101.66-.08-152.49-.08-17.34,0-34.67.13-52-.1-3.73,0-5.14,1.22-6.18,4.64-5.5,18.15-11.25,36.22-16.93,54.31-2.16,6.9-2.18,6.9,4.83,6.9h204c6.24,0,6.22,0,4.43,6-4.42,14.83-8.75,29.67-16.2,43.39-12.65,23.3-31.68,35.22-58.65,35-53.83-.36-107.66,0-161.49-.21-4.46,0-6.22,1.26-7.51,5.56C1207.88,260.32,1201.46,280.09,1195,300.67Z"/>
|
||||||
|
<path fill="#233e95" d="M3133.18.47c-6.38,22.47-11.83,44.67-26.7,62.88-10.79,13.2-24.8,20.79-41.85,21.2-23.81.58-47.65.32-71.48.33-45.83,0-91.66.11-137.49-.12-5.32,0-7.72,1.3-9.28,6.61-5.75,19.61-12.09,39-18.39,59.11h217c-6.69,22.56-12.08,45-27.19,63.28-10.73,13-24.57,20.7-41.48,20.84-50.16.41-100.32.28-150.48.36-6.83,0-13.67.16-20.49-.07-3-.09-4.41.88-5.3,3.76-5.94,19.24-11.91,38.47-18.19,57.59-1.42,4.34.07,4.49,3.64,4.48q102.48-.12,205-.06c14.83,0,29.66,0,44.49,0,2.44,0,3.79.19,2.86,3.25-5,16.22-9.33,32.67-17.86,47.54-9.81,17.1-23.33,29.44-43.52,32.67a92.59,92.59,0,0,1-14.42,1q-143.74.09-287.47,0c-5.86,0-5.86,0-4.13-5.51q52-164.89,104-329.76c8.19-25.86,26-41.92,52.37-48.46a38.85,38.85,0,0,1,9.43-.87h296.89Z"/>
|
||||||
|
<path fill="#233e95" d="M2610.59,385.08c-12.32-.29-24.6-.69-36.87-2.34-21.19-2.85-33.67-15-39.64-34.93-5.26-17.59-8.07-35.68-11-53.74-3-18.56-6.1-37.11-9-55.69-.44-2.75-1.69-3.47-4.32-3.46-32.83.07-65.66.12-98.49,0-3.76,0-4.28,2.11-5.09,4.69-10.3,32.69-20.89,65.29-30.85,98.07-7.33,24.11-34.74,48.9-65.32,47.52-9.81-.44-19.67-.24-29.49,0-4.44.12-5.28-.86-3.87-5.29q25.56-80.37,50.77-160.86,26.63-84.48,53.3-168.95c8.43-26.51,26.62-42.73,53.74-48.75,4-.89,8.28-.8,12.43-.8q98-.07,196-.08c15.62,0,30.61,2.27,43.81,11.17,21.93,14.8,30,36.14,27.79,61.75-1.64,18.94-9.56,36.28-14.88,54.26-4.38,14.82-8.47,29.81-16.68,43.17-16.14,26.25-38.45,45.25-67.24,56.33-4.1,1.58-5.12,3.33-4.43,7.49,8.18,48.74,16.16,97.51,24.35,146.25.57,3.39,0,4.4-3.45,4.3C2624.93,384.93,2617.76,385.08,2610.59,385.08Zm-79.8-300.19c-23.83,0-47.66,0-71.49-.06-3.08,0-4.62.66-5.62,3.94q-8.61,28.4-17.86,56.61c-1.42,4.34-.73,5.27,3.81,5.26,45-.15,90-.06,135-.14a87.62,87.62,0,0,0,12.92-1.16c11.69-1.78,20.45-7.7,25.17-18.8a141.28,141.28,0,0,0,9.86-32.39c1.1-6.64-.88-9.59-7.44-11.34a68.56,68.56,0,0,0-17.83-1.92Z"/>
|
||||||
|
<path fill="#233e95" d="M3553.56,385.08c-42.82,0-85.65-.05-128.47.08-4.21,0-5.58-.52-4-5.1,3.9-11.31,7-22.9,11-34.2,9.3-26.68,35.64-45.19,63.86-45.19q85.74,0,171.47,0a132.78,132.78,0,0,0,15.94-.94c13.28-1.61,22.58-8.31,27.45-20.84a200.39,200.39,0,0,0,8.74-28.1c2.1-9.16.17-12.16-8.88-14.34-6.53-1.57-13.21-1.59-19.87-1.6-45.16,0-90.32.4-135.47-.27-41.17-.61-69.4-35.43-62.53-76,3.84-22.74,12.87-44,19.18-66a117.55,117.55,0,0,1,23.52-44.16c21.91-25.82,49-42.68,83-47.33A107.5,107.5,0,0,1,3632.92.5q116-.06,231.95,0c5.79,0,5.81,0,4,5.68-3.55,11.26-7,22.55-10.75,33.74-8.14,24.35-35.7,45.57-63.94,45.19-52.65-.7-105.31-.19-158-.2a106.83,106.83,0,0,0-18.88,1.63c-11.67,2.07-19.53,8.77-23.92,19.6a181,181,0,0,0-9,28.53c-2.07,9.28.06,12.53,9.33,14.53a65.92,65.92,0,0,0,13.89,1.38c46,0,92-.19,138,.15,48.28.36,75.39,40,63.8,85.47a631.32,631.32,0,0,1-21.61,68.5c-16.33,43-65.28,81.06-115.27,80.49C3632.88,384.72,3593.22,385.08,3553.56,385.08Z"/>
|
||||||
|
<path fill="#233e95" d="M3179.23,385.08h-128.5c-5.6,0-5.61,0-3.89-5.46,3.36-10.63,6.67-21.27,10.12-31.86a68.34,68.34,0,0,1,65-47.1q86,0,172,0a90.56,90.56,0,0,0,19.83-1.94c9.59-2.14,16.62-7.52,20.79-16.36a130.53,130.53,0,0,0,10.78-34.16c1.14-6.76-.81-9.62-7.39-11.35-6.16-1.62-12.5-1.89-18.84-1.9-46.33-.08-92.67.31-139-.37-38.55-.56-66-32.36-62.6-70.66,1.26-14.31,6-27.59,10.36-41,5.27-16.28,8.74-33.3,16.58-48.58,21-41,54.13-66.15,100.11-73.35,4.41-.7,9-.5,13.47-.5q116.25,0,232.49,0c5.6,0,5.6,0,3.85,5.58-3.34,10.63-6.78,21.23-10,31.9-7.54,25-35.78,47.54-64.64,47.15-52.66-.72-105.33-.2-158-.21a107.79,107.79,0,0,0-18.88,1.64c-11.48,2-19.32,8.53-23.75,19.14a154.58,154.58,0,0,0-9.43,30.46c-1.55,8.07.32,10.85,8.42,12.87a70.69,70.69,0,0,0,17.35,1.65q66.26,0,132.49,0c19.15,0,36.62,4.61,50.74,18.32,13.74,13.35,19,30,18.83,48.81-.16,15.62-5.6,30-10.35,44.53-5.43,16.59-8.95,33.92-17,49.5-20.82,40.27-53.41,65.08-98.49,72.61-4.89.81-10,.65-15,.66Q3238,385.12,3179.23,385.08Z"/>
|
||||||
|
<path fill="#233e95" d="M1741.65,117.91c11.93-11,23.54-21.72,35.13-32.44q42.71-39.53,85.41-79.06c2.1-1.95,4.1-3.46,7.36-3.45,40,.12,80,.07,120,.1,1.08,0,2.33-.5,3.6,1-3.23,3-6.44,6-9.69,9q-100.64,93.15-201.34,186.21c-2.45,2.26-2.09,3.93-1,6.43q38.73,86,77.36,172.07c3.21,7.13,3.23,7.12-4.34,7.12-31.83,0-63.66-.07-95.49.09-3.76,0-5.44-1.21-6.94-4.61-15.37-34.67-31-69.22-46.37-103.9-1.7-3.84-2.61-3.78-5.54-1.1-24.56,22.48-48.29,45.87-74.11,67-19.82,16.18-41,29.53-66.92,33.8-14.52,2.4-29.17,2.84-43.81,3.13-17.32.33-34.66.08-52,.07-.77,0-1.55-.06-2.4-.1,0-2.13,1.58-2.72,2.59-3.65q99.55-92.1,199.21-184.08c2.58-2.39,2.73-4.13,1.34-7.2q-40.1-88.66-80-177.43c-.55-1.21-1-2.47-1.67-3.62-1.58-2.8-.39-3.28,2.3-3.27,22.65.13,45.3-.16,67.92,1.69C1673.78,3.44,1690,13.1,1701,31.9c11.34,19.47,19.89,40.25,29.23,60.67C1734,100.84,1737.69,109.15,1741.65,117.91Z"/>
|
||||||
|
<path fill="#233e95" d="M2119.26,235c-28.66,0-57.33.07-86-.08-3.57,0-5.19,1-6.28,4.49q-14.82,47.91-30,95.71c-8.33,26-25.9,42.44-52.51,48.92a51.74,51.74,0,0,1-11.41,1c-10.83.13-21.67-.07-32.49.11-3.53.06-4.65-.46-3.42-4.32C1908,346.92,1918.61,313,1929.31,279q36-114.22,72.08-228.42c8.45-26.68,26.5-43.2,53.85-49.27,4.17-.93,8.61-.82,12.93-.82q97.48-.07,195-.08c15.78,0,31,2.15,44.34,11.09,20.56,13.73,28.85,33.63,28.16,57.77-.3,10.42-3.14,20.32-6.35,30.17-5.46,16.76-10.28,33.73-16.1,50.36-11.41,32.56-33.86,55.62-63.78,71.81-17.63,9.53-36.54,13.76-56.67,13.43C2168.25,234.66,2143.75,235,2119.26,235Zm-64.08-84.6c1.45.09,2.28.18,3.1.18q69.24,0,138.48,0a66.68,66.68,0,0,0,15.83-2c8.68-2.14,15.48-6.93,19.48-15.06a133.68,133.68,0,0,0,11.45-35.51c1.15-6.39-.83-9.32-7.14-11.05-6.15-1.68-12.48-2-18.82-2q-67,0-134,0c-9.08,0-7.15-1.8-10,7.31C2067.42,111.38,2061.42,130.58,2055.18,150.36Z"/>
|
||||||
|
<path fill="#8e908f" d="M3690.23,526.65c-5,0-10-.08-15,0-2.64.06-3.59-.5-2.66-3.41,5.36-16.63,10.58-33.31,15.77-50,.66-2.12,2-2.62,4-2.91,17.95-2.55,35.85-5.29,53.42-10,35.83-9.62,60.9-32.24,78.86-63.85,17-30,28.73-62.23,39.14-94.93q32.09-100.87,63.73-201.89c5.81-18.41,11.71-36.8,17.43-55.23,7.26-23.41,34-45.41,60.55-44,8.64.46,17.34.29,26,0,4.33-.15,4.47,1.18,3.32,4.79q-19,59.46-37.67,119c-21,66.33-41.65,132.77-63.17,198.92-13.81,42.46-32.28,82.84-59.18,118.86-24.59,32.92-55.14,58-94.5,71.55-20.3,7-41.27,10.4-62.57,11.89C3708.54,526.08,3699.41,527,3690.23,526.65Z"/>
|
||||||
|
<path fill="#8e908f" d="M4122.72,385H3967.24c-6.07,0-6.11,0-4.32-5.73q34.85-110.49,69.71-221c11.81-37.46,23.48-75,35.44-112.4,7.55-23.63,23.75-38.31,47.7-44.56a36.91,36.91,0,0,1,9.43-.75q146.72,0,293.45-.1c4.6,0,5.65.83,4.22,5.41-3.58,11.46-7,22.94-12.8,33.52-11.75,21.4-29.32,32.55-54.27,32.45-73-.28-146,0-219-.21-4.38,0-6.29,1-7.61,5.41-7.58,25-15.55,49.91-23.37,74.85-1.71,5.45-1.67,5.51,4.12,5.51h215c7.13,0,7.08,0,5.13,6.8-3.68,12.84-8,25.39-15.11,36.83-11.7,18.74-28.67,27.55-50.56,27.54-59,0-118,.07-177-.14-4.82,0-6.49,1.59-7.81,5.9-7.6,24.83-15.46,49.58-23.37,74.32-1.28,4-.89,5.2,3.82,5.19q136-.22,272-.11c6.25,0,6.21,0,4.5,6-4.55,16.1-9.86,31.84-20.64,45.08-10.12,12.41-23.08,19.73-39.19,19.85-42.66.32-85.32.21-128,.27Z"/>
|
||||||
|
<path fill="#8e908f" d="M4651.49.54h148.45c5.79,0,5.94.07,4.09,5.4-4.35,12.53-6.27,26-14.21,37.14-12.74,17.79-29.45,28.61-52,28.63-28.33,0-56.65.1-85-.09-3.88,0-5.44,1.25-6.56,4.83-27.69,88.13-55.61,176.18-83.18,264.34-7.49,24-33.31,45.67-59.55,44.21-6.81-.38-13.67-.26-20.49,0-4.23.17-4.78-1.42-3.62-5,3.85-11.87,7.57-23.79,11.32-35.69q42.1-133.58,84.19-267.16c1.72-5.43,1.71-5.45-3.85-5.45h-124c-5.88,0-6-.06-4-5.71,4.28-12.2,6.24-25.33,13.83-36.22C4469.56,11.7,4486.21.55,4509,.55Q4580.27.52,4651.49.54Z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 9.9 KiB |
30
static/airline-logos/EX.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 169 40">
|
||||||
|
<title>Avianca Express</title>
|
||||||
|
<desc>Avianca Express logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Avianca Express</Airline:name>
|
||||||
|
<Airline:iataCode>EX</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/EX</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_802_9192">
|
||||||
|
<rect width="168.131" height="40" fill="white" transform="translate(0.454071)"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<g clip-path="url(#clip0_802_9192)">
|
||||||
|
<path d="M43.19 4.40874C41.5211 4.40874 40.16 5.73681 40.16 7.36478C40.16 8.99274 41.49 10.3539 43.19 10.3539C44.89 10.3539 46.259 9.01611 46.259 7.36478C46.259 5.71344 44.9114 4.40874 43.19 4.40874Z" fill="#FF0000"/>
|
||||||
|
<path d="M123.798 19.2785C123.798 14.4375 121.229 12.089 115.952 12.089C112.984 12.089 110.283 12.9263 108.149 14.342L109.954 17.8024C111.681 16.7567 113.245 16.2796 114.855 16.2796C116.466 16.2796 118.39 16.7976 118.39 19.2805V19.5453L115.212 19.6563C109.97 19.8335 106.957 22.2034 106.957 26.1662C106.957 30.129 109.641 32.5554 113.473 32.5554C115.597 32.5554 117.397 31.9128 118.964 30.5847C119.352 31.6304 119.862 32.1523 121.171 32.1523H124.244C123.944 31.1377 123.796 29.9771 123.796 28.2518V19.2785H123.798ZM118.392 27.1535C117.523 27.876 116.446 28.244 115.173 28.244C113.37 28.244 112.293 27.3346 112.293 25.8001C112.293 24.8362 112.659 23.5412 115.87 23.4419L118.392 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M40.5261 32.1523H45.8559V30.2595V12.531H40.5261V32.1523Z" fill="#FF0000"/>
|
||||||
|
<path d="M28.9025 32.1523H30.7525L38.9195 12.5291H33.5897L28.848 25.2451L24.1861 12.5291H18.8212L25.9854 30.018C26.5307 31.3714 27.3505 32.1523 28.9045 32.1523H28.9025Z" fill="#FF0000"/>
|
||||||
|
<path d="M86.738 32.1523V19.2045C86.738 13.9545 83.4938 12.089 80.4618 12.089C78.1756 12.089 76.1329 12.8153 73.8721 14.4414L73.8448 14.3401C73.3969 13.1269 72.433 12.531 70.879 12.531H68.8441V32.1542H74.1661V18.6301C75.8856 17.3468 77.3967 16.7256 78.8027 16.7256C80.6001 16.7256 81.4043 17.9349 81.4043 20.6592V32.1523H86.738Z" fill="#FF0000"/>
|
||||||
|
<path d="M105.826 30.5379L104.429 26.7484C103.312 27.3969 101.69 28.1661 99.7871 28.1661C95.834 28.1661 94.4358 24.9491 94.4358 22.1975C94.4358 18.7664 96.7044 16.2777 99.828 16.2777C101.645 16.2777 103.409 16.8736 104.794 17.9154L104.971 13.5281C103.267 12.5758 101.477 12.087 99.2632 12.087C96.4377 12.087 93.8555 13.1328 91.9997 15.0314C90.1303 16.93 89.106 19.5609 89.106 22.441C89.106 25.3211 89.9784 27.7649 91.5499 29.5526C93.2674 31.5194 95.7736 32.5534 98.7764 32.5534C101.594 32.5534 104.408 31.5077 105.828 30.536L105.826 30.5379Z" fill="#FF0000"/>
|
||||||
|
<path d="M65.7731 32.1523C65.4732 31.1377 65.3213 29.9771 65.3213 28.2518V19.2785C65.3213 14.4375 62.7528 12.089 57.4697 12.089C54.5079 12.089 51.8089 12.9263 49.6707 14.342L51.4759 17.8024C53.207 16.7567 54.7688 16.2796 56.3734 16.2796C57.978 16.2796 59.9117 16.7976 59.9117 19.2805V19.5453L56.7336 19.6563C51.4934 19.8335 48.4848 22.2034 48.4848 26.1662C48.4848 30.129 51.1662 32.5554 54.9986 32.5554C57.127 32.5554 58.9185 31.9128 60.4881 30.5847C60.8834 31.6304 61.3877 32.1523 62.7002 32.1523H65.7731ZM59.9156 27.1535C59.051 27.876 57.9663 28.244 56.7025 28.244C54.8954 28.244 53.8185 27.3346 53.8185 25.8001C53.8185 24.8362 54.1846 23.5412 57.3977 23.4419L59.9156 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M17.7404 32.1523C17.4405 31.1377 17.2886 29.9771 17.2886 28.2518V19.2785C17.2886 14.4375 14.7201 12.089 9.43703 12.089C6.47515 12.089 3.77616 12.9263 1.638 14.342L3.44317 17.8024C5.17434 16.7567 6.73609 16.2796 8.34069 16.2796C9.94529 16.2796 11.879 16.7976 11.879 19.2805V19.5453L8.70094 19.6563C3.46264 19.8335 0.454025 22.2034 0.454025 26.1662C0.454025 30.129 3.13549 32.5554 6.96783 32.5554C9.09625 32.5554 10.8878 31.9128 12.4573 30.5847C12.8526 31.6304 13.357 32.1523 14.6695 32.1523H17.7424H17.7404ZM11.8829 27.1535C11.0183 27.876 9.9336 28.244 8.66979 28.244C6.86267 28.244 5.7858 27.3346 5.7858 25.8001C5.7858 24.8362 6.1519 23.5412 9.36498 23.4419L11.8829 23.3679V27.1554V27.1535Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.467 31.2565H158.152C159.68 31.2565 160.358 31.3831 160.784 31.5759C160.13 29.5448 158.068 27.9616 150.8 27.4183C151.961 28.762 153.18 30.0492 154.465 31.2565H154.467Z" fill="#FF0000"/>
|
||||||
|
<path d="M150.801 27.4203C143.747 19.224 138.996 8.73765 137.091 0C137.091 0 133.214 3.4195 132.907 10.611C132.566 18.4704 136.782 26.394 150.666 27.4047C150.711 27.4125 150.758 27.4125 150.801 27.4183V27.4203Z" fill="#FF0000"/>
|
||||||
|
<path d="M154.465 31.2565C148.991 31.2565 139.541 31.2565 139.541 31.2565C139.74 31.72 140.423 32.0452 141.979 32.1367C151.295 32.6897 152.613 40 165.947 40C167.117 40 167.847 39.9299 168.585 39.7916C163.316 38.1715 158.584 35.1258 154.465 31.2546V31.2565Z" fill="#FF0000"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.8 KiB |
18
static/airline-logos/EY.svg
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 32">
|
||||||
|
<title>Etihad Airways logo</title>
|
||||||
|
<path d="M40.0592 2.36262L39.9923 2.29511L39.1214 1.41748L38.1836 2.36262L39.1214 3.30777L40.0592 2.36262Z" fill="#C4921B"/>
|
||||||
|
<path d="M42.0013 2.36262L41.8673 2.29511L40.9964 1.41748L40.0586 2.36262L40.9964 3.30777L42.0013 2.36262Z" fill="#C4921B"/>
|
||||||
|
<path d="M29.0059 2.16034C29.0059 2.36287 29.2068 2.43038 29.3408 2.49789C29.5418 2.5654 29.7427 2.70042 29.7427 2.97046V10.3291H37.8483V10.4641C37.8483 10.5316 37.8483 10.5316 37.8483 10.6667C37.8483 11.2743 38.0492 11.6793 38.3841 11.8143C38.3841 11.8143 38.5851 11.9494 38.8531 11.9494C39.054 11.9494 39.255 11.8819 39.4559 11.7468L39.5899 11.6793L39.4559 11.5443C39.255 11.3418 39.121 10.8017 39.121 10.4641V10.3966H42.1354V3.64557C42.1354 3.64557 41.7335 4.52321 40.2598 5.60338C40.2598 5.60338 40.3268 5.87341 40.5947 6.00844C40.9967 6.21097 40.9297 6.4135 40.9297 6.4135V9.11392H39.054V8.97891V8.84389C39.054 8.16878 38.8531 6.54852 37.0444 6.54852H36.9774C36.4415 6.54852 35.9056 6.54852 35.5037 6.54852H35.3697C34.2979 6.54852 33.762 6.41351 33.561 6.14347L33.494 6.00844L33.427 6.07595C33.2261 6.21097 33.0921 6.48101 33.0921 6.75106C33.0921 7.15612 33.36 7.6962 33.762 7.6962C34.0299 7.6962 34.4319 7.6962 34.8338 7.6962C35.5037 7.6962 36.2405 7.6962 36.2405 7.6962C37.7143 7.6962 37.7812 8.37131 37.7812 8.64135V8.97891H30.9485V0C30.9485 0 30.1447 1.08017 29.0059 1.8903V1.9578V2.16034Z" fill="#C4921B"/>
|
||||||
|
<path d="M24.3167 11.4093C24.3167 11.4093 24.1828 12.4895 26.3934 12.4895C28.202 12.4895 28.269 11.3418 28.269 11.3418V7.15619C28.269 6.88614 28.202 6.14353 27.4652 6.14353H21.1683V5.67095C21.1683 5.53593 21.2353 5.53593 21.3693 5.46842C21.7042 5.26589 21.7712 5.06336 21.7042 4.92834C20.9673 4.52327 20.2305 3.57812 20.2305 3.57812V7.22369H26.5273H26.5943C26.7953 7.22369 27.0632 7.2912 27.0632 7.69626V10.6667C27.0632 10.6667 27.0632 11.2743 26.4603 11.2743C25.4555 11.2743 25.5225 10.7342 25.5225 10.7342V9.11399H20.2305V10.3967H24.3837V11.4093H24.3167Z" fill="#C4921B"/>
|
||||||
|
<path d="M50.6438 2.9707C50.6438 2.63314 50.8448 2.56563 50.9788 2.49812C51.1128 2.43061 51.2467 2.36311 51.3137 2.09307V2.02555C51.3137 1.89053 51.2467 1.89053 51.1128 1.82302C50.9788 1.75551 50.7778 1.62048 50.3759 1.28293C49.706 0.742847 49.572 0.472807 49.572 0.472807L49.3711 0.135254V10.3969H50.6438C50.6438 10.3293 50.6438 3.17323 50.6438 2.9707Z" fill="#C4921B"/>
|
||||||
|
<path d="M46.3555 11.6796L45.4846 12.5572L44.6138 11.6796L45.4846 10.8019L46.3555 11.6796ZM43.475 11.6796L45.5516 13.7724L47.6282 11.6796L46.3555 10.3969L47.8962 8.77661V0.135254C47.8962 0.135254 47.2933 1.41796 46.2885 2.09307V2.16057C46.2885 2.3631 46.4224 2.43061 46.5564 2.49812C46.6904 2.56563 46.8243 2.70065 46.8243 2.9707C46.8243 3.24074 46.8243 8.16902 46.8243 8.16902L45.5516 9.51923L44.2788 8.16902C44.2788 8.10151 44.2788 3.17323 44.2788 2.9707C44.2788 2.63314 44.4128 2.56563 44.5468 2.49812C44.6808 2.43061 44.7477 2.3631 44.8147 2.16057V2.09307C43.8769 1.41796 43.207 0.135254 43.207 0.135254V8.91163L44.7477 10.4644L43.475 11.6796Z" fill="#C4921B"/>
|
||||||
|
<path d="M39.7904 16.2027L40.1253 16.4052C40.1923 16.4727 40.1923 16.4727 40.1923 16.5402V19.2406H34.3644L33.0246 20.9284V16.5402V16.4727L33.0916 16.4052L33.3596 16.2027V15.9326H30.4121V16.2027L30.6801 16.4052L30.747 16.4727V24.5065V24.6415L30.6801 24.709L30.4121 24.9115V25.1816H33.3596V24.9115L33.0246 24.709L32.9577 24.6415V20.9959L33.2926 21.0634L33.6945 20.8609L33.8955 20.7934C33.8955 20.7934 33.9625 20.7934 34.0294 20.7934H40.1253V23.6288L42.3359 21.2659V16.6077L42.4029 16.5402L42.7379 16.4052V16.1351H39.7904V16.2027Z" fill="#C4921B"/>
|
||||||
|
<path d="M71.2748 19.5105C70.9398 18.4304 70.136 17.5527 68.9302 16.8776C67.8584 16.27 66.3177 16 64.241 16H56.2695V16.27L56.6045 16.4726V17.4177H64.1741C65.7148 17.4177 66.8536 17.6203 67.5235 18.0253C68.5953 18.6329 69.1312 19.5105 69.1312 20.5232C69.1312 21.0633 68.9972 21.5359 68.7292 22.0084C68.4613 22.4135 67.9924 22.8186 67.4565 23.0886C66.7196 23.4937 65.5808 23.6962 64.1071 23.6962H60.1548V18.0928H58.0112V24.5063V24.5738L57.9442 24.6414L57.6763 24.7764V25.0464H64.1741C65.4468 25.0464 66.3847 24.9789 67.1216 24.8439C68.0594 24.6414 68.9302 24.3038 69.6001 23.8312C70.3369 23.3587 70.8729 22.7511 71.1408 22.1435C71.3418 21.6709 71.4758 21.1983 71.4758 20.6582C71.4088 20.2532 71.3418 19.8481 71.2748 19.5105Z" fill="#C4921B"/>
|
||||||
|
<path d="M46.8253 17.6201L39.7246 25.0463H43.007V24.7087H42.873H42.7391H42.6051L48.0311 18.9703L46.8253 17.6201Z" fill="#C4921B"/>
|
||||||
|
<path d="M53.9915 24.7764V25.1139H57.2069L48.6325 16L47.3597 17.3502L48.7664 18.8354L50.2402 20.3207H47.7616L46.4219 21.7384L46.6898 21.9409L47.0248 21.7384H47.0918C47.0918 21.7384 47.2257 21.7384 47.2927 21.7384H51.446L54.3264 24.8439C54.3264 24.8439 54.2595 24.9114 54.0585 24.9114H53.9915V24.7764Z" fill="#C4921B"/>
|
||||||
|
<path d="M29.1399 16.4052L29.4078 16.2027V15.9326H26.5273V16.2027L26.7953 16.4052L26.9293 16.5402V24.4389V24.574L26.8623 24.6415L26.5273 24.7765V25.0465H29.4078V24.7765L29.1399 24.6415L29.0729 24.574V16.5402V16.4727L29.1399 16.4052Z" fill="#C4921B"/>
|
||||||
|
<path d="M14.8043 23.2909H14.6703H14.3354L13.9334 23.4934C13.8665 23.561 13.7995 23.5609 13.7325 23.5609H7.23467C5.76094 23.5609 4.62215 23.3584 3.88528 22.9534C2.74649 22.3458 2.21059 21.5356 2.21059 20.388C2.21059 19.9154 2.34457 19.3753 2.67951 18.9702C3.21541 18.1601 4.01926 17.5525 5.22504 17.35C5.55998 17.2825 5.82793 17.2825 6.0289 17.2825H9.37829C9.57925 17.2825 9.57924 17.35 9.57924 17.35L9.51225 17.62H9.7802L11.1869 15.8647H7.16768C6.22985 15.8647 5.493 15.8648 5.02408 15.9323C4.75613 15.9323 4.48818 15.9998 4.28721 16.0673C3.61733 16.2023 3.01443 16.4723 2.41154 16.8099C1.40673 17.35 0.736865 18.0926 0.334939 18.9027C0.133975 19.3753 0 19.9154 0 20.523C0 22.0082 0.803853 23.1559 2.34457 24.0335C3.01445 24.4386 3.8183 24.7086 4.68914 24.8437C5.35902 24.9787 6.22986 24.9787 7.30166 24.9787H13.3306L14.8043 23.2909Z" fill="#C4921B"/>
|
||||||
|
<path d="M11.5213 21.1303L12.928 19.375H3.48275L2.54492 20.7927H11.0524C11.1863 20.7927 11.2533 20.8602 11.2533 20.8602L11.1863 21.1303H11.5213Z" fill="#C4921B"/>
|
||||||
|
<path d="M12.2597 15.9321L10.9199 17.6199L11.1879 17.6874H11.2549L11.6568 17.4849C11.7908 17.4174 11.8578 17.3498 11.9917 17.3498H17.2168V24.4385V24.506L17.1498 24.5735L16.8818 24.776V25.0461H19.8293V24.776L19.5613 24.5735L19.4943 24.506V24.4385V17.3498H24.1165C24.3175 17.3498 24.3175 17.4174 24.3175 17.4174V17.6874H24.5854L25.9922 15.9321H12.2597Z" fill="#C4921B"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.3 KiB |
40
static/airline-logos/F9.svg
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 185 36">
|
||||||
|
<title>Frontier Airlines</title>
|
||||||
|
<desc>Frontier Airlines logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Frontier Airlines</Airline:name>
|
||||||
|
<Airline:iataCode>F9</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/F9</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#006643" d="M28.46 0.44h-19.03c-2.22 0-3.31 1.01-4.07 3.94l-.92 3.44c-.03.1.07.17.17.1 0 0 1.1-.74 2.98-.74h16.12c2.02 0 3.52-1.75 3.93-3.27l.92-3.37c0-.03-.03-.1-.1-.1z"/>
|
||||||
|
<path fill="#006643" d="M25.28 8.97h-18.17c-2.19 0-3.15.84-4.07 3.94l-.92 3.41c-.04.1.07.17.17.1 0 0 1.16-.74 3.04-.74h14.8c2.32 0 3.92-1.79 4.64-4.42l.62-2.22c.03-.04-.04-.07-.1-.07z"/>
|
||||||
|
<path fill="#006643" d="M13.09 17.5h-8.3c-2.16 0-3.25.94-4 3.7l-.79 2.94c0 .07.03.1.1.1h7.93c2.02 0 3.69-1.24 4.44-3.98l.72-2.66c0-.03-.04-.1-.1-.1z"/>
|
||||||
|
<path fill="#006643" d="M38.92 11.87c3 0 4.95-1.25 4.95-3.3 0-.65-.2-1.15-.61-1.59-.55-.54-1.54-.8-2.98-.8h-3.62l-1.57 5.69zm-7.42-11.43h9.1c4.02 0 6.69.88 8.3 2.5a6.64 6.64 0 0 1 1.84 4.85c0 3.98-2.32 7.11-7.24 8.43l3.72 8.02h-7.38l-3.21-7.21h-2.97l-1.95 7.21h-6.66z"/>
|
||||||
|
<path fill="#006643" d="M71 11.2c0-3.04-1.84-5.27-5.26-5.27-4.2 0-6.97 4.05-6.97 7.6 0 3.03 1.84 5.25 5.26 5.25 4.24 0 6.97-4.04 6.97-7.59zM51.94 14c0-7.26 5.98-14 14.35-14 6.86 0 11.51 4.62 11.51 10.69 0 7.25-5.98 14-14.38 14-6.8 0-11.48-4.63-11.48-10.7z"/>
|
||||||
|
<path fill="#006643" d="M83.75 0.44H90l6.22 13.22 3.62-13.22h6.66l-6.49 23.8h-5.84l-6.53-13.69-3.72 13.7h-6.67z"/>
|
||||||
|
<path fill="#006643" d="M115.08 6.24h-7.24l1.57-5.77h21.11L129 6.24h-7.25l-4.88 18h-6.74z"/>
|
||||||
|
<path fill="#006643" d="M133.46 0.44h6.7l-6.5 23.8h-6.7z"/>
|
||||||
|
<path fill="#006643" d="M143.1 0.44h19.34l-1.54 5.6h-12.68l-.99 3.6h11.52l-1.4 5.2h-11.52l-1.02 3.77h12.88l-1.5 5.6h-19.52z"/>
|
||||||
|
<path fill="#006643" d="M172.75 11.87c3.01 0 4.96-1.25 4.96-3.3 0-.65-.2-1.15-.62-1.59-.54-.54-1.53-.8-2.97-.8h-3.62l-1.57 5.69zm-7.41-11.43h9.09c4.03 0 6.7.88 8.3 2.5a6.64 6.64 0 0 1 1.85 4.85c0 3.98-2.33 7.11-7.25 8.43l3.76 8.02h-7.38l-3.21-7.21h-2.97l-1.98 7.21h-6.67z"/>
|
||||||
|
<path fill="#006643" d="M0 27.51h.85v6.61h4.2v.78H0z"/>
|
||||||
|
<path fill="#006643" d="M12.57 31.22c0-1.68-1.23-3.06-2.93-3.06-1.71 0-2.9 1.34-2.9 3.03v.03a2.93 2.93 0 0 0 2.93 3.04 2.94 2.94 0 0 0 2.9-3.04zm-6.73 0a3.77 3.77 0 0 1 3.83-3.84c2.25 0 3.8 1.75 3.8 3.78v.03a3.76 3.76 0 0 1-3.83 3.81 3.72 3.72 0 0 1-3.8-3.78z"/>
|
||||||
|
<path fill="#006643" d="M14.28 27.51h.92l2.12 6.14 2.05-6.17h.69l2.05 6.17 2.12-6.14h.88l-2.66 7.42h-.72l-2.05-5.97-2.05 5.97h-.72z"/>
|
||||||
|
<path fill="#006643" d="M29.56 27.51h5.33v.78h-4.5v2.63h4.02v.74h-4.03v3.2h-.85v-7.35z"/>
|
||||||
|
<path fill="#006643" d="M40.83 32.17l-1.7-3.75-1.72 3.75zm-2.08-4.72h.78l3.42 7.42h-.92l-.9-1.96h-4.06l-.89 1.96h-.85z"/>
|
||||||
|
<path fill="#006643" d="M47.53 31.26c1.13 0 1.91-.58 1.91-1.52v-.03c0-.91-.72-1.45-1.91-1.45h-2.3v3zm-3.11-3.75h3.21c.92 0 1.64.27 2.12.75a2 2 0 0 1 .58 1.45v.03c0 1.21-.85 1.92-2.02 2.16l2.3 3h-1.03l-2.15-2.87h-2.12v2.87h-.9z"/>
|
||||||
|
<path fill="#006643" d="M52.1 27.51h5.4v.75h-4.54v2.53h4.07v.74h-4.07v2.56h4.61v.74h-5.43v-7.32z"/>
|
||||||
|
<path fill="#006643" d="M58.77 33.79l.51-.61c.79.7 1.54 1.04 2.56 1.04 1 0 1.68-.53 1.68-1.24v-.04c0-.67-.38-1.08-1.95-1.38-1.7-.37-2.5-.91-2.5-2.12v-.04c0-1.14 1.03-2.02 2.47-2.02 1.09 0 1.88.3 2.63.91l-.48.64c-.68-.57-1.4-.8-2.15-.8-.96 0-1.57.53-1.57 1.17v.04c0 .7.37 1.07 2.01 1.41 1.68.37 2.43.95 2.43 2.1v.03c0 1.24-1.06 2.09-2.57 2.09-1.2 0-2.18-.37-3.07-1.18z"/>
|
||||||
|
<path fill="#006643" d="M70.11 28.29v5.83h1.75c1.88 0 3.07-1.24 3.07-2.9v-.03c0-1.62-1.2-2.9-3.07-2.9zm-.82-.78h2.6c2.36 0 3.96 1.59 3.96 3.68v.03c0 2.06-1.6 3.68-3.96 3.68h-2.6z"/>
|
||||||
|
<path fill="#006643" d="M84.02 31.22c0-1.68-1.23-3.06-2.94-3.06-1.7 0-2.9 1.34-2.9 3.03v.03a2.93 2.93 0 0 0 2.94 3.04 2.94 2.94 0 0 0 2.9-3.04zm-6.73 0a3.77 3.77 0 0 1 3.83-3.84c2.25 0 3.79 1.75 3.79 3.78v.03a3.76 3.76 0 0 1-3.83 3.81 3.72 3.72 0 0 1-3.8-3.78z"/>
|
||||||
|
<path fill="#006643" d="M86.68 27.51h.8l4.7 5.9v-5.9h.83v7.36h-.69l-4.81-6.04v6.04h-.83z"/>
|
||||||
|
<path fill="#006643" d="M95.09 27.51h5.4v.75h-4.55v2.53h4.07v.74h-4.07v2.56h4.62v.74h-5.44v-7.32z"/>
|
||||||
|
<path fill="#006643" d="M108.59 31.26c1.12 0 1.91-.58 1.91-1.52v-.03c0-.91-.72-1.45-1.91-1.45h-2.33v3zm-3.15-3.75h3.22c.92 0 1.64.27 2.11.75a2 2 0 0 1 .58 1.45v.03c0 1.21-.85 1.92-2.01 2.16l2.29 3h-1.03l-2.15-2.87h-2.19v2.87h-.85V27.5z"/>
|
||||||
|
<path fill="#006643" d="M113.23 27.51h.86v7.36h-.86z"/>
|
||||||
|
<path fill="#006643" d="M115.93 31.22c0-2.05 1.5-3.84 3.76-3.84 1.27 0 2.05.37 2.77.98l-.55.64a3.17 3.17 0 0 0-2.25-.84c-1.64 0-2.84 1.38-2.84 3.03v.03c0 1.76 1.13 3.07 2.94 3.07.85 0 1.64-.34 2.15-.74V31.7h-2.25v-.75h3.07v2.94a4.56 4.56 0 0 1-3 1.11 3.62 3.62 0 0 1-3.8-3.78z"/>
|
||||||
|
<path fill="#006643" d="M124.61 27.51h.86v3.28h4.3V27.5h.86v7.36h-.86v-3.3h-4.3v3.3h-.86z"/>
|
||||||
|
<path fill="#006643" d="M134.7 28.29h-2.5v-.78h5.84v.78h-2.5v6.6h-.85z"/>
|
||||||
|
<path fill="#006643" d="M138.9 27.85h-.07v-.1h.06c.04 0 .07.03.07.07 0 .03-.03.07-.07.07zm-.21.24h.1v-.14h.07l.1.14h.1l-.1-.14c.07-.03.1-.06.1-.13 0-.1-.06-.14-.17-.14h-.2zm.17.13c-.2 0-.34-.13-.34-.33 0-.17.13-.34.34-.34.2 0 .34.13.34.34 0 .2-.14.33-.34.33zm0 .04c.2 0 .38-.17.38-.37a.38.38 0 0 0-.76 0c0 .2.17.37.38.37z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 5.1 KiB |
13
static/airline-logos/FI.svg
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 391 76">
|
||||||
|
<title>Icelandair</title>
|
||||||
|
<desc>Icelandair logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Icelandair</Airline:name>
|
||||||
|
<Airline:iataCode>FI</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/FI</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path clip-rule="evenodd" d="M300.78 76L367.749 0V0.00190041H390.08L366.472 76H300.78ZM339.401 61.8469C341.308 61.8735 342.6 61.6759 342.6 61.6759C342.6 61.6759 344.7 57.3762 345.021 56.639C341.194 56.8974 337.735 57.5434 335.816 58.7689C335.392 59.0444 335.063 59.3598 334.911 59.7702C334.708 60.3212 335.282 61.0527 335.96 61.3149C336.737 61.6208 337.774 61.826 339.401 61.8469ZM352.015 54.7029C357.42 55.2064 360.16 54.9765 362.93 51.7047L362.927 51.7028C365.024 49.0257 366.915 44.8723 366.915 44.8723C366.915 44.8723 366.231 45.676 363.575 46.2403C362.467 46.4759 361.296 46.4607 360.384 46.4075C359.223 46.3402 358.218 46.1267 357.067 45.8822C355.748 45.6022 354.238 45.2814 352.081 45.0927C346.6 44.6063 342.479 46.1871 339.906 47.8819C339.796 47.9625 339.694 48.0307 339.596 48.0958C339.134 48.4022 338.772 48.6425 338.211 49.8066C337.605 51.1674 337.027 52.4159 336.489 53.5793C335.959 54.7257 335.467 55.7895 335.023 56.7967C334.742 57.418 334.653 57.8512 334.653 57.8512C334.67 57.8321 334.691 57.808 334.715 57.7794C335.329 57.0617 338.38 53.497 352.015 54.7029ZM361.944 44.2054C364.158 44.1351 365.286 43.6335 366.164 43.1262H366.166C367.285 42.4859 368.266 41.5036 369.615 39.3015C370.258 38.0974 371.428 35.6571 372.111 34.2327C372.33 33.7758 372.499 33.4235 372.584 33.25C372.584 33.25 370.641 35.2032 364.772 35.2279C362.902 35.2053 361.436 34.9142 359.897 34.6085C358.201 34.2718 356.417 33.9175 353.905 33.8846C348.584 33.82 344.54 35.6193 343.326 38.1007C342.595 39.7404 339.764 46.1054 339.764 46.1054C339.764 46.1054 341.502 44.5987 344.29 43.7152C348.116 42.5049 351.681 42.7291 355.344 43.3143C356.144 43.4438 356.837 43.5816 357.48 43.7095C358.997 44.0114 360.233 44.2575 361.944 44.2054ZM29.7978 39.4801C32.758 39.4801 35.8759 40.6942 37.6904 43.0635C37.7132 43.0939 42.2314 37.9335 42.2314 37.9335C39.0622 34.7149 34.5478 32.5679 29.7959 32.5679C20.8317 32.5679 14.1342 39.254 14.1342 47.5C14.1342 55.746 20.8317 62.4321 29.7959 62.4321C34.677 62.4321 39.0071 60.2756 42.1763 56.9924C42.1763 56.9924 37.755 51.946 37.736 51.9726C36.0184 54.397 33.0335 55.5199 29.7959 55.5199C24.9813 55.5199 21.9451 51.9004 21.9451 47.4715C21.9451 43.0426 24.9813 39.4801 29.7959 39.4801H29.7978ZM8.8103 33.2593H0V61.7403H8.8103V33.2593ZM79.8191 33.2593H88.4356V55.0181H102.142V61.7403H79.8191V33.2593ZM168.959 49.1281L154.708 33.2593H145.164V61.7403H152.857V42.8486L152.979 42.7175L169.864 61.7403H176.639V33.2593H168.959V49.1281ZM263.27 33.2593H254.608V61.7403H263.27V33.2593ZM289.115 33.2593C295.416 33.2593 300.202 36.324 300.202 42.2463V42.2482C300.202 46.8804 297.909 49.434 294.025 50.9274L300.77 61.7403H291.642L285.564 51.5297H278.578V61.7403H269.924V33.2593H289.115ZM278.578 46.0558H287.696L287.698 46.0539C290.407 46.0539 292.051 44.7619 292.051 42.5028C292.051 40.5306 291.036 38.8529 287.248 38.8529H278.578V46.0558ZM198.17 33.2593H183.291V61.7403H198.345C209.15 61.7403 214.248 55.5957 214.248 47.4827C214.248 38.6629 208.707 33.2593 198.17 33.2593ZM197.104 55.4513H191.921V39.4419H197.104C202.884 39.4419 205.428 41.8872 205.428 47.4808C205.428 52.6982 203.372 55.4494 197.104 55.4494V55.4513ZM215.386 61.7403L228.184 33.2593H237.945L250.806 61.7403H242.683L240.24 56.274H225.977L223.497 61.7403H215.386ZM233.103 39.3754L228.42 50.8058H237.785L233.103 39.3754ZM118.741 33.2593L105.942 61.7403H114.053L116.533 56.274H130.796L133.239 61.7403H141.362L128.501 33.2593H118.741ZM118.976 50.8058L123.66 39.3754L128.341 50.8058H118.976ZM68.8883 50.2339H55.4971V55.7154H73.739V61.7403H46.9224V33.2593H73.6383V39.1588H55.4971V44.3686H68.8883V50.2339Z" fill="#001A70" fill-rule="evenodd"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.0 KiB |
70
static/airline-logos/FJ.svg
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 49">
|
||||||
|
<title>Fiji Airways logo</title>
|
||||||
|
<g fill="#2c1e16">
|
||||||
|
<path d="m25.2981,25.14461c0.10634,-0.15882 0.20285,-0.32495 0.30916,-0.48378c0.06453,-0.09811 0.13458,-0.19494 0.2051,-0.28768c0.06969,-0.09282 0.17217,-0.18264 0.2112,-0.29278c0.01215,-0.0271 0.00879,-0.02579 -0.01292,-0.05274c-0.03423,-0.04907 -0.04813,-0.10029 -0.07763,-0.14813c-0.03732,-0.06868 -0.07998,-0.13142 -0.12757,-0.19297c-0.14269,-0.19514 -0.46814,-0.72934 -0.73817,-1.12876c-0.26689,-0.39827 -0.64622,-1.01396 -0.94211,-1.41246c0,0 -0.11368,0.18637 -0.33543,0.55952c-0.21784,0.37438 -0.55839,0.8843 -0.76161,1.16896c-0.15183,0.22482 -0.39246,0.53909 -0.81127,1.09435c0.18264,0.26971 0.52282,0.97051 0.8187,1.39563c0.29181,0.42554 0.77036,1.09375 1.09026,1.53877c0.15888,-0.19595 0.26724,-0.32394 0.35371,-0.46843c0.0926,-0.1407 0.24942,-0.32313 0.32372,-0.46632c0.07995,-0.14348 0.1999,-0.32764 0.42156,-0.71781c0.01953,-0.03773 0.04839,-0.07137 0.07325,-0.10539"/>
|
||||||
|
<path d="m24.1924,33.74076c0.08875,-0.20476 0.19982,-0.81451 0.2749,-1.17932c0.07288,-0.36743 0.09642,-0.8304 0.14824,-1.22311c0.05495,-0.39157 -0.01629,-1.05346 -0.06143,-1.34614c-0.04726,-0.29609 -0.13651,-0.6089 -0.23101,-0.83756c-0.09482,-0.23353 -0.20195,-0.4472 -0.36049,-0.60107c-0.06104,0.1573 -0.07717,0.25496 -0.12022,0.38247c-0.05231,0.14998 -0.06817,0.27994 -0.1285,0.43811c-0.05835,0.15429 -0.16287,0.52368 -0.20115,0.60806c-0.06235,0.12733 -0.07007,0.24756 -0.13207,0.48616c-0.05858,0.23651 -0.09041,0.64874 -0.10044,0.75906c-0.00864,0.11292 0.11078,0.85651 0.14422,1.13604c0.03955,0.28331 0.1761,0.89144 0.25736,1.13258c0.08062,0.2395 0.25164,0.61054 0.30267,0.74978c0.11938,-0.1165 0.11939,-0.30272 0.20791,-0.50506"/>
|
||||||
|
<path d="m20.84179,31.70438c0.09774,-0.12652 0.3953,-0.52672 0.66393,-0.81267c0.27014,-0.28498 0.38636,-0.59684 0.48288,-0.88713c0.09999,-0.29319 0.22612,-0.82909 0.25047,-1.11464c0.0266,-0.29263 -0.01592,-0.41901 -0.02443,-0.52055c-0.01855,-0.18628 -0.04246,-0.23359 -0.12102,-0.14966c-0.04915,0.0439 -0.28337,0.31523 -0.46812,0.5298c-0.18389,0.21383 -0.47992,0.64155 -0.58384,0.88926c-0.10742,0.25061 -0.28193,0.67164 -0.34001,0.97349c-0.0626,0.29821 -0.12436,0.74724 -0.1394,0.87726c-0.01424,0.13008 0,0.32803 0.01695,0.46987c0.09105,-0.03527 0.16987,-0.13046 0.2626,-0.25505"/>
|
||||||
|
<path d="m18.93689,29.62816c0.22204,-0.14587 0.51597,-0.29329 0.91071,-0.70721c0.39368,-0.41161 0.54022,-0.66671 0.75875,-1.0402c0.21778,-0.37358 0.26537,-0.57803 0.38856,-0.78933c0.12036,-0.2156 0.13009,-0.26066 0.02935,-0.24321c-0.14288,0.02892 -0.1687,0.02901 -0.54104,0.24989c-0.3674,0.21971 -0.78168,0.68024 -0.95465,0.84505c-0.17698,0.16449 -0.5829,0.79022 -0.68822,0.99104c-0.10153,0.19473 -0.38047,0.7804 -0.47767,0.9094c-0.0992,0.13366 0.01906,0.10086 0.19684,-0.00146c0.10735,-0.07248 0.14893,-0.06868 0.37735,-0.21398"/>
|
||||||
|
<path d="m17.50395,27.37482c-0.40216,0.09647 -0.95576,0.06788 -1.26836,0.05722c0.10043,-0.13837 0.47198,-0.41255 0.77398,-0.63982c0.30613,-0.22851 0.75676,-0.3794 0.91128,-0.45647c0.15466,-0.07862 0.39685,-0.19771 0.58086,-0.23577c0.18382,-0.04456 0.19968,-0.07697 0.36209,-0.10817c0.18948,-0.03596 0.33325,-0.02131 0.6087,-0.07202c0.15191,-0.03054 0.22757,-0.02044 0.40841,0.02985c0.05908,0.01507 0.08446,0.04632 0.03698,0.0985c-0.03326,0.03809 -0.08757,0.06782 -0.13133,0.09689c-0.03031,0.02304 -0.05894,0.04543 -0.09441,0.07202c-0.06795,0.04705 -0.12136,0.10265 -0.19392,0.14683c-0.06752,0.04223 -0.13483,0.08204 -0.20076,0.12444c-0.17867,0.12079 -0.35731,0.24159 -0.53188,0.3708c-0.40605,0.29926 -0.86505,0.41796 -1.26167,0.51571"/>
|
||||||
|
<path d="m19.78696,23.90091c-0.13497,-0.10253 -0.4878,-0.17652 -0.70699,-0.22144c-0.23955,-0.0516 -0.59165,-0.1336 -0.83948,-0.12951c-0.24463,0.00436 -0.59208,-0.01352 -0.88758,-0.03474c-0.29111,-0.01677 -0.71621,0.02197 -1.07898,0.1196c-0.36609,0.09892 -0.77543,0.21242 -1.02727,0.3137c-0.17217,0.06737 -0.35446,0.12172 -0.5986,0.23577c-0.12989,0.06316 -0.29182,0.06215 -0.4762,0.16631c-0.18608,0.1048 -0.1711,0.13518 -0.11557,0.14506c0.05217,0.01119 0.26237,0.09319 0.41121,0.10509c0.20504,0.01462 0.65218,0.13261 1.15738,0.17052c0.50796,0.04294 1.03281,0.0334 1.46534,0.01949c0.43811,-0.01334 0.94836,-0.05725 1.62536,-0.29559c0.22221,-0.12086 0.30869,-0.08802 0.5444,-0.17139c0.24056,-0.08375 0.36871,-0.14547 0.75596,-0.25535c-0.11499,-0.08304 -0.0947,-0.06666 -0.22902,-0.16757"/>
|
||||||
|
<path d="m24.26311,18.36593c0.04558,-0.11116 0.08046,-0.20231 0.10241,-0.44374c0.01998,-0.21986 0.07966,-0.46834 0.09717,-0.68763c0.01629,-0.21455 0.08111,-0.63507 0.08315,-0.83482c0.00349,-0.31325 0.00769,-0.41283 0.00224,-0.61c-0.00885,-0.23055 -0.03022,-1.00635 -0.15103,-1.48649c-0.11593,-0.48049 -0.12799,-0.73793 -0.43247,-1.17512c-0.29052,0.31376 -0.35744,0.91708 -0.40135,1.2138c-0.04237,0.29761 -0.08201,0.79541 -0.09549,1.2988c-0.02313,0.69761 0.04616,1.53176 0.1283,1.86087c0.07929,0.33367 0.24144,1.0062 0.31663,1.12831c0.12457,0.19028 0.12412,0.15073 0.25163,-0.05454c0,0 0.04395,-0.07578 0.09881,-0.20944"/>
|
||||||
|
<path d="m25.58268,19.316c-0.02727,-0.046 -0.05117,-0.19085 -0.05054,-0.27785c-0.00377,-0.13577 -0.03045,-0.13497 0.03322,-0.36538c0.06527,-0.23024 0.18083,-0.77437 0.2645,-1.02068c0.08307,-0.24878 0.29363,-0.71169 0.49632,-0.90207c0.20257,-0.18873 0.62281,-0.75029 0.94979,-1.01319c0,0 -0.14789,1.01513 -0.27689,1.40569c-0.11841,0.37131 -0.23927,0.70775 -0.44496,1.17031c-0.21217,0.46276 -0.57687,0.83025 -0.82101,1.03295c-0.08662,0.03083 -0.12245,0.01708 -0.15044,-0.02979"/>
|
||||||
|
<path d="m27.43516,20.50105c0.25388,-0.1059 0.62057,-0.39742 0.93955,-0.65221c0.31855,-0.25881 0.41252,-0.38811 0.60609,-0.62848c0.19187,-0.23968 0.34858,-0.64221 0.44078,-0.8144c0.09507,-0.17677 0.24071,-0.35134 0.03255,-0.26063c-0.21361,0.08862 -0.22065,0.12184 -0.5342,0.26341c-0.31623,0.13571 -0.26151,0.11005 -0.85086,0.60785c-0.5933,0.49664 -0.94778,1.15926 -1.06314,1.5857c0,0 0.17846,0.00576 0.4292,-0.10125"/>
|
||||||
|
<path d="m28.98408,21.80698c0.24769,-0.07342 0.66424,-0.3725 1.07663,-0.67922c0.40985,-0.30534 0.62442,-0.61713 0.95481,-1.05951c-0.12996,0.01078 -0.34686,0.03782 -0.62134,0.10474c-0.27439,0.06536 -0.42926,0.13751 -0.66461,0.25237c-0.2335,0.11259 -0.34748,0.2224 -0.65145,0.34707c-0.25787,0.1144 -0.48602,0.28311 -0.70567,0.45578c-0.09748,0.07901 -0.19372,0.14443 -0.2645,0.24923c-0.06476,0.10052 -0.11454,0.24031 -0.16477,0.3494c-0.03233,0.06316 -0.06016,0.13882 -0.06887,0.20813c-0.01251,0.10208 0.08874,0.07014 0.15924,0.05719c0.1022,-0.0157 0.20146,-0.05259 0.29834,-0.08086c0.15984,-0.04674 0.41153,-0.12864 0.65218,-0.20431"/>
|
||||||
|
<path d="m34.15273,23.83225c-0.06047,-0.06193 -0.16307,-0.14783 -0.42308,-0.24079c-0.26565,-0.09268 -0.74243,-0.20374 -1.01251,-0.27421c-0.27263,-0.07799 -0.55507,-0.11011 -0.86638,-0.13518c-0.31422,-0.02857 -0.48879,-0.03236 -0.91383,-0.05647c-0.23237,-0.01546 -0.64725,0.02582 -1.01007,0.12422c-0.36434,0.09745 -1.3792,0.47841 -1.61889,0.55254c-0.24632,0.07594 -0.07043,0.18948 -0.00829,0.25962c0.06098,0.07405 0.33294,0.15924 0.4438,0.18142c0.10875,0.01875 0.27661,0.07835 0.50682,0.11781c0.23012,0.04027 0.83678,0.10588 1.55605,0.10355c0.71757,-0.01053 1.20832,-0.02639 1.80119,-0.08372c0.59285,-0.05736 1.24414,-0.26096 1.67953,-0.41244c0,0 -0.06782,-0.07867 -0.13433,-0.13634"/>
|
||||||
|
<path d="m32.16772,26.842c-0.136,-0.10026 -0.55544,-0.31006 -0.83682,-0.43399c-0.27987,-0.12217 -0.70013,-0.35868 -1.08802,-0.49873c-0.38763,-0.14323 -0.76862,-0.11984 -0.99313,-0.12414c-0.2205,-0.00391 -0.43437,-0.02818 -0.68081,0.03164c0,0 0.02443,0.12154 0.20431,0.262c0.17958,0.14369 0.78102,0.4265 1.069,0.55744c0.28303,0.13217 0.74963,0.28418 1.20237,0.36728c0.44816,0.08023 0.92334,0.08474 1.32857,0.0611c0,0 -0.07154,-0.11775 -0.20549,-0.22261"/>
|
||||||
|
<path d="m29.94664,29.69494c-0.18999,-0.29538 -0.3847,-0.6186 -0.79478,-1.04686c-0.40587,-0.43023 -0.83832,-0.75411 -1.0813,-0.91001c-0.24123,-0.15736 -0.44291,-0.23535 -0.63232,-0.37752c-0.19204,-0.13999 -0.15075,-0.00886 0.08126,0.38304c0.23207,0.3911 0.59795,1.03942 0.73083,1.2095c0.13389,0.16775 0.39407,0.34698 0.65873,0.50401c0.26934,0.15832 0.56853,0.3169 0.7002,0.42883c0.13193,0.10954 0.40129,0.24123 0.54292,0.29684c-0.0244,-0.13928 -0.06422,-0.25976 -0.20555,-0.48783"/>
|
||||||
|
<path d="m27.26273,30.71639c-0.05826,-0.47685 -0.29534,-0.93693 -0.47265,-1.13202c-0.18069,-0.19377 -0.08954,-0.12339 -0.30598,-0.41152c-0.21806,-0.28827 -0.47367,-0.63314 -0.71527,-0.8663c-0.14295,-0.13874 -0.16534,-0.19398 -0.16055,-0.04277c0,0 0.00386,0.29457 0.01521,0.39151c0.03088,0.2898 0.08426,0.74041 0.38593,1.50944c0.30737,0.76879 0.80338,1.44906 1.27973,1.99053c0.11607,-0.35463 0.02369,-0.96114 -0.0264,-1.43888"/>
|
||||||
|
<path d="m20.14727,22.02351c-0.18571,-0.11199 -0.56765,-0.3797 -0.9887,-0.71379c-0.41777,-0.33462 -0.69316,-0.34677 -0.98346,-0.4433c-0.28891,-0.09396 -1.03011,-0.22258 -1.10011,-0.25072c-0.08193,-0.03003 -0.07166,-0.03635 -0.22953,-0.06438c-0.10053,-0.01155 -0.13061,-0.02639 -0.31464,0.00283c0,0 0.06345,0.10895 0.10284,0.15447c0.04398,0.0483 0.16594,0.22305 0.31005,0.33125c0.23478,0.1841 0.52462,0.32982 0.83273,0.54965c0.31262,0.22351 0.71716,0.34892 1.20886,0.49121c0.49204,0.13823 0.95888,0.16372 1.31554,0.1953c0.29518,-0.01024 0.03198,-0.13891 -0.15357,-0.25254"/>
|
||||||
|
<path d="m21.18825,20.77792c-0.01847,-0.09841 -0.10154,-0.33734 -0.26733,-0.68615c-0.17,-0.34674 -0.38516,-0.63152 -0.5923,-0.84461c-0.207,-0.21469 -0.28535,-0.30164 -0.35343,-0.37716c-0.06343,-0.07426 -0.25315,-0.22129 -0.34838,-0.28234c-0.09513,-0.06187 -0.32781,-0.26923 -0.57783,-0.37417c-0.25862,-0.10823 -0.35114,-0.18106 -0.71016,-0.31935c-0.35443,-0.13614 -0.27744,-0.00749 -0.21253,0.121c0.07035,0.13046 0.25474,0.51401 0.448,0.87096c0.20007,0.35278 0.29205,0.44975 0.48312,0.65334c0.18716,0.21126 0.47448,0.42038 0.71235,0.59681c0.23563,0.17458 0.50186,0.30514 0.68879,0.40361c0.18429,0.10139 0.51367,0.30862 0.74901,0.41552c0,0 -0.01467,-0.14885 -0.01933,-0.17748"/>
|
||||||
|
<path d="m22.07688,19.11261c-0.01388,-0.21971 -0.06173,-0.44736 -0.09601,-0.63749c-0.02807,-0.16133 -0.08128,-0.27663 -0.14704,-0.48414c-0.05341,-0.17494 -0.17618,-0.32313 -0.24697,-0.49321c-0.07037,-0.16602 -0.29934,-0.5826 -0.53546,-0.89344c-0.23237,-0.30811 -0.39292,-0.55487 -0.66185,-0.82436c0,0 -0.02291,0.05677 0.00508,0.21894c0.03156,0.1584 0.10387,0.53338 0.20817,0.88469c0.10656,0.34424 0.2528,0.76623 0.4548,1.20452c0.20387,0.4353 0.61525,1.05309 1.00802,1.46765c0,0 0.02753,-0.2232 0.01127,-0.44309"/>
|
||||||
|
<path d="m88.5714,3.0826l-30.51468,0.04821l0.06407,43.20816l4.15541,-2.05899l-0.05759,-36.99466l24.30975,-0.04098c0.00024,-0.00239 2.04301,-4.16173 2.04301,-4.16173"/>
|
||||||
|
<path d="m88.58842,13.14915l-2.07359,-4.15674l-22.5456,0.03883l0.06022,35.2456l4.15486,2.05096l-0.01489,-15.5757l16.6583,-0.02728l-2.07246,-4.15532l-14.59565,0.02385l-0.00682,-1.75365l14.60905,-0.02259l2.0513,-4.1585l-16.66817,0.02755l-0.01118,-7.50276l20.45457,-0.03426l0.00002,0l0.00003,0l-0.00002,0.00001l0.00002,0l0.00001,0l0.00001,0z"/>
|
||||||
|
<path d="m95.72277,2.68237l0.07233,43.59057l4.16104,-2.05345l-0.06448,-39.49231l-4.16891,-2.04485l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0.00003l0.00002,0.00001z"/>
|
||||||
|
<path d="m105.79403,2.667l0.06614,43.59128l-4.15439,-2.04231l-0.06342,-39.48973l4.15166,-2.05924l0.00002,0l-0.00001,0z"/>
|
||||||
|
<path d="m148.41093,2.59725l0.06966,43.59281l4.15495,-2.05404l-0.06082,-39.49192l-4.16377,-2.04685l-0.00002,0z"/>
|
||||||
|
<path d="m158.47856,2.58155l0.06934,43.59648l-4.16025,-2.04533l-0.06346,-39.48968l4.1544,-2.06148l0,0.00001l-0.00003,0z"/>
|
||||||
|
<path d="m134.0202,30.77579l-0.04443,-26.0999l-4.16016,-2.04655l0.04135,27.39357c0.0062,4.02211 -0.95538,6.62705 -5.26958,6.63254c-2.87066,0.00624 -4.78453,-1.44267 -6.7188,-3.64097l-1.56596,4.28965c1.98495,1.66645 4.02053,3.51925 8.82712,3.51265c4.80302,-0.00794 8.90162,-3.45896 8.8905,-10.04123"/>
|
||||||
|
<path d="m139.92813,30.72083l-0.0439,-28.11063l-4.16043,2.06091l0.04712,26.50284c0.01076,7.38611 -5.23624,11.38516 -10.75629,11.3943c-5.52362,0.00891 -8.35841,-2.53502 -9.91685,-3.97625l-4.29147,1.59606c3.12487,3.18881 7.05022,6.53999 14.09291,6.52631c7.04855,-0.01179 15.04572,-4.66505 15.02895,-15.99354"/>
|
||||||
|
<path d="m9.66578,39.74305c-0.08553,-0.00048 -3.32463,0.26616 -3.81338,0.43978c0.21449,0.31409 1.09279,1.30172 1.56094,1.73805c0.46339,0.4359 1.82375,1.71503 2.29925,2.09712c0.06441,0.03743 0.04886,0.00457 0.10496,-0.20518c0.04987,-0.2118 -0.01664,-4.07365 -0.15177,-4.06976"/>
|
||||||
|
<path d="m14.07257,36.73832c-0.2018,-0.16034 -1.08672,-1.19058 -1.23741,-1.35357c-0.14772,-0.16028 -1.15923,-1.30773 -1.20912,-1.3631c-0.05004,-0.05378 -0.14003,-0.23628 -0.21886,-0.34594c0,0 0.1495,3.44484 0.19676,3.52901c0.04588,0.08167 2.18688,0.11261 2.89256,-0.05909c0,0 -0.21534,-0.25117 -0.42396,-0.4073"/>
|
||||||
|
<path d="m13.59925,45.98664c0,0 0.63,0.34283 0.7486,0.48595c0.12027,0.14247 0.60289,0.2766 0.77756,0.44255c0,0 0.07223,-0.1113 0.15793,-0.27304c0.06795,-0.12621 0.11397,-0.26007 0.20408,-0.41737c0.06663,-0.12067 0.13866,-0.16745 0.22158,-0.39641c0.08159,-0.22344 0.32955,-0.75065 0.41391,-0.93349c0.08381,-0.18532 1.85026,-3.63649 1.98934,-3.91527c0.14221,-0.27771 0.70732,-1.30325 0.86625,-1.53341c0,0 -0.06998,-0.04751 -0.152,-0.10421c-0.08849,-0.05724 -0.5123,-0.29662 -0.63825,-0.37664c-0.12759,-0.07937 -0.05479,0.0168 -0.23526,-0.14724c0,0 -1.51016,2.63576 -1.59331,2.7961c-0.07824,0.16001 -0.29132,0.53378 -0.38173,0.72092c-0.09609,0.18742 -0.24803,0.52801 -0.30039,0.61609c-0.0481,0.08525 -1.63117,2.41251 -1.71537,2.53967c-0.12351,0.18736 -0.18974,0.24111 -0.36294,0.4958"/>
|
||||||
|
<path d="m11.97533,45.20099c0.11162,-0.06495 0.22149,-0.15509 0.39472,-0.3565c0.17506,-0.20368 3.84624,-6.17333 3.94679,-6.28529c0.09722,-0.11068 0.0006,-0.2203 -0.11096,-0.18279c-0.11199,0.04232 -4.69977,0.57496 -4.87425,0.70122c0.04263,0.12655 0.00346,0.42489 0.04604,0.65877c0.0334,0.22822 0.36842,4.68105 0.43136,4.88614c0.10395,0.3137 0.01021,0.30601 0.16633,0.57845"/>
|
||||||
|
<path d="m10.2521,32.20876c0,0 -5.32469,6.13459 -5.40055,6.33033c0.05713,-0.02472 -0.07498,0.15948 0.12805,0.06567c0.20594,-0.09919 4.5234,-1.14948 4.61705,-1.20317c0.06133,-0.06223 0.6278,-4.65612 0.65545,-5.19283"/>
|
||||||
|
<path d="m3.91039,36.19509c0.15041,-0.20834 2.70143,-2.68843 2.97064,-3.01351c0.26671,-0.32454 1.6621,-1.64937 2.69037,-2.92271c-0.05914,-0.20231 -0.22938,-0.69316 -0.32145,-0.98641c-0.08777,-0.27836 -0.14434,-0.44655 -0.21299,-0.73125c0,0 -0.11022,0.16518 -0.15685,0.24326c-0.04518,0.07101 -0.21201,0.2375 -0.53607,0.64239c-0.32571,0.40554 -1.93222,2.01148 -2.48448,2.6548c-0.55229,0.64332 -2.8116,2.83502 -3.2288,3.2702c0,0 0.041,0.17082 0.11505,0.31552c0.0732,0.14548 0.29926,0.49207 0.50843,0.94529c0,0 0.0812,0.15506 0.17934,0.09617c0,0 0.32406,-0.30722 0.47677,-0.51374"/>
|
||||||
|
<path d="m1.94974,32.91441c0.19857,-0.11598 1.06271,-1.03859 1.2264,-1.19729c0,0 2.49694,-2.47126 3.14952,-3.06347c0.65813,-0.59093 1.46782,-1.5806 2.17363,-2.27943c0,0 -0.03962,-1.16592 -0.0065,-1.4333c0.03479,-0.26806 0.00664,-0.67901 0.01646,-0.99211c0.00594,-0.31504 -0.00499,-0.32818 -0.06709,-0.39112c0,0 -0.15926,-0.08627 -0.35598,-0.17754c-0.19351,-0.09178 -2.39662,-1.28104 -2.57523,-1.35856c-0.1699,-0.0759 -0.70135,-0.25884 -1.01444,-0.42041c-0.31161,-0.1598 -3.61294,-2.02978 -3.9723,-2.13499c-0.00108,0.11856 -0.07198,0.52703 -0.10341,0.81151c-0.02861,0.27997 -0.13214,0.62973 -0.14148,0.90174c0.06772,0.02794 0.66873,0.30761 0.97698,0.46874c0.31475,0.16091 2.6623,1.41327 3.21847,1.66223c0.55646,0.25467 2.84384,1.39583 3.23562,1.63313c-0.11846,0.05143 -0.55618,0.45488 -0.78304,0.61591c-0.22822,0.16655 -1.50574,1.5626 -1.92147,1.96408c-0.41331,0.40083 -1.03973,0.97199 -1.31353,1.26767c-0.27175,0.29983 -2.11126,2.02757 -2.26939,2.1246c-0.15739,0.09793 -0.32366,0.258 -0.41853,0.2986c0.01997,0.10921 0.06935,0.50838 0.10762,0.70957c0.047,0.20282 0.09439,0.56147 0.13651,0.68474c0.03822,0.12135 0.07849,0.38972 0.20577,0.62402c0.11744,-0.09348 0.28212,-0.20043 0.49539,-0.31833"/>
|
||||||
|
<path d="m0.77711,24.03081c-0.26779,-0.10014 -0.3651,-0.13963 -0.74555,-0.2435c0,0 0.01428,0.03842 -0.01031,0.30979c-0.02125,0.27009 0.06922,1.60529 0.10165,1.99564c0.03329,0.38967 0.15422,1.29982 0.31794,2.21868c0,0 0.20798,-0.06835 0.45066,-0.24329c0.24054,-0.16948 1.29009,-1.0091 1.73794,-1.36399c0.44894,-0.35809 1.30622,-1.08915 1.51127,-1.2409c0.18903,-0.14428 0.28152,-0.2118 0.28152,-0.2118c-0.08859,-0.02012 -0.97728,-0.22496 -1.14172,-0.28989c-0.1768,-0.07095 -0.3397,-0.09053 -0.57624,-0.21449c-0.23117,-0.12104 -0.71098,-0.27752 -0.91474,-0.38074c-0.14601,-0.07214 -0.66498,-0.20637 -1.01246,-0.33552"/>
|
||||||
|
<path d="m8.89247,20.83135c-0.00911,-0.06862 0.04279,-0.28508 0.0597,-0.47163c0.01654,-0.18252 0.03984,-0.404 0.15824,-0.70403c0,0 -0.10446,-0.04981 -0.2362,-0.09243c-0.10823,-0.03483 -2.41826,-0.97949 -3.08356,-1.27146c-0.66833,-0.29379 -3.37541,-1.5424 -3.6298,-1.69223c-0.25214,-0.14799 -0.52422,-0.2364 -0.72826,-0.35417c0,0 -0.17036,0.3034 -0.23132,0.43264c-0.05665,0.12646 -0.18386,0.68397 -0.19942,0.96271c0,0 0.75448,0.22494 0.80769,0.25234c0.05015,0.02551 6.23344,2.74666 7.06496,3.08356c0,0 0.02355,-0.07294 0.01799,-0.1453"/>
|
||||||
|
<path d="m9.48726,17.24202c-0.12079,-0.09247 -6.17731,-3.27674 -6.31738,-3.37013c-0.14094,-0.09268 -0.40086,-0.16386 -0.57533,-0.28702c0,0 0.33036,-0.18076 0.50835,-0.24774c0.08987,-0.02982 0.28629,-0.09513 0.56363,-0.15396c0.27848,-0.06274 4.65173,-1.06927 4.80796,-1.09223c0.07288,-0.01116 0.13394,0.16954 0.1495,0.22099c0.01283,0.05441 0.65677,1.99751 0.7626,2.41554c0.10594,0.41641 0.63319,2.39168 0.6193,2.46469c-0.01155,0.07402 0.0328,0.1636 -0.02968,0.23864c0,0 -0.36617,-0.09211 -0.48898,-0.18879"/>
|
||||||
|
<path d="m5.40927,10.41941c0.20827,-0.07154 3.71763,-0.72855 3.90866,-0.77903c-0.01357,-0.10858 -0.16483,-0.88911 -0.19894,-1.13595c-0.03377,-0.24198 -0.2981,-2.05461 -0.36802,-2.27163c-0.05877,-0.16193 -0.06141,-0.21299 -0.13597,-0.25445c0,0 -0.10735,-0.00006 -0.17115,0.02725c0,0 -0.10217,0.07629 -0.29512,0.24607c-0.18888,0.16936 -0.8667,0.81741 -1.29505,1.22416c-0.42411,0.40468 -1.22518,1.44195 -1.47662,1.77596c-0.2552,0.33119 -0.69802,1.04014 -0.91378,1.39912c0,0 0.1136,-0.03331 0.23986,-0.09047c0.15186,-0.07259 0.57595,-0.0939 0.70614,-0.14101"/>
|
||||||
|
<path d="m13.1488,13.01372c0.77778,-0.73587 1.43937,-1.22237 1.9758,-1.53054c-0.07373,-0.07689 -0.26071,-0.09788 -0.36742,-0.13175c-0.10796,-0.02916 -3.49262,-0.36495 -3.70129,-0.38706c-0.2037,-0.02331 -0.2495,0.00964 -0.40377,0.01101c0,0 0.25309,1.25063 0.27188,1.51547c0.01573,0.26293 0.2393,2.14213 0.32167,2.56042c0.1239,-0.15583 1.12173,-1.30683 1.90312,-2.03754"/>
|
||||||
|
<path d="m16.61934,9.814c-0.17383,-0.14814 -6.04415,-4.63929 -6.1615,-4.76937c-0.227,-0.24738 -0.24547,-0.20387 -0.20061,0.15617c0.04252,0.32349 0.20612,1.02119 0.29276,1.44551c0.08468,0.41933 0.34694,1.6579 0.45488,2.44418c0,0 0.42336,0.05772 0.65125,0.10826c0.23103,0.0516 4.77128,0.85371 5.15097,0.85019c0.08639,-0.00023 -0.00454,-0.08355 -0.18775,-0.23493"/>
|
||||||
|
<path d="m19.95479,8.79613c-0.03028,-0.03101 -0.47611,-0.47336 -0.71416,-0.69671c-0.24395,-0.2207 -1.02216,-1.00316 -1.42509,-1.36656c-0.41038,-0.36167 -1.55029,-1.36578 -2.13589,-1.87809c-0.34164,-0.30057 -2.04046,-1.94215 -2.1432,-2.08223c0,0 -0.05182,0.00176 -0.21409,0.15333c-0.1627,0.14751 -0.87481,0.63991 -0.95242,0.68536c-0.07335,0.04337 -0.08562,0.07214 0.02407,0.15297c0.10962,0.08187 5.4405,4.78937 5.66354,4.96467c0.21837,0.17303 0.64787,0.48395 0.67786,0.50926c0.05777,0.04802 0.05312,0.00167 0.17836,-0.03549c0.12421,-0.03474 0.78559,-0.1984 1.12821,-0.27388c0,0 -0.0546,-0.10101 -0.08722,-0.13304"/>
|
||||||
|
<path d="m17.11526,2.56235c0.15137,0.1913 3.05446,3.01795 3.32655,3.28396c0.27477,0.26382 2.1685,2.18618 2.28651,2.27354c0.11303,0.08854 0.19874,0.20288 0.24029,0.23407c0,0 2.63517,-0.10423 2.97009,-0.03272c0.04916,-0.13276 0.23775,-0.45064 0.35919,-0.66805c0.12549,-0.21786 1.2209,-3.50546 1.49175,-4.16054c0.26886,-0.66015 0.82795,-2.01071 0.94278,-2.29814c0.11562,-0.28737 0.15445,-0.47515 0.27127,-0.62439c0,0 -0.08298,-0.07288 -0.1923,-0.09569c-0.11451,-0.02809 -0.5268,-0.07441 -0.68379,-0.12333c-0.1444,-0.0365 -0.32404,-0.04949 -0.53801,-0.09312c0,0 -0.34379,0.65814 -0.41033,0.83136c-0.06843,0.17616 -0.93184,2.16836 -1.06017,2.39076c-0.12926,0.22397 -1.43712,4.12755 -1.63549,4.41956c0,0 -0.94206,-1.11207 -1.24959,-1.42404c-0.3104,-0.31552 -3.22962,-3.142 -3.74624,-3.65858c-0.51876,-0.5192 -1.12066,-1.08306 -1.60613,-1.71145c0,0 -0.11154,0.03749 -0.43891,0.13133c-0.32778,0.09865 -0.82961,0.30985 -1.05111,0.38501c-0.2184,0.07626 -0.12214,0.15449 -0.01899,0.27215c0.23195,0.25487 0.6227,0.52129 0.74254,0.66838"/>
|
||||||
|
<path d="m25.38006,0c0,0 -0.23486,0.00857 -0.48974,0.01535c-0.25646,-0.00224 -0.5916,-0.00033 -0.98947,0.02576c-0.40852,0.02761 -1.22662,0.05026 -1.93188,0.11954c-0.5205,0.05214 -0.85317,0.08011 -1.552,0.28311c0,0 0.40971,0.46655 0.56596,0.63084c0.16201,0.16238 0.80338,0.95024 1.35908,1.58741c0.56108,0.64006 1.2098,1.3551 1.49873,1.73882c0,0 1.31731,-3.55399 1.53934,-4.40081"/>
|
||||||
|
<path d="m28.45228,8.96835c0.23604,0.0585 0.69598,0.21159 0.87189,0.26546c0.14769,0.04486 0.12206,-0.01961 0.21551,-0.22261c0.05003,-0.10685 0.17864,-0.33254 0.37982,-0.6194c0.20495,-0.2841 1.49027,-2.14923 1.75795,-2.44861c0.26772,-0.30024 0.53207,-0.76783 0.76155,-1.06425c0.22749,-0.29257 1.0743,-1.29099 1.21017,-1.55227c0.06306,-0.117 0.19985,-0.31686 0.58427,-0.87126c0,0 -0.10009,-0.07125 -0.2127,-0.13793c-0.11383,-0.07086 -0.40903,-0.32281 -0.69742,-0.42724c-0.28825,-0.10605 -0.82666,-0.40829 -1.18531,-0.38752c0,0 -0.29712,0.58007 -0.43499,0.80974c-0.13349,0.22598 -0.88409,1.38325 -1.06626,1.6654c-0.18461,0.28272 -2.30821,3.83552 -2.42772,4.04102c-0.12325,0.20189 -0.34157,0.52678 -0.48872,0.7701c0,0 0.50155,0.12136 0.73199,0.17936"/>
|
||||||
|
<path d="m32.02481,9.99231c0.18784,-0.05077 3.1549,-1.30579 3.40815,-1.38375c0.25476,-0.07701 0.36981,-0.1707 0.5683,-0.3214c0.06301,-0.12506 0.15858,-0.28024 0.15633,-0.56699c-0.00125,-0.28907 0.21016,-3.40577 0.22434,-3.73138c0.01925,-0.35504 0.10174,-0.59702 -0.04861,-0.42575c-0.14448,0.16945 -1.01059,1.31856 -1.26981,1.6494c-0.2713,0.33056 -1.43524,1.91615 -1.78371,2.40354c-0.34748,0.48509 -1.23358,1.89087 -1.55906,2.42718c0,0 0.11712,-0.00057 0.30406,-0.05074"/>
|
||||||
|
<path d="m36.11623,13.77106c-0.00357,-0.12949 0.05904,-2.58406 0.07523,-2.90543c0.01863,-0.32119 0.04377,-0.25998 -0.12806,-0.2255c-0.07009,0.00737 -0.20231,0.05913 -0.36722,0.12411c-0.13151,0.05268 -1.41146,0.3088 -1.66071,0.3693c-0.24176,0.058 -0.72078,0.08886 -1.03136,0.23827c0.07739,0.0191 0.46241,0.36638 0.73516,0.59854c0.2719,0.23293 0.90427,0.75434 1.26165,1.0773c0.36069,0.32164 0.82538,0.76975 1.0802,0.99546c0.0775,0.0708 0.04157,-0.14718 0.03513,-0.27207"/>
|
||||||
|
<path d="m39.53645,13.23646c0.35722,-0.44145 1.89349,-2.33223 2.13618,-2.4983c0.24585,-0.16581 0.57939,-0.50607 0.75723,-0.6425c0.17978,-0.14028 0.28654,-0.23153 0.20167,-0.21258c-0.08327,0.0191 -0.23243,0.06209 -0.4472,0.09832c-0.21818,0.03836 -2.43184,0.49718 -2.779,0.55129c-0.34261,0.05772 -0.83028,0.10393 -1.34681,0.26376c0.00635,0.12569 -0.0955,1.29409 -0.09606,1.58549c-0.00574,0.29489 -0.06845,1.17386 -0.06831,1.324c0.00097,0.14942 -0.05108,0.64352 -0.05903,0.81147c-0.01042,0.16855 -0.0313,0.51455 -0.01555,0.83965c-0.00513,0.05683 0.03698,0.02841 0.15824,-0.12524c0.09502,-0.16658 1.19905,-1.55415 1.55867,-1.99533"/>
|
||||||
|
<path d="m39.40443,19.02486c0.07486,-0.08683 0.18377,-0.21983 0.30712,-0.34265c0.12654,-0.12252 3.78146,-4.14916 3.96101,-4.31368c0.18438,-0.16411 0.30698,-0.34997 0.35111,-0.41859c0.03026,-0.04005 0.27255,-0.29979 0.41102,-0.40262c0.13905,-0.10041 -0.03376,0.04295 0.76393,-0.61847c-0.04529,-0.05256 -0.19033,-0.31347 -0.24879,-0.4253c-0.05404,-0.10742 -0.22812,-0.30642 -0.40359,-0.58788c-0.177,-0.28239 -0.26999,-0.39656 -0.42381,-0.55177c0,0 -0.168,0.12617 -0.29999,0.23759c-0.13977,0.10835 -1.04535,1.20317 -1.19729,1.36546c-0.14791,0.16264 -0.33711,0.51338 -0.46945,0.67358c-0.12907,0.15918 -1.23159,1.2808 -1.49554,1.52165c-0.26507,0.24395 -1.71452,1.87143 -1.83755,1.98214c-0.12101,0.10608 -0.13278,0.17363 -0.29605,0.31863c0.06329,0.08563 0.09192,0.42886 0.13659,0.62176c0.04022,0.19735 0.19352,0.99985 0.28485,1.31c0.12368,-0.10017 0.37619,-0.28552 0.45645,-0.36949"/>
|
||||||
|
<path d="m41.63753,8.16589c-0.14581,-0.18112 -0.29492,-0.40611 -0.47834,-0.61806c-0.18679,-0.21872 -1.60994,-1.80303 -1.77891,-2.02255c-0.17204,-0.22141 -0.55932,-0.5261 -0.69088,-0.67767c-0.13205,-0.14596 -0.11335,-0.0942 -0.17799,-0.17351c-0.04465,-0.05086 -0.09632,-0.13061 -0.13833,-0.09489c-0.05684,0.04814 -0.04058,0.13599 -0.05613,0.254c-0.0304,0.23777 -0.02291,0.33289 -0.08278,0.61081c-0.04879,0.22643 -0.22016,2.78568 -0.22828,2.99076c-0.00903,0.20643 -0.04231,0.66262 -0.04231,0.66262c0,0 3.29793,-0.44351 3.42317,-0.47175c0.17731,-0.04212 0.20549,-0.04095 0.49981,-0.08238c0,0 -0.11147,-0.19497 -0.24908,-0.37775"/>
|
||||||
|
<path d="m41.03685,21.96915c0.13435,-0.11053 3.34312,-2.5899 3.54364,-2.75416c0.20337,-0.16882 0.70473,-0.5084 1.13483,-0.86332c0.42914,-0.3534 0.82609,-0.63623 1.46337,-1.03292c0,0 -0.01101,-0.31498 -0.10529,-0.65528c-0.09193,-0.33928 -0.53875,-1.45652 -0.53875,-1.45652c-0.00159,-0.00015 -0.26294,0.23849 -0.39805,0.34892c-0.13274,0.11068 -4.91809,4.29318 -5.30328,4.61583c-0.38485,0.31869 -1.00978,0.89968 -1.1409,1.0105c-0.13679,0.11113 -0.20965,0.14891 -0.18886,0.31141c0.01589,0.1096 0.01695,0.47211 0.0454,0.71038c0.02622,0.23645 0.09175,0.68874 0.05026,0.93281c-0.03683,0.24607 -0.04692,0.79396 -0.0999,1.10235c0.20102,0.05295 2.5447,0.95632 2.95448,1.1105c0.40807,0.15557 1.22822,0.46646 1.68365,0.63364c0.45897,0.16347 1.47713,0.54323 1.83698,0.69605c0.36206,0.14655 1.12733,0.47521 1.54993,0.62167c0.05068,-0.16724 0.07032,-0.49993 0.07347,-0.89099c-0.00033,-0.38808 -0.02537,-0.62857 -0.04792,-0.93191c0,0 -0.18095,-0.10495 -0.39089,-0.1936c-0.20708,-0.08417 -1.38905,-0.54397 -1.88306,-0.7042c-0.49517,-0.15628 -4.52624,-1.63384 -4.69714,-1.72524c-0.16826,-0.09354 -0.10729,-0.15178 -0.01251,-0.28929c0.08128,-0.12178 0.28189,-0.44745 0.47055,-0.59663"/>
|
||||||
|
<path d="m47.78143,22.77952c0.01158,-0.20802 0.01084,-0.52935 0.00968,-0.81034c-0.00076,-0.54407 -0.08698,-1.48983 -0.11082,-1.93029c-0.00657,-0.08775 -0.01365,-0.39268 -0.00766,-0.61895c0.00471,-0.23043 -0.13357,-0.04924 -0.27596,0.07023c-0.14727,0.11984 -3.08523,2.39858 -3.1729,2.49314c-0.09393,0.09237 -0.34192,0.20147 -0.2908,0.23433c0.05326,0.03552 0.14629,0.03343 0.30771,0.08683c0.20002,0.06414 2.18241,0.741 2.47858,0.85744c0.29574,0.11238 0.79073,0.24359 1.02934,0.37176c0.01368,-0.17774 0.02461,-0.54741 0.03284,-0.75414"/>
|
||||||
|
<path d="m46.72633,30.29851c-0.13307,-0.06373 -0.41061,-0.17201 -0.65052,-0.33018c-0.24001,-0.15736 -0.594,-0.35731 -0.86505,-0.5635c-0.27614,-0.20422 -1.30303,-0.692 -1.71892,-0.92099c-0.42025,-0.22613 -2.72746,-1.44255 -3.02778,-1.60215c-0.2935,-0.15494 -0.83434,-0.413 -1.2565,-0.63532c0,0 0.00655,0.31057 -0.00088,0.49956c-0.007,0.19309 0.00159,0.80165 0.00568,0.97071c0.00243,0.16894 0.00473,0.2683 0.10052,0.34248c0.09408,0.07551 4.01047,2.31032 4.30048,2.45932c0.28852,0.14721 2.44991,1.39643 2.56813,1.45476c0.16979,-0.13715 0.22084,-0.31737 0.34094,-0.50261c0.08252,-0.12652 0.20902,-0.33785 0.28757,-0.50992c0.07443,-0.17082 0.18382,-0.35382 0.25618,-0.48449c0,0 -0.19223,-0.10539 -0.33984,-0.17768"/>
|
||||||
|
<path d="m44.08596,34.23112c-0.20436,-0.19446 -3.23525,-2.32322 -3.78586,-2.75813c-0.54995,-0.43327 -1.68036,-1.23952 -1.75077,-1.30886c-0.09441,-0.08928 -0.1558,-0.1336 -0.17044,0.0015c-0.01612,0.14223 -0.04265,0.31898 -0.00056,0.62063c0.03988,0.29908 0.12309,1.19771 0.17022,1.52403c0.04479,0.32535 0.10336,1.08614 0.12495,1.49813c0.02384,0.41382 0.09438,1.00703 0.11176,1.4832c0,0 0.37895,-0.03105 0.65437,-0.04161c0.27496,-0.01462 4.82351,-0.47091 5.16903,-0.62281c0,0 -0.31354,-0.20117 -0.52266,-0.39608"/>
|
||||||
|
<path d="m36.8246,33.58295c-0.01403,-0.21031 -0.03011,-0.45151 -0.03999,-0.63642c-0.21137,0.18586 -0.30116,0.3125 -0.46514,0.51882c-0.16246,0.20723 -0.71282,0.94514 -1.00394,1.25376c-0.29,0.30547 -0.78587,0.78032 -0.98443,0.92295c-0.19612,0.14204 -0.94099,0.67508 -1.04752,0.74611c-0.10501,0.07203 -0.06474,0.12652 0.05499,0.15031c0.12313,0.02164 2.75411,-0.19678 3.57066,-0.30036c0.07177,-0.26634 -0.06649,-2.4461 -0.08466,-2.65518"/>
|
||||||
|
<path d="m41.46449,40.54758c0.32872,-0.3762 1.50531,-1.78061 1.55013,-1.85645c0.04575,-0.07739 0.89915,-1.38028 0.91077,-1.46401c0.01708,-0.08157 0.06089,-0.08405 0.04274,-0.18661c-0.27033,0.07963 -4.95527,0.58006 -5.60133,0.62806c0.02122,0.15771 0.12643,4.98197 0.19344,5.17774l0.02361,0.07802l0.08726,-0.02764c0.14683,-0.16835 2.466,-1.96957 2.79339,-2.34911"/>
|
||||||
|
<path d="m36.16383,38.34444c0,0 -0.59494,0.04535 -0.86504,0.00636c-0.26631,-0.03624 -4.00585,-0.02806 -4.39387,0.0054c0,0 0.18443,0.18216 0.37585,0.43037c0.19194,0.25144 5.05954,4.91404 5.18534,5.08445c0.11825,0.1738 0.34242,0.16744 0.43032,0.1504c0.0928,-0.16917 -0.08526,-0.69784 -0.11066,-0.88093c-0.06334,-0.38758 -0.48111,-4.49755 -0.62195,-4.79606"/>
|
||||||
|
<path d="m34.2262,45.74354c0.28076,-0.08757 0.39753,-0.18273 0.48295,-0.26134c-0.07542,-0.10288 -0.2201,-0.27015 -0.5839,-0.6825c-0.36314,-0.41067 -3.82621,-4.15656 -4.3154,-4.66341c-0.4888,-0.51165 -0.64603,-0.68247 -1.03479,-1.08658c0,0 -0.19531,0.07996 -0.42535,0.13338c-0.23512,0.05614 -0.51247,0.12387 -0.65044,0.16784c-0.14105,0.04212 -0.20632,0.03218 -0.09068,0.10966c0.11008,0.07695 3.17973,3.59509 3.59848,4.05117c0.42287,0.45483 1.49693,1.68703 1.64817,1.87992c0.14893,0.19105 0.23424,0.37235 0.47422,0.77023c0.34101,-0.10226 0.61759,-0.33062 0.89672,-0.41835"/>
|
||||||
|
<path d="m27.70294,43.87762c-0.55197,-0.58036 -1.05263,-1.14796 -1.77929,-2.00967c-0.72823,-0.87072 -1.28545,-1.36676 -2.07252,-2.02494c-0.36998,-0.00525 -1.90631,-0.03794 -2.50499,-0.12047c-0.09363,0.14246 -0.15649,0.27482 -0.2164,0.41062c-0.06161,0.12759 -1.98872,3.98879 -2.13302,4.28078c-0.14857,0.29412 -0.68181,1.27971 -0.79093,1.51281c-0.10356,0.23436 -0.06562,0.04731 -0.29231,0.38439c-0.23074,0.33746 -0.45139,0.76783 -0.58969,1.19843c0.118,0.08743 0.40784,0.1936 0.63013,0.28797c0.22686,0.09724 0.77575,0.18652 1.00916,0.29161c0.02566,-0.12276 3.0782,-6.24854 3.29609,-6.70265c0.21517,-0.45909 0.37152,-0.51923 0.59435,-0.86709c0,0 2.55392,2.66265 2.81989,3.01446c0.26415,0.35406 1.44628,1.88099 1.8617,2.42714c0.41326,0.54356 0.97039,1.14694 1.34588,1.77745c0,0 0.90141,-0.17578 1.09447,-0.25763c0.19724,-0.08301 0.652,-0.18461 0.80946,-0.2834c-0.18347,-0.14008 -2.53028,-2.74523 -3.08197,-3.31986"/>
|
||||||
|
<path d="m22.76901,48.65621c0,0 0.08085,-0.01041 0.55618,-0.00042c0.40536,0.00684 0.42653,-0.02191 0.7998,-0.01713c0.37177,0.00383 0.86344,-0.05979 1.41419,-0.18745c0.54746,-0.12715 0.61378,-0.12841 1.0358,-0.21607c0.39557,-0.08119 0.43415,-0.12372 0.31564,-0.29427c-0.12093,-0.17076 -0.39266,-0.53926 -0.64383,-0.87601c-0.253,-0.33447 -0.45163,-0.57448 -0.83194,-0.97376c-0.38599,-0.39907 -1.15932,-1.12858 -1.44077,-1.44303c-0.27338,-0.31453 -0.55308,-0.63047 -0.79573,-0.9277c-0.08854,0.07728 -0.2501,0.45267 -0.38604,0.67934c-0.13451,0.22834 -0.35766,0.77557 -0.4731,1.01611c-0.11184,0.2369 -0.65525,1.45891 -0.87214,1.87514c-0.21815,0.41205 -0.27216,0.67838 -0.48753,1.05112l-0.01884,0.05642l0.0882,0.02415c0.12356,0.00797 0.25525,0.11354 0.54406,0.12438c0.22386,0.00573 0.80345,0.13012 1.19601,0.10918"/>
|
||||||
|
<path d="m195.9118,46.02416l-1.74301,-0.90929l-1.64799,0.91304l-0.03116,-21.26892l1.74841,0.87266l1.63721,-0.8789l0.03656,21.2714l-0.00002,0.00001z"/>
|
||||||
|
<path d="m232.49908,31.26573l4.34039,14.69596l1.61908,-0.91767l1.61005,0.90901l6.19383,-21.28002l-1.95398,0.8795l-1.47252,-0.87302l-4.38504,16.08872l-4.72998,-16.07544l-1.22366,0.87332l-1.23592,-0.87117l-4.66905,16.0923l-4.44214,-16.07669l-1.46286,0.87699l-1.95993,-0.87024l6.27101,21.26501l1.60158,-0.91928l1.62387,0.90833l4.27524,-14.70559l0.00003,-0.00002z"/>
|
||||||
|
<path d="m270.67438,45.89671l-0.0177,-8.48335l-7.43835,-12.76578l2.36896,0.86801l1.35889,-0.87484l5.52347,9.82385l5.45065,-9.84059l1.36716,0.86938l2.35318,-0.87854l-7.36557,12.79187l0.00998,8.48463l-1.84088,-0.91037l-1.76953,0.91573l-0.00003,0l-0.00003,0l-0.00003,0l-0.00003,0l-0.00003,0l-0.00003,0l-0.00003,0l-0.00003,0z"/>
|
||||||
|
<path d="m291.27234,46.17289c-4.69458,0.00889 -9.00534,-2.037 -8.23764,-6.75127l1.66418,0.82972l1.79742,-0.83491c-0.427,2.315 1.96759,3.82928 4.7659,3.82456c3.16214,-0.00295 5.08377,-1.32363 5.08011,-3.13969c-0.00558,-5.03281 -12.80933,-2.53042 -12.8219,-10.03312c-0.00842,-3.79457 3.55771,-5.77232 7.9097,-5.77903c4.57663,-0.00197 8.54428,1.92283 7.62347,6.36304l-1.72391,-0.84105l-1.84201,0.85242c0.44815,-2.20358 -1.05276,-3.51742 -4.05298,-3.50955c-2.42029,-0.00018 -4.42346,1.1624 -4.42273,2.94495c0.00818,4.44411 12.819,2.29459 12.82968,9.79707c0.00885,4.17812 -3.60315,6.27108 -8.56952,6.27681"/>
|
||||||
|
<path d="m212.59509,38.92704c2.01761,-1.08301 3.55659,-3.83735 3.65042,-6.70699c-0.01062,-0.09876 0.00786,-0.67035 -0.00244,-0.77302c-0.24722,-4.13716 -3.19991,-6.72519 -6.91011,-6.71907l-7.99779,0.01286l0.03058,21.27465l0.00803,-0.00313l1.63417,-0.91045l1.60405,0.91042l-0.00975,-6.19742l3.7464,-0.01657c0,0 0.33841,0.00134 0.89253,-0.04623l4.90503,6.23985l1.32521,-0.91296l3.0206,0.91156l-5.89688,-7.0635l-0.00003,-0.00001l-0.00002,0.00001zm-7.99503,-2.04525l-0.02232,-9.10206l4.64961,-0.00908c2.04068,0.00105 3.61507,1.66985 3.77916,3.74502c0.00542,0.07089 0.03905,0.19527 0.03882,0.52198c-0.00339,0.34014 -0.05127,0.65274 -0.05443,0.73074c-0.26683,2.49003 -1.97493,4.10982 -4.039,4.10866l-4.35184,0.00474z"/>
|
||||||
|
<path d="m176.11597,36.92237l6.31633,-0.00475l-3.19032,-8.62417l-3.12601,8.62892zm4.97263,-12.14381l7.99617,21.24916l-2.03177,-0.89828l-1.35358,0.90254l-2.30049,-6.20145l-8.23207,0.00916l-2.31044,6.21392l-1.36392,-0.90424l-2.02129,0.9106l7.92662,-21.27355l1.83672,0.86888l1.85403,-0.87678l0.00002,0l0.00006,0.00003l-0.00003,0l-0.00003,0.00001z"/>
|
||||||
|
<path d="m252.35373,36.80172l6.31067,-0.00916l-3.22391,-8.61943l-3.08679,8.62858l0,0.00001l0.00003,0zm4.97256,-12.14387l7.9903,21.24862l-1.95328,-0.90093l-1.4245,0.90789l-2.30777,-6.20607l-8.22664,0.0117l-2.31033,6.21404l-1.42043,-0.90771l-1.97041,0.90944l7.92485,-21.27388l1.86366,0.87314l1.83449,-0.87657l0,0l0.00006,0l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00003l0,0.00002l0,-0.00002z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 33 KiB |
21
static/airline-logos/FO.svg
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 136 33">
|
||||||
|
<title>Flybondi</title>
|
||||||
|
<desc>Flybondi logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Flybondi</Airline:name>
|
||||||
|
<Airline:iataCode>FO</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/FO</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<path fill="#fdbe12" d="M11.5973 4.29564C10.0629 4.29564 8.76399 4.78734 7.70164 5.77112C6.62406 6.74129 6.08627 7.97433 6.08627 9.46945V10.5206H9.51793V14.6156H6.08627V28.3526H1.94799V14.6156H0.211914V10.5206H1.94799V9.46945C1.94799 6.92322 2.91449 4.74045 4.84868 2.92114C6.79049 1.10224 9.0399 0.186171 11.5973 0.172546V4.29564Z" />
|
||||||
|
<path fill="#fdbe12" d="M13.875 28.3526H18.0137V0.172607H13.875V28.3526Z" />
|
||||||
|
<path fill="#fdbe12" d="M80.4924 17.7224C80.4924 15.8534 79.8127 14.2396 78.454 12.8812C77.0936 11.5231 75.4723 10.8439 73.5882 10.8439C71.7042 10.8439 70.0824 11.5231 68.7229 12.8812C67.3774 14.226 66.7045 15.8398 66.7045 17.7224C66.7045 19.6186 67.3774 21.2392 68.7229 22.5836C70.0687 23.9285 71.6909 24.6009 73.5882 24.6009C75.4859 24.6009 77.1077 23.9285 78.454 22.5836C79.8127 21.2255 80.4924 19.6054 80.4924 17.7224ZM84.6309 17.7216C84.6309 20.7343 83.5473 23.3226 81.3809 25.4877C79.2137 27.626 76.6166 28.6952 73.5884 28.6952C70.5466 28.6952 67.9495 27.626 65.7963 25.4877C63.6428 23.3362 62.5664 20.7475 62.5664 17.7216C62.5664 14.6957 63.6428 12.1074 65.7963 9.95551C67.9627 7.79038 70.5606 6.70801 73.5884 6.70801C76.6166 6.70801 79.2137 7.79038 81.3809 9.95551C83.5473 12.1206 84.6309 14.7094 84.6309 17.7216Z" />
|
||||||
|
<path fill="#fdbe12" d="M100.75 16.0073C100.75 14.6088 100.238 13.3986 99.2157 12.3763C98.1927 11.3545 96.9815 10.8435 95.5823 10.8435C94.1823 10.8435 92.9712 11.3545 91.9486 12.3763C90.9251 13.3986 90.4142 14.6088 90.4142 16.0073V28.3526H86.2764V16.0073C86.2764 13.5464 87.2108 11.3813 89.082 9.51191C90.9524 7.64291 93.1192 6.70801 95.5823 6.70801C98.031 6.70801 100.191 7.64291 102.062 9.51191C103.946 11.3949 104.888 13.5601 104.888 16.0073V28.3526H100.75V16.0073Z" />
|
||||||
|
<path fill="#fdbe12" d="M124.438 17.7225C124.438 15.8535 123.758 14.2398 122.399 12.8813C121.039 11.5232 119.418 10.844 117.534 10.844C115.65 10.844 114.028 11.5232 112.668 12.8813C111.323 14.2261 110.65 15.8399 110.65 17.7225C110.65 19.6187 111.323 21.2393 112.668 22.5837C114.014 23.9286 115.636 24.601 117.534 24.601C119.431 24.601 121.053 23.9286 122.399 22.5837C123.758 21.2257 124.438 19.6055 124.438 17.7225ZM128.577 17.7221C128.577 20.7348 127.493 23.3231 125.327 25.4882C123.16 27.6265 120.562 28.6957 117.534 28.6957C114.492 28.6957 111.895 27.6265 109.742 25.4882C107.589 23.3367 106.512 20.748 106.512 17.7221C106.512 14.7098 107.548 12.1279 109.621 9.97603C111.694 7.79767 114.216 6.70849 117.191 6.70849C119.99 6.70849 122.406 7.68346 124.438 9.63341V0.172607H128.577V17.7221Z" />
|
||||||
|
<path fill="#fdbe12" d="M130.807 28.3532H134.945V7.05164H130.807V28.3532Z" />
|
||||||
|
<path fill="#fdbe12" d="M33.1708 6.74329L28.828 17.7048L24.4363 6.74329H19.731L26.4804 23.9393L22.3802 33.3693H27.0615L37.8673 6.74329H33.1708Z" />
|
||||||
|
<path fill="#fdbe12" d="M134.987 2.10903C134.987 3.27355 134.043 4.21807 132.877 4.21807C131.711 4.21807 130.767 3.27355 130.767 2.10903C130.767 0.944517 131.711 0 132.877 0C134.043 0 134.987 0.944517 134.987 2.10903Z" />
|
||||||
|
<path fill="#fdbe12" d="M58.2027 10.0321C56.1045 7.84135 53.5736 6.74576 50.6095 6.74576C47.8079 6.74576 45.3849 7.72634 43.3412 9.6871V0.172607H39.1797V17.8223C39.1797 19.5967 39.5486 21.2217 40.2849 22.6972C41.0501 22.817 41.8137 22.9372 42.5804 23.053C42.6482 23.0598 42.7469 23.057 42.7966 23.0177C43.5734 22.4223 45.6002 21.0826 46.3726 20.4839C46.3782 20.4807 46.379 20.4707 46.3915 20.4334C46.1789 20.3697 44.8226 19.5138 42.4585 18.1216C41.9757 17.8387 41.9011 17.8191 42.3523 17.4071C42.6097 17.1715 42.8792 16.9483 43.1255 16.7011C43.4006 16.4302 43.719 16.3099 44.0823 16.2991C45.3331 16.2554 48.6312 17.4648 49.9607 17.4228C50.168 17.4144 50.3172 17.3322 50.484 17.216C51.4709 16.6313 53.5066 15.4556 54.5894 14.9314C55.4881 14.4962 57.7022 13.3001 58.5837 14.5407C58.8331 14.8918 59.4651 15.7814 56.935 17.5871C55.9312 18.4498 44.7055 24.8972 42.8175 26.0032C44.904 27.9066 47.3864 28.8584 50.2642 28.8584C53.296 28.8584 55.9016 27.7832 58.0808 25.6329C60.2596 23.4553 61.35 20.8522 61.35 17.8223C61.35 14.8473 60.3001 12.2506 58.2027 10.0321Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 4.3 KiB |
30
static/airline-logos/FR.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.99883 34.952404">
|
||||||
|
<title>Ryanair</title>
|
||||||
|
<desc>Ryanair logo</desc>
|
||||||
|
<metadata xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:Airline="http://schema.org/Airline">
|
||||||
|
<rdf:RDF>
|
||||||
|
<Airline:name>Ryanair</Airline:name>
|
||||||
|
<Airline:iataCode>FR</Airline:iataCode>
|
||||||
|
<Airline:url>https://airlinelogos.aero/FR</Airline:url>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g transform="matrix(.99997 0 0 .99997 .00028506 .037448)">
|
||||||
|
<g fill="#2b4779" transform="matrix(2.7411,0,0,2.7411,-907.28,-1018.9)">
|
||||||
|
<path d="m354.59 384.36-3.4227-4.3914h-1.2875v4.3914h-3.925v-11.558h5.8404c4.2704 0 7.0026 1.2052 7.0026 3.5996 0 1.6182-1.5703 2.6244-3.7051 3.1526l3.7677 4.8052h-4.2704v0.00037zm-2.983-9.544h-1.7272v3.2202h1.9467c2.01 0 3.0456-0.54559 3.0456-1.602 0.00039-1.0398-0.90957-1.6182-3.265-1.6182z"/>
|
||||||
|
<path d="m368.63 380v4.3589h-3.925v-4.3257l-5.6526-7.2322h4.3338l1.6955 2.3446c0.72256 1.0066 1.4451 2.1468 1.6333 2.6916 0.21948-0.54482 0.94203-1.7342 1.6329-2.6916l1.6955-2.3446h4.2704l-5.6839 7.1989z"/>
|
||||||
|
<path d="m383.47 384.36-1.0355-2.4103h-4.9292l-1.0359 2.4103h-4.0193l5.6205-11.558h3.8311l5.6197 11.558h-4.0514zm-2.4791-5.7125c-0.37711-0.8918-0.87903-2.2299-1.0359-2.8068-0.15764 0.5939-0.59659 1.8323-1.005 2.7732l-0.59659 1.4046h3.2341l-0.5966-1.3709z"/>
|
||||||
|
<path d="m398.2 384.36-4.0502-5.1514c-0.56568-0.72642-1.2566-1.6681-1.6642-2.3443 0.0312 0.71059 0.0623 1.8988 0.0623 2.6248v4.8709h-3.58v-11.557h3.9567l3.8624 5.0695c0.534 0.69242 1.3192 1.7666 1.7268 2.4107-0.0312-0.71058-0.12519-1.9652-0.12519-2.6924v-4.7878h3.5796v11.557h-3.7681z"/>
|
||||||
|
<path d="m414.64 384.36-1.0371-2.4103h-4.9296l-1.0359 2.4103h-4.0193l5.6201-11.558h3.8315l5.6205 11.558h-4.0502zm-2.481-5.7125c-0.37674-0.8918-0.87866-2.2299-1.0363-2.8068-0.15726 0.5939-0.5966 1.8323-1.005 2.7732l-0.5966 1.4046h3.2349l-0.59697-1.3709z"/>
|
||||||
|
<path d="m420.23 372.8h3.9242v11.558h-3.9242v-11.558z"/>
|
||||||
|
<path d="m436.17 384.36-3.4231-4.3914h-1.2871v4.3914h-3.9258v-11.558h5.8407c4.2704 0 7.0019 1.2052 7.0019 3.5996 0 1.6182-1.5692 2.6244-3.7044 3.1526l3.7674 4.8052h-4.2697v0.00037zm-2.9834-9.544h-1.7268v3.2202h1.9463c2.0096 0 3.0456-0.54559 3.0456-1.602 0.00001-1.0398-0.90995-1.6182-3.265-1.6182z"/>
|
||||||
|
</g>
|
||||||
|
<g fill="#f4ca35" transform="matrix(2.7411,0,0,2.7411,-907.28,-1018.9)">
|
||||||
|
<path d="m339.53 372.39c0.81336 0.27164 1.6739 0.4799 2.5514 0.57959l0.61205 0.006 0.0189-0.017c0.36592 0.01 0.6364-0.15069 0.99227-0.22913 0.0383-0.009 0.13022-0.0321 0.16925 0.0201 0.0178 0.068-0.01 0.1418-0.087 0.19242-0.43585 0.33345-0.95555 0.58151-1.4455 0.76004v-0.01c-0.16074 0.0309-0.33269 0.10012-0.49962 0.15494-0.60353 0.18276-1.2906 0.29752-1.9397 0.25077-1.2434-0.0638-2.3002-0.50811-3.398-0.45556-1.078-0.063-2.1032 0.34891-2.677 1.1619-0.29443 0.42542-0.52858 0.87402-0.60161 1.3674 0.0325 0.44667 0.65957 0.61823 0.8945 0.98764 0.13485 0.22332 0.2017 0.46946 0.30332 0.7013 0.26043 0.46715 0.51854 0.93391 0.83848 1.3736l-0.008 0.009c0.18741 0.29404 0.48609 0.54868 0.83925 0.7214 0.45789 0.32728 0.86205 0.73763 1.1024 1.1785l-0.0125 0.007c0.27047 0.43122 0.42232 0.87828 0.63176 1.328 0.0939 0.27589 0.19744 0.51855 0.27781 0.78709 0.0275 0.0251 0.0275 0.0656 0.0436 0.10087 0.0741 0.21253 0.13717 0.43895 0.22758 0.63602-0.039 0.0297 0.0305 0.041 0.022 0.0699 0.005 0.11938 0.12138 0.2983-0.034 0.37828-0.22605-0.19977-0.34466-0.49265-0.46677-0.70555-0.26699-0.46562-0.57264-0.91577-0.90184-1.3586l0.01-0.009c-0.20209-0.25386-0.42542-0.5398-0.65649-0.80255-0.9741-1.0784-2.4057-1.726-3.4521-2.7527l-0.01 0.009c-0.0892-0.08-0.14645-0.18586-0.2187-0.27705l0.007-0.01c-0.12751-0.17851-0.20325-0.38214-0.3265-0.56491l0.007-0.009c-0.3238-0.48222-0.63524-0.99419-0.84466-1.5015-0.0436-0.2245-0.1205-0.41769-0.13756-0.67619l-0.0244-0.0846c0.0135-0.23531-0.57032-0.37171-0.24922-0.82303 0.2017-0.21753 0.98221-0.4857 1.2477-0.89411 0.006-0.061 0.0201-0.1337-0.0325-0.18895 0-0.0436-0.0453-0.0896-0.0769-0.13485-0.14762-0.18354-0.54792-0.0386-0.54134-0.3095 0.041-0.002 0.002-0.0379 0.029-0.0534-0.0224-0.13369-0.0317-0.22218 0.006-0.335 0.0808-0.22218 0.15959-0.47798 0.14374-0.70208 0.0163-0.0842 0.1005-0.13447 0.18547-0.16731 0.16615-0.0417 0.31144-0.0641 0.4745-0.0858l0.0205 0.0166c0.37674-0.0309 0.8292-0.004 1.0792 0.29212 0.10813 0.2245 0.0236 0.49072-0.0371 0.71676-0.0189 0.13021-0.16152 0.23647-0.12828 0.37365 0.0495 0.0506 0.1534 0.0475 0.21948 0.0194 0.56876-0.34466 1.0653-0.82302 1.4795-1.306 0.38176-0.35741 0.94396-0.48105 1.461-0.40686 1.0475 0.0808 1.9328 0.43198 2.9092 0.67038z"/>
|
||||||
|
<path d="m336.83 374.28c0.14761 0.19629-0.0499 0.3694-0.10863 0.54212-0.61475 0.9231-0.8292 1.9687-1.2372 2.9575-0.0305 0.034-0.0911 0.0444-0.13485 0.0309-0.10863-0.0776-0.10863-0.20556-0.0962-0.31763 0.0819-1.0719 0.36515-2.0776 0.82147-3.0359 0.10663-0.1534 0.28864-0.32727 0.52319-0.29096 0.0885 0.0185 0.16769 0.0495 0.23221 0.114z"/>
|
||||||
|
<path d="m338.45 374.56c0.0785 0.35239-0.17426 0.64142-0.28631 0.95672-0.59814 1.194-1.3161 2.3624-1.6708 3.6387-0.0166 0.0406-0.0403 0.0955-0.0877 0.11325-0.0506 0.0139-0.0931-0.0113-0.10625-0.0471-0.11975-0.50733 0.0181-1.0352 0.14837-1.5174 0.3408-1.0715 0.75308-2.1677 1.3296-3.1642 0.0669-0.051 0.0773-0.0942 0.16074-0.11788 0.20053-0.0209 0.40146-0.006 0.51235 0.13795z"/>
|
||||||
|
<path d="m340.18 374.62c0.16112 0.12138 0.078 0.35085 0.0147 0.49305-0.70093 1.5522-1.8362 2.8906-2.306 4.5185-0.12983 0.34505-0.21406 0.70169-0.32187 1.0494-0.019 0.0626-0.1105 0.0645-0.17581 0.0491-0.0623-0.1476-0.044-0.33501-0.044-0.49459 0.14799-1.308 0.46059-2.5788 1.0997-3.7175 0.29056-0.56877 0.57147-1.0804 0.87634-1.6356 0.0861-0.15688 0.23029-0.29908 0.43972-0.35046 0.15417-0.009 0.30254 0.027 0.4173 0.0881z"/>
|
||||||
|
<path d="m342.1 374.7c0.11237 0.18818 0.004 0.39529-0.0471 0.57535-0.4459 1.2473-1.2797 2.2797-1.9494 3.4161-0.57341 0.93354-0.9486 1.9702-1.3304 2.9838-0.13215 0.30447-0.17968 0.64257-0.34003 0.93197-0.0131 0.0312-0.0541 0.0125-0.0822 0.0205-0.0985-0.0831-0.0858-0.20169-0.109-0.3068 0.0757-1.2689 0.56492-2.4154 1.0243-3.5606 0.57496-1.277 1.3458-2.4965 1.8698-3.8168 0.073-0.16653 0.21715-0.37055 0.43971-0.43315 0.22295-0.0336 0.39182 0.0468 0.52434 0.18973z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.1 KiB |