Browse Source

setup web

feature/web_interface
dslak 2 years ago
parent
commit
5fc7275342
  1. 3
      Web/AUTH
  2. 1
      Web/deploy.sh
  3. 16
      Web/weather/.browserslistrc
  4. 16
      Web/weather/.editorconfig
  5. 42
      Web/weather/.gitignore
  6. 4
      Web/weather/.vscode/extensions.json
  7. 20
      Web/weather/.vscode/launch.json
  8. 42
      Web/weather/.vscode/tasks.json
  9. 27
      Web/weather/README.md
  10. 119
      Web/weather/angular.json
  11. 44
      Web/weather/karma.conf.js
  12. 40
      Web/weather/package.json
  13. 9
      Web/weather/proxy.conf.json
  14. 9
      Web/weather/proxy.conf.prod.json
  15. 3
      Web/weather/src/api/.htaccess
  16. 7
      Web/weather/src/api/config.php
  17. 33
      Web/weather/src/api/get_data.php
  18. 9
      Web/weather/src/api/headers.php
  19. 25
      Web/weather/src/api/station.php
  20. 1
      Web/weather/src/app/app-layout/app-layout.component.html
  21. 0
      Web/weather/src/app/app-layout/app-layout.component.scss
  22. 23
      Web/weather/src/app/app-layout/app-layout.component.spec.ts
  23. 15
      Web/weather/src/app/app-layout/app-layout.component.ts
  24. 18
      Web/weather/src/app/app.component.html
  25. 67
      Web/weather/src/app/app.component.scss
  26. 31
      Web/weather/src/app/app.component.spec.ts
  27. 33
      Web/weather/src/app/app.component.ts
  28. 29
      Web/weather/src/app/app.module.ts
  29. 2
      Web/weather/src/app/dashboard/dashboard.component.html
  30. 0
      Web/weather/src/app/dashboard/dashboard.component.scss
  31. 23
      Web/weather/src/app/dashboard/dashboard.component.spec.ts
  32. 18
      Web/weather/src/app/dashboard/dashboard.component.ts
  33. 1
      Web/weather/src/app/graph/graph.component.html
  34. 0
      Web/weather/src/app/graph/graph.component.scss
  35. 23
      Web/weather/src/app/graph/graph.component.spec.ts
  36. 15
      Web/weather/src/app/graph/graph.component.ts
  37. 16
      Web/weather/src/app/station.service.spec.ts
  38. 40
      Web/weather/src/app/station.service.ts
  39. BIN
      Web/weather/src/assets/fonts/icomoon.eot
  40. 41
      Web/weather/src/assets/fonts/icomoon.svg
  41. BIN
      Web/weather/src/assets/fonts/icomoon.ttf
  42. BIN
      Web/weather/src/assets/fonts/icomoon.woff
  43. 1
      Web/weather/src/assets/fonts/selection.json
  44. BIN
      Web/weather/src/assets/images/icons/angle-down.png
  45. 40
      Web/weather/src/assets/images/icons/angle-left.svg
  46. 40
      Web/weather/src/assets/images/icons/angle-up.svg
  47. 58
      Web/weather/src/assets/images/icons/angle.svg
  48. 39
      Web/weather/src/assets/images/icons/article.svg
  49. 39
      Web/weather/src/assets/images/icons/calendar.svg
  50. 7
      Web/weather/src/assets/images/icons/checkmark.svg
  51. 39
      Web/weather/src/assets/images/icons/clock.svg
  52. 53
      Web/weather/src/assets/images/icons/close.svg
  53. 1
      Web/weather/src/assets/images/icons/copy.svg
  54. 39
      Web/weather/src/assets/images/icons/dots.svg
  55. 5
      Web/weather/src/assets/images/icons/download.svg
  56. 39
      Web/weather/src/assets/images/icons/edit.svg
  57. 59
      Web/weather/src/assets/images/icons/facebook.svg
  58. 39
      Web/weather/src/assets/images/icons/food.svg
  59. 40
      Web/weather/src/assets/images/icons/heart.svg
  60. 39
      Web/weather/src/assets/images/icons/list.svg
  61. 39
      Web/weather/src/assets/images/icons/medal.svg
  62. 43
      Web/weather/src/assets/images/icons/message.svg
  63. 46
      Web/weather/src/assets/images/icons/minus.svg
  64. 39
      Web/weather/src/assets/images/icons/plus.svg
  65. 39
      Web/weather/src/assets/images/icons/question.svg
  66. 77
      Web/weather/src/assets/images/icons/rules.svg
  67. 7
      Web/weather/src/assets/images/icons/save.svg
  68. 43
      Web/weather/src/assets/images/icons/telegram.svg
  69. 7
      Web/weather/src/assets/images/icons/trash.svg
  70. 39
      Web/weather/src/assets/images/icons/tricks.svg
  71. 56
      Web/weather/src/assets/images/icons/twitter.svg
  72. 40
      Web/weather/src/assets/images/icons/vaccine.svg
  73. 43
      Web/weather/src/assets/images/icons/whatsapp.svg
  74. 102
      Web/weather/src/assets/scss/forms.scss
  75. 115
      Web/weather/src/assets/scss/global.scss
  76. 120
      Web/weather/src/assets/scss/icons.scss
  77. 13
      Web/weather/src/assets/scss/main.scss
  78. 72
      Web/weather/src/assets/scss/mixins.scss
  79. 108
      Web/weather/src/assets/scss/variables.scss
  80. 4
      Web/weather/src/environments/environment.prod.ts
  81. 4
      Web/weather/src/environments/environment.ts
  82. BIN
      Web/weather/src/favicon.ico
  83. 13
      Web/weather/src/index.html
  84. 12
      Web/weather/src/main.ts
  85. 53
      Web/weather/src/polyfills.ts
  86. 26
      Web/weather/src/test.ts
  87. 15
      Web/weather/tsconfig.app.json
  88. 32
      Web/weather/tsconfig.json
  89. 18
      Web/weather/tsconfig.spec.json
  90. 6516
      Web/weather/yarn.lock

3
Web/AUTH

@ -0,0 +1,3 @@
MySQL
USR dslak
PWD D5l4kMyPwd!

1
Web/deploy.sh

@ -0,0 +1 @@
rsync -rlvz --delete --exclude "tmp" --exclude "config.php" -e "ssh -p2222" ./api/ dslak@2.233.91.82:/var/www/weather/api/

16
Web/weather/.browserslistrc

@ -0,0 +1,16 @@
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# For the full list of supported browsers by the Angular framework, please see:
# https://angular.io/guide/browser-support
# You can see what browsers were selected by your queries by running:
# npx browserslist
last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR

16
Web/weather/.editorconfig

@ -0,0 +1,16 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.ts]
quote_type = single
[*.md]
max_line_length = off
trim_trailing_whitespace = false

42
Web/weather/.gitignore

@ -0,0 +1,42 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.
# Compiled output
/dist
/tmp
/out-tsc
/bazel-out
# Node
/node_modules
npm-debug.log
yarn-error.log
# IDEs and editors
.idea/
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.history/*
# Miscellaneous
/.angular/cache
.sass-cache/
/connect.lock
/coverage
/libpeerconnection.log
testem.log
/typings
# System files
.DS_Store
Thumbs.db

4
Web/weather/.vscode/extensions.json

@ -0,0 +1,4 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
"recommendations": ["angular.ng-template"]
}

20
Web/weather/.vscode/launch.json

@ -0,0 +1,20 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "pwa-chrome",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200/"
},
{
"name": "ng test",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: test",
"url": "http://localhost:9876/debug.html"
}
]
}

42
Web/weather/.vscode/tasks.json

@ -0,0 +1,42 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
},
{
"type": "npm",
"script": "test",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
}
]
}

27
Web/weather/README.md

@ -0,0 +1,27 @@
# Weather
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.2.1.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.

119
Web/weather/angular.json

@ -0,0 +1,119 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"weather": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/weather",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"inlineStyleLanguage": "scss",
"assets": [
"src/favicon.ico",
"src/assets",
"src/.htaccess",
"src/api",
"src/uploads"
],
"styles": [
"src/assets/scss/main.scss"
],
"scripts": []
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "8mb",
"maximumError": "10mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "80kb",
"maximumError": "100kb"
}
],
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"outputHashing": "all"
},
"development": {
"buildOptimizer": false,
"optimization": false,
"vendorChunk": true,
"extractLicenses": false,
"sourceMap": true,
"namedChunks": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "weather:build",
"proxyConfig": "proxy.conf.json"
},
"configurations": {
"production": {
"browserTarget": "weather:build:production",
"proxyConfig": "proxy.conf.prod.json"
},
"development": {
"browserTarget": "weather:build:development",
"proxyConfig": "proxy.conf.json"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "weather:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"inlineStyleLanguage": "scss",
"assets": [
"src/favicon.ico",
"src/assets",
"src/.htaccess",
"src/api",
"src/uploads"
],
"styles": [
"src/assets/scss/main.scss"
],
"scripts": []
}
}
}
}
}
}

44
Web/weather/karma.conf.js

@ -0,0 +1,44 @@
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
jasmine: {
// you can add configuration options for Jasmine here
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
// for example, you can disable the random execution with `random: false`
// or set a specific seed with `seed: 4321`
},
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
jasmineHtmlReporter: {
suppressAll: true // removes the duplicated traces
},
coverageReporter: {
dir: require('path').join(__dirname, './coverage/weather'),
subdir: '.',
reporters: [
{ type: 'html' },
{ type: 'text-summary' }
]
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true
});
};

40
Web/weather/package.json

@ -0,0 +1,40 @@
{
"name": "weather",
"version": "0.0.0",
"scripts": {
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && ng serve",
"prod": "export NODE_OPTIONS=--openssl-legacy-provider && ng build --configuration production --base-href /weather/",
"deploy": "yarn prod && sh deploy.sh"
},
"private": true,
"dependencies": {
"@angular/animations": "^14.0.0",
"@angular/common": "^14.0.0",
"@angular/compiler": "^14.0.0",
"@angular/core": "^14.0.0",
"@angular/forms": "^14.0.0",
"@angular/platform-browser": "^14.0.0",
"@angular/platform-browser-dynamic": "^14.0.0",
"@angular/router": "^14.0.0",
"@popperjs/core": "^2.11.6",
"bootstrap": "^5.2.3",
"echarts": "^5.4.1",
"hamburgers": "^1.2.1",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "^14.2.1",
"@angular/cli": "~14.2.1",
"@angular/compiler-cli": "^14.0.0",
"@types/jasmine": "~4.0.0",
"jasmine-core": "~4.3.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
"typescript": "~4.7.2"
}
}

9
Web/weather/proxy.conf.json

@ -0,0 +1,9 @@
{
"/api/*": {
"target": "http://weatherapi.local",
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}

9
Web/weather/proxy.conf.prod.json

@ -0,0 +1,9 @@
{
"/api/*": {
"target": "http://2.233.91.82/weather/api",
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}

3
Web/weather/src/api/.htaccess

@ -0,0 +1,3 @@
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

7
Web/weather/src/api/config.php

@ -0,0 +1,7 @@
<?php
$GLOBALS['CONF']['DB']['HOST'] = 'localhost';
$GLOBALS['CONF']['DB']['USER'] = 'root';
$GLOBALS['CONF']['DB']['PASS'] = 'root';
?>

33
Web/weather/src/api/get_data.php

@ -0,0 +1,33 @@
<?php
@include 'config.php';
@include 'headers.php';
$conn = @mysqli_connect($CONF['DB']['HOST'], $CONF['DB']['USER'], $CONF['DB']['PASS'], 'weather')or die("CONNECTION ERROR");
$day = $_GET['day'];
$q = mysqli_query($conn, "SELECT * FROM `data` WHERE `date` LIKE '$day%'");
if($q) {
$list = array();
while($row = mysqli_fetch_assoc($q)) {
$list[] = $row;
}
http_response_code(200);
echo json_encode(array(
"status" => 200,
"items" => $list
));
} else {
http_response_code(400);
echo json_encode(array(
"status" => 400,
"message" => "Error executing query"
));
}
?>

9
Web/weather/src/api/headers.php

@ -0,0 +1,9 @@
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST,GET");
header("Access-Control-Max-Age: 3600");
?>

25
Web/weather/src/api/station.php

@ -0,0 +1,25 @@
<?php
@include 'config.php';
@include 'headers.php';
$conn = @mysqli_connect($CONF['DB']['HOST'], $CONF['DB']['USER'], $CONF['DB']['PASS'], 'weather')or die("CONNECTION ERROR");
$data = explode('|',$_GET['data']);
$query = "INSERT INTO `data` VALUES(NULL, NOW(), ".$data[0].", ".$data[1].", ".$data[2].", ".$data[3].", ".$data[4].")";
if(mysqli_query($conn, $query)) {
http_response_code(200);
echo json_encode(array(
"status" => 200,
"message" => "Data succesfully added"
));
} else {
http_response_code(400);
echo json_encode(array(
"status" => 400,
"message" => "Error executing query".$query
));
}
?>

1
Web/weather/src/app/app-layout/app-layout.component.html

@ -0,0 +1 @@
<p>app-layout works!</p>

0
Web/weather/src/app/app-layout/app-layout.component.scss

23
Web/weather/src/app/app-layout/app-layout.component.spec.ts

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppLayoutComponent } from './app-layout.component';
describe('AppLayoutComponent', () => {
let component: AppLayoutComponent;
let fixture: ComponentFixture<AppLayoutComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ AppLayoutComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(AppLayoutComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

15
Web/weather/src/app/app-layout/app-layout.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-app-layout',
templateUrl: './app-layout.component.html',
styleUrls: ['./app-layout.component.scss']
})
export class AppLayoutComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

18
Web/weather/src/app/app.component.html

@ -0,0 +1,18 @@
<header class="header">
<span class="title">{{title}}</span>
<div class="menu">
<div class="hamburger hamburger--spin" [ngClass]="{'is-active': menuOpen}" (click)="toggleMenu()">
<div class="hamburger-box">
<div class="hamburger-inner"></div>
</div>
</div>
</div>
<div class="menu-items" [@slideInOut]="menuOpen ? 'open' : 'close'">
<div class="item" (click)="toggleMenu()">Capaccio</div>
<div class="item" (click)="toggleMenu()">Pisciotta</div>
</div>
</header>
<main class="main-content">
<app-dashboard [day]="day"></app-dashboard>
</main>

67
Web/weather/src/app/app.component.scss

@ -0,0 +1,67 @@
@import "../assets/scss/variables";
.header {
position: fixed;
display: flex;
top: 0;
left: 0;
height: $header-height-mobile;
width: 100%;
background: $dark-gray;
background-color: rgb(32, 32, 32);
background-image: linear-gradient(45deg, $dark-gray 25%, transparent 25%, transparent 75%, $dark-gray 75%, $dark-gray),
linear-gradient(45deg, $dark-gray 25%, transparent 25%, transparent 75%, $dark-gray 75%, $dark-gray),
linear-gradient(to bottom, $black-alpha, $dark-gray);
background-size: 10px 10px, 10px 10px, 10px 5px;
background-position: 0px 0px, 5px 5px, 0px 0px;
@media (min-width: map-get($grid-breakpoints, 'md')) {
height: $header-height;
}
.title {
display: block;
padding: 0 50px;
font-family: $font-serif;
font-size: $font-30;
font-weight: bold;
color: $white-alpha;
margin: auto auto 15px auto;
text-shadow: 0 0 2px $black;
}
.menu {
position: absolute;
top: 20px;
right: 20px;
height: $hamburger-layer-width;
width: $hamburger-layer-width;
overflow: visible;
}
.menu-items {
position: absolute;
display: block;
width: 100%;
top: $header-height-mobile;
left: 0;
overflow: hidden;
@media (min-width: map-get($grid-breakpoints, 'md')) {
top: $header-height;
}
.item {
display: block;
background: $white;
padding: 20px;
font-size: $font-34;
font-family: $font-serif;
text-align: center;
text-transform: uppercase;
color: $dark-gray;
border-bottom: 1px dotted $black-alpha;
cursor: pointer;
}
}
}

31
Web/weather/src/app/app.component.spec.ts

@ -0,0 +1,31 @@
import { TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [
AppComponent
],
}).compileComponents();
});
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
it(`should have as title 'weather'`, () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.componentInstance;
expect(app.title).toEqual('weather');
});
it('should render title', () => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
expect(compiled.querySelector('.content span')?.textContent).toContain('weather app is running!');
});
});

33
Web/weather/src/app/app.component.ts

@ -0,0 +1,33 @@
import { Component } from '@angular/core'
import { trigger, state, style, animate, transition } from '@angular/animations'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
animations: [
trigger('slideInOut', [
state('close', style({
opacity: '0',
height: '0px'
})),
state('open', style({
opacity: '1',
height: '*'
})),
transition('close => open', animate('300ms ease-in-out')),
transition('open => close', animate('300ms ease-in-out'))
])
]
})
export class AppComponent {
public title: string = 'Dslak weather station'
public day: string = new Date().toISOString().substring(0,10)
public menuOpen: boolean = false
toggleMenu(): void {
this.menuOpen = !this.menuOpen
}
}

29
Web/weather/src/app/app.module.ts

@ -0,0 +1,29 @@
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClientModule } from '@angular/common/http';
import { environment } from '../environments/environment'
import { AppComponent } from './app.component';
import { AppLayoutComponent } from './app-layout/app-layout.component';
import { GraphComponent } from './graph/graph.component';
import { DashboardComponent } from './dashboard/dashboard.component';
@NgModule({
declarations: [
AppComponent,
AppLayoutComponent,
GraphComponent,
DashboardComponent
],
imports: [
BrowserModule,
FormsModule,
BrowserAnimationsModule,
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

2
Web/weather/src/app/dashboard/dashboard.component.html

@ -0,0 +1,2 @@
<p>dashboard works!</p>
{{day}}

0
Web/weather/src/app/dashboard/dashboard.component.scss

23
Web/weather/src/app/dashboard/dashboard.component.spec.ts

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DashboardComponent } from './dashboard.component';
describe('DashboardComponent', () => {
let component: DashboardComponent;
let fixture: ComponentFixture<DashboardComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ DashboardComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(DashboardComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

18
Web/weather/src/app/dashboard/dashboard.component.ts

@ -0,0 +1,18 @@
import { Component, OnInit, Input } from '@angular/core'
@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
@Input() day: string = ''
constructor() { }
ngOnInit(): void {
}
}

1
Web/weather/src/app/graph/graph.component.html

@ -0,0 +1 @@
<p>graph works!</p>

0
Web/weather/src/app/graph/graph.component.scss

23
Web/weather/src/app/graph/graph.component.spec.ts

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { GraphComponent } from './graph.component';
describe('GraphComponent', () => {
let component: GraphComponent;
let fixture: ComponentFixture<GraphComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ GraphComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(GraphComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

15
Web/weather/src/app/graph/graph.component.ts

@ -0,0 +1,15 @@
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-graph',
templateUrl: './graph.component.html',
styleUrls: ['./graph.component.scss']
})
export class GraphComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
}

16
Web/weather/src/app/station.service.spec.ts

@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { StationService } from './station.service';
describe('StationService', () => {
let service: StationService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(StationService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

40
Web/weather/src/app/station.service.ts

@ -0,0 +1,40 @@
import { Injectable } from '@angular/core'
import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http'
import { Observable, Subject, throwError } from 'rxjs'
import { catchError, retry } from 'rxjs/operators'
import { environment } from '../environments/environment'
@Injectable({
providedIn: 'root'
})
export class StationService {
private restApi = `${environment.API_URL}`
constructor(private http: HttpClient) {
this.layout = null
}
commonHeaders(): any {
return new HttpHeaders({
//'Authorization': `Bearer ${sessionStorage.getItem('auth_token')}`
})
}
protected handleError(error: HttpErrorResponse) {
if(error.error instanceof ErrorEvent) {
console.error('An error occurred:', error.error.message)
}
return throwError(error)
}
getData(day: string): Observable<any> {
const apiUrl = `${this.restApi}/get_data?day=${day}`;
return this.http.get<any>(apiUrl, {headers: this.commonHeaders()}).pipe(
catchError(this.handleError)
)
}
}

BIN
Web/weather/src/assets/fonts/icomoon.eot

Binary file not shown.

41
Web/weather/src/assets/fonts/icomoon.svg

@ -0,0 +1,41 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="angle-right" d="M859.996 491.805c27.454-22.75 27.454-64.858 0-87.608l-536.619-444.669c-37.080-30.726-93.184-4.352-93.184 43.804v889.334c0 48.159 56.104 74.532 93.184 43.805z" />
<glyph unicode="&#xe901;" glyph-name="angle-left" d="M164.004 491.805c-27.454-22.75-27.454-64.858 0-87.608l536.619-444.669c37.080-30.726 93.184-4.352 93.184 43.804v889.334c0 48.159-56.104 74.532-93.184 43.805z" />
<glyph unicode="&#xe902;" glyph-name="angle-down" d="M473.899 207.096c21.045-21.035 55.156-21.035 76.2 0l405.763 405.57c33.964 33.948 9.922 92.013-38.104 92.013h-811.518c-48.021 0-72.064-58.065-38.1-92.013z" />
<glyph unicode="&#xe903;" glyph-name="angle-up" d="M473.899 688.904c21.045 21.035 55.156 21.035 76.2 0l405.763-405.57c33.964-33.948 9.922-92.013-38.104-92.013h-811.518c-48.021 0-72.064 58.065-38.1 92.013z" />
<glyph unicode="&#xe904;" glyph-name="article" d="M128 886.857c-57.149 0-103.619-43.739-103.619-97.524v-682.667c0-53.784 46.47-97.524 103.619-97.524h768c57.149 0 103.619 43.739 103.619 97.524v682.667c0 53.785-46.47 97.524-103.619 97.524zM128 789.333h768c3.852-0.049 5.949-1.356 6.095-0.381l0.571-680c-0.341-0.488-2.522-2.285-6.667-2.285h-768c-2.779 0-4.695 0.857-5.524 0.857-0.341 0-0.523-0.088-0.571-0.38l-0.571 679.999c0.341 0.488 2.522 2.19 6.667 2.19zM219.429 691.81v-292.571h292.571v292.571zM609.524 691.81v-97.524h195.048v97.524zM609.524 496.762v-97.524h195.048v97.524zM219.429 301.714v-97.524h585.143v97.524h-243.81z" />
<glyph unicode="&#xe905;" glyph-name="calendar" d="M333.913 937.435c-24.375 0-44.176-19.587-44.521-43.881v-44.555h-44.522c-122.416 0-222.609-100.193-222.609-222.609v-445.217c0-122.415 100.192-222.609 222.609-222.609h534.261c122.415 0 222.609 100.194 222.609 222.609v445.217c0 122.416-100.194 222.609-222.609 222.609h-44.522v44.522c-0.346 24.326-20.146 43.913-44.522 43.913v0c-24.375 0-44.176-19.587-44.521-43.881v-44.555h-267.13v44.522c-0.346 24.326-20.146 43.913-44.522 43.913v0zM244.87 759.957h44.522v-44.522c0.355-24.319 20.152-43.897 44.522-43.897s44.167 19.578 44.521 43.863v44.555h267.13v-44.522c0.346-24.326 20.146-43.913 44.522-43.913v0c24.375 0 44.176 19.587 44.521 43.881v44.555h44.522c74.291 0 133.565-59.272 133.565-133.565v-44.522h-801.391v44.522c0 74.293 59.272 133.565 133.565 133.565zM111.304 492.826h801.391v-311.652c0-74.291-59.275-133.565-133.565-133.565h-534.261c-74.293 0-133.565 59.274-133.565 133.565z" />
<glyph unicode="&#xe906;" glyph-name="clock" d="M513.6 950.4c-278.823 0-505.76-226.818-505.76-505.6s226.937-505.68 505.76-505.68 505.76 226.897 505.76 505.68c0 278.782-226.936 505.6-505.76 505.6zM513.6 868.48c234.56 0 423.84-189.179 423.84-423.68s-189.28-423.76-423.84-423.76-423.84 189.258-423.84 423.76c0 234.501 189.281 423.68 423.84 423.68zM513.6 764.56c-22.622 0-40.96-18.338-40.96-40.96v0-286.8c0.006-35.499 14.097-69.549 39.2-94.64l112.24-112.16c7.412-7.41 17.651-11.994 28.96-11.994s21.548 4.583 28.96 11.994v0c7.41 7.412 11.994 17.651 11.994 28.96s-4.583 21.548-11.994 28.96l-112.24 112.16c-9.744 9.739-15.177 22.948-15.2 36.72v286.8c0 22.622-18.338 40.96-40.96 40.96v0z" />
<glyph unicode="&#xe907;" glyph-name="dots" d="M512 948.762c-0.013 0-0.028 0-0.043 0-69.143 0-125.195-56.052-125.195-125.195 0-0.015 0-0.031 0-0.046v0.002c0.030-69.121 56.070-125.143 125.195-125.143 0.015 0 0.030 0 0.046 0h-0.002c0.013 0 0.028 0 0.043 0 69.125 0 125.165 56.022 125.195 125.14v0.003c0 0.013 0 0.028 0 0.043 0 69.143-56.052 125.195-125.195 125.195-0.015 0-0.031 0-0.046 0h0.003zM512 573.143c-0.013 0-0.028 0-0.043 0-69.143 0-125.195-56.052-125.195-125.195 0-0.015 0-0.031 0-0.046v0.003c0.030-69.121 56.070-125.143 125.195-125.143 0.015 0 0.030 0 0.046 0h-0.002c0.013 0 0.028 0 0.043 0 69.125 0 125.165 56.022 125.195 125.14v0.003c0 0.013 0 0.028 0 0.043 0 69.143-56.052 125.195-125.195 125.195-0.015 0-0.031 0-0.046 0h0.003zM512 197.619c-0.013 0-0.028 0-0.043 0-69.143 0-125.195-56.052-125.195-125.195 0-0.015 0-0.031 0-0.046v0.003c0.030-69.121 56.070-125.143 125.195-125.143 0.015 0 0.030 0 0.046 0h-0.002c0.013 0 0.028 0 0.043 0 69.125 0 125.165 56.022 125.195 125.14v0.003c0 0.013 0 0.028 0 0.043 0 69.143-56.052 125.195-125.195 125.195-0.015 0-0.031 0-0.046 0h0.003z" />
<glyph unicode="&#xe908;" glyph-name="edit" d="M900.222 948c-32.821 0-64.267-13.017-87.481-36.222l-469.556-469.556v-174.963h175.037l469.556 469.481c23.207 23.213 36.222 54.659 36.222 87.481s-13.015 64.343-36.222 87.556c-23.211 23.206-54.731 36.222-87.556 36.222zM157.556 824.222c-32.829 0-64.342-13.009-87.556-36.222s-36.222-54.726-36.222-87.556v-618.889c0-32.829 13.009-64.345 36.222-87.556 23.214-23.214 54.726-36.222 87.556-36.222h618.889c32.829 0 64.341 13.008 87.556 36.222 23.214 23.211 36.222 54.727 36.222 87.556v247.556c0 16.414-6.543 32.172-18.148 43.778-11.609 11.605-27.289 18.074-43.704 18.074s-32.169-6.469-43.778-18.074c-11.605-11.605-18.148-27.363-18.148-43.778v-247.556h-618.889v618.889h247.556c16.414 0 32.172 6.541 43.778 18.148 11.609 11.607 18.074 27.289 18.074 43.704s-6.465 32.171-18.074 43.778c-11.605 11.607-27.363 18.148-43.778 18.148h-247.556z" />
<glyph unicode="&#xe909;" glyph-name="facebook" d="M294.306 618.441h91.988c0 5.84-0.041 10.531 0 15.222 0.387 39.56-1.095 79.269 1.65 118.679 0.72 27.3 7.26 54.101 19.158 78.495s28.86 45.781 49.677 62.642c32.235 24.686 71.36 37.912 111.5 37.692 50.861 1.276 101.776 0.188 152.666 0.086 1.722 0 3.44-0.332 5.728-0.566v-165.41c-16.966 0-33.686 0-50.41 0-17.923 0-35.862 0.264-53.76-0.106-4.97 0.57-10.005 0.068-14.779-1.476s-9.183-4.095-12.951-7.492c-3.768-3.396-6.812-7.562-8.936-12.236s-3.284-9.753-3.406-14.914c-1.908-36.395-0.506-72.969-0.506-110.534h147.785l-16.979-170.95h-131.198v-483.331h-194.965v482.982h-92.245z" />
<glyph unicode="&#xe90a;" glyph-name="food" d="M256.264 849.563c-5.82 0.144-11.648-0.069-17.472-0.642-23.295-2.289-45.665-10.282-65.132-23.283s-35.413-30.604-46.453-51.245c-5.954-11.132-6.243-23.978-9.057-36.189-12.223-2.803-25.082-3.070-36.226-9.019-20.656-11.025-38.303-26.992-51.321-46.453s-21.017-41.833-23.321-65.132c-2.304-23.3 1.16-46.819 10.113-68.453s23.113-40.728 41.208-55.585c18.098-14.859 39.604-25.016 62.566-29.585s46.686-3.404 69.094 3.396c9.505 2.883 16.531 10.342 25.17 15.094l99.547-99.509h-165.962c-0.003 0-0.007 0-0.011 0-8.748 0-16.816-2.906-23.293-7.806l0.097 0.070c-80.664-60.512-119.17-161.843-119.17-290.189 0.002-21.34 17.301-38.639 38.641-38.642h933.434c21.333 0.013 38.622 17.31 38.622 38.645 0 1.408-0.075 2.798-0.222 4.166l0.015-0.17c-8.592 82.036-5.396 190.086-117.17 284.755-6.688 5.699-15.429 9.167-24.98 9.17h-165.925l99.509 99.472c8.634-4.748 15.672-12.175 25.17-15.057 22.409-6.8 46.133-7.965 69.094-3.396 22.963 4.569 44.468 14.725 62.566 29.585 18.097 14.857 32.254 33.949 41.208 55.585 8.955 21.635 12.418 45.152 10.113 68.453-2.304 23.299-10.303 45.67-23.321 65.132s-30.628 35.428-51.283 46.453c-11.159 5.956-24.025 6.254-36.264 9.057-2.814 12.198-3.11 25.031-9.057 36.151-11.040 20.643-26.99 38.246-46.453 51.245-19.467 13-41.837 20.994-65.132 23.283s-46.79-1.188-68.415-10.151c-21.625-8.963-40.739-23.111-55.585-41.208-14.844-18.097-24.984-39.609-29.547-62.566-4.561-22.957-3.403-46.695 3.396-69.094 2.881-9.492 10.348-16.502 15.094-25.132l-138.151-138.113-138.151 138.113c4.745 8.625 12.213 15.643 15.094 25.132v0.039c6.79 22.387 7.954 46.111 3.396 69.056-4.563 22.957-14.703 44.469-29.547 62.566-14.846 18.096-33.922 32.245-55.547 41.208-16.218 6.722-33.521 10.36-50.981 10.792zM254.377 772.318c7.969-0.198 15.832-1.871 23.245-4.943 9.887-4.097 18.607-10.555 25.396-18.83 6.787-8.274 11.423-18.105 13.509-28.604s1.561-21.345-1.547-31.585c-3.106-10.237-8.695-19.526-16.264-27.094-7.001-6.995-11.332-16.661-11.332-27.34s4.331-20.345 11.332-27.339l158.642-158.566-49.057-49.057-158.679 158.642c-6.993 6.99-16.652 11.313-27.32 11.313-10.688 0-20.362-4.339-27.358-11.351l-0.001-0.001c-7.571-7.57-16.852-13.119-27.094-16.226-0.005-0.005-0.017-0.018-0.030-0.030l-0.008-0.008c-10.241-3.106-21.084-3.636-31.585-1.546s-20.294 6.755-28.566 13.547c-8.275 6.794-14.737 15.506-18.83 25.396-4.094 9.894-5.695 20.629-4.642 31.283 1.053 10.651 4.728 20.876 10.679 29.774s13.991 16.205 23.434 21.245c9.444 5.040 19.975 7.668 30.679 7.66 0.010 0 0.022 0 0.034 0 21.342 0 38.643 17.3 38.645 38.641v0c0.003 10.702 2.651 21.205 7.698 30.641s12.345 17.491 21.245 23.434c8.898 5.942 19.123 9.595 29.774 10.642 2.663 0.262 5.344 0.368 8 0.302zM769.66 772.318c2.66 0.066 5.338-0.040 8-0.302 10.651-1.047 20.874-4.698 29.774-10.642s16.161-13.999 21.208-23.434c5.048-9.439 7.696-19.943 7.698-30.641 0.002-21.342 17.303-38.642 38.645-38.642 0.012 0 0.024 0 0.036 0h-0.002c10.706 0.008 21.238-2.621 30.679-7.66 9.443-5.040 17.521-12.349 23.472-21.245s9.588-19.122 10.642-29.774c1.054-10.653-0.509-21.39-4.604-31.283-4.092-9.888-10.592-18.602-18.868-25.396-8.271-6.791-18.065-11.458-28.566-13.547-10.499-2.089-21.342-1.523-31.585 1.585-10.242 3.107-19.561 8.654-27.132 16.226-6.995 7.002-16.662 11.333-27.34 11.333-10.659 0-20.31-4.315-27.302-11.295l-174.716-174.641h-98.113l223.698 223.623c7.001 6.995 11.332 16.661 11.332 27.34s-4.331 20.345-11.332 27.339v0c-7.569 7.565-13.155 16.851-16.264 27.093-3.108 10.24-3.633 21.087-1.547 31.585s6.722 20.33 13.509 28.604c6.789 8.276 15.51 14.733 25.396 18.83 7.413 3.073 15.304 4.745 23.283 4.943zM164.415 305.676h693.887c65.039-59.733 71.887-116.521 76.868-182h-848.415c6.253 85.205 32.457 143.973 77.66 182z" />
<glyph unicode="&#xe90b;" glyph-name="heart" d="M987.6 787.285c-42.488 90.069-164.876 163.762-307.243 120.856-68.029-20.298-127.382-63.827-168.365-123.477-40.98 59.649-100.332 103.179-168.363 123.477-142.682 42.251-264.754-30.787-307.242-120.856-59.609-126.097-34.878-267.914 73.561-421.522 84.975-120.202 206.413-242.042 382.706-383.531 5.569-4.49 12.434-6.928 19.499-6.928s13.926 2.438 19.499 6.928c175.974 141.162 297.728 262.018 382.704 383.531 108.123 153.608 132.852 295.426 73.244 421.522z" />
<glyph unicode="&#xe90c;" glyph-name="list" d="M336.458 945.356c-18.158 0.010-35.883-5.588-50.712-16.068s-26.014-25.321-32.068-42.441h-92.746c-23.278 0-45.608-9.235-62.068-25.695s-25.729-38.79-25.729-62.068v-702.169c0-23.278 9.269-45.575 25.729-62.034 16.46-16.46 38.79-25.729 62.068-25.729h224.508c-8.805 18.503-14.752 38.225-17.661 58.508h-206.847c-7.759 0-15.225 3.090-20.712 8.576s-8.542 12.92-8.542 20.678v702.169c0 7.759 3.056 15.191 8.542 20.678s12.952 8.576 20.712 8.576h92.746c6.054-17.12 17.239-31.927 32.068-42.407s32.554-16.11 50.712-16.102h175.559c18.158-0.009 35.849 5.622 50.678 16.102s26.048 25.287 32.102 42.407h92.746c7.76 0 15.19-3.090 20.678-8.576 5.486-5.487 8.576-12.918 8.576-20.678v-321.831h58.508v321.831c0 23.278-9.235 45.608-25.695 62.068s-38.79 25.695-62.068 25.695h-92.746c-6.054 17.12-17.273 31.961-32.102 42.441s-32.52 16.077-50.678 16.068zM336.458 886.847h175.559c7.758 0 15.192-3.056 20.678-8.542 5.488-5.487 8.576-12.953 8.576-20.712s-3.088-15.191-8.576-20.678c-5.486-5.487-12.92-8.576-20.678-8.576h-175.559c-7.76 0-15.19 3.090-20.678 8.576-5.486 5.487-8.576 12.918-8.576 20.678s3.090 15.225 8.576 20.712c5.488 5.487 12.918 8.542 20.678 8.542zM541.271 418.746c-31.038 0-60.799-12.323-82.746-34.271s-34.305-51.708-34.305-82.746v-234.068c0-31.038 12.359-60.799 34.305-82.746s51.708-34.271 82.746-34.271h292.542c31.038 0 60.833 12.325 82.78 34.271s34.271 51.708 34.271 82.746v234.068c0 31.038-12.325 60.799-34.271 82.746-21.947 21.948-51.742 34.271-82.78 34.271zM570.525 301.729h234.034c7.758 0 15.226-3.090 20.712-8.576 5.488-5.488 8.542-12.918 8.542-20.678s-3.054-15.224-8.542-20.712c-5.486-5.486-12.954-8.542-20.712-8.542h-234.034c-7.758 0-15.226 3.056-20.712 8.542-5.486 5.488-8.542 12.952-8.542 20.712s3.056 15.19 8.542 20.678c5.486 5.486 12.954 8.576 20.712 8.576zM570.525 126.169h234.034c7.758 0 15.226-3.056 20.712-8.542 5.488-5.486 8.542-12.952 8.542-20.712 0-7.758-3.054-15.192-8.542-20.678-5.486-5.486-12.954-8.576-20.712-8.576h-234.034c-7.758 0-15.226 3.090-20.712 8.576s-8.542 12.92-8.542 20.678c0 7.76 3.056 15.226 8.542 20.712s12.954 8.542 20.712 8.542z" />
<glyph unicode="&#xe90d;" glyph-name="medal" d="M134.857 825.143c-33.341 0-65.317-13.245-88.893-36.821s-36.821-55.551-36.821-88.893v-502.857c0-33.342 13.245-65.317 36.821-88.893s55.551-36.821 88.893-36.821h754.286c33.34 0 65.317 13.246 88.893 36.821s36.821 55.551 36.821 88.893v502.857c0 33.341-13.246 65.317-36.821 88.893s-55.553 36.821-88.893 36.821zM134.857 762.286h754.286c16.669 0 32.642-6.605 44.429-18.393 11.789-11.788 18.429-27.794 18.429-44.464v-502.857c0-16.671-6.64-32.675-18.429-44.464-11.787-11.789-27.759-18.393-44.429-18.393h-754.286c-16.671 0-32.676 6.604-44.464 18.393s-18.393 27.793-18.393 44.464v502.857c0 16.671 6.605 32.676 18.393 44.464s27.794 18.393 44.464 18.393zM166.286 636.571c-8.335 0-16.32-3.321-22.214-9.214-5.894-5.895-9.214-13.878-9.214-22.214v-62.857c0-8.335 3.32-16.321 9.214-22.214s13.879-9.214 22.214-9.214h125.714c8.336 0 16.321 3.321 22.214 9.214 5.895 5.893 9.214 13.88 9.214 22.214v62.857c0 8.336-3.319 16.319-9.214 22.214-5.893 5.893-13.878 9.214-22.214 9.214zM166.286 448c-8.335 0-16.32-3.321-22.214-9.214-5.894-5.895-9.214-13.878-9.214-22.214s3.32-16.321 9.214-22.214 13.879-9.214 22.214-9.214h314.286c8.336 0 16.319 3.321 22.214 9.214 5.893 5.893 9.214 13.88 9.214 22.214 0 8.336-3.321 16.319-9.214 22.214-5.895 5.893-13.878 9.214-22.214 9.214zM166.286 322.286c-8.335 0-16.32-3.321-22.214-9.214-5.894-5.895-9.214-13.878-9.214-22.214s3.32-16.321 9.214-22.214 13.879-9.214 22.214-9.214h62.857c8.336 0 16.321 3.321 22.214 9.214 5.895 5.893 9.214 13.88 9.214 22.214 0 8.336-3.319 16.319-9.214 22.214-5.893 5.893-13.878 9.214-22.214 9.214zM354.857 322.286c-8.335 0-16.321-3.321-22.214-9.214-5.895-5.895-9.214-13.878-9.214-22.214s3.319-16.321 9.214-22.214c5.893-5.893 13.88-9.214 22.214-9.214h62.857c8.336 0 16.321 3.321 22.214 9.214 5.895 5.893 9.214 13.88 9.214 22.214 0 8.336-3.319 16.319-9.214 22.214-5.893 5.893-13.878 9.214-22.214 9.214zM543.429 322.286c-8.335 0-16.321-3.321-22.214-9.214-5.895-5.895-9.214-13.878-9.214-22.214s3.319-16.321 9.214-22.214c5.893-5.893 13.88-9.214 22.214-9.214h62.857c8.336 0 16.319 3.321 22.214 9.214 5.893 5.893 9.214 13.88 9.214 22.214 0 8.336-3.321 16.319-9.214 22.214-5.895 5.893-13.878 9.214-22.214 9.214zM732 322.286c-8.335 0-16.321-3.321-22.214-9.214-5.895-5.895-9.214-13.878-9.214-22.214s3.319-16.321 9.214-22.214c5.893-5.893 13.88-9.214 22.214-9.214h62.857c8.336 0 16.319 3.321 22.214 9.214 5.893 5.893 9.214 13.88 9.214 22.214 0 8.336-3.321 16.319-9.214 22.214-5.895 5.893-13.878 9.214-22.214 9.214z" />
<glyph unicode="&#xe90e;" glyph-name="message" d="M194.613 106.197h634.775c80.568 0 146.487 65.922 146.487 146.49v537.116c0 80.568-65.918 146.487-146.487 146.487h-634.775c-80.568 0-146.487-65.919-146.487-146.487v-830.093zM585.255 521.241c0-40.451-32.795-73.243-73.243-73.243-40.451 0-73.247 32.792-73.247 73.243s32.795 73.243 73.247 73.243c40.448 0 73.243-32.792 73.243-73.243zM756.147 447.998c-40.451 0-73.243 32.792-73.243 73.243s32.792 73.243 73.243 73.243c40.451 0 73.243-32.792 73.243-73.243s-32.792-73.243-73.243-73.243zM341.104 521.241c0-40.451-32.792-73.243-73.243-73.243s-73.243 32.792-73.243 73.243c0 40.451 32.792 73.243 73.243 73.243s73.243-32.792 73.243-73.243z" />
<glyph unicode="&#xe90f;" glyph-name="minus" d="M974.612 448v-0.001c0-40.017-32.44-72.457-72.457-72.457h-780.311c-40.017 0-72.457 32.44-72.457 72.457v0.001c0 40.017 32.44 72.457 72.457 72.457h780.311c40.017 0 72.457-32.44 72.457-72.457z" />
<glyph unicode="&#xe910;" glyph-name="plus" d="M512 910.667c-40.141 0-72.444-32.415-72.444-72.556v-317.667h-317.667c-40.141 0-72.556-32.304-72.556-72.444s32.415-72.444 72.556-72.444h317.667v-317.667c0-40.141 32.304-72.556 72.444-72.556s72.444 32.415 72.444 72.556v317.667h317.667c40.141 0 72.556 32.304 72.556 72.444s-32.415 72.444-72.556 72.444h-317.667v317.667c0 40.141-32.304 72.556-72.444 72.556z" />
<glyph unicode="&#xe911;" glyph-name="question" d="M521.348 947.027c-15.966 0.3-32.034-0.171-48.091-1.455-128.454-10.267-247.568-70.907-331.455-168.727-77.608-89.036-119.61-203.63-117.818-321.727 0.357-76.083 18.647-151.027 53.364-218.727 4.247-9.449 5.281-20.009 2.909-30.091-15.686-62.552-32.823-124.783-49.091-187.182-3.106-9.588-4.409-19.659-3.909-29.727 0.805-6.8 3.070-13.296 6.727-19.091 3.657-5.79 8.568-10.714 14.364-14.364 5.795-3.654 12.379-5.931 19.182-6.727 6.803-0.801 13.699-0.121 20.182 2.091 71.127 18.697 141.992 38.363 213.182 56.818 9.080 2.183 18.59 1.648 27.364-1.545 58.521-23.515 121.115-35.272 184.182-34.727 10.664-0.019 21.246-0.023 31.909 0 1.597 0.005 3.227 0.126 4.818 0.275 65.136 4.603 128.617 22.407 186.636 52.364 58.019 29.961 109.351 71.468 150.818 121.909 82.618 98.895 122.733 226.433 111.636 354.818s-72.458 247.11-170.818 330.364c-86.065 72.847-194.326 113.353-306.091 115.455zM518.257 864.3c91.264-1.343 179.55-33.507 250.455-91.545 42.934-34.53 78.255-77.551 103.636-126.455 25.377-48.903 40.299-102.56 43.818-157.545 7.494-103.48-25.026-205.961-90.818-286.182-65.797-80.221-159.874-132.102-262.818-145-76.097-9.421-153.292 2.674-222.909 34.818-11.085 4.566-23.327 5.464-35 2.727-52.757-13.019-105.058-27.86-157.545-42-6.006-1.62-12.171-2.787-22.182-5.091 12.094 45.675 21.182 87.944 34.727 128.727 6.086 16.924 8.429 34.989 6.818 52.909-1.61 17.916-7.175 35.249-16.182 50.818-39.387 77.987-52.141 166.689-36.455 252.636s58.968 164.413 123.364 223.455c71.73 66.394 165.030 104.663 262.727 107.636 6.106 0.186 12.279 0.181 18.364 0.091zM511.802 706.391c-37.792-0.242-74.963-10.493-107.545-29.818-16.937-10.77-31.438-24.889-42.636-41.545s-18.781-35.433-22.364-55.182c-2.459-12.47 0.956-17.84 13.364-19.091 17.475-1.733 34.91-3.821 52.273-6.455 12.514-1.89 18.84 1.776 23.182 14.727 5.795 22.588 20.28 41.998 40.273 54 19.991 12.003 43.887 15.687 66.545 10.182 13.452-1.114 26.25-6.309 36.727-14.818 10.473-8.509 18.151-19.973 22-32.909 3.724-12.68 3.284-26.229-1.273-38.636-4.552-12.408-13.050-23.013-24.091-30.273-15.802-12.67-31.134-25.86-46.545-39-15.197-10.994-27.847-25.131-37.091-41.455-9.239-16.323-14.847-34.403-16.455-53.091-2.046-54.146-5.708-42.375 39.727-43.818h1.545c7.461 0.363 14.907 0.344 22.364-0.093 14.187-1.508 20.987 3.995 20.364 18.545 0.261 14.438 4.067 28.563 11.091 41.182 7.024 12.614 17.047 23.267 29.182 31.091 19.144 16.086 38.056 32.693 55.636 50.455 13.577 12.381 24.188 27.719 30.909 44.818s9.422 35.508 7.909 53.818c-1.508 18.311-7.202 36.051-16.636 51.818-9.43 15.766-22.398 29.102-37.818 39.091-33.499 22.597-72.703 35.281-113.091 36.455-2.525 0.074-5.026 0.016-7.545 0zM505.347 307.027c-37.804-0.163-37.818-2.856-37.818-46 0.019-11.683 0.34-23.422 0-35.091-0.284-9.155 2.999-13.916 12.727-13.818 22.319 0.209 44.691 0.191 67 0 9.356-0.079 13.403 3.827 13.273 13.364-0.344 22.854-0.344 45.706 0 68.545 0.163 9.868-4.565 13.172-13.636 13-11.152-0.228-22.293 0-33.455 0-2.868 0-5.571 0.011-8.091 0z" />
<glyph unicode="&#xe912;" glyph-name="rules" d="M260.393 951.23c-26.693 0-52.305-10.633-71.18-29.508s-29.475-44.455-29.475-71.148v-704.525c0-26.693 10.601-52.305 29.475-71.18 18.875-18.873 44.487-29.475 71.18-29.475h276.754v50.328h-276.754c-13.346 0-26.169 5.317-35.607 14.754s-14.721 22.228-14.721 35.574v704.525c0 13.346 5.284 26.137 14.721 35.574s22.26 14.754 35.607 14.754h503.213c13.346 0 26.169-5.317 35.607-14.754s14.721-22.227 14.721-35.574v-704.525c0-13.346-5.284-26.136-14.721-35.574s-22.261-14.754-35.607-14.754h-75.475v75.508h-50.328v-145.049l-25.148 12.59-25.18-12.59v145.049h-50.295v-226.459l75.475 37.738 75.475-37.738v100.623h75.475c26.693 0 52.305 10.602 71.18 29.475 18.873 18.875 29.475 44.488 29.475 71.18v704.525c0 26.693-10.602 52.273-29.475 71.148-18.875 18.875-44.487 29.508-71.18 29.508zM361.031 775.085c0-6.673 2.651-13.074 7.369-17.792s11.12-7.369 17.792-7.369h251.615c6.673 0 13.074 2.651 17.791 7.369 4.719 4.719 7.371 11.12 7.371 17.792s-2.652 13.073-7.371 17.792c-4.717 4.719-11.118 7.37-17.791 7.37h-251.615c-6.673 0-13.074-2.651-17.792-7.37s-7.369-11.119-7.369-17.792zM260.385 624.115c0-6.673 2.651-13.074 7.37-17.792s11.119-7.369 17.792-7.369h452.907c6.673 0 13.074 2.652 17.792 7.369 4.719 4.719 7.369 11.12 7.369 17.792s-2.651 13.074-7.369 17.792c-4.719 4.719-11.12 7.369-17.792 7.369h-452.907c-6.673 0-13.073-2.651-17.792-7.369s-7.37-11.12-7.37-17.792zM260.385 523.469c0-6.673 2.651-13.074 7.37-17.792s11.119-7.369 17.792-7.369h452.907c6.673 0 13.074 2.651 17.792 7.369s7.369 11.12 7.369 17.792c0 6.673-2.651 13.074-7.369 17.792s-11.12 7.369-17.792 7.369h-452.907c-6.673 0-13.073-2.651-17.792-7.369s-7.37-11.12-7.37-17.792zM260.385 422.823c0-6.673 2.651-13.074 7.37-17.792s11.119-7.369 17.792-7.369h452.907c6.673 0 13.074 2.651 17.792 7.369s7.369 11.12 7.369 17.792c0 6.673-2.651 13.074-7.369 17.792-4.719 4.717-11.12 7.369-17.792 7.369h-452.907c-6.673 0-13.073-2.652-17.792-7.369-4.719-4.719-7.37-11.12-7.37-17.792zM612.646 171.208c-13.347 0-26.146 5.301-35.583 14.739s-14.741 22.238-14.741 35.585c0 13.346 5.303 26.146 14.741 35.583s22.236 14.739 35.583 14.739c13.347 0 26.146-5.301 35.583-14.739s14.741-22.238 14.741-35.583c0-13.347-5.303-26.147-14.741-35.585s-22.236-14.739-35.583-14.739zM612.646 120.884c26.693 0 52.293 10.604 71.168 29.479 18.873 18.875 29.478 44.473 29.478 71.168 0 26.693-10.604 52.291-29.478 71.166-18.875 18.875-44.475 29.479-71.168 29.479s-52.293-10.604-71.168-29.479c-18.873-18.875-29.478-44.473-29.478-71.166 0-26.695 10.604-52.293 29.478-71.168s44.475-29.479 71.168-29.479z" />
<glyph unicode="&#xe913;" glyph-name="telegram" d="M1006.463 452.512c0-275.096-223.040-498.136-498.136-498.136-275.094 0-498.133 223.040-498.133 498.136 0 275.093 223.040 498.133 498.133 498.133 275.096 0 498.136-223.040 498.136-498.133zM526.177 582.897c-48.442-20.133-145.289-61.853-290.495-125.113-23.578-9.384-35.949-18.558-37.069-27.522-1.909-15.195 17.103-21.17 42.923-29.267 3.529-1.12 7.181-2.24 10.917-3.485 25.446-8.261 59.651-17.933 77.418-18.306 16.148-0.334 34.164 6.309 54.046 19.925 135.66 91.615 205.689 137.9 210.088 138.894 3.115 0.707 7.432 1.619 10.336-0.994 2.907-2.573 2.616-7.472 2.325-8.8-1.909-8.014-76.38-77.295-114.985-113.162-12.037-11.165-20.549-19.093-22.29-20.919-3.904-4.027-7.888-7.888-11.707-11.584-23.661-22.746-41.346-39.85 0.994-67.746 20.341-13.408 36.613-24.49 52.845-35.533 17.725-12.080 35.411-24.117 58.322-39.143 5.814-3.822 11.376-7.763 16.813-11.624 20.632-14.736 39.186-27.939 62.101-25.861 13.282 1.245 27.067 13.738 34.040 51.058 16.48 88.252 48.941 279.37 56.455 358.159 0.456 6.54 0.178 13.114-0.832 19.592-0.601 5.233-3.151 10.049-7.138 13.491-5.936 4.857-15.152 5.895-19.304 5.811-18.719-0.332-47.448-10.336-185.803-67.871z" />
<glyph unicode="&#xe914;" glyph-name="tricks" d="M512 948.588c-96.117 0-188.35-38.193-256.314-106.157s-106.157-160.199-106.157-256.314c-0.032-58.434 14.089-116.007 41.137-167.804 24.197-46.337 59.288-85.543 100.51-117.451l22.314-105.216-0.392 2.314c4.744-31.261 20.529-59.852 44.51-80.471 23.975-20.615 54.572-31.955 86.196-31.961h136.392c31.624 0.006 62.221 11.346 86.196 31.961 23.979 20.618 39.768 49.204 44.51 80.471l-0.392-2.275 22.314 105.647c41.208 31.811 76.27 70.922 100.471 117.176 27.064 51.732 41.21 109.262 41.176 167.647-0.010 96.1-38.202 188.32-106.157 256.275-67.964 67.964-160.199 106.157-256.314 106.157zM512 868.275c74.845 0 146.605-29.703 199.529-82.627s82.627-124.684 82.627-199.529c0.026-45.405-10.953-90.161-32-130.392-21.049-40.231-51.546-74.72-88.863-100.588-1.164-1.484-2.28-3.15-3.268-4.898l-0.104-0.2h-316.157c-1.001 1.745-1.999 3.231-3.089 4.642l0.069-0.093c-37.344 25.97-67.848 60.583-88.902 100.902s-32.030 85.141-32 130.627c0 74.845 29.743 146.605 82.667 199.529s124.643 82.628 199.49 82.627zM379.882 269.725h264.196l-12.157-57.451c-0.114-0.504-0.251-1.276-0.366-2.056l-0.026-0.218c-1.864-12.288-8.067-23.505-17.49-31.608-9.427-8.106-21.415-12.547-33.843-12.549h-136.392c-12.428 0.002-24.416 4.443-33.843 12.549-9.422 8.101-15.625 19.315-17.49 31.608-0.14 1.009-0.277 1.795-0.437 2.573l0.045-0.259-12.196 57.412zM414.392 29.294c-21.634 0-39.059-17.425-39.059-39.059s17.425-39.059 39.059-39.059h188.745c21.634 0 39.020 17.425 39.020 39.059s-17.385 39.059-39.020 39.059h-188.745z" />
<glyph unicode="&#xe915;" glyph-name="twitter" d="M18.705 125.86c79.041-9.093 158.934 5.891 229.814 43.1 23.142 12.008 45.024 26.436 65.305 43.056-11.089 1.399-21.306 2.127-31.291 4.103-10.162 1.959-20.173 4.666-29.96 8.1-9.772 3.492-19.268 7.759-28.4 12.762-9.119 5.028-17.852 10.762-26.122 17.162-16.577 12.803-31.173 28.126-43.29 45.449-5.951 8.721-11.364 17.821-16.206 27.245-5.176 9.551-9.185 19.729-11.937 30.297 14.74-2.403 29.652-3.495 44.573-3.26 14.743 0.556 29.372 2.901 43.582 6.991-30.846 7.11-59.67 21.507-84.209 42.056s-44.122 46.688-57.208 76.363c-12.801 27.416-18.569 57.76-16.753 88.133 26.847-15.194 56.807-23.597 87.417-24.515-27.455 19.846-49.76 46.35-64.952 77.178s-22.809 65.034-22.175 99.61c0.541 35.261 10.072 69.754 27.635 100.011 1.333-1.482 2.695-2.843 3.892-4.347 68.705-85.178 159.143-148.83 261.087-183.759 35.072-12.050 71.226-20.445 107.919-25.059 12.052-1.485 24.153-2.548 36.239-3.73 2.055-0.201 4.147-0.028 6.786-0.028-0.352 2.444-0.505 4.258-0.884 6.024-2.782 13.605-4.123 27.482-3.997 41.385 0.072 35.879 9.11 71.134 26.238 102.362s41.769 57.378 71.547 75.925c29.775 18.547 63.683 28.867 98.454 29.963 34.768 1.096 69.222-7.068 100.041-23.705 18.316-9.672 34.966-22.38 49.289-37.618 1.222-1.53 2.857-2.65 4.7-3.219 1.84-0.568 3.806-0.559 5.642 0.026 40.356 8.999 79.165 24.235 115.111 45.19 1.799 1.048 3.639 2.021 5.728 3.181-6.287-23.523-17.237-45.446-32.154-64.384-14.473-18.922-31.98-35.144-51.767-47.961l0.208-1.072c1.321-0.088 2.645-0.080 3.966 0.024 34.024 4.911 67.314 14.199 99.099 27.646 1.973 0.841 3.949 1.675 5.932 2.475 0.437 0.082 0.877 0.108 1.318 0.076 0.061-2.048-1.355-3.329-2.29-4.718-25.334-37.644-56.46-70.767-92.143-98.066-1.475-0.89-2.662-2.205-3.42-3.783s-1.051-3.352-0.843-5.101c0.468-5.562 0.71-11.162 0.696-16.744 0.003-46.278-5.144-92.404-15.34-137.471-11.974-52.688-30.522-103.55-55.177-151.316-19.732-38.335-43.401-74.377-70.595-107.503-34.676-42.411-75.196-79.353-120.262-109.64-47.442-31.829-99.43-55.784-154.071-70.991-28.846-8.083-58.255-13.858-87.962-17.275-19.227-2.464-38.591-3.611-57.963-3.437-8.863 0.188-17.734 0.143-26.597 0-25.781-0.061-51.52 2.133-76.941 6.56-44.991 7.212-88.969 20.026-130.97 38.158-28.795 12.428-56.577 27.211-83.083 44.213-1.213 0.778-2.322 1.724-3.465 2.591l0.205 1.287z" />
<glyph unicode="&#xe916;" glyph-name="vaccine" d="M1000.434 726.388l-209.608 209.609c-9.845 9.844-23.197 15.375-37.119 15.375s-27.274-5.531-37.119-15.375c-9.845-9.844-15.374-23.196-15.374-37.118s5.53-27.274 15.374-37.118l67.686-67.686-100.438-100.438-137.557 137.556c-4.875 4.874-10.662 8.741-17.029 11.379-6.37 2.638-13.195 3.996-20.089 3.996s-13.719-1.358-20.087-3.996c-6.37-2.638-12.157-6.505-17.032-11.379-9.842-9.844-15.374-23.196-15.374-37.118s5.532-27.274 15.374-37.118l15.284-15.284-354.152-354.59c-8.18-8.028-14.673-17.61-19.097-28.186-4.424-10.573-6.691-21.923-6.667-33.387v-208.298l-89.521-89.521c-4.885-4.868-8.762-10.652-11.406-17.022s-4.006-13.198-4.006-20.097c0-6.897 1.361-13.724 4.006-20.094s6.521-12.155 11.406-17.022c9.889-9.761 23.224-15.234 37.118-15.234s27.23 5.472 37.118 15.234l89.521 89.519h208.299c11.462-0.024 22.814 2.243 33.387 6.668s20.156 10.919 28.186 19.096l354.59 354.154 15.284-15.284c9.888-9.761 23.223-15.234 37.119-15.234 13.893 0 27.229 5.472 37.116 15.234 4.887 4.868 8.764 10.652 11.407 17.022 2.646 6.37 4.008 13.2 4.008 20.097s-1.362 13.724-4.008 20.094c-2.643 6.37-6.52 12.155-11.407 17.022l-137.554 137.557 100.438 100.438 67.686-67.686c9.888-9.759 23.223-15.231 37.116-15.231 13.895 0 27.231 5.472 37.119 15.231 4.887 4.87 8.761 10.654 11.407 17.025 2.646 6.368 4.006 13.198 4.006 20.094s-1.36 13.726-4.006 20.097c-2.646 6.37-6.52 12.155-11.407 17.022zM382.524 147.777h-170.309v170.308l61.136 61.138 76.421-76.421c9.888-9.761 23.223-15.234 37.116-15.234 13.895 0 27.231 5.472 37.119 15.234 4.887 4.868 8.761 10.654 11.407 17.022 2.646 6.37 4.006 13.2 4.006 20.097s-1.36 13.726-4.006 20.094c-2.646 6.37-6.52 12.155-11.407 17.025l-76.419 76.419 48.035 48.035 76.419-76.419c9.89-9.761 23.226-15.234 37.119-15.234 13.895 0 27.231 5.472 37.119 15.234 4.884 4.868 8.761 10.652 11.407 17.022 2.643 6.37 4.006 13.198 4.006 20.097 0 6.897-1.362 13.724-4.006 20.094-2.646 6.37-6.523 12.155-11.407 17.022l-76.419 76.421 91.703 91.705 170.308-170.308-349.348-349.351z" />
<glyph unicode="&#xe917;" glyph-name="whatsapp" d="M740.151 348.692c-12.425 6.212-73.335 36.147-84.675 40.315-11.339 4.127-19.596 6.171-27.89-6.253-8.257-12.339-31.976-40.274-39.188-48.527-7.257-8.298-14.469-9.298-26.849-3.127-12.384 6.253-52.323 19.302-99.642 61.491-36.813 32.853-61.699 73.417-68.912 85.842-7.212 12.384-0.792 19.094 5.42 25.265 5.584 5.543 12.38 14.466 18.592 21.678 6.212 7.253 8.253 12.425 12.384 20.719 4.168 8.257 2.082 15.469-1.044 21.681-3.086 6.209-27.849 67.203-38.188 92.009-10.045 24.139-20.262 20.845-27.849 21.262-7.253 0.333-15.508 0.417-23.763 0.417s-21.679-3.085-33.019-15.509c-11.381-12.382-43.358-42.357-43.358-103.351 0-60.952 44.359-119.859 50.571-128.157 6.212-8.253 87.341-133.41 211.621-187.064 29.6-12.756 52.654-20.388 70.622-26.057 29.686-9.462 56.699-8.127 78.046-4.919 23.764 3.543 73.291 29.976 83.63 58.907 10.298 28.935 10.298 53.74 7.212 58.911-3.086 5.168-11.339 8.253-23.764 14.466zM514.103 40.059h-0.167c-73.813-0.014-146.275 19.828-209.784 57.45l-15.009 8.922-156.005-40.943 41.649 152.088-9.797 15.592c-41.268 65.69-63.107 141.715-62.994 219.293 0.084 227.212 184.939 412.067 412.276 412.067 110.063 0 213.538-42.941 291.335-120.819 38.369-38.213 68.782-83.655 89.477-133.696 20.695-50.043 31.263-103.694 31.089-157.846-0.082-227.212-184.938-412.109-412.068-412.109zM864.803 802.868c-45.933 46.238-100.588 82.9-160.795 107.861s-124.768 37.726-189.945 37.555c-273.239 0-495.699-222.418-495.782-495.782-0.042-87.385 22.763-172.681 66.163-247.849l-70.332-256.939 262.816 68.956c72.704-39.612 154.174-60.368 236.968-60.368h0.208c273.241 0 495.701 222.42 495.783 495.824 0.201 65.15-12.517 129.693-37.42 189.898-24.904 60.204-61.495 114.872-107.663 160.843z" />
<glyph unicode="&#xe918;" glyph-name="close" d="M123.769 922.385c-22.275 0-44.543-8.466-61.538-25.462-33.991-33.991-33.991-89.086 0-123.077l327.231-327.231-327.077-327.077c-33.991-33.993-33.991-89.165 0-123.154 33.991-33.993 89.086-33.993 123.077 0l327.077 327.077 326.923-326.923c33.993-33.993 89.165-33.993 123.154 0 33.993 33.989 33.993 89.084 0 123.077l-327 327 327.077 327.077c33.989 33.991 33.989 89.086 0 123.077-33.993 33.991-89.088 33.991-123.077 0l-327.077-327.077-327.231 327.231c-16.995 16.996-39.263 25.462-61.538 25.462z" />
<glyph unicode="&#xe919;" glyph-name="trash" d="M959.36 741.792c-3.072 50.24-44.384 90.112-95.36 90.112h-96v32.064c0 53.024-43.008 96-96 96h-320c-53.024 0-96-42.976-96-96v-32.032h-96c-51.040 0-92.32-39.872-95.392-90.112h-0.608v-69.856c0-35.328 28.672-64 64-64v0-544c0-70.688 57.312-128 128-128h512c70.688 0 128 57.312 128 128v544c35.328 0 64 28.672 64 64v69.824h-0.64zM320 863.936c0 17.696 14.304 32 32 32h320c17.696 0 32-14.304 32-32v-32h-384v32zM832 63.936c0-35.264-28.736-64-64-64h-512c-35.296 0-64 28.736-64 64v544h640v-544zM896 703.968v-32h-768v63.968c0 17.696 14.304 32 32 32h704c17.696 0 32-14.304 32-32v-31.968zM288 63.808h64c17.696 0 32 14.304 32 32v416c0 17.696-14.304 32-32 32h-64c-17.696 0-32-14.304-32-32v-416c0-17.696 14.304-32 32-32zM288 511.84h64v-416h-64v416zM480 63.808h64c17.696 0 32 14.304 32 32v416c0 17.696-14.304 32-32 32h-64c-17.696 0-32-14.304-32-32v-416c0-17.696 14.304-32 32-32zM480 511.84h64v-416h-64v416zM672 63.808h64c17.696 0 32 14.304 32 32v416c0 17.696-14.304 32-32 32h-64c-17.696 0-32-14.304-32-32v-416c0-17.696 14.304-32 32-32zM672 511.84h64v-416h-64v416z" />
<glyph unicode="&#xe91a;" glyph-name="save" d="M960-64h-896c-35.328 0-64 28.672-64 64v896c0 35.328 28.672 64 64 64h768l192-192v-768c0-35.328-28.672-64-64-64zM256 96c0-17.696 14.336-32 32-32h448c17.696 0 32 14.304 32 32v256c0 17.696-14.304 32-32 32h-448c-17.664 0-32-14.304-32-32v-256zM704 800c0 17.696-14.304 32-32 32s-32-14.304-32-32v-96c0-17.696 14.304-32 32-32s32 14.304 32 32v96zM896 736l-96 96h-32v-224c0-17.696-14.304-32-32-32h-448c-17.664 0-32 14.304-32 32v224h-96c-17.664 0-32-14.304-32-32v-704c0-17.696 14.336-32 32-32h32v352c0 17.696 14.336 32 32 32h576c17.696 0 32-14.304 32-32v-352h32c17.696 0 32 14.304 32 32v640z" />
<glyph unicode="&#xe91b;" glyph-name="checkmark" d="M1014.592 731.744l-90.848 90.848c-12.576 12.576-32.832 12.576-45.408 0l-464.48-490.368-266.24 266.368c-12.704 12.704-33.312 12.704-46.016 0l-92.032-92.096c-12.704-12.672-12.704-33.28 0-46.016l378.656-387.456c7.328-7.36 17.28-9.888 26.848-8.64 9.888-1.472 20.192 1.024 27.776 8.64l571.744 613.28c12.544 12.544 12.544 32.896 0 45.44z" />
<glyph unicode="&#xe91c;" glyph-name="download" horiz-adv-x="939" d="M28.479 182.797v-207.74c0-18.172 14.697-32.866 32.869-32.866h815.96c18.172 0 32.87 14.694 32.87 32.866v207.74c0 18.172-14.797 32.87-32.87 32.87h-80.333c-18.074 0-32.87-14.797-32.87-32.87v-94.336h-589.553v94.336c0 18.172-14.697 32.87-32.869 32.87h-80.335c-18.172 0-32.869-14.797-32.869-32.87zM343.366 803.625h251.928c19.362 0 35.055 15.69 35.055 35.054v68.518c0 19.364-15.693 35.053-35.055 35.053h-251.928c-19.364 0-35.054-15.69-35.054-35.053v-68.518c0-19.364 15.69-35.054 35.054-35.054zM306.225 598.685h-128.695c-21.251 0-39.621-10.228-46.97-25.918-5.76-12.512-3.674-26.513 5.66-37.536l291.849-341.994c9.331-10.923 24.329-17.178 41.207-17.178 16.883 0 31.974 6.255 41.31 17.178l291.849 342.094c9.331 10.923 11.418 24.925 5.658 37.536-7.249 15.789-25.719 25.918-46.869 25.918h-133.163v121.346c0 18.172-14.699 32.869-32.87 32.869h-256.097c-18.073 0-32.869-14.796-32.869-32.869v-121.446z" />
<glyph unicode="&#xe91d;" glyph-name="upload" d="M587 208h-150c-24.936 0-45 20.064-45 45v314.997h-164.436c-33.376 0-50.064 40.312-26.436 63.936l285.184 285.372c14.064 14.064 37.124 14.064 51.188 0l285.372-285.372c23.624-23.624 6.936-63.936-26.436-63.936h-164.436v-314.997c0-24.936-20.064-45-45-45zM991.996 223v-210c0-24.936-20.064-45-45-45h-869.994c-24.936 0-45 20.064-45 45v210c0 24.936 20.064 45 45 45h255v-15c0-57.936 47.064-105 105-105h150c57.936 0 105 47.064 105 105v15h255c24.936 0 45-20.064 45-45zM759.5 58.004c0 20.624-16.876 37.5-37.5 37.5s-37.5-16.876-37.5-37.5 16.876-37.5 37.5-37.5 37.5 16.876 37.5 37.5zM879.496 58.004c0 20.624-16.876 37.5-37.5 37.5s-37.5-16.876-37.5-37.5 16.876-37.5 37.5-37.5 37.5 16.876 37.5 37.5z" />
<glyph unicode="&#xe91e;" glyph-name="email" d="M128 622.037l359.552-251.691c14.507-10.027 33.92-10.496 48.939 0l359.509 251.691v-430.037c0-11.605-4.693-22.229-12.587-30.080s-18.475-12.587-30.080-12.587h-682.667c-11.605 0-22.229 4.693-30.080 12.587s-12.587 18.475-12.587 30.080zM42.667 704.725c0-0.427 0-0.853 0-1.28v-511.445c0-35.328 14.507-67.371 37.547-90.453s55.125-37.547 90.453-37.547h682.667c35.328 0 67.371 14.507 90.453 37.547s37.547 55.125 37.547 90.453v511.488c0 0.427 0 0.853 0 1.28-0.213 35.029-14.635 66.773-37.547 89.685-23.083 23.040-55.125 37.547-90.453 37.547h-682.667c-35.328 0-67.371-14.507-90.453-37.547-22.912-22.912-37.333-54.656-37.547-89.728zM891.477 723.029l-379.477-265.6-379.477 265.6c2.048 4.096 4.779 7.808 8.021 11.051 7.893 7.893 18.517 12.587 30.123 12.587h682.667c11.605 0 22.229-4.693 30.080-12.587 3.243-3.243 5.973-6.997 8.021-11.051z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 35 KiB

BIN
Web/weather/src/assets/fonts/icomoon.ttf

Binary file not shown.

BIN
Web/weather/src/assets/fonts/icomoon.woff

Binary file not shown.

1
Web/weather/src/assets/fonts/selection.json

File diff suppressed because one or more lines are too long

BIN
Web/weather/src/assets/images/icons/angle-down.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 510 B

40
Web/weather/src/assets/images/icons/angle-left.svg

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="18"
height="18"
viewBox="0 0 18 18"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="angle-left.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="6.5555556"
inkscape:cx="-21.88983"
inkscape:cy="9.3813559"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 2.8828857,8.2299977 c -0.482594,0.39991 -0.482593,1.14009 0,1.53999 l 9.4327503,7.8164403 c 0.6518,0.5401 1.638,0.0765 1.638,-0.77 V 1.1835977 c 0,-0.846546 -0.9862,-1.310138 -1.638,-0.770001 z"
fill="#e94e10"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

40
Web/weather/src/assets/images/icons/angle-up.svg

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="19"
height="19"
viewBox="0 0 19 19"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="angle-up.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="16.68772"
inkscape:cx="2.7265558"
inkscape:cy="6.0823168"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 8.7930407,5.0301064 c 0.39049,-0.3903041 1.0234,-0.3903036 1.4138603,1e-6 l 7.5288,7.5252336 c 0.6302,0.6299 0.1841,1.70728 -0.707,1.70728 H 1.9712307 c -0.89101,0 -1.33713095,-1.07738 -0.70694,-1.70728 z"
fill="#0f3250"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

58
Web/weather/src/assets/images/icons/angle.svg

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:version="1.0beta1 (unknown)"
sodipodi:docname="angle.svg"
id="svg4"
version="1.1"
fill="none"
viewBox="0 0 20 20"
height="20"
width="20">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs8" />
<sodipodi:namedview
inkscape:current-layer="svg4"
inkscape:window-maximized="1"
inkscape:window-y="22"
inkscape:window-x="0"
inkscape:cy="8.3508809"
inkscape:cx="7.7689843"
inkscape:zoom="17.576923"
showgrid="false"
id="namedview6"
inkscape:window-height="719"
inkscape:window-width="1366"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10"
gridtolerance="10"
objecttolerance="10"
borderopacity="1"
inkscape:document-rotation="0"
bordercolor="#666666"
pagecolor="#ffffff" />
<path
inkscape:connector-curvature="0"
id="path837"
d="M 3.0605468,4.4091796 0.93945306,6.5302733 9.9999999,15.59082 19.060547,6.5302733 16.939453,4.4091796 9.9999999,11.348633 Z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

39
Web/weather/src/assets/images/icons/article.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="21"
height="21"
viewBox="0 0 21 21"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="article.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="17.566021"
inkscape:cx="6.2905538"
inkscape:cy="9.9339514"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
d="m 2.625,1.4999999 c -1.172,0 -2.12500006,0.896997 -2.12500006,2 V 17.5 c 0,1.103 0.95300006,2 2.12500006,2 h 15.75 c 1.172,0 2.125,-0.897 2.125,-2 V 3.4999999 c 0,-1.103003 -0.953,-2 -2.125,-2 z m 0,2 h 15.75 c 0.079,9.999e-4 0.122,0.027813 0.125,0.00781 l 0.01172,13.9453131 c -0.007,0.01 -0.05172,0.04687 -0.136719,0.04687 H 2.625 c -0.057,0 -0.096281,-0.01758 -0.1132813,-0.01758 -0.007,0 -0.010719,0.0018 -0.011719,0.0078 L 2.4882812,3.5449217 c 0.007,-0.01 0.051719,-0.044922 0.1367188,-0.044922 z m 1.875,2 V 11.5 h 6 V 5.4999999 Z m 8,0 v 2 h 4 v -2 z m 0,4 V 11.5 h 4 V 9.4999999 Z M 4.5,13.5 v 2 h 12 v -2 h -4 -1 z"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

39
Web/weather/src/assets/images/icons/calendar.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="23"
height="23"
viewBox="0 0 23 23"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="calendar.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.1304348"
inkscape:cx="-22.317797"
inkscape:cy="27.385593"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
style="color:#000000;fill:#000000;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none"
d="m 7.5,0.50683575 a 1.0001,1.0001 0 0 0 -1,0.98632815 v 1 h -1 c -2.7495768,0 -5.00000006,2.2504232 -5.00000006,4.9999999 v 2.0000001 8.0000001 c 1e-8,2.749546 2.25041116,5 5.00000006,5 h 12 c 2.749559,0 5,-2.250442 5,-5 V 9.4931639 7.4931638 c 0,-2.7495889 -2.250454,-4.9999999 -5,-4.9999999 h -1 v -1 a 1.0001,1.0001 0 0 0 -1,-0.98632815 1.0001,1.0001 0 0 0 -1,0.98632815 v 1 h -6 v -1 a 1.0001,1.0001 0 0 0 -1,-0.98632815 z m -2,3.98632805 h 1 v 1 a 1.0001,1.0001 0 0 0 2,0 v -1 h 6 v 1 a 1.0001,1.0001 0 0 0 1,0.9863282 1.0001,1.0001 0 0 0 1,-0.9863282 v -1 h 1 c 1.668649,0 3,1.3313133 3,3 V 8.4931639 H 2.5 V 7.4931638 c 0,-1.6686987 1.3313012,-3 3,-3 z m -3,6.0000002 h 18 v 7 c 0,1.668637 -1.331363,3 -3,3 h -12 c -1.6686867,0 -3,-1.331351 -3,-3 z" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

7
Web/weather/src/assets/images/icons/checkmark.svg

@ -0,0 +1,7 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<title></title>
<g id="icomoon-ignore">
</g>
<path d="M507.296 114.128l-45.424-45.424c-6.288-6.288-16.416-6.288-22.704 0l-232.24 245.184-133.12-133.184c-6.352-6.352-16.656-6.352-23.008 0l-46.016 46.048c-6.352 6.336-6.352 16.64 0 23.008l189.328 193.728c3.664 3.68 8.64 4.944 13.424 4.32 4.944 0.736 10.096-0.512 13.888-4.32l285.872-306.64c6.272-6.272 6.272-16.448 0-22.72z"></path>
</svg>

After

Width:  |  Height:  |  Size: 523 B

39
Web/weather/src/assets/images/icons/clock.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="25"
height="25"
viewBox="0 0 25 25"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="clock.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="4.72"
inkscape:cx="-32.733051"
inkscape:cy="17.690678"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
style="color:#000000;fill:#000000;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none;fill-opacity:1"
d="M 12.539062 0.234375 C 5.7318529 0.234375 0.19140625 5.7719173 0.19140625 12.578125 C 0.19140625 19.38436 5.7318561 24.923828 12.539062 24.923828 C 19.346287 24.923828 24.886719 19.384359 24.886719 12.578125 C 24.886719 5.7719184 19.34629 0.234375 12.539062 0.234375 z M 12.539062 2.234375 C 18.265623 2.234375 22.886719 6.8530041 22.886719 12.578125 C 22.886719 18.303278 18.265625 22.923828 12.539062 22.923828 C 6.8125204 22.923828 2.1914061 18.303277 2.1914062 12.578125 C 2.1914062 6.8530052 6.8125236 2.234375 12.539062 2.234375 z M 12.539062 4.7714844 A 1 1 0 0 0 11.539062 5.7714844 L 11.539062 12.773438 C 11.539207 13.640113 11.883223 14.471401 12.496094 15.083984 L 15.236328 17.822266 A 1 1 0 0 0 16.650391 17.822266 A 1 1 0 0 0 16.650391 16.408203 L 13.910156 13.669922 C 13.672271 13.432148 13.539612 13.109679 13.539062 12.773438 L 13.539062 5.7714844 A 1 1 0 0 0 12.539062 4.7714844 z " />
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

53
Web/weather/src/assets/images/icons/close.svg

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="26"
height="26"
viewBox="0 0 26 26"
fill="none"
version="1.1"
id="svg13"
sodipodi:docname="close.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview15"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="18.153846"
inkscape:cx="-5.2055085"
inkscape:cy="13.027542"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g6" />
<g
clip-path="url(#clip0_515_325)"
id="g6">
<path
id="path2"
d="M 3.1425781 0.95507812 C 2.5769894 0.95507812 2.0116081 1.1700325 1.5800781 1.6015625 C 0.71702112 2.4646225 0.71702112 3.8635025 1.5800781 4.7265625 L 9.8886719 13.035156 L 1.5839844 21.339844 C 0.72092937 22.202944 0.72092938 23.603797 1.5839844 24.466797 C 2.4470444 25.329897 3.8459244 25.329897 4.7089844 24.466797 L 13.013672 16.162109 L 21.314453 24.462891 C 22.177553 25.325991 23.578406 25.325991 24.441406 24.462891 C 25.304506 23.599891 25.304506 22.200991 24.441406 21.337891 L 16.138672 13.035156 L 24.443359 4.7304688 C 25.306359 3.8674087 25.306359 2.4685288 24.443359 1.6054688 C 23.580259 0.74241275 22.181359 0.74241475 21.318359 1.6054688 L 13.013672 9.9101562 L 4.7050781 1.6015625 C 4.2735531 1.1700325 3.7081669 0.95507812 3.1425781 0.95507812 z "
style="fill:#030100;fill-opacity:1" />
</g>
<defs
id="defs11">
<clipPath
id="clip0_515_325">
<rect
width="24.15"
height="24.15"
fill="white"
transform="translate(0.933594 0.952148)"
id="rect8" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
Web/weather/src/assets/images/icons/copy.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-copy"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>

After

Width:  |  Height:  |  Size: 351 B

39
Web/weather/src/assets/images/icons/dots.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="21"
height="21"
viewBox="0 0 21 21"
fill="none"
version="1.1"
id="svg8"
sodipodi:docname="dots.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs12" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.6190476"
inkscape:cx="-13.614407"
inkscape:cy="5.0720339"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<path
id="circle2"
d="M 10.5,0.23046887 A 2.5674701,2.5674701 0 0 0 7.9316406,2.7988282 2.5674701,2.5674701 0 0 0 10.5,5.3652345 2.5674701,2.5674701 0 0 0 13.068359,2.7988282 2.5674701,2.5674701 0 0 0 10.5,0.23046887 Z m 0,7.70312503 A 2.5674701,2.5674701 0 0 0 7.9316406,10.501953 2.5674701,2.5674701 0 0 0 10.5,13.068359 2.5674701,2.5674701 0 0 0 13.068359,10.501953 2.5674701,2.5674701 0 0 0 10.5,7.9335939 Z m 0,7.7011721 A 2.5674701,2.5674701 0 0 0 7.9316406,18.203125 2.5674701,2.5674701 0 0 0 10.5,20.769531 2.5674701,2.5674701 0 0 0 13.068359,18.203125 2.5674701,2.5674701 0 0 0 10.5,15.634766 Z"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

5
Web/weather/src/assets/images/icons/download.svg

@ -0,0 +1,5 @@
<svg width="22" height="24" viewBox="0 0 22 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0.66748 18.2157V23.0846C0.66748 23.5105 1.01193 23.8549 1.43784 23.8549H20.5619C20.9878 23.8549 21.3323 23.5105 21.3323 23.0846V18.2157C21.3323 17.7898 20.9855 17.4453 20.5619 17.4453H18.6791C18.2555 17.4453 17.9087 17.7921 17.9087 18.2157V20.4267H4.09106V18.2157C4.09106 17.7898 3.7466 17.4453 3.32069 17.4453H1.43784C1.01193 17.4453 0.66748 17.7921 0.66748 18.2157Z" fill="#0F3250"/>
<path d="M8.04764 3.66504H13.9522C14.406 3.66504 14.7738 3.29731 14.7738 2.84347V1.23758C14.7738 0.783742 14.406 0.416016 13.9522 0.416016H8.04764C7.5938 0.416016 7.22607 0.783742 7.22607 1.23758V2.84347C7.22607 3.29731 7.5938 3.66504 8.04764 3.66504Z" fill="#0F3250"/>
<path d="M7.17715 8.46831H4.16087C3.66281 8.46831 3.23225 8.70803 3.06002 9.07576C2.92503 9.36901 2.97391 9.69717 3.19268 9.95551L6.6116 13.9633L10.0329 17.971C10.2516 18.227 10.6031 18.3736 10.9987 18.3736C11.3944 18.3736 11.7481 18.227 11.9669 17.971L18.8071 9.95318C19.0258 9.69717 19.0747 9.36901 18.9397 9.07343C18.7698 8.70338 18.3369 8.46598 17.8412 8.46598H14.7202V5.62193C14.7202 5.19602 14.3757 4.85156 13.9498 4.85156H7.94752C7.52393 4.85156 7.17715 5.19834 7.17715 5.62193V8.46598V8.46831Z" fill="#0F3250"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

39
Web/weather/src/assets/images/icons/edit.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="27"
height="27"
viewBox="0 0 27 27"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="edit.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="6.1806371"
inkscape:cx="-16.745847"
inkscape:cy="18.525598"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
d="M 23.736328 0.31640625 C 22.870928 0.31640625 22.041787 0.65961738 21.429688 1.2714844 L 9.0488281 13.652344 L 9.0488281 18.265625 L 13.664062 18.265625 L 26.044922 5.8867188 C 26.656822 5.2746688 27 4.4455181 27 3.5800781 C 27 2.7146481 26.656822 1.8835344 26.044922 1.2714844 C 25.432922 0.65961737 24.601828 0.31640625 23.736328 0.31640625 z M 4.1542969 3.5800781 C 3.2886869 3.5800781 2.4577831 3.9230763 1.8457031 4.5351562 C 1.2336231 5.1472363 0.890625 5.97814 0.890625 6.84375 L 0.890625 23.162109 C 0.890625 24.027709 1.2336231 24.858703 1.8457031 25.470703 C 2.4577831 26.082803 3.2886869 26.425781 4.1542969 26.425781 L 20.472656 26.425781 C 21.338256 26.425781 22.16915 26.082803 22.78125 25.470703 C 23.39335 24.858703 23.736328 24.027709 23.736328 23.162109 L 23.736328 16.634766 C 23.736328 16.201966 23.563812 15.786469 23.257812 15.480469 C 22.951712 15.174469 22.538269 15.003906 22.105469 15.003906 C 21.672669 15.003906 21.257272 15.174469 20.951172 15.480469 C 20.645172 15.786469 20.472656 16.201966 20.472656 16.634766 L 20.472656 23.162109 L 4.1542969 23.162109 L 4.1542969 6.84375 L 10.681641 6.84375 C 11.114441 6.84375 11.529938 6.6712744 11.835938 6.3652344 C 12.142037 6.0591944 12.3125 5.6457006 12.3125 5.2128906 C 12.3125 4.7800906 12.142038 4.3646338 11.835938 4.0585938 C 11.529938 3.7525537 11.114441 3.5800781 10.681641 3.5800781 L 4.1542969 3.5800781 z "
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

59
Web/weather/src/assets/images/icons/facebook.svg

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
version="1.1"
id="svg11"
sodipodi:docname="facebook.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview13"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="3.6875"
inkscape:cx="-27.79661"
inkscape:cy="9.8983051"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg11" />
<g
clip-path="url(#clip0_201_76)"
id="g4"
transform="translate(9.1970501,-0.0636945)"
style="fill:#000000;fill-opacity:1">
<path
d="m 0,10.7374 h 2.87463 c 0,-0.1825 -0.00129,-0.3291 0,-0.4757 C 2.88673,9.02545 2.84041,7.78455 2.9262,6.55297 2.94871,5.69986 3.15309,4.86232 3.52488,4.1 3.89668,3.33768 4.42674,2.66933 5.0773,2.14243 6.08464,1.371 7.3073,0.957669 8.56169,0.96454 10.1511,0.924661 11.7422,0.958672 13.3325,0.961862 c 0.0538,0 0.1075,0.010376 0.179,0.017687 V 6.14861 c -0.5302,0 -1.0527,0 -1.5753,0 -0.5601,0 -1.1207,-0.00824 -1.68,0.00332 C 10.1009,6.13413 9.94354,6.14982 9.79436,6.19806 9.64518,6.2463 9.50738,6.32604 9.38963,6.43217 9.27188,6.53829 9.17677,6.66849 9.11037,6.81454 9.04398,6.9606 9.00773,7.11933 9.00392,7.28061 8.94429,8.41795 8.98812,9.56088 8.98812,10.7348 H 13.6064 L 13.0758,16.077 H 8.97586 V 31.1811 H 2.8832 V 16.0879 H 5.50333e-4 Z"
fill="#0f3250"
fill-opacity="0.5"
id="path2"
style="fill:#000000;fill-opacity:1" />
</g>
<defs
id="defs9">
<clipPath
id="clip0_201_76">
<rect
width="13.6059"
height="30.2353"
fill="#ffffff"
transform="translate(0,0.946289)"
id="rect6"
x="0"
y="0" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

39
Web/weather/src/assets/images/icons/food.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="53"
height="53"
viewBox="0 0 53 53"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="food.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.4883721"
inkscape:cx="6.4682203"
inkscape:cy="30.519068"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
style="color:#000000;fill:#000000;fill-opacity:1;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none"
d="m 13.263662,5.7159708 c -0.301234,-0.00746 -0.602867,0.00359 -0.904297,0.033203 C 11.153643,5.8676463 9.9958217,6.2813718 8.988272,6.954252 7.9807477,7.6270923 7.1553786,8.5382614 6.5839752,9.6065958 6.2758222,10.18274 6.260858,10.847634 6.1152252,11.479643 c -0.6326227,0.145064 -1.2981637,0.158921 -1.875,0.466797 -1.0691144,0.570613 -1.982484,1.397044 -2.65625,2.404296 -0.67377629,1.007302 -1.08777199,2.165188 -1.20703131,3.371094 -0.11923841,1.205972 0.060037,2.423238 0.5234375,3.542969 0.46344871,1.119711 1.19627021,2.108018 2.13281251,2.876953 0.936718,0.769069 2.0498103,1.294783 3.2382813,1.53125 1.1884423,0.236459 2.4163678,0.176174 3.5761718,-0.175781 0.491945,-0.149228 0.855598,-0.535283 1.302734,-0.78125 l 5.152344,5.150391 H 7.7128814 a 2.0002,2.0002 0 0 0 -1.2011719,0.40039 C 2.3367161,33.398735 0.34374076,38.643397 0.34374077,45.286284 a 2.0002,2.0002 0 0 0 2.00000003,2 H 50.65624 a 2.0002,2.0002 0 0 0 1.988282,-2.207032 C 52.199842,40.833256 52.365241,35.240801 46.580069,30.340971 A 2.0002,2.0002 0 0 0 45.2871,29.866362 H 36.699209 L 41.8496,24.717924 c 0.446871,0.245742 0.811125,0.630168 1.302734,0.779297 1.159826,0.351928 2.387759,0.412256 3.576172,0.175781 1.188496,-0.236464 2.301564,-0.762137 3.238281,-1.53125 0.936651,-0.768946 1.669403,-1.757138 2.132813,-2.876953 0.463472,-1.119771 0.642706,-2.336969 0.523437,-3.542969 C 52.503764,16.515923 52.089775,15.358028 51.416006,14.350736 50.742217,13.343429 49.830742,12.517039 48.761709,11.94644 48.18416,11.638164 47.518218,11.622727 46.884756,11.47769 46.739091,10.846323 46.723815,10.182124 46.416006,9.6065958 45.844589,8.5381851 45.019082,7.6270646 44.011709,6.954252 43.004149,6.2814199 41.846338,5.8676463 40.640615,5.7491739 39.43493,5.6307055 38.218848,5.8106409 37.0996,6.2745646 35.980313,6.7384477 34.991048,7.4707612 34.222647,8.407377 c -0.768316,0.9366644 -1.293109,2.050065 -1.529297,3.238281 -0.236052,1.188207 -0.176143,2.416815 0.175781,3.576172 0.149129,0.491301 0.535615,0.854131 0.78125,1.300782 L 26.49999,23.671049 19.3496,16.522612 c 0.245584,-0.446424 0.632099,-0.809627 0.78125,-1.300782 v -0.002 c 0.351414,-1.158707 0.411704,-2.386613 0.175781,-3.574172 C 20.070443,10.457442 19.54565,9.3440414 18.777334,8.407377 18.008932,7.4707612 17.021621,6.7384477 15.902334,6.2745646 15.062939,5.9266384 14.167366,5.7383518 13.263662,5.7159708 Z m -0.09766,3.9980469 c 0.41245,0.010248 0.819422,0.096816 1.203125,0.2558593 0.511711,0.212076 0.963056,0.546287 1.314453,0.974609 0.351283,0.428255 0.591208,0.937087 0.699219,1.480469 0.107947,0.543372 0.0808,1.104785 -0.08008,1.634766 -0.160761,0.529828 -0.450013,1.010622 -0.841797,1.402344 a 2.0002,2.0002 0 0 0 0,2.830078 l 8.210937,8.207031 -2.539062,2.539063 -8.212891,-8.210938 a 2.0002,2.0002 0 0 0 -2.830078,0.002 C 9.6979841,21.22112 9.2175957,21.508293 8.6874908,21.669096 a 2.0002,2.0002 0 0 0 -0.00195,0.002 C 8.1555003,21.831847 7.5942881,21.859268 7.050772,21.751127 6.5073048,21.642995 6.0004171,21.401486 5.5722564,21.049955 5.1439401,20.698292 4.8095176,20.24739 4.597647,19.735502 4.3857282,19.223435 4.3028912,18.667789 4.3574126,18.116362 4.4119333,17.56507 4.6021243,17.035843 4.910147,16.575346 5.2182001,16.11482 5.6342737,15.736602 6.1230376,15.475737 c 0.4887928,-0.260884 1.033839,-0.39688 1.5878907,-0.396485 a 2.0002,2.0002 0 0 0 2.0019531,-2 c 1.569e-4,-0.553897 0.1371972,-1.097505 0.3984376,-1.585937 0.261235,-0.488425 0.638975,-0.905272 1.099609,-1.212891 0.460529,-0.3075588 0.98974,-0.4966139 1.541015,-0.5507813 0.13782,-0.013541 0.27658,-0.019041 0.414063,-0.015625 z m 26.669922,0 c 0.137663,-0.00342 0.276284,0.00209 0.414062,0.015625 0.551276,0.054167 1.080377,0.2431743 1.541016,0.5507813 0.460626,0.307646 0.836474,0.724543 1.097656,1.212891 0.261278,0.488526 0.398312,1.032192 0.398438,1.585937 a 2.0002,2.0002 0 0 0 2.001953,2 c 0.55412,-3.95e-4 1.099209,0.135643 1.58789,0.396485 0.488766,0.26088 0.906835,0.639138 1.214844,1.099609 0.30803,0.460507 0.496255,0.989724 0.550782,1.541016 0.05453,0.551399 -0.02635,1.107113 -0.238282,1.61914 -0.211789,0.511783 -0.548214,0.9628 -0.976562,1.314453 -0.428081,0.351486 -0.935014,0.593037 -1.478516,0.701172 -0.543386,0.108125 -1.104593,0.07884 -1.634766,-0.08203 -0.53009,-0.160803 -1.012451,-0.447936 -1.404296,-0.839844 a 2.0002,2.0002 0 0 0 -2.828125,-0.002 l -9.042969,9.039063 h -5.078125 l 1.953125,-1.953125 9.625,-9.621094 a 2.0002,2.0002 0 0 0 0,-2.830078 c -0.39173,-0.391563 -0.68088,-0.872175 -0.841793,-1.402298 -0.160876,-0.529981 -0.188026,-1.091394 -0.08008,-1.634766 0.108011,-0.543382 0.347935,-1.052214 0.699219,-1.480469 0.351397,-0.428322 0.802741,-0.762533 1.314453,-0.974609 0.383662,-0.1590266 0.792089,-0.2456043 1.205078,-0.2558593 z M 8.5097564,33.866362 H 21.132803 31.867178 44.423819 c 3.366267,3.091654 3.720703,6.030873 3.978515,9.419922 H 4.4902252 c 0.3236195,-4.410007 1.6799179,-7.451715 4.0195312,-9.419922 z" />
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

40
Web/weather/src/assets/images/icons/heart.svg

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="26"
height="26"
viewBox="0 0 26 26"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="heart.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="13.350176"
inkscape:cx="9.775152"
inkscape:cy="11.797597"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="m 25.075773,4.3853298 c -1.0788,-2.28691 -4.1863,-4.15801799 -7.8011,-3.068618 -1.7273,0.515378 -3.2343,1.620618 -4.2749,3.135148 -1.0405,-1.51453 -2.5475,-2.61977 -4.2748405,-3.135148 -3.62278,-1.07276799 -6.72228,0.781708 -7.80106099,3.068618 -1.513519,3.20167 -0.88556983,6.8025102 1.86775099,10.7027102 2.15756,3.052 5.24096,6.1456 9.7171505,9.7381 0.1414,0.114 0.3157,0.1759 0.4951,0.1759 0.1794,0 0.3536,-0.0619 0.4951,-0.1759 4.4681,-3.5842 7.5595,-6.6528 9.7171,-9.7381 2.7453,-3.9002 3.3732,-7.5010402 1.8597,-10.7027102 z"
fill="#e94e10"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

39
Web/weather/src/assets/images/icons/list.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="59"
height="59"
viewBox="0 0 59 59"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="list.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="2"
inkscape:cx="-63.25"
inkscape:cy="54.75"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
id="path847"
d="m 19.385743,0.84375062 c -1.0462,-5.4901e-4 -2.067475,0.32197128 -2.921875,0.92578128 -0.8544,0.60382 -1.498857,1.4589225 -1.847657,2.4453125 H 9.2724611 c -1.34122,0 -2.6277819,0.5320888 -3.5761719,1.4804688 -0.948381,0.94839 -1.4824219,2.2349519 -1.4824219,3.5761719 V 49.728516 c 0,1.3412 0.5340409,2.625919 1.4824219,3.574219 0.94839,0.9484 2.2349519,1.482422 3.5761719,1.482422 H 22.208008 c -0.5073,-1.0661 -0.849978,-2.202394 -1.017578,-3.371094 H 9.2724611 c -0.44708,0 -0.8772294,-0.178041 -1.1933594,-0.494141 -0.31613,-0.3161 -0.4921875,-0.744406 -0.4921875,-1.191406 V 9.2714851 c 0,-0.44708 0.1760575,-0.8752763 0.4921875,-1.1914063 0.31613,-0.31613 0.7462794,-0.4941406 1.1933594,-0.4941406 h 5.3437499 c 0.3488,0.9864 0.993257,1.8395694 1.847657,2.4433588 0.8544,0.6038 1.875675,0.928235 2.921875,0.927735 h 10.115234 c 1.0462,5e-4 2.065522,-0.323935 2.919922,-0.927735 0.8544,-0.6037895 1.500809,-1.4569588 1.849609,-2.4433588 h 5.34375 c 0.4471,0 0.875207,0.1780106 1.191406,0.4941406 0.3161,0.31613 0.494141,0.7443263 0.494141,1.1914063 V 27.814454 h 3.371094 V 9.2714851 c 0,-1.34122 -0.532069,-2.6277819 -1.480469,-3.5761719 -0.9484,-0.94838 -2.234972,-1.4804688 -3.576172,-1.4804688 h -5.34375 c -0.3488,-0.98639 -0.995209,-1.8414925 -1.849609,-2.4453125 -0.8544,-0.60381 -1.873722,-0.92633028 -2.919922,-0.92578128 z m 0,3.37109378 h 10.115234 c 0.447,0 0.875306,0.1760575 1.191406,0.4921875 0.3162,0.31613 0.494141,0.7462894 0.494141,1.1933594 0,0.44708 -0.177941,0.8752763 -0.494141,1.1914062 -0.3161,0.31612 -0.744406,0.4941407 -1.191406,0.4941407 H 19.385743 c -0.4471,0 -0.875207,-0.1780206 -1.191407,-0.4941407 -0.3161,-0.31613 -0.49414,-0.7443262 -0.49414,-1.1914062 0,-0.44707 0.17804,-0.8772294 0.49414,-1.1933594 0.3162,-0.31613 0.744307,-0.4921875 1.191407,-0.4921875 z M 31.186524,31.185547 c -1.7883,0 -3.503078,0.71001 -4.767578,1.97461 -1.2645,1.2645 -1.976563,2.979278 -1.976563,4.767578 v 13.486328 c 0,1.7883 0.712063,3.503078 1.976563,4.767578 1.2645,1.2645 2.979278,1.974609 4.767578,1.974609 h 16.855469 c 1.7883,0 3.505031,-0.710109 4.769531,-1.974609 1.2645,-1.2645 1.974609,-2.979278 1.974609,-4.767578 V 37.927735 c 0,-1.7883 -0.710109,-3.503078 -1.974609,-4.767578 -1.2645,-1.2646 -2.981231,-1.97461 -4.769531,-1.97461 z m 1.685547,6.742188 h 13.484375 c 0.447,0 0.877259,0.17804 1.193359,0.49414 0.3162,0.3162 0.492188,0.744307 0.492188,1.191407 0,0.4471 -0.175988,0.877159 -0.492188,1.193359 -0.3161,0.3161 -0.746359,0.492188 -1.193359,0.492187 H 32.872071 c -0.447,0 -0.87726,-0.176087 -1.19336,-0.492187 -0.3161,-0.3162 -0.492187,-0.746259 -0.492187,-1.193359 0,-0.4471 0.176087,-0.875207 0.492187,-1.191407 0.3161,-0.3161 0.74636,-0.49414 1.19336,-0.49414 z m 0,10.115234 h 13.484375 c 0.447,0 0.877259,0.176088 1.193359,0.492188 0.3162,0.3161 0.492188,0.746259 0.492188,1.193359 0,0.447 -0.175988,0.875306 -0.492188,1.191406 -0.3161,0.3161 -0.746359,0.494141 -1.193359,0.494141 H 32.872071 c -0.447,0 -0.87726,-0.178041 -1.19336,-0.494141 -0.3161,-0.3161 -0.492187,-0.744406 -0.492187,-1.191406 0,-0.4471 0.176087,-0.877259 0.492187,-1.193359 0.3161,-0.3161 0.74636,-0.492188 1.19336,-0.492188 z"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

39
Web/weather/src/assets/images/icons/medal.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="56"
height="56"
viewBox="0 0 56 56"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="medal.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.4883721"
inkscape:cx="6.6504237"
inkscape:cy="27.96822"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="path2"
d="m 7.3750002,7.3749999 c -1.82336,0 -3.5720182,0.7243619 -4.8613282,2.013672 C 1.2243621,10.677992 0.50000019,12.42664 0.50000019,14.25 v 27.5 c 0,1.8234 0.72436181,3.572028 2.01367181,4.861328 1.28931,1.2893 3.0379682,2.013672 4.8613282,2.013672 H 48.625 c 1.8233,0 3.572029,-0.724372 4.861329,-2.013672 C 54.775628,45.322028 55.5,43.5734 55.5,41.75 v -27.5 c 0,-1.82336 -0.724372,-3.572008 -2.013671,-4.8613281 -1.2893,-1.28931 -3.038029,-2.013672 -4.861329,-2.013672 z m 0,3.4375001 H 48.625 c 0.9116,0 1.785088,0.361209 2.429688,1.005859 0.6447,0.64466 1.007812,1.519961 1.007812,2.431641 v 27.5 c 0,0.9117 -0.363112,1.78694 -1.007812,2.43164 C 50.410088,44.826341 49.5366,45.1875 48.625,45.1875 H 7.3750002 c -0.91168,0 -1.7869806,-0.361159 -2.4316406,-1.00586 C 4.2986995,43.53694 3.9375002,42.6617 3.9375002,41.75 v -27.5 c 0,-0.91168 0.3611993,-1.786981 1.0058594,-2.431641 0.64466,-0.64465 1.5199606,-1.005859 2.4316406,-1.005859 z m 1.71875,6.875 c -0.45584,0 -0.8925138,0.181606 -1.2148438,0.503906 -0.32233,0.3224 -0.5039062,0.758944 -0.5039062,1.214844 v 3.4375 c 0,0.4558 0.1815762,0.892544 0.5039062,1.214844 0.32233,0.3223 0.7590038,0.503906 1.2148438,0.503906 H 15.96875 c 0.4559,0 0.892544,-0.181606 1.214844,-0.503906 0.3224,-0.3223 0.503906,-0.759044 0.503906,-1.214844 v -3.4375 c 0,-0.4559 -0.181506,-0.892444 -0.503906,-1.214844 -0.3223,-0.3223 -0.758944,-0.503906 -1.214844,-0.503906 z m 0,10.3125 c -0.45584,0 -0.8925138,0.181606 -1.2148438,0.503906 -0.32233,0.3224 -0.5039062,0.758944 -0.5039062,1.214844 0,0.4558 0.1815762,0.892544 0.5039062,1.214844 0.32233,0.3223 0.7590038,0.503906 1.2148438,0.503906 H 26.28125 c 0.4559,0 0.892444,-0.181606 1.214844,-0.503906 C 27.818394,30.611294 28,30.17455 28,29.71875 28,29.26285 27.818394,28.826306 27.496094,28.503906 27.173694,28.181606 26.73715,28 26.28125,28 Z m 0,6.875 c -0.45584,0 -0.8925138,0.181606 -1.2148438,0.503906 -0.32233,0.3224 -0.5039062,0.758944 -0.5039062,1.214844 0,0.4558 0.1815762,0.892544 0.5039062,1.214844 0.32233,0.3223 0.7590038,0.503906 1.2148438,0.503906 H 12.53125 c 0.4559,0 0.892544,-0.181606 1.214844,-0.503906 0.3224,-0.3223 0.503906,-0.759044 0.503906,-1.214844 0,-0.4559 -0.181506,-0.892444 -0.503906,-1.214844 C 13.423794,35.056606 12.98715,34.875 12.53125,34.875 Z m 10.3124998,0 c -0.4558,0 -0.892543,0.181606 -1.214843,0.503906 -0.3224,0.3224 -0.503907,0.758944 -0.503907,1.214844 0,0.4558 0.181507,0.892544 0.503907,1.214844 0.3223,0.3223 0.759043,0.503906 1.214843,0.503906 h 3.4375 c 0.4559,0 0.892544,-0.181606 1.214844,-0.503906 0.3224,-0.3223 0.503906,-0.759044 0.503906,-1.214844 0,-0.4559 -0.181506,-0.892444 -0.503906,-1.214844 C 23.736294,35.056606 23.29965,34.875 22.84375,34.875 Z m 10.3125,0 c -0.4558,0 -0.892543,0.181606 -1.214843,0.503906 C 28.181507,35.701306 28,36.13785 28,36.59375 c 0,0.4558 0.181507,0.892544 0.503907,1.214844 0.3223,0.3223 0.759043,0.503906 1.214843,0.503906 h 3.4375 c 0.4559,0 0.892444,-0.181606 1.214844,-0.503906 0.3223,-0.3223 0.503906,-0.759044 0.503906,-1.214844 0,-0.4559 -0.181606,-0.892444 -0.503906,-1.214844 C 34.048694,35.056606 33.61215,34.875 33.15625,34.875 Z m 10.3125,0 c -0.4558,0 -0.892543,0.181606 -1.214843,0.503906 -0.3224,0.3224 -0.503907,0.758944 -0.503907,1.214844 0,0.4558 0.181507,0.892544 0.503907,1.214844 0.3223,0.3223 0.759043,0.503906 1.214843,0.503906 h 3.4375 c 0.4559,0 0.892444,-0.181606 1.214844,-0.503906 0.3223,-0.3223 0.503906,-0.759044 0.503906,-1.214844 0,-0.4559 -0.181606,-0.892444 -0.503906,-1.214844 C 44.361194,35.056606 43.92465,34.875 43.46875,34.875 Z"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 4.5 KiB

43
Web/weather/src/assets/images/icons/message.svg

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="30"
height="30"
viewBox="0 0 30 30"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="message.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="15.733333"
inkscape:cx="14.014831"
inkscape:cy="15.03178"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M 5.7015475,25.013769 H 24.298457 c 2.3604,0 4.2916,-1.9313 4.2916,-4.2917 V 4.986239 c 0,-2.36039 -1.9312,-4.291608 -4.2916,-4.291608 H 5.7015475 c -2.36038,0 -4.291605,1.931218 -4.291605,4.291608 v 24.31913 z m 11.4446095,-12.1595 c 0,1.1851 -0.9608,2.1458 -2.145799,2.1458 -1.1851,0 -2.1459,-0.9607 -2.1459,-2.1458 0,-1.1851 0.9608,-2.1458 2.1459,-2.1458 1.185,0 2.145799,0.9607 2.145799,2.1458 z m 5.0066,2.1458 c 1.1851,0 2.1458,-0.9607 2.1458,-2.1458 0,-1.1851 -0.9607,-2.1458 -2.1458,-2.1458 -1.185099,0 -2.1458,0.9607 -2.1458,2.1458 0,1.1851 0.9607,2.1458 2.1458,2.1458 z m -12.1594795,-2.1458 c 0,1.1851 -0.96071,2.1458 -2.1458,2.1458 -1.18509,0 -2.1458,-0.9607 -2.1458,-2.1458 0,-1.1851 0.96071,-2.1458 2.1458,-2.1458 1.18509,0 2.1458,0.9607 2.1458,2.1458 z"
fill="#0f3250"
fill-opacity="0.5"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

46
Web/weather/src/assets/images/icons/minus.svg

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="17"
height="18"
viewBox="0 0 17 18"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="minus.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="13.111111"
inkscape:cx="-0.87711864"
inkscape:cy="9.6483051"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<rect
x="7.7263451"
y="-16.631851"
width="2.5473101"
height="16.2637"
rx="1.2736501"
transform="rotate(90)"
fill="#c4c4c4"
id="rect4"
ry="1.2736501"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

39
Web/weather/src/assets/images/icons/plus.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="17"
height="18"
viewBox="0 0 17 18"
fill="none"
version="1.1"
id="svg6"
sodipodi:docname="plus.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="13.111111"
inkscape:cx="-0.87711864"
inkscape:cy="9.6483051"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
id="rect2"
style="fill:#000000;fill-opacity:1"
d="M 8.5 0.8671875 C 7.7943979 0.8671875 7.2265625 1.436976 7.2265625 2.1425781 L 7.2265625 7.7265625 L 1.6425781 7.7265625 C 0.936976 7.7265625 0.3671875 8.2943979 0.3671875 9 C 0.3671875 9.7056021 0.936976 10.273438 1.6425781 10.273438 L 7.2265625 10.273438 L 7.2265625 15.857422 C 7.2265625 16.563024 7.7943979 17.132812 8.5 17.132812 C 9.2056021 17.132812 9.7734375 16.563024 9.7734375 15.857422 L 9.7734375 10.273438 L 15.357422 10.273438 C 16.063024 10.273438 16.632812 9.7056021 16.632812 9 C 16.632812 8.2943979 16.063024 7.7265625 15.357422 7.7265625 L 9.7734375 7.7265625 L 9.7734375 2.1425781 C 9.7734375 1.436976 9.2056021 0.8671875 8.5 0.8671875 z " />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

39
Web/weather/src/assets/images/icons/question.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="22"
height="22"
viewBox="0 0 22 22"
fill="none"
version="1.1"
id="svg8"
sodipodi:docname="question.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs12" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="15.170655"
inkscape:cx="6.7564652"
inkscape:cy="11.30472"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<path
id="path2"
d="m 11.200827,0.27870982 c -0.34303,-0.006449 -0.688235,0.003677 -1.033204,0.03125 -2.7597598,0.220582 -5.3188336,1.52339998 -7.1210935,3.62499998 -1.66736,1.91288 -2.56974803,4.3748694 -2.53125003,6.9121092 0.007678,1.6346 0.40062237,3.244719 1.14648433,4.699219 0.09124,0.203 0.11346,0.429884 0.0625,0.646484 -0.337,1.3439 -0.7051885,2.680884 -1.05468746,4.021484 -0.066739,0.206 -0.0947334,0.422372 -0.0839844,0.638672 0.017296,0.1461 0.0659643,0.285656 0.14453125,0.410156 0.078567,0.124401 0.18408575,0.230194 0.30859381,0.308594 0.124508,0.0785 0.2659493,0.127432 0.4121093,0.144532 0.14615,0.0172 0.2943138,0.0026 0.4335938,-0.04492 1.52812,-0.4017 3.0506181,-0.824204 4.5800781,-1.220704 0.19507,-0.0469 0.3993906,-0.0354 0.5878906,0.0332 1.25729,0.5052 2.6020813,0.757793 3.9570312,0.746093 0.2291,4e-4 0.456447,5e-4 0.685547,0 0.0343,-10e-5 0.06932,-0.0027 0.103516,-0.0059 1.3994,-0.0989 2.763266,-0.4814 4.009765,-1.125 1.246501,-0.6437 2.349335,-1.535441 3.240235,-2.619141 1.775,-2.1247 2.636837,-4.864776 2.398437,-7.6230462 -0.2384,-2.75827 -1.556722,-5.3090063 -3.669922,-7.0976563 -1.84905,-1.5650687 -4.174967,-2.4353271 -6.576171,-2.48046868 z m -0.06641,1.77734368 c 1.960743,0.028852 3.857516,0.7198751 5.38086,1.9667969 0.9224,0.74185 1.681262,1.6661269 2.226562,2.7167969 0.5452,1.05066 0.865807,2.2034456 0.941406,3.3847657 0.161001,2.2232 -0.537671,4.424937 -1.951171,6.148437 -1.4136,1.7235 -3.434785,2.838135 -5.646485,3.115234 -1.6349,0.2024 -3.2933726,-0.05745 -4.7890625,-0.748046 -0.23815,-0.0981 -0.5011632,-0.117394 -0.7519532,-0.05859 -1.13345,0.2797 -2.2570956,0.598544 -3.3847656,0.902344 -0.12904,0.0348 -0.2614825,0.05988 -0.4765625,0.109375 0.25984,-0.9813 0.4550737,-1.889425 0.7460937,-2.765625 0.1307501,-0.3636 0.1810844,-0.751719 0.1464844,-1.136719 -0.034587,-0.384904 -0.1541532,-0.757301 -0.3476532,-1.091801 -0.8462,-1.6755 -1.1202131,-3.581214 -0.7832032,-5.4277341 0.3370101,-1.8465 1.2668807,-3.5323012 2.6503907,-4.8007812 1.54107,-1.42643 3.5455712,-2.24861 5.6445314,-2.3125 0.131181,-0.00399 0.263815,-0.00388 0.394531,-0.00195 z m -0.138672,3.3925782 c -0.81194,0.0052 -1.6105435,0.2254437 -2.3105467,0.640625 -0.36388,0.23139 -0.6754256,0.5347181 -0.9160156,0.8925781 -0.24059,0.35785 -0.4035087,0.7612469 -0.4804688,1.1855469 -0.05283,0.2679 0.020549,0.3832762 0.2871094,0.4101562 0.37544,0.03724 0.7500269,0.082082 1.1230469,0.1386719 0.26885,0.0406 0.4047569,-0.038156 0.4980469,-0.3164063 0.1245,-0.4852799 0.4357044,-0.9022962 0.8652349,-1.1601562 0.4295,-0.25787 0.942887,-0.33703 1.429687,-0.21875 0.289,0.02393 0.563963,0.1355494 0.789063,0.3183594 0.225,0.18281 0.389956,0.4291112 0.472656,0.7070312 0.08,0.27242 0.07056,0.5635181 -0.02734,0.8300782 -0.0978,0.2665699 -0.280378,0.4944306 -0.517578,0.6503906 -0.3395,0.27221 -0.6689,0.5555903 -1,0.8378903 -0.3265,0.2362 -0.598275,0.539925 -0.796875,0.890625 -0.19849,0.3507 -0.318976,0.739125 -0.353516,1.140625 -0.04396,1.1633 -0.1226242,0.910406 0.853516,0.941406 h 0.0332 c 0.1603,-0.0078 0.320269,-0.0074 0.480469,0.002 0.3048,0.0324 0.4509,-0.08584 0.4375,-0.398437 0.0056,-0.3102 0.08738,-0.613666 0.238281,-0.884766 0.1509,-0.271 0.366253,-0.499869 0.626953,-0.667969 0.4113,-0.345599 0.817613,-0.702384 1.195313,-1.083984 0.2917,-0.266 0.519662,-0.5955202 0.664062,-0.9628902 0.1444,-0.36737 0.202422,-0.76286 0.169922,-1.15625 -0.0324,-0.39339 -0.154722,-0.7745412 -0.357422,-1.1132813 -0.2026,-0.3387299 -0.4812,-0.6252437 -0.8125,-0.8398437 -0.7197,-0.48548 -1.561987,-0.7579831 -2.429687,-0.7832031 -0.05424,-0.00158 -0.10798,-3.464e-4 -0.16211,0 z M 10.857074,14.02871 c -0.81219,0.0035 -0.812501,0.06137 -0.812501,0.988281 4e-4,0.251 0.0073,0.503206 0,0.753906 -0.0061,0.1967 0.06443,0.298975 0.273438,0.296875 0.4795,-0.0045 0.960153,-0.0041 1.439453,0 0.201,0.0017 0.287956,-0.08221 0.285157,-0.287109 -0.0074,-0.491 -0.0074,-0.981957 0,-1.472657 0.0035,-0.212 -0.09807,-0.282997 -0.292969,-0.279296 -0.2396,0.0049 -0.47895,0 -0.71875,0 -0.06161,-7e-6 -0.119682,-2.37e-4 -0.173828,0 z"
style="fill:#030303;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

77
Web/weather/src/assets/images/icons/rules.svg

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="61"
height="61"
viewBox="0 0 61 61"
fill="none"
version="1.1"
id="svg8"
sodipodi:docname="rules.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs12" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="3.8688525"
inkscape:cx="7.8834746"
inkscape:cy="43.036017"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<g
id="g1582"
transform="translate(9.1191408,0.40527325)">
<g
id="g1569">
<g
id="g1557">
<g
id="g1546">
<g
id="g1536">
<g
id="g1527">
<g
id="g1519">
<g
id="g1512">
<g
id="g1506">
<g
id="g1501">
<path
id="path2"
style="fill:#000000;fill-opacity:1"
d="M 6.3925781,0.1171875 C 4.8024681,0.1171875 3.2767236,0.750622 2.1523438,1.875 1.0279637,2.99938 0.39648437,4.5231713 0.39648438,6.1132812 V 48.082031 c 0,1.5901 0.63147932,3.115835 1.75585942,4.240235 1.1243799,1.1243 2.6501243,1.755859 4.2402343,1.755859 H 22.878906 V 51.080078 H 6.3925781 c -0.79505,0 -1.5589037,-0.316706 -2.1210937,-0.878906 -0.56219,-0.5622 -0.8769532,-1.324141 -0.8769532,-2.119141 V 6.1132812 c 2e-7,-0.79505 0.3147632,-1.5569606 0.8769532,-2.1191406 0.56219,-0.56219 1.3260437,-0.8789062 2.1210937,-0.8789062 H 36.369141 c 0.795,0 1.558893,0.3167162 2.121093,0.8789062 0.5622,0.56218 0.876954,1.3240907 0.876954,2.1191406 V 48.082031 c 0,0.795 -0.314754,1.556941 -0.876954,2.119141 -0.5622,0.5622 -1.326093,0.878906 -2.121093,0.878906 H 31.873047 V 46.582031 H 28.875 v 8.640625 l -1.498047,-0.75 -1.5,0.75 v -8.640625 h -2.996094 v 13.490235 l 4.496094,-2.248047 4.496094,2.248047 v -5.994141 h 4.496094 c 1.5901,0 3.115834,-0.631559 4.240234,-1.755859 1.1243,-1.1244 1.755859,-2.650135 1.755859,-4.240235 V 6.1132812 c 0,-1.59011 -0.631559,-3.1139012 -1.755859,-4.2382812 -1.1244,-1.124378 -2.650134,-1.7578125 -4.240234,-1.7578125 z" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="m 12.3876,10.6102 c 0,-0.3975 0.1579,-0.77877 0.439,-1.05986 0.2811,-0.28109 0.6624,-0.43901 1.0599,-0.43901 h 14.9888 c 0.3975,0 0.7788,0.15792 1.0598,0.43901 0.2811,0.28109 0.4391,0.66236 0.4391,1.05986 0,0.3975 -0.158,0.7788 -0.4391,1.0599 -0.281,0.2811 -0.6623,0.439 -1.0598,0.439 H 13.8865 c -0.3975,0 -0.7788,-0.1579 -1.0599,-0.439 -0.2811,-0.2811 -0.439,-0.6624 -0.439,-1.0599 z m -5.99551,8.9933 c 0,-0.3975 0.15792,-0.7788 0.43901,-1.0599 0.2811,-0.2811 0.66234,-0.439 1.05987,-0.439 H 34.8708 c 0.3975,0 0.7788,0.1579 1.0599,0.439 0.2811,0.2811 0.439,0.6624 0.439,1.0599 0,0.3975 -0.1579,0.7788 -0.439,1.0599 -0.2811,0.281 -0.6624,0.439 -1.0599,0.439 H 7.89097 c -0.39753,0 -0.77877,-0.158 -1.05987,-0.439 C 6.55001,20.3823 6.39209,20.001 6.39209,19.6035 Z m 0,5.9955 c 0,-0.3975 0.15792,-0.7788 0.43901,-1.0599 0.2811,-0.2811 0.66234,-0.439 1.05987,-0.439 H 34.8708 c 0.3975,0 0.7788,0.1579 1.0599,0.439 0.2811,0.2811 0.439,0.6624 0.439,1.0599 0,0.3975 -0.1579,0.7788 -0.439,1.0599 -0.2811,0.2811 -0.6624,0.439 -1.0599,0.439 H 7.89097 C 7.49344,27.0979 7.1122,26.94 6.8311,26.6589 6.55001,26.3778 6.39209,25.9965 6.39209,25.599 Z m 0,5.9955 c 0,-0.3975 0.15792,-0.7788 0.43901,-1.0599 0.2811,-0.281 0.66234,-0.439 1.05987,-0.439 H 34.8708 c 0.3975,0 0.7788,0.158 1.0599,0.439 0.2811,0.2811 0.439,0.6624 0.439,1.0599 0,0.3975 -0.1579,0.7788 -0.439,1.0599 -0.2811,0.2811 -0.6624,0.439 -1.0599,0.439 H 7.89097 C 7.49344,33.0934 7.1122,32.9355 6.8311,32.6544 6.55001,32.3733 6.39209,31.992 6.39209,31.5945 Z M 27.3764,46.5833 c 0.7951,0 1.5575,-0.3158 2.1197,-0.878 0.5622,-0.5622 0.8781,-1.3247 0.8781,-2.1198 0,-0.795 -0.3159,-1.5575 -0.8781,-2.1197 -0.5622,-0.5622 -1.3246,-0.878 -2.1197,-0.878 -0.7951,0 -1.5575,0.3158 -2.1197,0.878 -0.5622,0.5622 -0.8781,1.3247 -0.8781,2.1197 0,0.7951 0.3159,1.5576 0.8781,2.1198 0.5622,0.5622 1.3246,0.878 2.1197,0.878 z m 0,2.9978 c 1.5901,0 3.1151,-0.6317 4.2395,-1.7561 1.1243,-1.1244 1.756,-2.6493 1.756,-4.2395 0,-1.5901 -0.6317,-3.115 -1.756,-4.2394 -1.1244,-1.1244 -2.6494,-1.7561 -4.2395,-1.7561 -1.5901,0 -3.1151,0.6317 -4.2395,1.7561 -1.1243,1.1244 -1.756,2.6493 -1.756,4.2394 0,1.5902 0.6317,3.1151 1.756,4.2395 1.1244,1.1244 2.6494,1.7561 4.2395,1.7561 z"
fill="#0f3250"
id="path4"
style="fill:#000000;fill-opacity:1" />
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

7
Web/weather/src/assets/images/icons/save.svg

@ -0,0 +1,7 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<title></title>
<g id="icomoon-ignore">
</g>
<path d="M480 512h-448c-17.664 0-32-14.336-32-32v-448c0-17.664 14.336-32 32-32h384l96 96v384c0 17.664-14.336 32-32 32zM128 432c0 8.848 7.168 16 16 16h224c8.848 0 16-7.152 16-16v-128c0-8.848-7.152-16-16-16h-224c-8.832 0-16 7.152-16 16v128zM352 80c0-8.848-7.152-16-16-16s-16 7.152-16 16v48c0 8.848 7.152 16 16 16s16-7.152 16-16v-48zM448 112l-48-48h-16v112c0 8.848-7.152 16-16 16h-224c-8.832 0-16-7.152-16-16v-112h-48c-8.832 0-16 7.152-16 16v352c0 8.848 7.168 16 16 16h16v-176c0-8.848 7.168-16 16-16h288c8.848 0 16 7.152 16 16v176h16c8.848 0 16-7.152 16-16v-320z"></path>
</svg>

After

Width:  |  Height:  |  Size: 756 B

43
Web/weather/src/assets/images/icons/telegram.svg

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="31"
height="31"
viewBox="0 0 31 31"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="telegram.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="7.6129032"
inkscape:cx="0.1970339"
inkscape:cy="19.637712"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M30.4691 15.3634C30.4691 23.6915 23.7169 30.4437 15.3888 30.4437C7.06077 30.4437 0.308594 23.6915 0.308594 15.3634C0.308594 7.03538 7.06077 0.283203 15.3888 0.283203C23.7169 0.283203 30.4691 7.03538 30.4691 15.3634ZM15.9292 11.4162C14.4627 12.0257 11.5308 13.2887 7.13491 15.2038C6.42112 15.4879 6.04662 15.7656 6.01269 16.037C5.95489 16.497 6.53045 16.6779 7.31211 16.923C7.41893 16.9569 7.52951 16.9908 7.64262 17.0285C8.41296 17.2786 9.44847 17.5714 9.98634 17.5827C10.4752 17.5928 11.0206 17.3917 11.6225 16.9795C15.7294 14.206 17.8494 12.8048 17.9826 12.7747C18.0769 12.7533 18.2076 12.7257 18.2955 12.8048C18.3835 12.8827 18.3747 13.031 18.3659 13.0712C18.3081 13.3138 16.0536 15.4112 14.8849 16.497C14.5205 16.835 14.2628 17.075 14.2101 17.1303C14.0919 17.2522 13.9713 17.3691 13.8557 17.481C13.1394 18.1696 12.604 18.6874 13.8858 19.5319C14.5016 19.9378 14.9942 20.2733 15.4856 20.6076C16.0222 20.9733 16.5576 21.3377 17.2512 21.7926C17.4272 21.9083 17.5956 22.0276 17.7602 22.1445C18.3848 22.5906 18.9465 22.9903 19.6402 22.9274C20.0423 22.8897 20.4596 22.5115 20.6707 21.3817C21.1696 18.71 22.1523 12.9242 22.3798 10.539C22.3936 10.341 22.3852 10.142 22.3546 9.94587C22.3364 9.78744 22.2592 9.64166 22.1385 9.53744C21.9588 9.39041 21.6798 9.35899 21.5541 9.36151C20.9874 9.37156 20.1177 9.67442 15.9292 11.4162Z"
fill="#0F3250"
fill-opacity="0.5"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

7
Web/weather/src/assets/images/icons/trash.svg

@ -0,0 +1,7 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024">
<title></title>
<g id="icomoon-ignore">
</g>
<path d="M959.36 218.208c-3.072-50.24-44.384-90.112-95.36-90.112h-96v-32.064c0-53.024-43.008-96-96-96h-320c-53.024 0-96 42.976-96 96v32.032h-96c-51.040 0-92.32 39.872-95.392 90.112h-0.608v69.856c0 35.328 28.672 64 64 64v0 544c0 70.688 57.312 128 128 128h512c70.688 0 128-57.312 128-128v-544c35.328 0 64-28.672 64-64v-69.824h-0.64zM320 96.064c0-17.696 14.304-32 32-32h320c17.696 0 32 14.304 32 32v32h-384v-32zM832 896.064c0 35.264-28.736 64-64 64h-512c-35.296 0-64-28.736-64-64v-544h640v544zM896 256.032v32h-768v-63.968c0-17.696 14.304-32 32-32h704c17.696 0 32 14.304 32 32v31.968zM288 896.192h64c17.696 0 32-14.304 32-32v-416c0-17.696-14.304-32-32-32h-64c-17.696 0-32 14.304-32 32v416c0 17.696 14.304 32 32 32zM288 448.16h64v416h-64v-416zM480 896.192h64c17.696 0 32-14.304 32-32v-416c0-17.696-14.304-32-32-32h-64c-17.696 0-32 14.304-32 32v416c0 17.696 14.304 32 32 32zM480 448.16h64v416h-64v-416zM672 896.192h64c17.696 0 32-14.304 32-32v-416c0-17.696-14.304-32-32-32h-64c-17.696 0-32 14.304-32 32v416c0 17.696 14.304 32 32 32zM672 448.16h64v416h-64v-416z"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

39
Web/weather/src/assets/images/icons/tricks.svg

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="51"
height="51"
viewBox="0 0 51 51"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="tricks.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="9.254902"
inkscape:cx="25.337924"
inkscape:cy="33.549788"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
id="path2"
style="color:#000000;fill:#000000;stroke-linecap:round;stroke-linejoin:round;-inkscape-stroke:none;fill-opacity:1"
d="M 25.5 0.56835938 C 20.712942 0.56834813 16.11927 2.4705291 12.734375 5.8554688 C 9.3494447 9.240399 7.4472656 13.83413 7.4472656 18.621094 C 7.4456556 21.53138 8.1489858 24.398792 9.4960938 26.978516 C 10.701206 29.286316 12.448896 31.23895 14.501953 32.828125 L 15.613281 38.068359 L 15.59375 37.953125 C 15.830035 39.510078 16.616212 40.934022 17.810547 41.960938 C 19.004629 42.987637 20.528478 43.552447 22.103516 43.552734 L 28.896484 43.552734 C 30.471522 43.552447 31.995371 42.987637 33.189453 41.960938 C 34.383728 40.934073 35.170071 39.510324 35.40625 37.953125 L 35.386719 38.066406 L 36.498047 32.804688 C 38.550396 31.220327 40.296631 29.272462 41.501953 26.96875 C 42.849891 24.392243 43.554422 21.526974 43.552734 18.619141 C 43.552213 13.83289 41.650096 9.2399396 38.265625 5.8554688 C 34.880696 2.4705401 30.28697 0.56834813 25.5 0.56835938 z M 25.5 4.5683594 C 29.227621 4.5683506 32.801635 6.0477283 35.4375 8.6835938 C 38.073361 11.319454 39.552734 14.89346 39.552734 18.621094 C 39.554034 20.882455 39.007244 23.111546 37.958984 25.115234 C 36.910639 27.118919 35.391775 28.836634 33.533203 30.125 A 2.0002 2.0002 0 0 0 33.365234 30.378906 L 17.619141 30.378906 A 2.0002 2.0002 0 0 0 17.46875 30.152344 C 15.608839 28.858899 14.089612 27.135025 13.041016 25.126953 C 11.992407 23.118858 11.445769 20.886532 11.447266 18.621094 C 11.447266 14.893466 12.928589 11.319457 15.564453 8.6835938 C 18.200272 6.0477394 21.772266 4.5683506 25.5 4.5683594 z M 18.919922 34.378906 L 32.078125 34.378906 L 31.472656 37.240234 A 2.0002 2.0002 0 0 0 31.453125 37.353516 C 31.360305 37.965514 31.051355 38.5242 30.582031 38.927734 C 30.112515 39.331435 29.515445 39.552622 28.896484 39.552734 L 22.103516 39.552734 C 21.484555 39.552622 20.887485 39.331435 20.417969 38.927734 C 19.948706 38.524251 19.63979 37.965761 19.546875 37.353516 A 2.0002 2.0002 0 0 0 19.527344 37.238281 L 18.919922 34.378906 z M 20.638672 46.353516 C 19.561189 46.353516 18.693359 47.221345 18.693359 48.298828 C 18.693359 49.376311 19.561189 50.244141 20.638672 50.244141 L 30.039062 50.244141 C 31.116546 50.244141 31.982422 49.376311 31.982422 48.298828 C 31.982422 47.221345 31.116546 46.353516 30.039062 46.353516 L 20.638672 46.353516 z " />
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

56
Web/weather/src/assets/images/icons/twitter.svg

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="30"
height="26"
viewBox="0 0 30 26"
fill="none"
version="1.1"
id="svg11"
sodipodi:docname="twitter.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview13"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="9.0769231"
inkscape:cx="5.7838983"
inkscape:cy="17.682203"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg11" />
<g
clip-path="url(#clip0_201_73)"
id="g4"
style="fill:#000000;fill-opacity:1">
<path
d="M0.547998 22.4377C2.86366 22.7041 5.20428 22.2651 7.28082 21.175C7.9588 20.8232 8.59989 20.4005 9.19406 19.9136C8.86919 19.8726 8.56987 19.8513 8.27733 19.7934C7.97962 19.736 7.68631 19.6567 7.3996 19.5561C7.11331 19.4538 6.83512 19.3288 6.56757 19.1822C6.30041 19.0349 6.04457 18.8669 5.80227 18.6794C5.31663 18.3043 4.88899 17.8554 4.53402 17.3479C4.35966 17.0924 4.2011 16.8258 4.05924 16.5497C3.90761 16.2699 3.79014 15.9717 3.70952 15.6621C4.14135 15.7325 4.57824 15.7645 5.01538 15.7576C5.44731 15.7413 5.87588 15.6726 6.29221 15.5528C5.38853 15.3445 4.54406 14.9227 3.82516 14.3207C3.10625 13.7187 2.53253 12.9529 2.14914 12.0835C1.77412 11.2803 1.60514 10.3913 1.65834 9.50149C2.44487 9.94664 3.32261 10.1928 4.21939 10.2197C3.41504 9.63826 2.76159 8.86178 2.31649 7.95863C1.87139 7.05548 1.64827 6.05334 1.66682 5.04038C1.68266 4.00734 1.96191 2.9968 2.47645 2.11036C2.51549 2.15378 2.5554 2.19366 2.59046 2.23772C4.60329 4.73316 7.25284 6.59796 10.2395 7.62129C11.267 7.97432 12.3262 8.22027 13.4012 8.35543C13.7543 8.39893 14.1088 8.43009 14.4629 8.46472C14.5231 8.4706 14.5844 8.46553 14.6617 8.46553C14.6514 8.39392 14.6469 8.34077 14.6358 8.28906C14.5543 7.89048 14.515 7.48393 14.5187 7.0766C14.5208 6.02545 14.7856 4.99261 15.2874 4.0777C15.7892 3.1628 16.5111 2.39671 17.3835 1.85333C18.2558 1.30996 19.2492 1.00762 20.2679 0.975512C21.2865 0.9434 22.2959 1.18259 23.1988 1.67C23.7354 1.95336 24.2232 2.32567 24.6428 2.77208C24.6786 2.8169 24.7265 2.84973 24.7805 2.86638C24.8344 2.88303 24.892 2.88277 24.9458 2.86562C26.1281 2.60198 27.2651 2.15562 28.3182 1.54168C28.3709 1.51099 28.4248 1.48248 28.486 1.44849C28.3018 2.13765 27.981 2.77993 27.544 3.33474C27.12 3.88909 26.6071 4.36434 26.0274 4.73984L26.0335 4.77126C26.0722 4.77384 26.111 4.77361 26.1497 4.77055C27.1465 4.62666 28.1218 4.35455 29.053 3.9606C29.1108 3.93595 29.1687 3.91154 29.2268 3.8881C29.2396 3.88569 29.2525 3.88495 29.2654 3.88587C29.2672 3.94588 29.2257 3.98341 29.1983 4.02409C28.4561 5.12693 27.5442 6.09735 26.4988 6.89713C26.4556 6.92319 26.4208 6.96172 26.3986 7.00797C26.3764 7.05422 26.3678 7.10618 26.3739 7.1574C26.3876 7.32036 26.3947 7.48442 26.3943 7.64794C26.3944 9.00375 26.2436 10.3551 25.9449 11.6754C25.5941 13.219 25.0507 14.7091 24.3284 16.1085C23.7503 17.2316 23.0569 18.2875 22.2602 19.258C21.2443 20.5005 20.0572 21.5828 18.7369 22.4701C17.347 23.4026 15.8239 24.1044 14.2231 24.5499C13.378 24.7867 12.5164 24.9559 11.6461 25.056C11.0828 25.1282 10.5155 25.1618 9.94797 25.1567C9.68831 25.1512 9.42841 25.1525 9.16875 25.1567C8.41345 25.1585 7.65938 25.0942 6.91461 24.9645C5.59651 24.7532 4.30811 24.3778 3.07759 23.8466C2.234 23.4825 1.42005 23.0494 0.643517 22.5513C0.607985 22.5285 0.575494 22.5008 0.541992 22.4754L0.547998 22.4377Z"
fill="#0F3250"
fill-opacity="0.5"
id="path2"
style="fill:#000000;fill-opacity:1" />
</g>
<defs
id="defs9">
<clipPath
id="clip0_201_73">
<rect
width="28.7235"
height="24.1882"
fill="white"
transform="translate(0.541504 0.969727)"
id="rect6" />
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

40
Web/weather/src/assets/images/icons/vaccine.svg

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="43"
height="43"
viewBox="0 0 43 43"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="vaccine.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="5.4883721"
inkscape:cx="13.756356"
inkscape:cy="17.76483"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
d="M42.0104 9.80989L33.2085 1.00793C32.7951 0.594544 32.2344 0.362305 31.6498 0.362305C31.0652 0.362305 30.5045 0.594544 30.0911 1.00793C29.6777 1.42132 29.4455 1.98199 29.4455 2.56661C29.4455 3.15123 29.6777 3.71191 30.0911 4.12529L32.9334 6.96759L28.7158 11.1852L22.9395 5.40891C22.7348 5.20422 22.4918 5.04186 22.2244 4.93108C21.9569 4.8203 21.6703 4.76329 21.3808 4.76329C21.0913 4.76329 20.8047 4.8203 20.5373 4.93108C20.2698 5.04186 20.0268 5.20422 19.8221 5.40891C19.4088 5.8223 19.1765 6.38298 19.1765 6.96759C19.1765 7.55221 19.4088 8.11289 19.8221 8.52627L20.4639 9.16809L5.5923 24.0581C5.24881 24.3952 4.97616 24.7976 4.79036 25.2417C4.60457 25.6857 4.50938 26.1623 4.51039 26.6437V35.3906L0.751217 39.1498C0.546072 39.3542 0.383301 39.5971 0.272238 39.8646C0.161175 40.1321 0.104004 40.4188 0.104004 40.7085C0.104004 40.9981 0.161175 41.2848 0.272238 41.5523C0.383301 41.8198 0.546072 42.0627 0.751217 42.2671C1.16646 42.677 1.72644 42.9068 2.3099 42.9068C2.89335 42.9068 3.45333 42.677 3.86858 42.2671L7.62775 38.508H16.3747C16.856 38.509 17.3327 38.4138 17.7767 38.228C18.2207 38.0422 18.6231 37.7695 18.9603 37.4261L33.8503 22.5544L34.4921 23.1962C34.9073 23.6061 35.4673 23.8359 36.0508 23.8359C36.6342 23.8359 37.1942 23.6061 37.6094 23.1962C37.8146 22.9918 37.9774 22.7489 38.0884 22.4814C38.1995 22.2139 38.2567 21.9271 38.2567 21.6375C38.2567 21.3479 38.1995 21.0612 38.0884 20.7937C37.9774 20.5262 37.8146 20.2833 37.6094 20.0789L31.8332 14.3026L36.0508 10.085L38.8931 12.9273C39.3083 13.3371 39.8683 13.5669 40.4517 13.5669C41.0352 13.5669 41.5952 13.3371 42.0104 12.9273C42.2156 12.7228 42.3783 12.4799 42.4894 12.2124C42.6005 11.945 42.6576 11.6582 42.6576 11.3686C42.6576 11.079 42.6005 10.7922 42.4894 10.5247C42.3783 10.2572 42.2156 10.0143 42.0104 9.80989ZM16.063 34.107H8.91137V26.9554L11.4786 24.3881L14.6877 27.5972C15.1029 28.0071 15.6629 28.2369 16.2463 28.2369C16.8298 28.2369 17.3898 28.0071 17.805 27.5972C18.0102 27.3928 18.1729 27.1498 18.284 26.8824C18.3951 26.6149 18.4522 26.3281 18.4522 26.0385C18.4522 25.7489 18.3951 25.4621 18.284 25.1947C18.1729 24.9272 18.0102 24.6843 17.805 24.4798L14.596 21.2708L16.6131 19.2537L19.8221 22.4627C20.2374 22.8726 20.7974 23.1024 21.3808 23.1024C21.9643 23.1024 22.5243 22.8726 22.9395 22.4627C23.1446 22.2583 23.3074 22.0154 23.4185 21.7479C23.5295 21.4804 23.5867 21.1937 23.5867 20.904C23.5867 20.6144 23.5295 20.3277 23.4185 20.0602C23.3074 19.7927 23.1446 19.5498 22.9395 19.3454L19.7305 16.1363L23.5813 12.2854L30.7329 19.437L16.063 34.107Z"
fill="#0F3250"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

43
Web/weather/src/assets/images/icons/whatsapp.svg

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="30"
height="30"
viewBox="0 0 30 30"
fill="none"
version="1.1"
id="svg4"
sodipodi:docname="whatsapp.svg"
inkscape:version="1.1.2 (0a00cf5, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="11.125147"
inkscape:cx="9.6627939"
inkscape:cy="16.494165"
inkscape:window-width="1366"
inkscape:window-height="715"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="m 21.684118,17.909409 c -0.364,-0.182 -2.1485,-1.059 -2.4807,-1.1811 -0.3322,-0.1209 -0.5741,-0.1808 -0.8171,0.1832 -0.2419,0.3615 -0.9368,1.1799 -1.1481,1.4217 -0.2126,0.2431 -0.4239,0.2724 -0.7866,0.0916 -0.3628,-0.1832 -1.5329,-0.5655 -2.9192,-1.8015 -1.0785,-0.9625 -1.8076,-2.1509 -2.0189,-2.5149 -0.2113,-0.3628 -0.0232,-0.5594 0.1588,-0.7402 0.1636,-0.1624 0.3627,-0.4238 0.5447,-0.6351 0.182,-0.2125 0.2418,-0.364 0.3628,-0.607 0.1221,-0.2419 0.061,-0.4532 -0.0306,-0.6352 -0.0904,-0.1819 -0.8159,-1.9688505 -1.1188,-2.6955905 -0.2943,-0.70719 -0.5936,-0.6107 -0.8159,-0.62291 -0.2125,-0.00977 -0.45434,-0.01221 -0.69618,-0.01221 -0.24183,0 -0.63513,0.09038 -0.96735,0.45436 -0.33344,0.36275 -1.27025,1.24094 -1.27025,3.0278505 0,1.7857 1.29957,3.5115 1.48156,3.7546 0.18198,0.2418 2.55882,3.9085 6.19982,5.4804 0.8672,0.3737 1.5426,0.5973 2.069,0.7634 0.8697,0.2772 1.6611,0.2381 2.2865,0.1441 0.6962,-0.1038 2.1472,-0.8782 2.4501,-1.7258 0.3017,-0.8477 0.3017,-1.5744 0.2113,-1.7259 -0.0904,-0.1514 -0.3322,-0.2418 -0.6962,-0.4238 z m -6.6225,9.042 h -0.0049 c -2.1625,4e-4 -4.2854,-0.5809 -6.14603,-1.6831 l -0.43971,-0.2614 -4.57047,1.1995 1.22018,-4.4557 -0.28703,-0.4568 c -1.20902,-1.9245 -1.84884,-4.1518 -1.84554,-6.4246 0.00245,-6.6565905 5.41813,-12.0722805 12.0784,-12.0722805 3.2245,0 6.256,1.25804 8.5352,3.53962 1.1241,1.11951 2.0151,2.45082 2.6214,3.9168605 0.6063,1.4661 0.9159,3.0379 0.9108,4.6244 -0.0024,6.6566 -5.4181,12.0735 -12.0723,12.0735 z m 10.2744,-22.3479305 c -1.3457,-1.35462 -2.9469,-2.4287 -4.7108,-3.16 -1.7639,-0.73129697 -3.6553,-1.10526597 -5.5648,-1.10023697 -8.00504,0 -14.52242199,6.51616697 -14.52486499,14.52486747 -0.001221,2.5601 0.66688399,5.059 1.93836499,7.2612 l -2.06050499,7.5275 7.69969499,-2.0202 c 2.13001,1.1605 4.51681,1.7686 6.94241,1.7686 h 0.0061 c 8.0051,0 14.5225,-6.5162 14.5249,-14.5261 0.0059,-1.9087 -0.3667,-3.7996 -1.0963,-5.5634305 -0.7296,-1.76378 -1.8016,-3.3654 -3.1542,-4.7122 z"
fill="#0f3250"
fill-opacity="0.5"
id="path2"
style="fill:#000000;fill-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

102
Web/weather/src/assets/scss/forms.scss

@ -0,0 +1,102 @@
input,
button,
select,
textarea {
border: none;
border-radius: $border-radius;
background: none;
appearance: none;
font-family: $font-sans;
font-size: $font-16;
resize: none;
&::-ms-clear {
display: none;
}
&:focus {outline:none;}
&::-moz-focus-inner {border:0;}
}
input,
select,
textarea {
width: 100%;
box-sizing: border-box;
}
input[type=text],
input[type=password]{
color: $gray;
padding: 10px 20px;
text-align: left;
box-sizing: border-box;
&:focus::placeholder {
color: transparent;
}
}
input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-calendar-picker-indicator {
display: none;
-webkit-appearance: none;
}
.input-text {
border: 1px solid $gray;
padding: 10px 20px;
}
.input-select {
width: 100%;
border: 1px solid $gray;
padding: 10px 20px;
color: $black;
border-radius: 2px;
background: $white;
background: url(/assets/images/icons/angle.svg);
background-position: right 10px top 15px;
background-repeat: no-repeat;
background-size: 14px;
cursor: pointer;
}
.input-textarea {
border: 1px solid $gray;
padding: 10px;
width: 100%;
}
.button {
position: relative;
border: none;
appearance: none;
background: $blue;
display: inline-block;
border-radius: 5px;
padding: 12px 30px;
text-align: center;
color: $white !important;
font-size: $font-20;
font-weight: 500;
transition: opacity .3s;
white-space: nowrap;
outline: none;
cursor: pointer;
&:disabled {
opacity: 0.8;
}
&.button-small {
padding: 6px 15px;
font-size: $font-14;
}
&.button-white {
border: 1px solid $blue !important;
color: $blue !important;
background: $white !important;
}
}

115
Web/weather/src/assets/scss/global.scss

@ -0,0 +1,115 @@
@import url('https://fonts.googleapis.com/css2?family=Hind+Madurai:wght@300;400;500;600;700&family=Open+Sans:wght@300;400;500;600;700&display=swap');
html,
body {
font-family: $font-sans;
font-weight: normal;
margin: 0;
padding: 0;
width: 100%;
height: 100vh;
color: $black;
background: $white;
}
h1,h2,h3,h4,h5 {
margin: 0;
}
p {
margin: 0;
padding: 0;
}
ul {
list-style: none;
padding: 0;
margin: 0;
}
a,
input,
button {
text-decoration: none;
outline: none;
&:active,
&:visited,
&:hover,
&:focus{
color: initial;
outline: none;
text-decoration: none;
opacity: 1;
}
}
.h-100 {
height: 100%;
}
.w-100 {
width: 100%;
}
.position-relative {
position: relative;
}
.font-serif {
font-family: $font-serif;
}
.font-sans {
font-family: $font-sans;
}
.text-white { color: $white !important; }
.text-black { color: $black !important; }
.text-blue { color: $blue !important; }
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-left {
text-align: left;
}
@each $bp in $grid-breakpoints {
$key: nth($bp, 1);
$value: nth($bp, 2);
@media (min-width: $value) {
.text-#{$key}-center{ text-align: center; }
.text-#{$key}-left { text-align: left; }
.text-#{$key}-right { text-align: right; }
}
}
section {
padding: 20px 0;
}
.container {
width: 100%;
margin: 0 auto;
padding: 0 !important;
}
.main-content {
width: 100%;
min-height: calc(100vh - #{$header-height-mobile});
padding-top: $header-height-mobile;
background: transparent;
overflow-x: hidden;
@media (min-width: map-get($grid-breakpoints, 'md')) {
min-height: calc(100vh - #{$header-height});
padding-top: $header-height;
}
}

120
Web/weather/src/assets/scss/icons.scss

@ -0,0 +1,120 @@
@font-face {
font-family: 'icomoon';
src: url('../fonts/icomoon.eot');
src: url('../fonts/icomoon.eot#iefix') format('embedded-opentype'),
url('../fonts/icomoon.ttf') format('truetype'),
url('../fonts/icomoon.woff') format('woff'),
url('../fonts/icomoon.svg#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-angle-right:before {
content: "\e900";
}
.icon-angle-left:before {
content: "\e901";
}
.icon-angle-down:before {
content: "\e902";
}
.icon-angle-up:before {
content: "\e903";
}
.icon-article:before {
content: "\e904";
}
.icon-calendar:before {
content: "\e905";
}
.icon-clock:before {
content: "\e906";
}
.icon-dots:before {
content: "\e907";
}
.icon-edit:before {
content: "\e908";
}
.icon-facebook:before {
content: "\e909";
}
.icon-food:before {
content: "\e90a";
}
.icon-heart:before {
content: "\e90b";
}
.icon-list:before {
content: "\e90c";
}
.icon-medal:before {
content: "\e90d";
}
.icon-message:before {
content: "\e90e";
}
.icon-minus:before {
content: "\e90f";
}
.icon-plus:before {
content: "\e910";
}
.icon-close:before {
content: "\e918";
}
.icon-question:before {
content: "\e911";
}
.icon-rules:before {
content: "\e912";
}
.icon-telegram:before {
content: "\e913";
}
.icon-tricks:before {
content: "\e914";
}
.icon-twitter:before {
content: "\e915";
}
.icon-vaccine:before {
content: "\e916";
}
.icon-whatsapp:before {
content: "\e917";
}
.icon-trash:before {
content: "\e919";
}
.icon-save:before {
content: "\e91a";
}
.icon-checkmark:before {
content: "\e91b";
}
.icon-download:before {
content: "\e91c";
}
.icon-upload:before {
content: "\e91d";
}
.icon-email:before {
content: "\e91e";
}

13
Web/weather/src/assets/scss/main.scss

@ -0,0 +1,13 @@
@use 'sass:math';
@import "./variables";
//@import "./mixins";
/* Libraries */
@import "node_modules/bootstrap/scss/bootstrap-grid";
@import "node_modules/hamburgers/_sass/hamburgers/hamburgers";
/* Global setup */
@import "./global";
@import "./forms";
@import "./icons";

72
Web/weather/src/assets/scss/mixins.scss

@ -0,0 +1,72 @@
@import "../../src/scss/variables.scss";
@mixin font-style ( $font: $font-sans, $style: 'regular', $size: $font-12 , $ls: normal ) {
font-family: $font;
font-size: $size;
letter-spacing: $ls;
@if $style == 'regular' {
font-weight: 400;
} @else if $style == 'light' {
font-weight: 200;
} @else if $style == 'medium' {
font-weight: 500;
} @else if $style == 'semibold' {
font-weight: 600;
} @else if $style == 'bold' {
font-weight: 700;
} @else if $style == 'black' {
font-weight: 900;
} @else if $style == 'regular-italic' {
font-weight: 400;
font-style: italic;
} @else if $style == 'medium-italic' {
font-weight: 500;
font-style: italic;
} @else if $style == 'light-italic' {
font-weight: 200;
font-style: italic;
} @else if $style == 'semibold-italic' {
font-weight: 600;
font-style: italic;
} @else if $style == 'bold-italic' {
font-weight: 700;
font-style: italic;
} @else if $style == 'black-italic' {
font-weight: 900;
font-style: italic;
} @else {
font-weight: $style;
}
}
@mixin middle() {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
@mixin full-middle() {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
@mixin middle-right() {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
}
@mixin middle-left() {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
@mixin wrapper() {
max-width: 1000px;
}

108
Web/weather/src/assets/scss/variables.scss

@ -0,0 +1,108 @@
// Bootstrap Settings
$spacer: 20px;
$spacers: (
0: 0,
1: ($spacer * .25), // 5px
2: ($spacer * .5), // 10px
3: $spacer, // 20px
4: ($spacer * 1.5), // 30px
5: ($spacer * 3), // 60px
6: ($spacer * 6), // 120px
);
$grid-columns: 12;
$grid-gutter-width: 20px;
$grid-gutter-width-mobile: 5px;
$grid-breakpoints: (
xs: 0, // Mobile Portrait
sm: 768px, // Tablet Portrait
md: 1024px, // Tablet landscape/Small desktop
lg: 1280px, // Desktop
xl: 1600px, // Large desktop
);
$container-max-widths: (
sm: 1000px,
md: 1200px,
lg: 1420px,
xl: 1560px
);
$font-serif: 'Hind Madurai';
$font-sans: 'Open Sans';
$icon: 'icomoon';
$header-height: 85px;
$header-height-mobile: 70px;
$black: #000;
$white: #fff;
$gray: #858585;
$dark-gray: #2E2E2E;
$light-gray: #ccc;
$lighter-gray:#F2F5F8;
$blue: #0F3250;
$orange: #E94E10;
$green: #8BC3A0;
$white-alpha: rgba(255, 255, 255, 0.8);
$black-alpha: rgba(0, 0, 0, 0.8);
$box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1);
$border-radius: 3px;
// Hamburgers
$hamburger-padding-x : 0px;
$hamburger-padding-y : 0px;
$hamburger-layer-width : 32px;
$hamburger-layer-height : 4px;
$hamburger-layer-spacing : 7px;
$hamburger-layer-color : $white;
$hamburger-layer-border-radius : 7px;
$hamburger-hover-opacity : 1;
$hamburger-active-layer-color : $hamburger-layer-color;
$hamburger-active-hover-opacity: $hamburger-hover-opacity;
$slick-font-path: "../fonts/";
$slick-font-family: $icon;
$slick-loader-path: "/images/";
$slick-prev-character: "\e901";
$slick-next-character: "\e900";
$slick-dot-character: "\8226";
$slick-arrow-color: $orange;
/* Font-size variables PX/16 */
$font-6: 0.375rem; /* 6px */
$font-8: 0.5rem; /* 8px */
$font-10: 0.625rem; /* 10px */
$font-11: 0.687rem; /* 11px */
$font-12: 0.75rem; /* 12px */
$font-13: 0.812rem; /* 13px */
$font-14: 0.875rem; /* 14px */
$font-15: 0.937rem; /* 15px */
$font-16: 1rem; /* 16px */
$font-18: 1.125rem; /* 18px */
$font-20: 1.25rem; /* 20px */
$font-22: 1.375rem; /* 22px */
$font-24: 1.5rem; /* 24px */
$font-25: 1.56rem; /* 25px */
$font-26: 1.625rem; /* 26px */
$font-28: 1.75rem; /* 28px */
$font-30: 1.875rem; /* 30px */
$font-32: 2rem; /* 32px */
$font-34: 2.125rem; /* 34px */
$font-36: 2.25rem; /* 36px */
$font-38: 2.375rem; /* 38px */
$font-40: 2.5rem; /* 40px */
$font-42: 2.625rem; /* 42px */
$font-44: 2.75rem; /* 44px */
$font-46: 2.875rem; /* 46px */
$font-48: 3rem; /* 48px */
$font-50: 3.125rem; /* 50px */
$font-52: 3.25rem; /* 52px */
$font-54: 3.375rem; /* 54px */
$font-60: 3.75rem; /* 60px */
$font-72: 4.5rem; /* 72px */

4
Web/weather/src/environments/environment.prod.ts

@ -0,0 +1,4 @@
export const environment = {
production: true,
REST_API: 'http://2.233.91.82/weather/api/'
}

4
Web/weather/src/environments/environment.ts

@ -0,0 +1,4 @@
export const environment = {
production: false,
REST_API: 'http://weatherapi.local'
}

BIN
Web/weather/src/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 B

13
Web/weather/src/index.html

@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Weather</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>

12
Web/weather/src/main.ts

@ -0,0 +1,12 @@
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));

