commit
13391ab4a6
63 changed files with 18001 additions and 0 deletions
@ -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. |
@ -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 |
@ -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 |
@ -0,0 +1,179 @@
|
||||
{ |
||||
"$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": [] |
||||
}, |
||||
"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-devkit/build-angular:tslint", |
||||
"options": { |
||||
"tsConfig": [ |
||||
"tsconfig.app.json", |
||||
"tsconfig.spec.json", |
||||
"e2e/tsconfig.json" |
||||
], |
||||
"exclude": ["**/node_modules/**"] |
||||
} |
||||
}, |
||||
"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" |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,13 @@
|
||||
{ |
||||
"appId": "io.ionic.starter", |
||||
"appName": "appli-Manon", |
||||
"bundledWebRuntime": false, |
||||
"npmClient": "npm", |
||||
"webDir": "www", |
||||
"plugins": { |
||||
"SplashScreen": { |
||||
"launchShowDuration": 0 |
||||
} |
||||
}, |
||||
"cordova": {} |
||||
} |
@ -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 |
||||
} |
||||
})); |
||||
} |
||||
}; |
@ -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'); |
||||
}); |
||||
}); |
@ -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(); |
||||
} |
||||
} |
@ -0,0 +1,12 @@
|
||||
{ |
||||
"extends": "../tsconfig.json", |
||||
"compilerOptions": { |
||||
"outDir": "../out-tsc/e2e", |
||||
"module": "commonjs", |
||||
"target": "es2018", |
||||
"types": [ |
||||
"jasmine", |
||||
"node" |
||||
] |
||||
} |
||||
} |
@ -0,0 +1,7 @@
|
||||
{ |
||||
"name": "appli-Manon", |
||||
"integrations": { |
||||
"capacitor": {} |
||||
}, |
||||
"type": "angular" |
||||
} |
@ -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 |
||||
}); |
||||
}; |
@ -0,0 +1,55 @@
|
||||
{ |
||||
"name": "appli-Manon", |
||||
"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": "~11.2.0", |
||||
"@angular/core": "~11.2.0", |
||||
"@angular/forms": "~11.2.0", |
||||
"@angular/platform-browser": "~11.2.0", |
||||
"@angular/platform-browser-dynamic": "~11.2.0", |
||||
"@angular/router": "~11.2.0", |
||||
"@capacitor/core": "2.4.7", |
||||
"@ionic/angular": "^5.5.2", |
||||
"@ionic/lab": "^3.2.10", |
||||
"rxjs": "~6.6.0", |
||||
"tslib": "^2.0.0", |
||||
"zone.js": "~0.10.2" |
||||
}, |
||||
"devDependencies": { |
||||
"@angular-devkit/build-angular": "~0.1102.4", |
||||
"@angular/cli": "~11.2.4", |
||||
"@angular/compiler": "~11.2.0", |
||||
"@angular/compiler-cli": "~11.2.0", |
||||
"@angular/language-service": "~11.2.0", |
||||
"@capacitor/cli": "2.4.7", |
||||
"@ionic/angular-toolkit": "^3.1.1", |
||||
"@types/jasmine": "~3.6.0", |
||||
"@types/jasminewd2": "~2.0.3", |
||||
"@types/node": "^12.11.1", |
||||
"codelyzer": "^6.0.0", |
||||
"jasmine-core": "~3.6.0", |
||||
"jasmine-spec-reporter": "~5.0.0", |
||||
"karma": "~5.2.0", |
||||
"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", |
||||
"tslint": "~6.1.0", |
||||
"typescript": "~4.0.2" |
||||
}, |
||||
"description": "An Ionic project" |
||||
} |
@ -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 {} |
@ -0,0 +1,3 @@
|
||||
<ion-app> |
||||
<ion-router-outlet></ion-router-outlet> |
||||
</ion-app> |
@ -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!
|
||||
|
||||
}); |
@ -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() {} |
||||
} |
@ -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 {} |
@ -0,0 +1,4 @@
|
||||
<div id="container"> |
||||
<strong>{{ name }}</strong> |
||||
<p>Explore <a target="_blank" rel="noopener noreferrer" href="https://ionicframework.com/docs/components">UI Components</a></p> |
||||
</div> |
@ -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; |
||||
} |
@ -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<ExploreContainerComponent>; |
||||
|
||||
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(); |
||||
}); |
||||
}); |
@ -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() {} |
||||
|
||||
} |
@ -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 {} |
@ -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 {} |
@ -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 {} |
@ -0,0 +1,108 @@
|
||||
<ion-header > |
||||
<ion-toolbar color="tertiary"> |
||||
<ion-title> |
||||
Accueil |
||||
</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<ion-item> |
||||
<h4><b>Mes prioritรฉs</b></h4> |
||||
<ion-icon name="checkmark-circle" slot="start"></ion-icon> |
||||
<ion-button slot="end" fill="clear" size="large" color="tertiary"> |
||||
<ion-icon name="add-circle" slot="icon-only"></ion-icon> |
||||
</ion-button> |
||||
</ion-item> |
||||
|
||||
<ion-list> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>{{priorites1}}</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>{{priorite2}}</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
</ion-list> |
||||
|
||||
<ion-item> |
||||
<h4><b>Mes buts</b></h4> |
||||
<ion-icon name="flame" slot="start"></ion-icon> |
||||
<ion-button slot="end" fill="clear" size="large" color="secondary"> |
||||
<ion-icon name="add-circle" slot="icon-only"></ion-icon> |
||||
</ion-button> |
||||
</ion-item> |
||||
<ion-list> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>Premier but</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>Deuxiรจme but</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
</ion-list> |
||||
|
||||
<ion-item> |
||||
<h4><b>Mes citations</b></h4> |
||||
<ion-icon name="file-tray-stacked-outline" slot="start"></ion-icon> |
||||
<ion-button slot="end" fill="clear" size="large" color="primary"> |
||||
<ion-icon name="add-circle" slot="icon-only"></ion-icon> |
||||
</ion-button> |
||||
</ion-item> |
||||
<ion-list> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>Premiere citation</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
<ion-item-sliding> |
||||
<ion-item> |
||||
<ion-label>Deuxiรจme citation</ion-label> |
||||
</ion-item> |
||||
<ion-item-options side="end"> |
||||
<ion-item-options>Supprimer</ion-item-options> |
||||
</ion-item-options> |
||||
</ion-item-sliding> |
||||
</ion-list> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <ion-content [fullscreen]="true"> |
||||
<ion-header collapse="condense"> |
||||
<ion-toolbar> |
||||
<ion-title size="large">Tab 1</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<app-explore-container name="Tab 1 page"></app-explore-container> |
||||
</ion-content> --> |
@ -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<Tab1Page>; |
||||
|
||||
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(); |
||||
}); |
||||
}); |
@ -0,0 +1,14 @@
|
||||
import { Component } from '@angular/core'; |
||||
|
||||
@Component({ |
||||
selector: 'app-tab1', |
||||
templateUrl: 'tab1.page.html', |
||||
styleUrls: ['tab1.page.scss'] |
||||
}) |
||||
export class Tab1Page { |
||||
|
||||
constructor() {} |
||||
priorites1="ne pas oublier son masque" |
||||
priorite2="avoir mon bac" |
||||
|
||||
} |
@ -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 {} |
@ -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 {} |
@ -0,0 +1,17 @@
|
||||
<ion-header [translucent]="true"> |
||||
<ion-toolbar> |
||||
<ion-title> |
||||
tab 2 |
||||
</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<ion-content [fullscreen]="true"> |
||||
<ion-header collapse="condense"> |
||||
<ion-toolbar> |
||||
<ion-title size="large">Tab 2</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<app-explore-container name="Tab 2 page"></app-explore-container> |
||||
</ion-content> |
@ -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<Tab2Page>; |
||||
|
||||
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(); |
||||
}); |
||||
}); |
@ -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() {} |
||||
|
||||
} |
@ -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 {} |
@ -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 {} |
@ -0,0 +1,17 @@
|
||||
<ion-header [translucent]="true"> |
||||
<ion-toolbar> |
||||
<ion-title> |
||||
Tab 3 |
||||
</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<ion-content [fullscreen]="true"> |
||||
<ion-header collapse="condense"> |
||||
<ion-toolbar> |
||||
<ion-title size="large">Tab 3</ion-title> |
||||
</ion-toolbar> |
||||
</ion-header> |
||||
|
||||
<app-explore-container name="Tab 3 page"></app-explore-container> |
||||
</ion-content> |
@ -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<Tab3Page>; |
||||
|
||||
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(); |
||||
}); |
||||
}); |
@ -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() {} |
||||
|
||||
} |
@ -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 {} |
@ -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 {} |
@ -0,0 +1,18 @@
|
||||
<ion-tabs> |
||||
|
||||
<ion-tab-bar slot="bottom" color="primary"> |
||||
<ion-tab-button tab="tab1"> |
||||
<ion-icon name="sunny"></ion-icon> |
||||
<ion-label>Acceuil</ion-label> |
||||
</ion-tab-button> |
||||
|
||||
<ion-tab-button tab="tab2"> |
||||
<ion-icon name="settings"></ion-icon> |
||||
<ion-label>Paramรจtres</ion-label> |
||||
</ion-tab-button> |
||||
|
||||
|
||||
</ion-tab-bar> |
||||
|
||||
</ion-tabs> |
||||
|
@ -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<TabsPage>; |
||||
|
||||
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(); |
||||
}); |
||||
}); |
@ -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() {} |
||||
|
||||
} |
After Width: | Height: | Size: 930 B |
@ -0,0 +1,3 @@
|
||||
export const environment = { |
||||
production: true |
||||
}; |
@ -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.
|
@ -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"; |
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html> |
||||
<html lang="en"> |
||||
|
||||
<head> |
||||
<meta charset="utf-8" /> |
||||
<title>Ionic App</title> |
||||
|
||||
<base href="/" /> |
||||
|
||||
<meta name="color-scheme" content="light dark" /> |
||||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> |
||||
<meta name="format-detection" content="telephone=no" /> |
||||
<meta name="msapplication-tap-highlight" content="no" /> |
||||
|
||||
<link rel="icon" type="image/png" href="assets/icon/favicon.png" /> |
||||
|
||||
<!-- add to homescreen for ios --> |
||||
<meta name="apple-mobile-web-app-capable" content="yes" /> |
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" /> |
||||
</head> |
||||
|
||||
<body> |
||||
<app-root></app-root> |
||||
</body> |
||||
|
||||
</html> |
@ -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)); |
@ -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 |
||||
*/ |
@ -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[]; |
||||
<T>(id: string): T; |
||||
}; |
||||
}; |
||||
|
||||
// First, initialize the Angular testing environment.
|
||||
getTestBed().initTestEnvironment( |
||||
BrowserDynamicTestingModule, |