From e78df802f9d7992b4cbae1cd98ed3305f039a710 Mon Sep 17 00:00:00 2001 From: LESO Date: Thu, 4 Nov 2021 00:04:25 +0000 Subject: [PATCH] Initial commit --- .browserslistrc | 17 ++ .editorconfig | 16 ++ .eslintrc.json | 47 ++++ .gitignore | 31 +++ angular.json | 184 ++++++++++++++ capacitor.config.json | 6 + e2e/protractor.conf.js | 37 +++ e2e/src/app.e2e-spec.ts | 14 ++ e2e/src/app.po.ts | 11 + e2e/tsconfig.json | 12 + ionic.config.json | 8 + karma.conf.js | 44 ++++ package.json | 66 +++++ resources/icon.png | Bin 0 -> 58299 bytes resources/splash.png | Bin 0 -> 172269 bytes src/app/app-routing.module.ts | 16 ++ src/app/app.component.html | 3 + src/app/app.component.scss | 0 src/app/app.component.spec.ts | 23 ++ src/app/app.component.ts | 10 + src/app/app.module.ts | 17 ++ .../explore-container.component.html | 4 + .../explore-container.component.scss | 27 ++ .../explore-container.component.spec.ts | 24 ++ .../explore-container.component.ts | 15 ++ .../explore-container.module.ts | 14 ++ src/app/tab1/tab1-routing.module.ts | 16 ++ src/app/tab1/tab1.module.ts | 20 ++ src/app/tab1/tab1.page.html | 17 ++ src/app/tab1/tab1.page.scss | 0 src/app/tab1/tab1.page.spec.ts | 25 ++ src/app/tab1/tab1.page.ts | 12 + src/app/tab2/tab2-routing.module.ts | 16 ++ src/app/tab2/tab2.module.ts | 21 ++ src/app/tab2/tab2.page.html | 17 ++ src/app/tab2/tab2.page.scss | 0 src/app/tab2/tab2.page.spec.ts | 25 ++ src/app/tab2/tab2.page.ts | 12 + src/app/tab3/tab3-routing.module.ts | 16 ++ src/app/tab3/tab3.module.ts | 22 ++ src/app/tab3/tab3.page.html | 17 ++ src/app/tab3/tab3.page.scss | 0 src/app/tab3/tab3.page.spec.ts | 25 ++ src/app/tab3/tab3.page.ts | 12 + src/app/tabs/tabs-routing.module.ts | 39 +++ src/app/tabs/tabs.module.ts | 19 ++ src/app/tabs/tabs.page.html | 20 ++ src/app/tabs/tabs.page.scss | 1 + src/app/tabs/tabs.page.spec.ts | 26 ++ src/app/tabs/tabs.page.ts | 12 + src/assets/icon/favicon.png | Bin 0 -> 930 bytes src/assets/shapes.svg | 1 + src/environments/environment.prod.ts | 3 + src/environments/environment.ts | 16 ++ src/global.scss | 26 ++ src/index.html | 26 ++ src/main.ts | 12 + src/polyfills.ts | 65 +++++ src/test.ts | 25 ++ src/theme/variables.scss | 236 ++++++++++++++++++ src/zone-flags.ts | 6 + tsconfig.app.json | 15 ++ tsconfig.json | 23 ++ tsconfig.spec.json | 18 ++ 64 files changed, 1508 insertions(+) create mode 100644 .browserslistrc create mode 100644 .editorconfig create mode 100644 .eslintrc.json create mode 100644 .gitignore create mode 100644 angular.json create mode 100644 capacitor.config.json create mode 100644 e2e/protractor.conf.js create mode 100644 e2e/src/app.e2e-spec.ts create mode 100644 e2e/src/app.po.ts create mode 100644 e2e/tsconfig.json create mode 100644 ionic.config.json create mode 100644 karma.conf.js create mode 100644 package.json create mode 100644 resources/icon.png create mode 100644 resources/splash.png create mode 100644 src/app/app-routing.module.ts create mode 100644 src/app/app.component.html create mode 100644 src/app/app.component.scss create mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.module.ts create mode 100644 src/app/explore-container/explore-container.component.html create mode 100644 src/app/explore-container/explore-container.component.scss create mode 100644 src/app/explore-container/explore-container.component.spec.ts create mode 100644 src/app/explore-container/explore-container.component.ts create mode 100644 src/app/explore-container/explore-container.module.ts create mode 100644 src/app/tab1/tab1-routing.module.ts create mode 100644 src/app/tab1/tab1.module.ts create mode 100644 src/app/tab1/tab1.page.html create mode 100644 src/app/tab1/tab1.page.scss create mode 100644 src/app/tab1/tab1.page.spec.ts create mode 100644 src/app/tab1/tab1.page.ts create mode 100644 src/app/tab2/tab2-routing.module.ts create mode 100644 src/app/tab2/tab2.module.ts create mode 100644 src/app/tab2/tab2.page.html create mode 100644 src/app/tab2/tab2.page.scss create mode 100644 src/app/tab2/tab2.page.spec.ts create mode 100644 src/app/tab2/tab2.page.ts create mode 100644 src/app/tab3/tab3-routing.module.ts create mode 100644 src/app/tab3/tab3.module.ts create mode 100644 src/app/tab3/tab3.page.html create mode 100644 src/app/tab3/tab3.page.scss create mode 100644 src/app/tab3/tab3.page.spec.ts create mode 100644 src/app/tab3/tab3.page.ts create mode 100644 src/app/tabs/tabs-routing.module.ts create mode 100644 src/app/tabs/tabs.module.ts create mode 100644 src/app/tabs/tabs.page.html create mode 100644 src/app/tabs/tabs.page.scss create mode 100644 src/app/tabs/tabs.page.spec.ts create mode 100644 src/app/tabs/tabs.page.ts create mode 100644 src/assets/icon/favicon.png create mode 100644 src/assets/shapes.svg create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts create mode 100644 src/global.scss create mode 100644 src/index.html create mode 100644 src/main.ts create mode 100644 src/polyfills.ts create mode 100644 src/test.ts create mode 100644 src/theme/variables.scss create mode 100644 src/zone-flags.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.spec.json diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..427441d --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,17 @@ +# 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 +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.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 diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..58fd208 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,47 @@ +{ + "root": true, + "ignorePatterns": ["projects/**/*"], + "overrides": [ + { + "files": ["*.ts"], + "parserOptions": { + "project": ["tsconfig.json", "e2e/tsconfig.json"], + "createDefaultProgram": true + }, + "extends": [ + "plugin:@angular-eslint/ng-cli-compat", + "plugin:@angular-eslint/ng-cli-compat--formatting-add-on", + "plugin:@angular-eslint/template/process-inline-templates" + ], + "rules": { + "@angular-eslint/component-class-suffix": [ + "error", + { + "suffixes": ["Page", "Component"] + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "app", + "style": "kebab-case" + } + ], + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "app", + "style": "camelCase" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@angular-eslint/template/recommended"], + "rules": {} + } + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..416fc4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# Specifies intentionally untracked files to ignore when using Git +# http://git-scm.com/docs/gitignore + +*~ +*.sw[mnpcod] +.tmp +*.tmp +*.tmp.* +*.sublime-project +*.sublime-workspace +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate +$RECYCLE.BIN/ + +*.log +log.txt +npm-debug.log* + +/.idea +/.ionic +/.sass-cache +/.sourcemaps +/.versions +/.vscode +/coverage +/dist +/node_modules +/platforms +/plugins +/www diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..c6da09d --- /dev/null +++ b/angular.json @@ -0,0 +1,184 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "defaultProject": "app", + "newProjectRoot": "projects", + "projects": { + "app": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "www", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + }, + { + "glob": "**/*.svg", + "input": "node_modules/ionicons/dist/ionicons/svg", + "output": "./svg" + } + ], + "styles": ["src/theme/variables.scss", "src/global.scss"], + "scripts": [], + "aot": false, + "vendorChunk": true, + "extractLicenses": false, + "buildOptimizer": false, + "sourceMap": true, + "optimization": false, + "namedChunks": true + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + } + ] + }, + "ci": { + "progress": false + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + }, + "ci": { + "progress": false + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "app: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", + "styles": [], + "scripts": [], + "assets": [ + { + "glob": "favicon.ico", + "input": "src/", + "output": "/" + }, + { + "glob": "**/*", + "input": "src/assets", + "output": "/assets" + } + ] + }, + "configurations": { + "ci": { + "progress": false, + "watch": false + } + } + }, + "lint": { + "builder": "@angular-eslint/builder:lint", + "options": { + "lintFilePatterns": [ + "src/**/*.ts", + "src/**/*.html" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "devServerTarget": "app:serve:production" + }, + "ci": { + "devServerTarget": "app:serve:ci" + } + } + }, + "ionic-cordova-build": { + "builder": "@ionic/angular-toolkit:cordova-build", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + } + } + }, + "ionic-cordova-serve": { + "builder": "@ionic/angular-toolkit:cordova-serve", + "options": { + "cordovaBuildTarget": "app:ionic-cordova-build", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "cordovaBuildTarget": "app:ionic-cordova-build:production", + "devServerTarget": "app:serve:production" + } + } + } + } + } + }, + "cli": { + "defaultCollection": "@ionic/angular-toolkit" + }, + "schematics": { + "@ionic/angular-toolkit:component": { + "styleext": "scss" + }, + "@ionic/angular-toolkit:page": { + "styleext": "scss" + } + } +} diff --git a/capacitor.config.json b/capacitor.config.json new file mode 100644 index 0000000..fea53ff --- /dev/null +++ b/capacitor.config.json @@ -0,0 +1,6 @@ +{ + "appId": "io.ionic.starter", + "appName": "GoToBed", + "webDir": "www", + "bundledWebRuntime": false +} diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js new file mode 100644 index 0000000..22bd9d9 --- /dev/null +++ b/e2e/protractor.conf.js @@ -0,0 +1,37 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + SELENIUM_PROMISE_MANAGER: false, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..e4156e0 --- /dev/null +++ b/e2e/src/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AppPage } from './app.po'; + +describe('new App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getPageTitle()).toContain('Tab 1'); + }); +}); diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts new file mode 100644 index 0000000..048e734 --- /dev/null +++ b/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get('/'); + } + + getPageTitle() { + return element(by.css('ion-title')).getText(); + } +} diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json new file mode 100644 index 0000000..a82df00 --- /dev/null +++ b/e2e/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "node" + ] + } +} diff --git a/ionic.config.json b/ionic.config.json new file mode 100644 index 0000000..40718f6 --- /dev/null +++ b/ionic.config.json @@ -0,0 +1,8 @@ +{ + "name": "GoToBed", + "integrations": { + "capacitor": {} + }, + "type": "angular", + "id": "b295df72" +} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..49eb12f --- /dev/null +++ b/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/ngv'), + 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 + }); +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..14e3eaa --- /dev/null +++ b/package.json @@ -0,0 +1,66 @@ +{ + "name": "go-to-bed", + "version": "0.0.1", + "author": "Ionic Framework", + "homepage": "https://ionicframework.com/", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/common": "~12.1.1", + "@angular/core": "~12.1.1", + "@angular/forms": "~12.1.1", + "@angular/platform-browser": "~12.1.1", + "@angular/platform-browser-dynamic": "~12.1.1", + "@angular/router": "~12.1.1", + "@capacitor/app": "1.0.6", + "@capacitor/core": "3.3.0", + "@capacitor/haptics": "1.1.3", + "@capacitor/keyboard": "1.1.3", + "@capacitor/status-bar": "1.0.6", + "@ionic/angular": "^5.5.2", + "rxjs": "~6.6.0", + "tslib": "^2.2.0", + "zone.js": "~0.11.4" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~12.1.1", + "@angular-eslint/builder": "~12.0.0", + "@angular-eslint/eslint-plugin": "~12.0.0", + "@angular-eslint/eslint-plugin-template": "~12.0.0", + "@angular-eslint/template-parser": "~12.0.0", + "@angular/cli": "~12.1.1", + "@angular/compiler": "~12.1.1", + "@angular/compiler-cli": "~12.1.1", + "@angular/language-service": "~12.0.1", + "@capacitor/cli": "3.3.0", + "@ionic/angular-toolkit": "^4.0.0", + "@types/jasmine": "~3.6.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", + "@typescript-eslint/eslint-plugin": "4.16.1", + "@typescript-eslint/parser": "4.16.1", + "eslint": "^7.6.0", + "eslint-plugin-import": "2.22.1", + "eslint-plugin-jsdoc": "30.7.6", + "eslint-plugin-prefer-arrow": "1.2.2", + "jasmine-core": "~3.8.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.3.2", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "typescript": "~4.2.4" + }, + "description": "An Ionic project" +} diff --git a/resources/icon.png b/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2146d4220b37f7c6af42574b424a5df20c4ae1df GIT binary patch literal 58299 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 U6a=I-!@!@b3hI}OE?V6Cf1bDxQUCw| literal 0 HcmV?d00001 diff --git a/resources/splash.png b/resources/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..532274fcb401cb9542dcf4f3fa5137e89f200f7b GIT binary patch literal 172269 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 M?%xr-P4nXa2Z%-8cmMzZ literal 0 HcmV?d00001 diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100644 index 0000000..48fc28d --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule) + } +]; +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) + ], + exports: [RouterModule] +}) +export class AppRoutingModule {} diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..13b9677 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,3 @@ + + + diff --git a/src/app/app.component.scss b/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 0000000..161e57d --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,23 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { TestBed, waitForAsync } from '@angular/core/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + + beforeEach(waitForAsync(() => { + + TestBed.configureTestingModule({ + declarations: [AppComponent], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }).compileComponents(); + })); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); + // TODO: add more tests! + +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..913de3d --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'], +}) +export class AppComponent { + constructor() {} +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 0000000..d33b737 --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { RouteReuseStrategy } from '@angular/router'; + +import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [AppComponent], + entryComponents: [], + imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule], + providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }], + bootstrap: [AppComponent], +}) +export class AppModule {} diff --git a/src/app/explore-container/explore-container.component.html b/src/app/explore-container/explore-container.component.html new file mode 100644 index 0000000..bbadb7d --- /dev/null +++ b/src/app/explore-container/explore-container.component.html @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/app/explore-container/explore-container.component.scss b/src/app/explore-container/explore-container.component.scss new file mode 100644 index 0000000..8993e7c --- /dev/null +++ b/src/app/explore-container/explore-container.component.scss @@ -0,0 +1,27 @@ +#container { + text-align: center; + + position: absolute; + left: 0; + right: 0; + top: 50%; + transform: translateY(-50%); +} + +#container strong { + font-size: 20px; + line-height: 26px; +} + +#container p { + font-size: 16px; + line-height: 22px; + + color: #8c8c8c; + + margin: 0; +} + +#container a { + text-decoration: none; +} \ No newline at end of file diff --git a/src/app/explore-container/explore-container.component.spec.ts b/src/app/explore-container/explore-container.component.spec.ts new file mode 100644 index 0000000..77e2dd2 --- /dev/null +++ b/src/app/explore-container/explore-container.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { ExploreContainerComponent } from './explore-container.component'; + +describe('ExploreContainerComponent', () => { + let component: ExploreContainerComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ ExploreContainerComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(ExploreContainerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/explore-container/explore-container.component.ts b/src/app/explore-container/explore-container.component.ts new file mode 100644 index 0000000..60554cb --- /dev/null +++ b/src/app/explore-container/explore-container.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit, Input } from '@angular/core'; + +@Component({ + selector: 'app-explore-container', + templateUrl: './explore-container.component.html', + styleUrls: ['./explore-container.component.scss'], +}) +export class ExploreContainerComponent implements OnInit { + @Input() name: string; + + constructor() { } + + ngOnInit() {} + +} diff --git a/src/app/explore-container/explore-container.module.ts b/src/app/explore-container/explore-container.module.ts new file mode 100644 index 0000000..4376296 --- /dev/null +++ b/src/app/explore-container/explore-container.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { ExploreContainerComponent } from './explore-container.component'; + +@NgModule({ + imports: [ CommonModule, FormsModule, IonicModule], + declarations: [ExploreContainerComponent], + exports: [ExploreContainerComponent] +}) +export class ExploreContainerComponentModule {} diff --git a/src/app/tab1/tab1-routing.module.ts b/src/app/tab1/tab1-routing.module.ts new file mode 100644 index 0000000..8c1cf5b --- /dev/null +++ b/src/app/tab1/tab1-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { Tab1Page } from './tab1.page'; + +const routes: Routes = [ + { + path: '', + component: Tab1Page, + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class Tab1PageRoutingModule {} diff --git a/src/app/tab1/tab1.module.ts b/src/app/tab1/tab1.module.ts new file mode 100644 index 0000000..135eeae --- /dev/null +++ b/src/app/tab1/tab1.module.ts @@ -0,0 +1,20 @@ +import { IonicModule } from '@ionic/angular'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { Tab1Page } from './tab1.page'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab1PageRoutingModule } from './tab1-routing.module'; + +@NgModule({ + imports: [ + IonicModule, + CommonModule, + FormsModule, + ExploreContainerComponentModule, + Tab1PageRoutingModule + ], + declarations: [Tab1Page] +}) +export class Tab1PageModule {} diff --git a/src/app/tab1/tab1.page.html b/src/app/tab1/tab1.page.html new file mode 100644 index 0000000..22e11e4 --- /dev/null +++ b/src/app/tab1/tab1.page.html @@ -0,0 +1,17 @@ + + + + Tab 1 + + + + + + + + Tab 1 + + + + + diff --git a/src/app/tab1/tab1.page.scss b/src/app/tab1/tab1.page.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/tab1/tab1.page.spec.ts b/src/app/tab1/tab1.page.spec.ts new file mode 100644 index 0000000..1491a8d --- /dev/null +++ b/src/app/tab1/tab1.page.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab1Page } from './tab1.page'; + +describe('Tab1Page', () => { + let component: Tab1Page; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [Tab1Page], + imports: [IonicModule.forRoot(), ExploreContainerComponentModule] + }).compileComponents(); + + fixture = TestBed.createComponent(Tab1Page); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/tab1/tab1.page.ts b/src/app/tab1/tab1.page.ts new file mode 100644 index 0000000..3deefc3 --- /dev/null +++ b/src/app/tab1/tab1.page.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-tab1', + templateUrl: 'tab1.page.html', + styleUrls: ['tab1.page.scss'] +}) +export class Tab1Page { + + constructor() {} + +} diff --git a/src/app/tab2/tab2-routing.module.ts b/src/app/tab2/tab2-routing.module.ts new file mode 100644 index 0000000..e96ec09 --- /dev/null +++ b/src/app/tab2/tab2-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { Tab2Page } from './tab2.page'; + +const routes: Routes = [ + { + path: '', + component: Tab2Page, + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class Tab2PageRoutingModule {} diff --git a/src/app/tab2/tab2.module.ts b/src/app/tab2/tab2.module.ts new file mode 100644 index 0000000..153d07f --- /dev/null +++ b/src/app/tab2/tab2.module.ts @@ -0,0 +1,21 @@ +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { Tab2Page } from './tab2.page'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab2PageRoutingModule } from './tab2-routing.module'; + +@NgModule({ + imports: [ + IonicModule, + CommonModule, + FormsModule, + ExploreContainerComponentModule, + Tab2PageRoutingModule + ], + declarations: [Tab2Page] +}) +export class Tab2PageModule {} diff --git a/src/app/tab2/tab2.page.html b/src/app/tab2/tab2.page.html new file mode 100644 index 0000000..38b153e --- /dev/null +++ b/src/app/tab2/tab2.page.html @@ -0,0 +1,17 @@ + + + + Tab 2 + + + + + + + + Tab 2 + + + + + diff --git a/src/app/tab2/tab2.page.scss b/src/app/tab2/tab2.page.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/tab2/tab2.page.spec.ts b/src/app/tab2/tab2.page.spec.ts new file mode 100644 index 0000000..9d6e342 --- /dev/null +++ b/src/app/tab2/tab2.page.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab2Page } from './tab2.page'; + +describe('Tab2Page', () => { + let component: Tab2Page; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [Tab2Page], + imports: [IonicModule.forRoot(), ExploreContainerComponentModule] + }).compileComponents(); + + fixture = TestBed.createComponent(Tab2Page); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/tab2/tab2.page.ts b/src/app/tab2/tab2.page.ts new file mode 100644 index 0000000..e14cad4 --- /dev/null +++ b/src/app/tab2/tab2.page.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-tab2', + templateUrl: 'tab2.page.html', + styleUrls: ['tab2.page.scss'] +}) +export class Tab2Page { + + constructor() {} + +} diff --git a/src/app/tab3/tab3-routing.module.ts b/src/app/tab3/tab3-routing.module.ts new file mode 100644 index 0000000..5d6abde --- /dev/null +++ b/src/app/tab3/tab3-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { Tab3Page } from './tab3.page'; + +const routes: Routes = [ + { + path: '', + component: Tab3Page, + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class Tab3PageRoutingModule {} diff --git a/src/app/tab3/tab3.module.ts b/src/app/tab3/tab3.module.ts new file mode 100644 index 0000000..c45283d --- /dev/null +++ b/src/app/tab3/tab3.module.ts @@ -0,0 +1,22 @@ +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { Tab3Page } from './tab3.page'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab3PageRoutingModule } from './tab3-routing.module'; + +@NgModule({ + imports: [ + IonicModule, + CommonModule, + FormsModule, + ExploreContainerComponentModule, + RouterModule.forChild([{ path: '', component: Tab3Page }]), + Tab3PageRoutingModule, + ], + declarations: [Tab3Page] +}) +export class Tab3PageModule {} diff --git a/src/app/tab3/tab3.page.html b/src/app/tab3/tab3.page.html new file mode 100644 index 0000000..222333d --- /dev/null +++ b/src/app/tab3/tab3.page.html @@ -0,0 +1,17 @@ + + + + Tab 3 + + + + + + + + Tab 3 + + + + + diff --git a/src/app/tab3/tab3.page.scss b/src/app/tab3/tab3.page.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/tab3/tab3.page.spec.ts b/src/app/tab3/tab3.page.spec.ts new file mode 100644 index 0000000..228ae81 --- /dev/null +++ b/src/app/tab3/tab3.page.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; +import { ExploreContainerComponentModule } from '../explore-container/explore-container.module'; + +import { Tab3Page } from './tab3.page'; + +describe('Tab3Page', () => { + let component: Tab3Page; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [Tab3Page], + imports: [IonicModule.forRoot(), ExploreContainerComponentModule] + }).compileComponents(); + + fixture = TestBed.createComponent(Tab3Page); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/tab3/tab3.page.ts b/src/app/tab3/tab3.page.ts new file mode 100644 index 0000000..9ed0dae --- /dev/null +++ b/src/app/tab3/tab3.page.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-tab3', + templateUrl: 'tab3.page.html', + styleUrls: ['tab3.page.scss'] +}) +export class Tab3Page { + + constructor() {} + +} diff --git a/src/app/tabs/tabs-routing.module.ts b/src/app/tabs/tabs-routing.module.ts new file mode 100644 index 0000000..770e87e --- /dev/null +++ b/src/app/tabs/tabs-routing.module.ts @@ -0,0 +1,39 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { TabsPage } from './tabs.page'; + +const routes: Routes = [ + { + path: 'tabs', + component: TabsPage, + children: [ + { + path: 'tab1', + loadChildren: () => import('../tab1/tab1.module').then(m => m.Tab1PageModule) + }, + { + path: 'tab2', + loadChildren: () => import('../tab2/tab2.module').then(m => m.Tab2PageModule) + }, + { + path: 'tab3', + loadChildren: () => import('../tab3/tab3.module').then(m => m.Tab3PageModule) + }, + { + path: '', + redirectTo: '/tabs/tab1', + pathMatch: 'full' + } + ] + }, + { + path: '', + redirectTo: '/tabs/tab1', + pathMatch: 'full' + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], +}) +export class TabsPageRoutingModule {} diff --git a/src/app/tabs/tabs.module.ts b/src/app/tabs/tabs.module.ts new file mode 100644 index 0000000..de4184a --- /dev/null +++ b/src/app/tabs/tabs.module.ts @@ -0,0 +1,19 @@ +import { IonicModule } from '@ionic/angular'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { TabsPageRoutingModule } from './tabs-routing.module'; + +import { TabsPage } from './tabs.page'; + +@NgModule({ + imports: [ + IonicModule, + CommonModule, + FormsModule, + TabsPageRoutingModule + ], + declarations: [TabsPage] +}) +export class TabsPageModule {} diff --git a/src/app/tabs/tabs.page.html b/src/app/tabs/tabs.page.html new file mode 100644 index 0000000..0995c40 --- /dev/null +++ b/src/app/tabs/tabs.page.html @@ -0,0 +1,20 @@ + + + + + + Tab 1 + + + + + Tab 2 + + + + + Tab 3 + + + + diff --git a/src/app/tabs/tabs.page.scss b/src/app/tabs/tabs.page.scss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/app/tabs/tabs.page.scss @@ -0,0 +1 @@ + diff --git a/src/app/tabs/tabs.page.spec.ts b/src/app/tabs/tabs.page.spec.ts new file mode 100644 index 0000000..703f220 --- /dev/null +++ b/src/app/tabs/tabs.page.spec.ts @@ -0,0 +1,26 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; + +import { TabsPage } from './tabs.page'; + +describe('TabsPage', () => { + let component: TabsPage; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [TabsPage], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TabsPage); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/tabs/tabs.page.ts b/src/app/tabs/tabs.page.ts new file mode 100644 index 0000000..7d64f97 --- /dev/null +++ b/src/app/tabs/tabs.page.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-tabs', + templateUrl: 'tabs.page.html', + styleUrls: ['tabs.page.scss'] +}) +export class TabsPage { + + constructor() {} + +} diff --git a/src/assets/icon/favicon.png b/src/assets/icon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..51888a7bbdb59f04c29c548523eb2638c1c954f5 GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!x&nMcT-^(N+`Ik{1{5}NM-k9f zx+Ot=!3-}y{#<)Uok@}X^0T)Mjw~(h@l#Ir^NC7r=_#0-8E$a3RKVL~nc3p~*UxA# z4bjg_XJBBO<>}%W5^;EK_{&+V40u?Vtzk_Oy;*YMVqw~ozwz&rPG6d~>D#mR`SK=; zww9K@s-5|}%Dy=+ak|}>#qwwKGH>ZO4~|`P_r2LJy1RYqyXB`=?Mw?@F8Z!h{rcpz z^y94Mdt1KFIr?nR|NE2g?N}2vO^d(4;=OB>WP0Plul!REN;cgwUAJuA?C`^98NGCJ zuf=eS_OHmETd)0azdLJ6Z^FIm6*YNHw|4%lGf`stp1;dK$1sNYdj7ec{*dYEN(RM7|LFZWoy#R9733Kz`kee` zcsH&1+JCz2|7qRT%bgpNUdZ3E%i6T)I?vY6{p)ga_qlB<;GAPn(!{OF;x_wm_K%n( zW67=BbK}Hx+Mo2yW_)0K?|;#s9f!Uw=S;9NQ)S^>UOs1+lefL)nQKa6oJzg9f7^uT zr^QQJHL|;hJ!n29P`>r{pI$??E8ll+Vp%D3sqgGAQ?16Ir>}307i!n%dGB~BKleRm zV`}#;lUe7&`Rm%PqCLs%HOEe${KnWk%jlG>GM}cUf9>%Jt~^m(q1U%2$4$<)xHgTq zd0EM;Wjbazr!IcCcJ{`1i$kvS+;+RTmT^vJdf^@OKlARE7bo`3-BEDmtJB75>uhqr zB>Z2>{qec~lUw13i#jzoi~HY diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..7b4f817 --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/src/global.scss b/src/global.scss new file mode 100644 index 0000000..d854de8 --- /dev/null +++ b/src/global.scss @@ -0,0 +1,26 @@ +/* + * App Global CSS + * ---------------------------------------------------------------------------- + * Put style rules here that you want to apply globally. These styles are for + * the entire app and not just one component. Additionally, this file can be + * used as an entry point to import other CSS/Sass files to be included in the + * output CSS. + * For more information on global stylesheets, visit the documentation: + * https://ionicframework.com/docs/layout/global-stylesheets + */ + +/* Core CSS required for Ionic components to work properly */ +@import "~@ionic/angular/css/core.css"; + +/* Basic CSS for apps built with Ionic */ +@import "~@ionic/angular/css/normalize.css"; +@import "~@ionic/angular/css/structure.css"; +@import "~@ionic/angular/css/typography.css"; +@import '~@ionic/angular/css/display.css'; + +/* Optional CSS utils that can be commented out */ +@import "~@ionic/angular/css/padding.css"; +@import "~@ionic/angular/css/float-elements.css"; +@import "~@ionic/angular/css/text-alignment.css"; +@import "~@ionic/angular/css/text-transformation.css"; +@import "~@ionic/angular/css/flex-utils.css"; diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..3b0aae1 --- /dev/null +++ b/src/index.html @@ -0,0 +1,26 @@ + + + + + + Ionic App + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..91ec6da --- /dev/null +++ b/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.log(err)); diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 0000000..ba409f9 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,65 @@ +/** + * 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 + */ + +/** IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * 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 + * 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; + * + */ + +import './zone-flags'; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 0000000..50193eb --- /dev/null +++ b/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-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): { + keys(): string[]; + (id: string): T; + }; +}; + +// 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().map(context); diff --git a/src/theme/variables.scss b/src/theme/variables.scss new file mode 100644 index 0000000..2a79309 --- /dev/null +++ b/src/theme/variables.scss @@ -0,0 +1,236 @@ +// Ionic Variables and Theming. For more info, please see: +// http://ionicframework.com/docs/theming/ + +/** Ionic CSS Variables **/ +:root { + /** primary **/ + --ion-color-primary: #3880FF; + --ion-color-primary-rgb: 56, 128, 255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #3171e0; + --ion-color-primary-tint: #4c8dff; + + /** secondary **/ + --ion-color-secondary: #3dc2ff; + --ion-color-secondary-rgb: 61, 194, 255; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #36abe0; + --ion-color-secondary-tint: #50c8ff; + + /** tertiary **/ + --ion-color-tertiary: #5260ff; + --ion-color-tertiary-rgb: 82, 96, 255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #4854e0; + --ion-color-tertiary-tint: #6370ff; + + /** success **/ + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45, 211, 111; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + /** warning **/ + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255, 196, 9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0, 0, 0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + /** danger **/ + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235, 68, 90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + /** dark **/ + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 36, 40; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + /** medium **/ + --ion-color-medium: #92949c; + --ion-color-medium-rgb: 146, 148, 156; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #808289; + --ion-color-medium-tint: #9d9fa6; + + /** light **/ + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 245, 248; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; +} + +@media (prefers-color-scheme: dark) { + /* + * Dark Colors + * ------------------------------------------- + */ + + body { + --ion-color-primary: #afccff; + --ion-color-primary-rgb: 175, 204, 255; + --ion-color-primary-contrast: #000000; + --ion-color-primary-contrast-rgb: 0, 0, 0; + --ion-color-primary-shade: #9ab4e0; + --ion-color-primary-tint: #b7d1ff; + + --ion-color-secondary: #50c8ff; + --ion-color-secondary-rgb: 80,200,255; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255,255,255; + --ion-color-secondary-shade: #46b0e0; + --ion-color-secondary-tint: #62ceff; + + --ion-color-tertiary: #6a64ff; + --ion-color-tertiary-rgb: 106,100,255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255,255,255; + --ion-color-tertiary-shade: #5d58e0; + --ion-color-tertiary-tint: #7974ff; + + --ion-color-success: #2fdf75; + --ion-color-success-rgb: 47,223,117; + --ion-color-success-contrast: #000000; + --ion-color-success-contrast-rgb: 0,0,0; + --ion-color-success-shade: #29c467; + --ion-color-success-tint: #44e283; + + --ion-color-warning: #ffd534; + --ion-color-warning-rgb: 255,213,52; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0,0,0; + --ion-color-warning-shade: #e0bb2e; + --ion-color-warning-tint: #ffd948; + + --ion-color-danger: #ff4961; + --ion-color-danger-rgb: 255,73,97; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-shade: #e04055; + --ion-color-danger-tint: #ff5b71; + + --ion-color-dark: #f4f5f8; + --ion-color-dark-rgb: 244,245,248; + --ion-color-dark-contrast: #000000; + --ion-color-dark-contrast-rgb: 0,0,0; + --ion-color-dark-shade: #d7d8da; + --ion-color-dark-tint: #f5f6f9; + + --ion-color-medium: #989aa2; + --ion-color-medium-rgb: 152,154,162; + --ion-color-medium-contrast: #000000; + --ion-color-medium-contrast-rgb: 0,0,0; + --ion-color-medium-shade: #86888f; + --ion-color-medium-tint: #a2a4ab; + + --ion-color-light: #222428; + --ion-color-light-rgb: 34,36,40; + --ion-color-light-contrast: #ffffff; + --ion-color-light-contrast-rgb: 255,255,255; + --ion-color-light-shade: #1e2023; + --ion-color-light-tint: #383a3e; + } + + /* + * iOS Dark Theme + * ------------------------------------------- + */ + + .ios body { + --ion-background-color: #000000; + --ion-background-color-rgb: 0,0,0; + + --ion-text-color: #ffffff; + --ion-text-color-rgb: 255,255,255; + + --ion-color-step-50: #0d0d0d; + --ion-color-step-100: #1a1a1a; + --ion-color-step-150: #262626; + --ion-color-step-200: #333333; + --ion-color-step-250: #404040; + --ion-color-step-300: #4d4d4d; + --ion-color-step-350: #595959; + --ion-color-step-400: #666666; + --ion-color-step-450: #737373; + --ion-color-step-500: #808080; + --ion-color-step-550: #8c8c8c; + --ion-color-step-600: #999999; + --ion-color-step-650: #a6a6a6; + --ion-color-step-700: #b3b3b3; + --ion-color-step-750: #bfbfbf; + --ion-color-step-800: #cccccc; + --ion-color-step-850: #d9d9d9; + --ion-color-step-900: #e6e6e6; + --ion-color-step-950: #f2f2f2; + + --ion-item-background: #000000; + + --ion-card-background: #1c1c1d; + } + + .ios ion-modal { + --ion-background-color: var(--ion-color-step-100); + --ion-toolbar-background: var(--ion-color-step-150); + --ion-toolbar-border-color: var(--ion-color-step-250); + } + + + /* + * Material Design Dark Theme + * ------------------------------------------- + */ + + .md body { + --ion-background-color: #121212; + --ion-background-color-rgb: 18,18,18; + + --ion-text-color: #ffffff; + --ion-text-color-rgb: 255,255,255; + + --ion-border-color: #222222; + + --ion-color-step-50: #1e1e1e; + --ion-color-step-100: #2a2a2a; + --ion-color-step-150: #363636; + --ion-color-step-200: #414141; + --ion-color-step-250: #4d4d4d; + --ion-color-step-300: #595959; + --ion-color-step-350: #656565; + --ion-color-step-400: #717171; + --ion-color-step-450: #7d7d7d; + --ion-color-step-500: #898989; + --ion-color-step-550: #949494; + --ion-color-step-600: #a0a0a0; + --ion-color-step-650: #acacac; + --ion-color-step-700: #b8b8b8; + --ion-color-step-750: #c4c4c4; + --ion-color-step-800: #d0d0d0; + --ion-color-step-850: #dbdbdb; + --ion-color-step-900: #e7e7e7; + --ion-color-step-950: #f3f3f3; + + --ion-item-background: #1e1e1e; + + --ion-toolbar-background: #1f1f1f; + + --ion-tab-bar-background: #1f1f1f; + + --ion-card-background: #1e1e1e; + } +} diff --git a/src/zone-flags.ts b/src/zone-flags.ts new file mode 100644 index 0000000..c84245f --- /dev/null +++ b/src/zone-flags.ts @@ -0,0 +1,6 @@ +/** + * Prevents Angular change detection from + * running with certain Web Component callbacks + */ +// eslint-disable-next-line no-underscore-dangle +(window as any).__Zone_disable_customElements = true; diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/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" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..5acda4a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "module": "es2020", + "lib": ["es2018", "dom"] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/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" + ] +}