53
Web/weather/src/polyfills.ts

@ -0,0 +1,53 @@
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
*
* This file is divided into 2 sections:
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
* file.
*
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
* automatically update themselves. This includes recent versions of Safari, Chrome (including
* Opera), Edge on the desktop, and iOS and Chrome on mobile.
*
* Learn more in https://angular.io/guide/browser-support
*/
/***************************************************************************************************
* BROWSER POLYFILLS
*/
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
*
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for IE/Edge
*
* (window as any).__Zone_enable_cross_context_check = true;
*
*/
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js'; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/

26
Web/weather/src/test.ts

@ -0,0 +1,26 @@
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(path: string, deep?: boolean, filter?: RegExp): {
<T>(id: string): T;
keys(): string[];
};
};
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(),
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().forEach(context);

15
Web/weather/tsconfig.app.json

@ -0,0 +1,15 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
"files": [
"src/main.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.d.ts"
]
}

32
Web/weather/tsconfig.json

@ -0,0 +1,32 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es2020",
"module": "es2020",
"lib": [
"es2020",
"dom"
]
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}

18
Web/weather/tsconfig.spec.json

@ -0,0 +1,18 @@
/* To learn more about this file see: https://angular.io/config/tsconfig. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/spec",
"types": [
"jasmine"
]
},
"files": [
"src/test.ts",
"src/polyfills.ts"
],
"include": [
"src/**/*.spec.ts",
"src/**/*.d.ts"
]
}

6516
Web/weather/yarn.lock

File diff suppressed because it is too large
Loading…
Cancel
Save