From d96ed6a1bfe65d50b91c17fd3ddff09b818d4a8a Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Wed, 5 Jul 2017 11:42:35 +0200 Subject: [PATCH] =?UTF-8?q?int=C3=A9gration=20de=20la=20lib=20jalhyd=20et?= =?UTF-8?q?=201=C3=A8re=20version=20d'un=20composant=20de=20saisie=20d'un?= =?UTF-8?q?=20param=C3=A8tre=20hydraulique?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 9 ++--- src/app/app.component.ts | 12 ++++-- src/app/app.module.ts | 18 ++++++--- .../param-input/param-input.component.html | 9 +++++ src/app/param-input/param-input.component.js | 35 ++++++++++++++++ .../param-input/param-input.component.js.map | 1 + src/app/param-input/param-input.component.ts | 25 ++++++++++++ src/app/param-input/param.service.js | 21 ++++++++++ src/app/param-input/param.service.js.map | 1 + src/app/param-service/param.service.js | 19 +++++++++ src/app/param-service/param.service.js.map | 1 + src/app/param-service/param.service.ts | 19 +++++++++ src/index.html | 40 ++++++++++--------- src/systemjs.config.js | 8 ++-- 14 files changed, 183 insertions(+), 35 deletions(-) create mode 100644 src/app/param-input/param-input.component.html create mode 100644 src/app/param-input/param-input.component.js create mode 100644 src/app/param-input/param-input.component.js.map create mode 100644 src/app/param-input/param-input.component.ts create mode 100644 src/app/param-input/param.service.js create mode 100644 src/app/param-input/param.service.js.map create mode 100644 src/app/param-service/param.service.js create mode 100644 src/app/param-service/param.service.js.map create mode 100644 src/app/param-service/param.service.ts diff --git a/package.json b/package.json index df18ef0e2..bac0239c9 100644 --- a/package.json +++ b/package.json @@ -29,21 +29,21 @@ "@angular/core": "~4.0.0", "@angular/forms": "~4.0.0", "@angular/http": "~4.0.0", + "@angular/material": "^2.0.0-beta.7", "@angular/platform-browser": "~4.0.0", "@angular/platform-browser-dynamic": "~4.0.0", "@angular/router": "~4.0.0", - "angular-in-memory-web-api": "~0.3.0", "systemjs": "0.19.40", "core-js": "^2.4.1", "rxjs": "5.0.1", - "zone.js": "^0.8.4" + "zone.js": "^0.8.4", + "jalhyd": "^1.0.0" }, "devDependencies": { "concurrently": "^3.2.0", "lite-server": "^2.2.2", "typescript": "~2.1.0", - "canonical-path": "0.0.2", "tslint": "^3.15.1", "lodash": "^4.16.4", @@ -55,9 +55,8 @@ "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~4.0.14", "rimraf": "^2.5.4", - "@types/node": "^6.0.46", "@types/jasmine": "2.5.36" }, "repository": {} -} +} \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 7fb173cd0..24c4b6e25 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,7 +1,13 @@ import { Component } from '@angular/core'; @Component({ - selector: 'my-app', - template: `<h1>Hello {{name}}</h1>`, + selector: 'nghyd-app', + template: ` + <h1>{{title}}</h1> + <param-input symbol="Q"></param-input> + <param-input symbol="Ks"></param-input> + `, }) -export class AppComponent { name = 'Angular'; } +export class AppComponent { + title = "Calculette hydro"; +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 357b003a5..74489f34d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,11 +1,19 @@ -import { NgModule } from '@angular/core'; +import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; +import { FormsModule } from '@angular/forms'; // <-- NgModel lives here -import { AppComponent } from './app.component'; +import { AppComponent } from './app.component'; +import { ParamInputComponent } from './param-input/param-input.component'; @NgModule({ - imports: [ BrowserModule ], - declarations: [ AppComponent ], - bootstrap: [ AppComponent ] + imports: [ + BrowserModule, + FormsModule // <-- import the FormsModule before binding with [(ngModel)] + ], + declarations: [ + AppComponent, + ParamInputComponent + ], + bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/param-input/param-input.component.html b/src/app/param-input/param-input.component.html new file mode 100644 index 000000000..5bc39a870 --- /dev/null +++ b/src/app/param-input/param-input.component.html @@ -0,0 +1,9 @@ +<div> + <label>{{_paramDef.symbol}}</label> + <input [(ngModel)]="_paramDef.v" /> +</div> +<!-- +<md-input-container> + <input mdInput placeholder="{{_paramDef.symbol}}" value="{{_paramDef.v}}"> +</md-input-container> +--> \ No newline at end of file diff --git a/src/app/param-input/param-input.component.js b/src/app/param-input/param-input.component.js new file mode 100644 index 000000000..e3ee49c4f --- /dev/null +++ b/src/app/param-input/param-input.component.js @@ -0,0 +1,35 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var core_1 = require("@angular/core"); +var param_service_1 = require("../param-service/param.service"); +var ParamInputComponent = (function () { + function ParamInputComponent(paramService) { + this.paramService = paramService; + } + ParamInputComponent.prototype.ngOnInit = function () { + this._paramDef = this.paramService.getParameter(this._paramSymbol); + }; + return ParamInputComponent; +}()); +__decorate([ + core_1.Input('symbol'), + __metadata("design:type", String) +], ParamInputComponent.prototype, "_paramSymbol", void 0); +ParamInputComponent = __decorate([ + core_1.Component({ + selector: "param-input[symbol]", + templateUrl: "./param-input.component.html", + providers: [param_service_1.ParamService] + }), + __metadata("design:paramtypes", [param_service_1.ParamService]) +], ParamInputComponent); +exports.ParamInputComponent = ParamInputComponent; +//# sourceMappingURL=param-input.component.js.map \ No newline at end of file diff --git a/src/app/param-input/param-input.component.js.map b/src/app/param-input/param-input.component.js.map new file mode 100644 index 000000000..ad3bc7e44 --- /dev/null +++ b/src/app/param-input/param-input.component.js.map @@ -0,0 +1 @@ +{"version":3,"file":"param-input.component.js","sourceRoot":"","sources":["param-input.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,sCAAyD;AAIzD,gEAA8D;AAO9D,IAAa,mBAAmB;IAQ5B,6BAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAI,CAAC;IAEnD,sCAAQ,GAAR;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvE,CAAC;IACL,0BAAC;AAAD,CAAC,AAbD,IAaC;AAToB;IAAhB,YAAK,CAAC,QAAQ,CAAC;;yDAAsB;AAJ7B,mBAAmB;IAL/B,gBAAS,CAAC;QACP,QAAQ,EAAE,qBAAqB;QAC/B,WAAW,EAAE,8BAA8B;QAC3C,SAAS,EAAE,CAAC,4BAAY,CAAC;KAC5B,CAAC;qCASoC,4BAAY;GARrC,mBAAmB,CAa/B;AAbY,kDAAmB"} \ No newline at end of file diff --git a/src/app/param-input/param-input.component.ts b/src/app/param-input/param-input.component.ts new file mode 100644 index 000000000..82205cb05 --- /dev/null +++ b/src/app/param-input/param-input.component.ts @@ -0,0 +1,25 @@ +import { Component, Input, OnInit } from '@angular/core'; + +import { ParamDefinition } from 'jalhyd'; + +import { ParamService } from '../param-service/param.service'; + +@Component({ + selector: "param-input[symbol]", + templateUrl: "./param-input.component.html", + providers: [ParamService] +}) +export class ParamInputComponent implements OnInit { + /** + * Parameter symbol (Q, Ks, B, ...) + */ + @Input('symbol') _paramSymbol: string; + + private _paramDef: ParamDefinition; + + constructor(private paramService: ParamService) { } + + ngOnInit(): void { + this._paramDef = this.paramService.getParameter(this._paramSymbol); + } +} diff --git a/src/app/param-input/param.service.js b/src/app/param-input/param.service.js new file mode 100644 index 000000000..5a04bf621 --- /dev/null +++ b/src/app/param-input/param.service.js @@ -0,0 +1,21 @@ +//import { Injectable } from '@angular/core'; +"use strict"; +var jalhyd_1 = require("jalhyd"); +//@Injectable() +var ParamService = (function () { + function ParamService() { + this._params = [new jalhyd_1.ParamDefinition('Q', jalhyd_1.ParamDomainValue.POS_NULL, 0), + new jalhyd_1.ParamDefinition('Ks', jalhyd_1.ParamDomainValue.POS, 1)]; + } + ParamService.prototype.getParameter = function (s) { + for (var _i = 0, _a = this._params; _i < _a.length; _i++) { + var p = _a[_i]; + if (p.symbol == s) + return p; + } + return undefined; + }; + return ParamService; +}()); +exports.ParamService = ParamService; +//# sourceMappingURL=param.service.js.map \ No newline at end of file diff --git a/src/app/param-input/param.service.js.map b/src/app/param-input/param.service.js.map new file mode 100644 index 000000000..b800abded --- /dev/null +++ b/src/app/param-input/param.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"param.service.js","sourceRoot":"","sources":["param.service.ts"],"names":[],"mappings":"AAAA,6CAA6C;;AAE7C,iCAA2D;AAE3D,eAAe;AACf;IAGI;QACI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,wBAAe,CAAC,GAAG,EAAE,yBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtE,IAAI,wBAAe,CAAC,IAAI,EAAE,yBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,mCAAY,GAAZ,UAAa,CAAS;QAClB,GAAG,CAAC,CAAU,UAAY,EAAZ,KAAA,IAAI,CAAC,OAAO,EAAZ,cAAY,EAAZ,IAAY;YAArB,IAAI,CAAC,SAAA;YACN,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC;SAChB;QAED,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IACL,mBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,oCAAY"} \ No newline at end of file diff --git a/src/app/param-service/param.service.js b/src/app/param-service/param.service.js new file mode 100644 index 000000000..9fc3e112c --- /dev/null +++ b/src/app/param-service/param.service.js @@ -0,0 +1,19 @@ +"use strict"; +var jalhyd_1 = require("jalhyd"); +var ParamService = (function () { + function ParamService() { + this._params = [new jalhyd_1.ParamDefinition('Q', jalhyd_1.ParamDomainValue.POS_NULL, 0), + new jalhyd_1.ParamDefinition('Ks', jalhyd_1.ParamDomainValue.POS, 1)]; + } + ParamService.prototype.getParameter = function (s) { + for (var _i = 0, _a = this._params; _i < _a.length; _i++) { + var p = _a[_i]; + if (p.symbol == s) + return p; + } + return undefined; + }; + return ParamService; +}()); +exports.ParamService = ParamService; +//# sourceMappingURL=param.service.js.map \ No newline at end of file diff --git a/src/app/param-service/param.service.js.map b/src/app/param-service/param.service.js.map new file mode 100644 index 000000000..340aa7ec4 --- /dev/null +++ b/src/app/param-service/param.service.js.map @@ -0,0 +1 @@ +{"version":3,"file":"param.service.js","sourceRoot":"","sources":["param.service.ts"],"names":[],"mappings":";AAAA,iCAA2D;AAE3D;IAGI;QACI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,wBAAe,CAAC,GAAG,EAAE,yBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtE,IAAI,wBAAe,CAAC,IAAI,EAAE,yBAAgB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,mCAAY,GAAZ,UAAa,CAAS;QAClB,GAAG,CAAC,CAAU,UAAY,EAAZ,KAAA,IAAI,CAAC,OAAO,EAAZ,cAAY,EAAZ,IAAY;YAArB,IAAI,CAAC,SAAA;YACN,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC;SAChB;QAED,MAAM,CAAC,SAAS,CAAC;IACrB,CAAC;IACL,mBAAC;AAAD,CAAC,AAhBD,IAgBC;AAhBY,oCAAY"} \ No newline at end of file diff --git a/src/app/param-service/param.service.ts b/src/app/param-service/param.service.ts new file mode 100644 index 000000000..55951a94d --- /dev/null +++ b/src/app/param-service/param.service.ts @@ -0,0 +1,19 @@ +import { ParamDefinition, ParamDomainValue } from 'jalhyd'; + +export class ParamService { + private _params: ParamDefinition[]; + + constructor() { + this._params = [new ParamDefinition('Q', ParamDomainValue.POS_NULL, 0), + new ParamDefinition('Ks', ParamDomainValue.POS, 1)]; + } + + getParameter(s: string): ParamDefinition { + for (let p of this._params) { + if (p.symbol == s) + return p; + } + + return undefined; + } +} diff --git a/src/index.html b/src/index.html index 832743558..b55dcdd59 100644 --- a/src/index.html +++ b/src/index.html @@ -1,25 +1,27 @@ <!DOCTYPE html> <html> - <head> - <title>Angular QuickStart</title> - <base href="/"> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="stylesheet" href="styles.css"> - <!-- Polyfill(s) for older browsers --> - <script src="node_modules/core-js/client/shim.min.js"></script> +<head> + <base href="/"> + <title>NgHyd - Calculette hydro</title> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" href="styles.css"> - <script src="node_modules/zone.js/dist/zone.js"></script> - <script src="node_modules/systemjs/dist/system.src.js"></script> + <!-- Polyfill(s) for older browsers --> + <script src="node_modules/core-js/client/shim.min.js"></script> - <script src="systemjs.config.js"></script> - <script> - System.import('main.js').catch(function(err){ console.error(err); }); - </script> - </head> + <script src="node_modules/zone.js/dist/zone.js"></script> + <script src="node_modules/systemjs/dist/system.src.js"></script> - <body> - <my-app>Loading AppComponent content here ...</my-app> - </body> -</html> + <script src="systemjs.config.js"></script> + <script> + System.import('main.js').catch(function (err) { console.error(err); }); + </script> +</head> + +<body> + <nghyd-app></nghyd-app> +</body> + +</html> \ No newline at end of file diff --git a/src/systemjs.config.js b/src/systemjs.config.js index 129704a37..3e447512b 100644 --- a/src/systemjs.config.js +++ b/src/systemjs.config.js @@ -24,8 +24,9 @@ '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', // other libraries - 'rxjs': 'npm:rxjs', - 'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js' + 'rxjs': 'npm:rxjs', + 'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', + 'jalhyd': 'npm:jalhyd' }, // packages tells the System loader how to load when no filename and/or no extension packages: { @@ -39,7 +40,8 @@ }, rxjs: { defaultExtension: 'js' - } + }, + 'jalhyd': { main: 'build/index.js', defaultExtension: 'js' } } }); })(this); -- GitLab