From 033d7261ff98a4b02b9a212bcb1ceddad5bd96f4 Mon Sep 17 00:00:00 2001 From: Noel Mace <contact@noelmace.com> Date: Sun, 25 Nov 2018 20:32:59 +0100 Subject: [PATCH] feat(ngg-solution): create solution from branch step-02-solution --- angular.json | 99 +++++++++++++++++ steps/ngg-solution/browserslist | 11 ++ steps/ngg-solution/src/app/app.component.css | 46 ++++++++ steps/ngg-solution/src/app/app.component.html | 18 ++++ steps/ngg-solution/src/app/app.component.ts | 14 +++ steps/ngg-solution/src/app/app.module.ts | 44 ++++++++ .../src/app/home/home.component.css | 0 .../src/app/home/home.component.html | 3 + .../src/app/home/home.component.ts | 20 ++++ steps/ngg-solution/src/app/home/index.ts | 1 + steps/ngg-solution/src/app/index.ts | 2 + steps/ngg-solution/src/assets/.gitkeep | 0 steps/ngg-solution/src/assets/.npmignore | 0 .../src/assets/images/bg_right.png | Bin 0 -> 16377 bytes .../src/assets/images/icon-delete.svg | 1 + .../src/assets/images/icon-edit.svg | 1 + .../src/assets/images/icon-mail.svg | 1 + .../src/assets/images/icon-maps.svg | 23 ++++ .../src/assets/images/icon-phone.svg | 1 + .../src/assets/images/logo-sfeir.svg | 18 ++++ .../src/assets/images/search-icon.svg | 16 +++ .../src/environments/environment.prod.ts | 3 + .../src/environments/environment.ts | 8 ++ steps/ngg-solution/src/favicon.ico | Bin 0 -> 5430 bytes steps/ngg-solution/src/index.html | 21 ++++ steps/ngg-solution/src/main.ts | 12 +++ steps/ngg-solution/src/polyfills.ts | 80 ++++++++++++++ steps/ngg-solution/src/styles.css | 101 ++++++++++++++++++ steps/ngg-solution/tsconfig.app.json | 11 ++ 29 files changed, 555 insertions(+) create mode 100644 steps/ngg-solution/browserslist create mode 100644 steps/ngg-solution/src/app/app.component.css create mode 100644 steps/ngg-solution/src/app/app.component.html create mode 100644 steps/ngg-solution/src/app/app.component.ts create mode 100644 steps/ngg-solution/src/app/app.module.ts create mode 100644 steps/ngg-solution/src/app/home/home.component.css create mode 100644 steps/ngg-solution/src/app/home/home.component.html create mode 100644 steps/ngg-solution/src/app/home/home.component.ts create mode 100644 steps/ngg-solution/src/app/home/index.ts create mode 100644 steps/ngg-solution/src/app/index.ts create mode 100644 steps/ngg-solution/src/assets/.gitkeep create mode 100644 steps/ngg-solution/src/assets/.npmignore create mode 100644 steps/ngg-solution/src/assets/images/bg_right.png create mode 100644 steps/ngg-solution/src/assets/images/icon-delete.svg create mode 100644 steps/ngg-solution/src/assets/images/icon-edit.svg create mode 100644 steps/ngg-solution/src/assets/images/icon-mail.svg create mode 100644 steps/ngg-solution/src/assets/images/icon-maps.svg create mode 100644 steps/ngg-solution/src/assets/images/icon-phone.svg create mode 100644 steps/ngg-solution/src/assets/images/logo-sfeir.svg create mode 100644 steps/ngg-solution/src/assets/images/search-icon.svg create mode 100644 steps/ngg-solution/src/environments/environment.prod.ts create mode 100644 steps/ngg-solution/src/environments/environment.ts create mode 100644 steps/ngg-solution/src/favicon.ico create mode 100644 steps/ngg-solution/src/index.html create mode 100644 steps/ngg-solution/src/main.ts create mode 100644 steps/ngg-solution/src/polyfills.ts create mode 100644 steps/ngg-solution/src/styles.css create mode 100644 steps/ngg-solution/tsconfig.app.json diff --git a/angular.json b/angular.json index a91a4abb..cc899582 100644 --- a/angular.json +++ b/angular.json @@ -410,6 +410,105 @@ } } } + }, + "ngg-solution": { + "root": "steps/ngg-solution/", + "sourceRoot": "steps/ngg-solution/src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/ngg-solution", + "index": "steps/ngg-solution/src/index.html", + "main": "steps/ngg-solution/src/main.ts", + "polyfills": "steps/ngg-solution/src/polyfills.ts", + "tsConfig": "steps/ngg-solution/tsconfig.app.json", + "assets": [ + "steps/ngg-solution/src/favicon.ico", + "steps/ngg-solution/src/assets" + ], + "styles": [ + "steps/ngg-solution/src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "steps/ngg-solution/src/environments/environment.ts", + "with": "steps/ngg-solution/src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "ngg-solution:build" + }, + "configurations": { + "production": { + "browserTarget": "ngg-solution:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "ngg-solution:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "steps/ngg-solution/src/test.ts", + "polyfills": "steps/ngg-solution/src/polyfills.ts", + "tsConfig": "steps/ngg-solution/tsconfig.spec.json", + "karmaConfig": "steps/ngg-solution/karma.conf.js", + "styles": [ + "steps/ngg-solution/src/styles.css" + ], + "scripts": [], + "assets": [ + "steps/ngg-solution/src/favicon.ico", + "steps/ngg-solution/src/assets" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "steps/ngg-solution/tsconfig.app.json", + "steps/ngg-solution/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } } }, "defaultProject": "angular-200", diff --git a/steps/ngg-solution/browserslist b/steps/ngg-solution/browserslist new file mode 100644 index 00000000..37371cb0 --- /dev/null +++ b/steps/ngg-solution/browserslist @@ -0,0 +1,11 @@ +# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries +# +# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 \ No newline at end of file diff --git a/steps/ngg-solution/src/app/app.component.css b/steps/ngg-solution/src/app/app.component.css new file mode 100644 index 00000000..df3c0b92 --- /dev/null +++ b/steps/ngg-solution/src/app/app.component.css @@ -0,0 +1,46 @@ +mat-toolbar.extend-toolbar { + background-color: #0168AB; + background-image: url('/assets/images/bg_right.png'); + background-repeat: no-repeat; + background-position: right; + top: 0px; + box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); + width: 100%; + z-index: 1; + color: white; + margin-bottom: 10px; +} + +mat-toolbar .flex { + flex: 1 1 auto; +} + +mat-toolbar a { + color: inherit; + text-decoration: none; + height: 100%; + margin: 0px 10px 0px 10px; + border-bottom: 2px solid transparent; + font-size: 1.1em; + font-weight: normal; + font-family: 'Open Sans', sans-serif; +} + +mat-toolbar a:not(.active):hover { + border-bottom: 2px solid white; +} + +mat-toolbar a img { + height: 100%; + margin-left: -60px; +} + +mat-toolbar-row:nth-child(1) { + margin-bottom: 66px; +} +mat-toolbar-row:nth-child(2) { + padding-left: 30px; + text-align: center; + height: 56px; + margin-top: 56px; +} diff --git a/steps/ngg-solution/src/app/app.component.html b/steps/ngg-solution/src/app/app.component.html new file mode 100644 index 00000000..33fc45ee --- /dev/null +++ b/steps/ngg-solution/src/app/app.component.html @@ -0,0 +1,18 @@ +<mat-toolbar class="extend-toolbar"> + <span> + <a href="#/home"> + <img src="assets/images/logo-sfeir.svg" aria-label="sfeir" alt="Sfeir"> + </a> + </span> + + <span class="flex"></span> + + <span> + <a href="#/locator">Maps</a> + <a href="#/people">List</a> + </span> +</mat-toolbar> + +<mat-card align="center"> + Hello {{ name }} +</mat-card> \ No newline at end of file diff --git a/steps/ngg-solution/src/app/app.component.ts b/steps/ngg-solution/src/app/app.component.ts new file mode 100644 index 00000000..69c2609e --- /dev/null +++ b/steps/ngg-solution/src/app/app.component.ts @@ -0,0 +1,14 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'sfeir-app', + templateUrl: 'app.component.html', + styleUrls: ['app.component.css'] +}) +export class PeopleAppComponent { + name: string; + + constructor() { + this.name = 'Angular 2'; + } +} diff --git a/steps/ngg-solution/src/app/app.module.ts b/steps/ngg-solution/src/app/app.module.ts new file mode 100644 index 00000000..e3755b81 --- /dev/null +++ b/steps/ngg-solution/src/app/app.module.ts @@ -0,0 +1,44 @@ +// CORE DEPS +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +// MATERIAL DESIGN MODULES +import { + MatToolbarModule, + MatCardModule, + MatTabsModule, + MatButtonModule, + MatInputModule, + MatCheckboxModule, + MatRadioModule, + MatIconModule, + MatListModule +} from '@angular/material'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; + +import { PeopleAppComponent } from './app.component'; +import { HomeComponent } from './home'; + +@NgModule({ + imports: [ + BrowserModule, + BrowserAnimationsModule, + MatToolbarModule, + MatCardModule, + MatTabsModule, + MatButtonModule, + MatInputModule, + MatCheckboxModule, + MatRadioModule, + MatIconModule, + MatListModule + ], + declarations: [ + PeopleAppComponent, + HomeComponent + ], + providers: [ ], + bootstrap: [ + HomeComponent + ] +}) +export class AppModule { } diff --git a/steps/ngg-solution/src/app/home/home.component.css b/steps/ngg-solution/src/app/home/home.component.css new file mode 100644 index 00000000..e69de29b diff --git a/steps/ngg-solution/src/app/home/home.component.html b/steps/ngg-solution/src/app/home/home.component.html new file mode 100644 index 00000000..29e635f2 --- /dev/null +++ b/steps/ngg-solution/src/app/home/home.component.html @@ -0,0 +1,3 @@ +<mat-card align="center"> + Hello {{ name }} +</mat-card> diff --git a/steps/ngg-solution/src/app/home/home.component.ts b/steps/ngg-solution/src/app/home/home.component.ts new file mode 100644 index 00000000..271e9a99 --- /dev/null +++ b/steps/ngg-solution/src/app/home/home.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sfeir-home', + templateUrl: 'home.component.html', + styleUrls: ['home.component.css'] +}) +export class HomeComponent implements OnInit { + name:string; + + constructor() { + this.name = 'Angular 2'; + } + + /** + * OnInit implementation + */ + ngOnInit() { + } +} diff --git a/steps/ngg-solution/src/app/home/index.ts b/steps/ngg-solution/src/app/home/index.ts new file mode 100644 index 00000000..e00834fc --- /dev/null +++ b/steps/ngg-solution/src/app/home/index.ts @@ -0,0 +1 @@ +export * from './home.component'; \ No newline at end of file diff --git a/steps/ngg-solution/src/app/index.ts b/steps/ngg-solution/src/app/index.ts new file mode 100644 index 00000000..875bdb2f --- /dev/null +++ b/steps/ngg-solution/src/app/index.ts @@ -0,0 +1,2 @@ +export * from './app.component'; +export * from './app.module'; diff --git a/steps/ngg-solution/src/assets/.gitkeep b/steps/ngg-solution/src/assets/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/steps/ngg-solution/src/assets/.npmignore b/steps/ngg-solution/src/assets/.npmignore new file mode 100644 index 00000000..e69de29b diff --git a/steps/ngg-solution/src/assets/images/bg_right.png b/steps/ngg-solution/src/assets/images/bg_right.png new file mode 100644 index 0000000000000000000000000000000000000000..449e4bc82c2a6aecd449bbfcf9aad413ffc64968 GIT binary patch literal 16377 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 literal 0 HcmV?d00001 diff --git a/steps/ngg-solution/src/assets/images/icon-delete.svg b/steps/ngg-solution/src/assets/images/icon-delete.svg new file mode 100644 index 00000000..c665bde5 --- /dev/null +++ b/steps/ngg-solution/src/assets/images/icon-delete.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"><g class="style-scope iron-icon"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z" class="style-scope iron-icon"></path></g></svg> diff --git a/steps/ngg-solution/src/assets/images/icon-edit.svg b/steps/ngg-solution/src/assets/images/icon-edit.svg new file mode 100644 index 00000000..bb07333e --- /dev/null +++ b/steps/ngg-solution/src/assets/images/icon-edit.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" class="style-scope iron-icon" style="pointer-events: none; display: block; width: 100%; height: 100%;"><g class="style-scope iron-icon"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" class="style-scope iron-icon"></path></g></svg> diff --git a/steps/ngg-solution/src/assets/images/icon-mail.svg b/steps/ngg-solution/src/assets/images/icon-mail.svg new file mode 100644 index 00000000..040a7e7f --- /dev/null +++ b/steps/ngg-solution/src/assets/images/icon-mail.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="100%" height="100%" viewBox="0 0 24 24" fit="" preserveAspectRatio="xMidYMid meet" style="pointer-events: none; display: block;"><path d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z"></path></svg> diff --git a/steps/ngg-solution/src/assets/images/icon-maps.svg b/steps/ngg-solution/src/assets/images/icon-maps.svg new file mode 100644 index 00000000..989697e2 --- /dev/null +++ b/steps/ngg-solution/src/assets/images/icon-maps.svg @@ -0,0 +1,23 @@ +<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100%" height="100%" viewBox="0 0 374.003 374.003" style="pointer-events: none; display: block;" xml:space="preserve" fit="" preserveAspectRatio="xMidYMid meet"> + <g> + <g> + <g> + <path d="M170.944,165.64H60c-4.454,0-8.372,2.945-9.607,7.225l-21.289,73.714l149.265,16.332l11.713-56.059 + C182.792,193.835,176.085,179.899,170.944,165.64z"></path> + <path d="M310.354,277.353l44.828,4.904l-13.385-46.347c-1.798,2.646-3.587,5.224-5.349,7.702 + C327.392,256.364,318.342,267.81,310.354,277.353z"></path> + <path d="M213.143,243.164l-4.812,23.026l24.23,2.649c-6.084-7.563-12.56-16.013-19.047-25.146 + C213.393,243.519,213.267,243.339,213.143,243.164z"></path> + <path d="M0.393,345.998c-0.872,3.021-0.274,6.271,1.615,8.785c1.889,2.513,4.849,3.99,7.992,3.99h148.34l13.864-66.355 + L20.655,275.835L0.393,345.998z"></path> + <path d="M364.182,313.421l-162.015-17.729l-13.181,63.079h174.997c0.007,0,0.014,0,0.02,0c5.523,0,10-4.479,10-10 + c0-1.197-0.21-2.346-0.595-3.406L364.182,313.421z"></path> + <path d="M270.826,290.064c1.064,1.139,2.562,1.785,4.126,1.785c1.565,0,3.058-0.646,4.133-1.785 + c9.111-9.693,27.104-29.752,45.135-55.137c22.714-31.978,49.783-78.865,49.783-120.65c0-54.617-44.433-99.047-99.051-99.047 + c-54.612,0-99.046,44.43-99.046,99.047c0,41.814,27.104,88.732,49.841,120.732C243.773,260.392,261.724,280.392,270.826,290.064z + M274.952,52.499c33.35,0,60.479,27.137,60.479,60.486c0,33.336-27.13,60.486-60.479,60.486 + c-33.344,0-60.477-27.15-60.477-60.486C214.477,79.636,241.607,52.499,274.952,52.499z"></path> + </g> + </g> + </g> + </svg> diff --git a/steps/ngg-solution/src/assets/images/icon-phone.svg b/steps/ngg-solution/src/assets/images/icon-phone.svg new file mode 100644 index 00000000..15ac4a3e --- /dev/null +++ b/steps/ngg-solution/src/assets/images/icon-phone.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="100%" height="100%" viewBox="0 0 24 24" fit="" preserveAspectRatio="xMidYMid meet" style="pointer-events: none; display: block;"><path d="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"></path></svg> diff --git a/steps/ngg-solution/src/assets/images/logo-sfeir.svg b/steps/ngg-solution/src/assets/images/logo-sfeir.svg new file mode 100644 index 00000000..9d6e4c3e --- /dev/null +++ b/steps/ngg-solution/src/assets/images/logo-sfeir.svg @@ -0,0 +1,18 @@ +<svg id="logo.svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="28" viewBox="0 0 190 28"> + <defs> + <style> + .cls-1, .cls-2 { + fill: #fff; + fill-rule: evenodd; + } + + .cls-2 { + opacity: 0.4; + } + </style> + </defs> + <path id="Shape_32_copy_copie_copy" data-name="Shape 32 copy copie copy" class="cls-1" d="M200.862,55.1c-1.321,1.487-5.182,2.635-7.53,2.635A12.37,12.37,0,1,1,206,45.366a12.964,12.964,0,0,1-2,6.672s-1.211,1.438-2,2.2A3.3,3.3,0,0,1,200.862,55.1Zm-7.53-19.762a10.033,10.033,0,1,0,10.274,10.03A10.154,10.154,0,0,0,193.332,35.336Z" transform="translate(-54 -31)"/> + <path id="Ellipse_26_copy_9" data-name="Ellipse 26 copy 9" class="cls-2" d="M194,53a11.251,11.251,0,0,1-6-2,4.118,4.118,0,0,1-1-2,9.551,9.551,0,0,0,2.6-.69c1.558-.618,2.024-0.834,2.024-0.834l0.111-.962a3.086,3.086,0,0,1-.958-1.954c-0.365.1-.486-0.411-0.507-0.737s-0.212-1.3.234-1.209a4.621,4.621,0,0,1-.125-1.1,3.06,3.06,0,0,1,2.923-2.521,2.8,2.8,0,0,1,2.911,2.52,4.706,4.706,0,0,1-.13,1.1c0.445-.088.252,0.894,0.23,1.209s-0.143.836-.507,0.735a3.074,3.074,0,0,1-.959,1.951l0.11,0.862a14.552,14.552,0,0,0,2.024.913,14.052,14.052,0,0,0,2.338.761L200,49A6.09,6.09,0,0,1,194,53Z" transform="translate(-54 -31)"/> + <path id="people_copy_4" data-name="people copy 4" class="cls-1" d="M156.406,50.948a6.619,6.619,0,0,0,6.778-6.936,7.274,7.274,0,0,0-7.351-7.178c-1.932,0-1.167-.1-3.333,0H150V56h2.5V51C153.637,51,154.53,50.948,156.406,50.948ZM155.833,48.5H152.5V39.333h3.333c2.757,0,5.106,1.691,5.106,4.679S158.59,48.5,155.833,48.5Zm16.25,2.448c2.217,0,6.25.052,6.25,0.052V48.5H172.5c-2.306,0-4.829-.792-5-3.333h10.833V43.5a6.732,6.732,0,0,0-1.7-4.348,6.087,6.087,0,0,0-4.969-2.319c-4.845,0-6.581,3.27-6.581,7.179A6.609,6.609,0,0,0,172.083,50.948Zm3.75-8.281H167.5c0.114-2.038,1.239-3.333,4.167-3.333C174.793,39.333,175.805,40.684,175.833,42.667ZM226.667,51c1.25,0,1.93.008,3.333,0V48.5c-0.812,0-1.9,0-2.5,0-0.938,0-1.667-1.495-1.667-2.5V31h-2.5V47.667A3.135,3.135,0,0,0,226.667,51Zm-11.927-.052a6.619,6.619,0,0,0,6.777-6.936,7.274,7.274,0,0,0-7.35-7.178c-1.933,0-1.168-.1-3.334,0h-2.5V56h2.5V51C211.97,51,212.864,50.948,214.74,50.948ZM214.167,48.5h-3.334V39.333h3.334c2.757,0,5.1,1.691,5.1,4.679S216.924,48.5,214.167,48.5Zm23.583,2.448c2.217,0,6.25.052,6.25,0.052V48.5h-5.833c-2.306,0-4.83-.792-5-3.333H244V43.5a6.732,6.732,0,0,0-1.7-4.348,6.09,6.09,0,0,0-4.97-2.319c-4.746,0-6.58,3.27-6.58,7.179A6.608,6.608,0,0,0,237.75,50.948Zm3.75-8.281h-8.333c0.113-2.038,1.239-3.333,4.166-3.333C240.46,39.333,241.472,40.684,241.5,42.667Z" transform="translate(-54 -31)"/> + <image width="86" height="28" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFYAAAAcCAMAAADMS7jPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACHFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAkud5oAAAAsnRSTlMAYbfd59m4gysQu+B5iZSEAqdDnUB4kI6BBD7fws731qNH7QOMsRUWx+6K+OiGZWhbAa9cBlZmCx9KPSLGHRky0mANqrL0zbyND6itrjSzPIcTn+L++1IpMT8aWNoYsCjstKDcoVfF2+PzggfkYklQLh5jeiMSXWxw1crvtWq6dKlpBQha9ktOTU/85lP5LdHIOyEnSJLUtrnYVEXAWTU4m19zrNOcMDk6QRRCEfrQ/czD8vPHWgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAKoSURBVEjHrZYJVxJRFMcvSSpZRkaikpZaSGkolWRZVmCSG0YahWWLW5bilmaLpWm0b1jZaitlVrbcT9ibeU+YYZg5SPzP4dz77n33d97c+2YOAApSLUlQL01MSo6c1SxLWS5buiKV00pthNQqpEqLXLmapHThwTXper0+PQNYaaa0LIuEDWuzc9bJHGg9yeeGBxkO8qjNl5ZtQNxIjNEogy0wbdosCRbytCIOu8VcXGKRlm1F3AaK2i4NlRZbMxh2Ryhaptu5qzyTNno3YhZELe2eCuZZGHZvsN/7+EdQ7wew2SsPIFY5HI6DANU1tSHVqQDqnZWcnEmkqMHpPASuw41NRwx2N0c5yrDHKNRWxfqNHtLRBR9TAJpRqBqA48w9QcrMZAQtaro+yXFOibHkofH0mda6NgMIsW0AFSJsO+kgcx1kZwdi51nid51DbJZiPSR13sZ5GvLrVpl7EFO9Xm8vWfS5BeoHGLCazYP6IJbowpB2+OIISLGXEC+LhnAFsV5pSOUCrPCNEWNViFc9wjIyP7cSNi2ELQVZLN/A0WtlMWBNII+FEb5JTdfHNOHY6nHBBatVSbCjSli40Ujnm2cNw4ov2LgE61DEwkRJO72AHWKs+IK1LhZLNHkzkVT6JkXY7lu37wR1NzkGLNHgPfodjX5kUWHhPuKDuGEtC1+g3IeIj+J32sdPiv1TT589J72dFo9MU5n4IqiX1kVhCwTD5g4LrxBf043iC2Zn5W8Q3xIzQ40c9l2wruo9H+hCnKEbW0TYD6y8FzGbmI/USLED/Eo79OmzKRDo/NLH0l/9fhf1Jmb934JqmGJ5jW6unxjjHG9C+s6wP1zGYYiTfhpdsww778tJyP9/Iq9fhb55Div/PyEmzfO03zDdw+lPvE77t4hT4B9YxNXbv7utngAAAABJRU5ErkJggg=="/> +</svg> diff --git a/steps/ngg-solution/src/assets/images/search-icon.svg b/steps/ngg-solution/src/assets/images/search-icon.svg new file mode 100644 index 00000000..92e95a18 --- /dev/null +++ b/steps/ngg-solution/src/assets/images/search-icon.svg @@ -0,0 +1,16 @@ +<svg id="Loupe.svg" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 48.656 47.031" fit="" preserveAspectRatio="xMidYMid meet" style="pointer-events: none; display: block;"> + <defs> + <style> + .cls-1, .cls-2 { + fill: #fff; + fill-rule: evenodd; + } + + .cls-2 { + opacity: 0.4; + } + </style> + </defs> + <path id="Shape_32_copy_copie" data-name="Shape 32 copy copie" class="cls-1" d="M900.55,143.3c1.437,1.526,1.994,4,.8,5.457a4.155,4.155,0,0,1-5.958.039h0l-9.243-8.706c-2.148,2.5-8.42,4.423-12.236,4.423A20.758,20.758,0,1,1,894.5,123.757c0,3.848-1.588,9-3.253,11.2l9.306,8.346h0Zm-26.635-36.381a16.837,16.837,0,1,0,16.7,16.837A16.767,16.767,0,0,0,873.915,106.921Z" transform="translate(-853.344 -103)"></path> + <path id="Ellipse_26_copy_8" data-name="Ellipse 26 copy 8" class="cls-2" d="M874,139c-6.626,0-11-5-11-5s0.359-2.147,4-3a7.286,7.286,0,0,0,4-2.459l0.18-1.649a5.378,5.378,0,0,1-1.548-3.348c-0.59.173-.785-0.7-0.82-1.263-0.031-.539-0.341-2.224.379-2.072a8.284,8.284,0,0,1-.2-1.883,5.056,5.056,0,0,1,4.721-4.32,4.632,4.632,0,0,1,4.7,4.318,8.446,8.446,0,0,1-.21,1.882c0.72-.15.407,1.533,0.372,2.072-0.032.559-.231,1.433-0.819,1.26a5.353,5.353,0,0,1-1.549,3.342l0.178,1.478A13.541,13.541,0,0,0,881,131c3.6,1.1,4,3,4,3C884.78,134.308,879.8,139,874,139Z" transform="translate(-853.344 -103)"></path> +</svg> diff --git a/steps/ngg-solution/src/environments/environment.prod.ts b/steps/ngg-solution/src/environments/environment.prod.ts new file mode 100644 index 00000000..3612073b --- /dev/null +++ b/steps/ngg-solution/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/steps/ngg-solution/src/environments/environment.ts b/steps/ngg-solution/src/environments/environment.ts new file mode 100644 index 00000000..00313f16 --- /dev/null +++ b/steps/ngg-solution/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `angular-cli.json`. + +export const environment = { + production: false +}; diff --git a/steps/ngg-solution/src/favicon.ico b/steps/ngg-solution/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 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 literal 0 HcmV?d00001 diff --git a/steps/ngg-solution/src/index.html b/steps/ngg-solution/src/index.html new file mode 100644 index 00000000..af0fbc44 --- /dev/null +++ b/steps/ngg-solution/src/index.html @@ -0,0 +1,21 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"> + <title>Angular2200</title> + <base href="/"> + + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="icon" type="image/x-icon" href="favicon.ico"> + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> +</head> +<body> + <sfeir-home> + <div class="loader"> + <svg class="circular"> + <circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10"/> + </svg> + </div> + </sfeir-home> +</body> +</html> diff --git a/steps/ngg-solution/src/main.ts b/steps/ngg-solution/src/main.ts new file mode 100644 index 00000000..c7b673cf --- /dev/null +++ b/steps/ngg-solution/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)); diff --git a/steps/ngg-solution/src/polyfills.ts b/steps/ngg-solution/src/polyfills.ts new file mode 100644 index 00000000..ee8b84da --- /dev/null +++ b/steps/ngg-solution/src/polyfills.ts @@ -0,0 +1,80 @@ +/** + * 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 Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** + * If the application will be indexed by Google Search, the following is required. + * Googlebot uses a renderer based on Chrome 41. + * https://developers.google.com/search/docs/guides/rendering + **/ +// import 'core-js/es6/array'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (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__BLACK_LISTED_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/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/steps/ngg-solution/src/styles.css b/steps/ngg-solution/src/styles.css new file mode 100644 index 00000000..15465c56 --- /dev/null +++ b/steps/ngg-solution/src/styles.css @@ -0,0 +1,101 @@ +@import "~@angular/material/prebuilt-themes/indigo-pink.css"; + +body { + background: red; + padding: 0; + margin: 0; + font-family: 'Open Sans', sans-serif; + background-color: #FAFAFA; + -webkit-font-smoothing: antialiased; +} +* /deep/ * { + font-family: inherit; + font-size: 14px; + line-height: 1.42857143; + color: inherit; +} +h1, * /deep/ h1 { + font-size: 36px; + margin-top: 20px; + margin-bottom: 10px; +} + +button[mat-fab], a[mat-fab] { + position: fixed; + bottom: 20px; + right: 20px; +} + +[mat-fab] mat-icon { + font-size: 2em; + line-height: 18.6px; +} + +.loader { + position: relative; + margin: 0 auto; + width: 100px; + transform: scale(1.5); +} +.loader:before { + content: ''; + display: block; + padding-top: 100%; +} + +.circular { + animation: rotate 2s linear infinite; + height: 100%; + transform-origin: center center; + width: 100%; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; +} + +.path { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite; + stroke-linecap: round; +} + +@keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0; + } + 50% { + stroke-dasharray: 89, 200; + stroke-dashoffset: -35px; + } + 100% { + stroke-dasharray: 89, 200; + stroke-dashoffset: -124px; + } +} +@keyframes color { + 100%, + 0% { + stroke: #d62d20; + } + 40% { + stroke: #0057e7; + } + 66% { + stroke: #008744; + } + 80%, + 90% { + stroke: #ffa700; + } +} diff --git a/steps/ngg-solution/tsconfig.app.json b/steps/ngg-solution/tsconfig.app.json new file mode 100644 index 00000000..bb16c46a --- /dev/null +++ b/steps/ngg-solution/tsconfig.app.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/app", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +}