Commit 847dc945 authored by Mathias Chouet's avatar Mathias Chouet 🍝
Browse files

Fix #353 - merge Formulaire classes

parent 8be6cb96
...@@ -124,6 +124,8 @@ Les tests unitaires dits "end-to-end" ou "e2e" sont réalisés avec Protractor, ...@@ -124,6 +124,8 @@ Les tests unitaires dits "end-to-end" ou "e2e" sont réalisés avec Protractor,
Bien qu'elle soit supposée fonctionner avec d'autres navigateurs, l'exécution des tests n'est garantie qu'avec Chrome / Chromium. Le pilote Selenium pour Chrome ("chromedriver") posant parfois problème, `protractor.conf.js` contient une astuce qui recherche le pilote dans le système avant de le rechercher dans node_modules. Bien qu'elle soit supposée fonctionner avec d'autres navigateurs, l'exécution des tests n'est garantie qu'avec Chrome / Chromium. Le pilote Selenium pour Chrome ("chromedriver") posant parfois problème, `protractor.conf.js` contient une astuce qui recherche le pilote dans le système avant de le rechercher dans node_modules.
Pour plus d'informations sur les problèmes liés à la version du pilote Selenium pour Chrome, consulter le chapitre "chromedriver version in e2e tests" dans la documentation développeurs (en anglais).
### scripts ### scripts
Le dossier `scripts` contient des scripts d'aide à la compilation, utilisés par les commandes `npm` déclarées dans `package.json`. Le dossier `scripts` contient des scripts d'aide à la compilation, utilisés par les commandes `npm` déclarées dans `package.json`.
...@@ -238,7 +240,7 @@ En général la classe `FormulaireBase` est suffisante pour gérer un nouveau mo ...@@ -238,7 +240,7 @@ En général la classe `FormulaireBase` est suffisante pour gérer un nouveau mo
Mais dans des cas plus complexes, par exemple si le module contient des listes déroulantes ou des sous-modules, répétables ou non, il est nécessaire de créer de nouvelles classes de formulaires dérivées de celles-ci. Mais dans des cas plus complexes, par exemple si le module contient des listes déroulantes ou des sous-modules, répétables ou non, il est nécessaire de créer de nouvelles classes de formulaires dérivées de celles-ci.
Dans un tel cas, créer la classe du formulaire dans un nouveau fichier, dans le dossier `src/app/formulaire/definition/concrete` Par exemple `form-macrorugo-compound.ts`. Dans un tel cas, créer la classe du formulaire dans un nouveau fichier, dans le dossier `src/app/formulaire/definition` Par exemple `form-macrorugo-compound.ts`.
Si les mécanismes de calcul ou de récupération des résultats doivent être modifiés, créer les classes nécessaires dans le dossier `src/app/formulaire/definition`, par exemple `form-compute-macrorugo-compound.ts` et `form-result-macrorugo-compound.ts`. Sinon, agréger des classes `FormCompute*` et `FormResult*` existantes. Si les mécanismes de calcul ou de récupération des résultats doivent être modifiés, créer les classes nécessaires dans le dossier `src/app/formulaire/definition`, par exemple `form-compute-macrorugo-compound.ts` et `form-result-macrorugo-compound.ts`. Sinon, agréger des classes `FormCompute*` et `FormResult*` existantes.
...@@ -347,7 +349,7 @@ Dans ce même fichier de configuration, dans le dernier élément "options", ajo ...@@ -347,7 +349,7 @@ Dans ce même fichier de configuration, dans le dernier élément "options", ajo
#### sources #### sources
Chaque liste déroulante est associée à une **source** (voir "configuration" plus haut), qui détermine quels sont les choix possibles. Pour ajouter une source, modifier la méthode `parseConfig()` de la classe `SelectField`, dans le fichier `src/app/formulaire/select-field.ts`. Exemple pour "trigoOperation" : Chaque liste déroulante est associée à une **source** (voir "configuration" plus haut), qui détermine quels sont les choix possibles. Pour ajouter une source, modifier la méthode `parseConfig()` de la classe `SelectField`, dans le fichier `src/app/formulaire/elements/select-field.ts`. Exemple pour "trigoOperation" :
```TypeScript ```TypeScript
case "trigo_operation": // (cos, sin…) case "trigo_operation": // (cos, sin…)
...@@ -359,7 +361,7 @@ case "trigo_operation": // (cos, sin…) ...@@ -359,7 +361,7 @@ case "trigo_operation": // (cos, sin…)
#### lien avec les propriétés #### lien avec les propriétés
Les listes déroulantes doivent être liées à des **propriétés** du Nub. Pour ce faire, modifier la classe `FieldSet` dans le fichier `src/app/formulaire/fieldset.ts` comme suit (exemple pour le module `Trigo`). Les listes déroulantes doivent être liées à des **propriétés** du Nub. Pour ce faire, modifier la classe `FieldSet` dans le fichier `src/app/formulaire/elements/fieldset.ts` comme suit (exemple pour le module `Trigo`).
Ajouter un `case` dans la fonction `updateFields()` Ajouter un `case` dans la fonction `updateFields()`
......
...@@ -225,6 +225,14 @@ npm run viz ...@@ -225,6 +225,14 @@ npm run viz
Custom Material SVG Icons will only show up when the application is deployed on the domain root (no subfolders), see [this feature request](https://github.com/angular/material2/issues/4263) Custom Material SVG Icons will only show up when the application is deployed on the domain root (no subfolders), see [this feature request](https://github.com/angular/material2/issues/4263)
### chromedriver version in e2e tests
It is possible that Chrome / Chromium version installed on your system evolves faster than the Chrome Selenium driver (`chromedriver`) installed by "protractor" dependency of Angular, which makes e2e tests fail with an error message about versions compatibility. In this case, it's possible to install an updated system-wide version of the pilot:
```bash
sudo npm install -g protractor
sudo webdriver-manager update
sudo find /usr/lib/node_modules/protractor -regextype sed -regex "^.*/chromedriver.*[0-9]$" -exec ln -s '{}' /usr/bin/chromedriver ';'
```
## Release policy ## Release policy
......
...@@ -747,6 +747,7 @@ export class AppComponent implements OnInit, OnDestroy, Observer { ...@@ -747,6 +747,7 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
*/ */
public scrollToQuicknav(itemId: string, behavior: ScrollBehavior = "smooth") { public scrollToQuicknav(itemId: string, behavior: ScrollBehavior = "smooth") {
const idx = this.getCalculatorIndexFromId(this.currentFormId); const idx = this.getCalculatorIndexFromId(this.currentFormId);
let succeeded = false;
if (idx > -1) { if (idx > -1) {
const id = QuicknavComponent.prefix + itemId; const id = QuicknavComponent.prefix + itemId;
// Scroll https://stackoverflow.com/a/56391657/5986614 // Scroll https://stackoverflow.com/a/56391657/5986614
...@@ -757,10 +758,17 @@ export class AppComponent implements OnInit, OnDestroy, Observer { ...@@ -757,10 +758,17 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
top: yCoordinate - 60, // substract a little more than navbar height top: yCoordinate - 60, // substract a little more than navbar height
behavior: behavior behavior: behavior
}); });
succeeded = true;
// Save position // Save position
this._calculators[idx].latestAnchor = itemId; this._calculators[idx].latestAnchor = itemId;
} }
} }
if (! succeeded) {
// throw an error so that caller CalculatorComponent.scrollToResults()
// switches to plan B, in case we're trying to scroll to results pane
// after a module is calculated
throw Error("unable to scroll to quicknav anchor");
}
} }
/** /**
......
...@@ -7,7 +7,7 @@ import { Message, ParamDefinition, ParamDomain, ParamDomainValue, Observable } f ...@@ -7,7 +7,7 @@ import { Message, ParamDefinition, ParamDomain, ParamDomainValue, Observable } f
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { GenericInputComponent } from "../generic-input/generic-input.component"; import { GenericInputComponent } from "../generic-input/generic-input.component";
import { ServiceFactory } from "../../services/service-factory"; import { ServiceFactory } from "../../services/service-factory";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
export class NgBaseParam extends Observable { export class NgBaseParam extends Observable {
......
...@@ -6,13 +6,13 @@ import { CalculatorType, EnumEx, Session } from "jalhyd"; ...@@ -6,13 +6,13 @@ import { CalculatorType, EnumEx, Session } from "jalhyd";
import { FormulaireDefinition } from "../../formulaire/definition/form-definition"; import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
import { ServiceFactory } from "../../services/service-factory"; import { ServiceFactory } from "../../services/service-factory";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { FormulaireParallelStructure } from "../../formulaire/definition/concrete/form-parallel-structures"; import { FormulaireParallelStructure } from "../../formulaire/definition/form-parallel-structures";
import { FieldsetContainer } from "../../formulaire/fieldset-container"; import { FieldsetContainer } from "../../formulaire/elements/fieldset-container";
import { FormulairePab } from "../../formulaire/definition/concrete/form-pab"; import { FormulairePab } from "../../formulaire/definition/form-pab";
import { HttpService } from "../../services/http.service"; import { HttpService } from "../../services/http.service";
import { AppComponent } from "../../app.component"; import { AppComponent } from "../../app.component";
import { FormulaireMacrorugoCompound } from "../../formulaire/definition/concrete/form-macrorugo-compound"; import { FormulaireMacrorugoCompound } from "../../formulaire/definition/form-macrorugo-compound";
import { FormulaireSPP } from "../../formulaire/definition/concrete/form-spp"; import { FormulaireSPP } from "../../formulaire/definition/form-spp";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
......
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material"; import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material";
import { Inject, Component, ViewChild, OnInit } from "@angular/core"; import { Inject, Component, ViewChild, OnInit } from "@angular/core";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component"; import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
@Component({ @Component({
......
...@@ -3,7 +3,7 @@ import { Inject, Component, OnInit } from "@angular/core"; ...@@ -3,7 +3,7 @@ import { Inject, Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { FormBuilder, FormGroup, Validators } from "@angular/forms";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { ResultsComponent } from "../fixedvar-results/results.component"; import { ResultsComponent } from "../fixedvar-results/results.component";
import { sprintf } from "sprintf-js"; import { sprintf } from "sprintf-js";
......
import { Component, Input, Output, EventEmitter, ViewChildren, QueryList, DoCheck } from "@angular/core"; import { Component, Input, Output, EventEmitter, ViewChildren, QueryList, DoCheck } from "@angular/core";
import { ParamRadioConfig } from "../../formulaire/ngparam"; import { ParamRadioConfig } from "../../formulaire/elements/ngparam";
import { FieldSet } from "../../formulaire/fieldset"; import { FieldSet } from "../../formulaire/elements/fieldset";
import { ParamFieldLineComponent } from "../param-field-line/param-field-line.component"; import { ParamFieldLineComponent } from "../param-field-line/param-field-line.component";
import { Field } from "../../formulaire/field"; import { Field } from "../../formulaire/elements/field";
import { InputField } from "../../formulaire/input-field"; import { InputField } from "../../formulaire/elements/input-field";
import { SelectField } from "../../formulaire/select-field"; import { SelectField } from "../../formulaire/elements/select-field";
import { FormulairePab } from "../../formulaire/definition/concrete/form-pab"; import { FormulairePab } from "../../formulaire/definition/form-pab";
import { SelectFieldLineComponent } from "../select-field-line/select-field-line.component"; import { SelectFieldLineComponent } from "../select-field-line/select-field-line.component";
import { FieldsetContainer } from "../../formulaire/fieldset-container"; import { FieldsetContainer } from "../../formulaire/elements/fieldset-container";
import { NotificationsService } from "../../services/notifications.service"; import { NotificationsService } from "../../services/notifications.service";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
......
import { Component, Input, Output, EventEmitter, QueryList, ViewChildren, DoCheck, AfterViewInit } from "@angular/core"; import { Component, Input, Output, EventEmitter, QueryList, ViewChildren, DoCheck, AfterViewInit } from "@angular/core";
import { FieldsetContainer } from "../../formulaire/fieldset-container"; import { FieldsetContainer } from "../../formulaire/elements/fieldset-container";
import { FieldSetComponent } from "../field-set/field-set.component"; import { FieldSetComponent } from "../field-set/field-set.component";
import { FieldSet } from "../../formulaire/fieldset"; import { FieldSet } from "../../formulaire/elements/fieldset";
import { FormulaireDefinition } from "../../formulaire/definition/form-definition"; import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
......
import { Component, ViewChild, ElementRef } from "@angular/core"; import { Component, ViewChild, ElementRef } from "@angular/core";
import { FixedResults } from "../../results/fixed-results"; import { FixedResults } from "../../results/fixed-results";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { CalculatorResults } from "../../results/calculator-results"; import { CalculatorResults } from "../../results/calculator-results";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { FormulaireService } from "../../services/formulaire.service"; import { FormulaireService } from "../../services/formulaire.service";
......
...@@ -6,7 +6,7 @@ import { VarResults } from "../../results/var-results"; ...@@ -6,7 +6,7 @@ import { VarResults } from "../../results/var-results";
import { ResultsChartComponent } from "../results-chart/results-chart.component"; import { ResultsChartComponent } from "../results-chart/results-chart.component";
import { CalculatorResults } from "../../results/calculator-results"; import { CalculatorResults } from "../../results/calculator-results";
import { Result, cLog } from "jalhyd"; import { Result, cLog } from "jalhyd";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { FixedResultsComponent } from "./fixed-results.component"; import { FixedResultsComponent } from "./fixed-results.component";
import { VarResultsComponent } from "./var-results.component"; import { VarResultsComponent } from "./var-results.component";
import { ResultsComponent } from "./results.component"; import { ResultsComponent } from "./results.component";
......
import * as screenfull from "screenfull"; import * as screenfull from "screenfull";
import { Screenfull } from "screenfull"; // @see https://github.com/sindresorhus/screenfull.js/issues/126#issuecomment-488796645 import { Screenfull } from "screenfull"; // @see https://github.com/sindresorhus/screenfull.js/issues/126#issuecomment-488796645
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { ServiceFactory } from "../../services/service-factory"; import { ServiceFactory } from "../../services/service-factory";
import { fv } from "../../util"; import { fv } from "../../util";
......
...@@ -8,20 +8,20 @@ import { AppComponent } from "../../app.component"; ...@@ -8,20 +8,20 @@ import { AppComponent } from "../../app.component";
import { FormulaireService } from "../../services/formulaire.service"; import { FormulaireService } from "../../services/formulaire.service";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { FieldSet } from "../../formulaire/fieldset"; import { FieldSet } from "../../formulaire/elements/fieldset";
import { FormulaireDefinition } from "../../formulaire/definition/form-definition"; import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
import { CalculatorResultsComponent } from "../../components/calculator-results/calculator-results.component"; import { CalculatorResultsComponent } from "../../components/calculator-results/calculator-results.component";
import { Subscription } from "rxjs"; import { Subscription } from "rxjs";
import { FieldSetComponent } from "../field-set/field-set.component"; import { FieldSetComponent } from "../field-set/field-set.component";
import { CalculatorNameComponent } from "./calc-name.component"; import { CalculatorNameComponent } from "./calc-name.component";
import { FormulaireElement } from "../../formulaire/formulaire-element"; import { FormulaireElement } from "../../formulaire/elements/formulaire-element";
import { FieldsetContainer } from "../../formulaire/fieldset-container"; import { FieldsetContainer } from "../../formulaire/elements/fieldset-container";
import { FieldsetContainerComponent } from "../fieldset-container/fieldset-container.component"; import { FieldsetContainerComponent } from "../fieldset-container/fieldset-container.component";
import { PabTableComponent } from "../pab-table/pab-table.component"; import { PabTableComponent } from "../pab-table/pab-table.component";
import { MatDialog } from "@angular/material"; import { MatDialog } from "@angular/material";
import { DialogConfirmCloseCalcComponent } from "../dialog-confirm-close-calc/dialog-confirm-close-calc.component"; import { DialogConfirmCloseCalcComponent } from "../dialog-confirm-close-calc/dialog-confirm-close-calc.component";
import { DialogGeneratePABComponent } from "../dialog-generate-pab/dialog-generate-pab.component"; import { DialogGeneratePABComponent } from "../dialog-generate-pab/dialog-generate-pab.component";
import { PabTable } from "../../formulaire/pab-table"; import { PabTable } from "../../formulaire/elements/pab-table";
import { HotkeysService, Hotkey } from "angular2-hotkeys"; import { HotkeysService, Hotkey } from "angular2-hotkeys";
......
...@@ -2,7 +2,7 @@ import { Input, Output, EventEmitter, ChangeDetectorRef, OnChanges, ViewChild } ...@@ -2,7 +2,7 @@ import { Input, Output, EventEmitter, ChangeDetectorRef, OnChanges, ViewChild }
import { NgModel } from "@angular/forms"; import { NgModel } from "@angular/forms";
import { isNumeric } from "jalhyd"; import { isNumeric } from "jalhyd";
import { FormulaireDefinition } from "../../formulaire/definition/form-definition"; import { FormulaireDefinition } from "../../formulaire/definition/form-definition";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
......
...@@ -6,7 +6,7 @@ import { fv } from "../../../app/util"; ...@@ -6,7 +6,7 @@ import { fv } from "../../../app/util";
import { LogComponent } from "../../components/log/log.component"; import { LogComponent } from "../../components/log/log.component";
import { CalculatorResults } from "../../results/calculator-results"; import { CalculatorResults } from "../../results/calculator-results";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
import { PlottableData } from "../../results/plottable-data"; import { PlottableData } from "../../results/plottable-data";
import { ResultsChartComponent } from "../results-chart/results-chart.component"; import { ResultsChartComponent } from "../results-chart/results-chart.component";
......
...@@ -5,7 +5,7 @@ import { Component, ChangeDetectorRef, OnDestroy } from "@angular/core"; ...@@ -5,7 +5,7 @@ import { Component, ChangeDetectorRef, OnDestroy } from "@angular/core";
import { Message, Observer } from "jalhyd"; import { Message, Observer } from "jalhyd";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { GenericInputComponent } from "../generic-input/generic-input.component"; import { GenericInputComponent } from "../generic-input/generic-input.component";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
......
...@@ -4,7 +4,7 @@ import { Result, cLog, Message, MessageCode, MessageSeverity } from "jalhyd"; ...@@ -4,7 +4,7 @@ import { Result, cLog, Message, MessageCode, MessageSeverity } from "jalhyd";
import { LogComponent } from "../../components/log/log.component"; import { LogComponent } from "../../components/log/log.component";
import { CalculatorResults } from "../../results/calculator-results"; import { CalculatorResults } from "../../results/calculator-results";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { PabResultsTableComponent } from "./pab-results-table.component"; import { PabResultsTableComponent } from "./pab-results-table.component";
import { PabResults } from "../../results/pab-results"; import { PabResults } from "../../results/pab-results";
import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component"; import { VariableResultsSelectorComponent } from "../variable-results-selector/variable-results-selector.component";
......
...@@ -22,7 +22,7 @@ import { I18nService } from "../../services/internationalisation.service"; ...@@ -22,7 +22,7 @@ import { I18nService } from "../../services/internationalisation.service";
import { FormulaireService } from "../../services/formulaire.service"; import { FormulaireService } from "../../services/formulaire.service";
import { ApplicationSetupService } from "../../services/app-setup.service"; import { ApplicationSetupService } from "../../services/app-setup.service";
import { NotificationsService } from "../../services/notifications.service"; import { NotificationsService } from "../../services/notifications.service";
import { PabTable } from "../../formulaire/pab-table"; import { PabTable } from "../../formulaire/elements/pab-table";
import { DialogEditPabComponent } from "../dialog-edit-pab/dialog-edit-pab.component"; import { DialogEditPabComponent } from "../dialog-edit-pab/dialog-edit-pab.component";
import { AppComponent } from "../../app.component"; import { AppComponent } from "../../app.component";
......
import { Component, Input } from "@angular/core"; import { Component, Input } from "@angular/core";
import { MatDialog } from "@angular/material"; import { MatDialog } from "@angular/material";
import { NgParameter } from "../../formulaire/ngparam"; import { NgParameter } from "../../formulaire/elements/ngparam";
import { ParamCalculability, Structure } from "jalhyd"; import { ParamCalculability, Structure } from "jalhyd";
import { DialogEditParamComputedComponent } from "../dialog-edit-param-computed/dialog-edit-param-computed.component"; import { DialogEditParamComputedComponent } from "../dialog-edit-param-computed/dialog-edit-param-computed.component";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
......
import { Component, ViewChild, Input, Output, EventEmitter, OnChanges } from "@angular/core"; import { Component, ViewChild, Input, Output, EventEmitter, OnChanges } from "@angular/core";
import { I18nService } from "../../services/internationalisation.service"; import { I18nService } from "../../services/internationalisation.service";
import { NgParameter, ParamRadioConfig } from "../../formulaire/ngparam"; import { NgParameter, ParamRadioConfig } from "../../formulaire/elements/ngparam";
import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component"; import { NgParamInputComponent } from "../ngparam-input/ngparam-input.component";
import { ServiceFactory } from "../../services/service-factory"; import { ServiceFactory } from "../../services/service-factory";
import { ParamValueMode, ParallelStructure } from "jalhyd"; import { ParamValueMode, ParallelStructure } from "jalhyd";
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment