Commit 3841aeea authored by Mathias Chouet's avatar Mathias Chouet :spaghetti:
Browse files

Ajout test e2e pour calcul en chaîne

Showing with 910 additions and 7 deletions
+910 -7
import { AppPage } from "./app.po";
import { CalculatorPage } from "./calculator.po";
import { Navbar } from "./navbar.po";
import { SideNav } from "./sidenav.po";
import { browser } from "protractor";
/**
* Load a session containing 3 calculators, having linked parameters
* from one to another, triggers computation from the top-most, triggers
* results reset from the bottom-most.
* Does it once with parameters linked to parameters, once with parameters
* linked to results.
*/
describe("ngHyd − compute then reset chained results", () => {
let startPage: AppPage;
let calcPage: CalculatorPage;
let navbar: Navbar;
let sidenav: SideNav;
function init() {
startPage = new AppPage();
calcPage = new CalculatorPage();
navbar = new Navbar();
sidenav = new SideNav();
}
beforeEach(init);
async function doTheJob(filename: string, topMostId: string, bottomMostId: string) {
// load session file
await startPage.navigateTo();
await navbar.clickMenuButton();
await browser.sleep(200);
await sidenav.clickLoadSessionButton();
await browser.sleep(200);
await sidenav.loadSessionFile(filename);
await browser.sleep(500);
expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
// 1. get top most module
await navbar.clickCalculatorTabForUid(topMostId);
// check that "compute" button is active
const calcButton = calcPage.getCalculateButton();
const disabledState = await calcButton.getAttribute("disabled");
expect(disabledState).not.toBe("disabled");
// click "compute" button
await calcButton.click();
// check all 3 modules for results
for (let i = 0; i < 3; i++) {
await navbar.clickCalculatorTab(i);
const hasResults = await calcPage.hasResults();
expect(hasResults).toBe(true);
}
// 2. get bottom-most module
await navbar.clickCalculatorTabForUid(bottomMostId);
// modify any input (for ex. "Ks")
await calcPage.getInputById("Ks").clear();
await calcPage.getInputById("Ks").sendKeys("42");
// check all 3 modules for absence of results
for (let i = 0; i < 3; i++) {
await navbar.clickCalculatorTab(i);
const hasResults = await calcPage.hasResults();
expect(hasResults).toBe(false);
}
}
it("when loading session-cascade-params.json, computation should not be chained, but results reset should", async () => {
// load session file
await startPage.navigateTo();
await navbar.clickMenuButton();
await browser.sleep(200);
await sidenav.clickLoadSessionButton();
await browser.sleep(200);
await sidenav.loadSessionFile("./session-cascade-params.json");
await browser.sleep(500);
expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
// 1. get top most module
await navbar.clickCalculatorTabForUid("dWs5bm");
// check that "compute" button is active
const calcButton = calcPage.getCalculateButton();
const disabledState = await calcButton.getAttribute("disabled");
expect(disabledState).not.toBe("disabled");
// click "compute" button
await calcButton.click();
// only top-most module should have results
let hasResults = await calcPage.hasResults();
// other two should not
await navbar.clickCalculatorTabForUid("OGFzOH");
hasResults = await calcPage.hasResults();
expect(hasResults).toBe(false);
await navbar.clickCalculatorTabForUid("NWp1a3");
hasResults = await calcPage.hasResults();
expect(hasResults).toBe(false);
// 2. get bottom-most module
await navbar.clickCalculatorTabForUid("OGFzOH");
// modify any input (for ex. "Ks")
await calcPage.getInputById("Ks").clear();
await calcPage.getInputById("Ks").sendKeys("42");
// check all 3 modules for absence of results
for (let i = 0; i < 3; i++) {
await navbar.clickCalculatorTab(i);
hasResults = await calcPage.hasResults();
expect(hasResults).toBe(false);
}
});
it("when loading session-cascade-results.json, computation and results reset should be chained", async () => {
// load session file
await startPage.navigateTo();
await navbar.clickMenuButton();
await browser.sleep(200);
await sidenav.clickLoadSessionButton();
await browser.sleep(200);
await sidenav.loadSessionFile("./session-cascade-results.json");
await browser.sleep(500);
expect(await navbar.getAllCalculatorTabs().count()).toBe(3);
// 1. get top most module
await navbar.clickCalculatorTabForUid("YWFqMD");
// check that "compute" button is active
const calcButton = calcPage.getCalculateButton();
const disabledState = await calcButton.getAttribute("disabled");
expect(disabledState).not.toBe("disabled");
// click "compute" button
await calcButton.click();
// check all 3 modules for results
for (let i = 0; i < 3; i++) {
await navbar.clickCalculatorTab(i);
const hasResults = await calcPage.hasResults();
expect(hasResults).toBe(true);
}
// 2. get bottom-most module
await navbar.clickCalculatorTabForUid("ZHd0ej");
// modify any input (for ex. "Ks")
await calcPage.getInputById("Ks").clear();
await calcPage.getInputById("Ks").sendKeys("42");
// check all 3 modules for absence of results
for (let i = 0; i < 3; i++) {
await navbar.clickCalculatorTab(i);
const hasResults = await calcPage.hasResults();
expect(hasResults).toBe(false);
}
});
});
...@@ -23,7 +23,7 @@ describe("ngHyd − load session with multiple linked parameters", () => { ...@@ -23,7 +23,7 @@ describe("ngHyd − load session with multiple linked parameters", () => {
} }
beforeEach(init); beforeEach(init);
it("when loading session-liens-spaghetti.json, all links should point to the right target - ", async () => { it("when loading session-liens-spaghetti.json, all links should point to the right target", async () => {
await startPage.navigateTo(); await startPage.navigateTo();
await navbar.clickMenuButton(); await navbar.clickMenuButton();
...@@ -33,7 +33,7 @@ describe("ngHyd − load session with multiple linked parameters", () => { ...@@ -33,7 +33,7 @@ describe("ngHyd − load session with multiple linked parameters", () => {
await browser.sleep(200); await browser.sleep(200);
await sidenav.loadSessionFile("./session-liens-spaghetti.json"); await sidenav.loadSessionFile("./session-liens-spaghetti.json");
await browser.sleep(200); await browser.sleep(500);
expect(await navbar.getAllCalculatorTabs().count()).toBe(4); expect(await navbar.getAllCalculatorTabs().count()).toBe(4);
......
...@@ -5,6 +5,10 @@ export class Navbar { ...@@ -5,6 +5,10 @@ export class Navbar {
return element.all(by.css("#tabs-container > button.calculator-button")); return element.all(by.css("#tabs-container > button.calculator-button"));
} }
getCalculatorTabForUid(uid: string) {
return element(by.css("#tabs-container > button.calculator-button.calculator-uid-" + uid));
}
getNewCalculatorButton() { getNewCalculatorButton() {
return element(by.css("#new-calculator")); return element(by.css("#new-calculator"));
} }
...@@ -18,6 +22,11 @@ export class Navbar { ...@@ -18,6 +22,11 @@ export class Navbar {
await tabs.get(n).click(); await tabs.get(n).click();
} }
async clickCalculatorTabForUid(uid: string) {
const tab = this.getCalculatorTabForUid(uid);
await tab.click();
}
async clickRandomCalculatorTab(n: number) { async clickRandomCalculatorTab(n: number) {
const tabs = this.getAllCalculatorTabs(); const tabs = this.getAllCalculatorTabs();
const l = await tabs.count(); const l = await tabs.count();
......
{"session":[{"uid":"NHY0cX","props":{"calcType":5,"nodeType":0},"meta":{"title":"PAB : dimensions"},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"L","mode":"SINGLE","value":2},{"symbol":"W","mode":"SINGLE","value":1},{"symbol":"Y","mode":"SINGLE","value":0.5},{"symbol":"V","mode":"CALCUL"}]},{"uid":"YzAwMW","props":{"calcType":11,"nodeType":0},"meta":{"title":"Macro-rugo."},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"L","mode":"SINGLE","value":6},{"symbol":"B","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Y","mode":"SINGLE","value":0.6},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.05},{"symbol":"PBD","mode":"SINGLE","value":0.5},{"symbol":"PBH","mode":"SINGLE","value":0.8},{"symbol":"Cd0","mode":"SINGLE","value":1.5}]},{"uid":"dGc5MD","props":{"calcType":8,"nodeType":0},"meta":{"title":"Ouvrages"},"structures":[{"uid":"NjZob3","props":{"calcType":7,"nodeType":5,"structureType":1,"loiDebit":1},"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100},{"symbol":"W","mode":"SINGLE","value":0.5},{"symbol":"L","mode":"SINGLE","value":2},{"symbol":"Cd","mode":"SINGLE","value":0.6}]}],"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":102},{"symbol":"Z2","mode":"SINGLE","value":101.5}]},{"uid":"OGZ4cm","props":{"varCalc":"Hs","calcType":2,"nodeType":2},"meta":{"title":"Sec. param."},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"Ks","mode":"SINGLE","value":40},{"symbol":"Q","mode":"SINGLE","value":1.2},{"symbol":"If","mode":"SINGLE","value":0.001},{"symbol":"YB","mode":"SINGLE","value":1},{"symbol":"Y","mode":"SINGLE","value":0.8},{"symbol":"LargeurBerge","mode":"SINGLE","value":2.5}]},{"uid":"ZTNvMD","props":{"methodeResolution":0,"calcType":4,"nodeType":2},"meta":{"title":"Remous"},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"Yamont","mode":"SINGLE","value":0.15},{"symbol":"Yaval","mode":"SINGLE","value":0.4},{"symbol":"Long","mode":"SINGLE","value":100},{"symbol":"Dx","mode":"SINGLE","value":5},{"symbol":"Ks","mode":"SINGLE","value":40},{"symbol":"Q","mode":"SINGLE","value":1.2},{"symbol":"If","mode":"SINGLE","value":0.001},{"symbol":"YB","mode":"SINGLE","value":1},{"symbol":"Y","mode":"SINGLE","value":0.2863766123093061},{"symbol":"LargeurBerge","mode":"SINGLE","value":2.5}]},{"uid":"eWllan","props":{"calcType":1,"nodeType":0},"meta":{"title":"Lechapt-Calmon"},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"Q","mode":"SINGLE","value":3},{"symbol":"D","mode":"SINGLE","value":1.2},{"symbol":"J","mode":"CALCUL"},{"symbol":"Lg","mode":"SINGLE","value":100},{"symbol":"L","mode":"SINGLE","value":"1.863"},{"symbol":"M","mode":"SINGLE","value":"2"},{"symbol":"N","mode":"SINGLE","value":"5.33"}]}]} {
\ No newline at end of file "session": [
{
"uid": "NHY0cX",
"props": {
"calcType": 5,
"nodeType": 0
},
"meta": {
"title": "PAB : dimensions"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "L",
"mode": "SINGLE",
"value": 2
},
{
"symbol": "W",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.5
},
{
"symbol": "V",
"mode": "CALCUL"
}
]
},
{
"uid": "YzAwMW",
"props": {
"calcType": 11,
"nodeType": 0
},
"meta": {
"title": "Macro-rugo."
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "ZF1",
"mode": "SINGLE",
"value": 12.5
},
{
"symbol": "L",
"mode": "SINGLE",
"value": 6
},
{
"symbol": "B",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.05
},
{
"symbol": "Q",
"mode": "CALCUL"
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.6
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 0.01
},
{
"symbol": "C",
"mode": "SINGLE",
"value": 0.05
},
{
"symbol": "PBD",
"mode": "SINGLE",
"value": 0.5
},
{
"symbol": "PBH",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "Cd0",
"mode": "SINGLE",
"value": 1.5
}
]
},
{
"uid": "dGc5MD",
"props": {
"calcType": 8,
"nodeType": 0
},
"meta": {
"title": "Ouvrages"
},
"structures": [
{
"uid": "NjZob3",
"props": {
"calcType": 7,
"nodeType": 5,
"structureType": 1,
"loiDebit": 1
},
"parameters": [
{
"symbol": "ZDV",
"mode": "SINGLE",
"value": 100
},
{
"symbol": "W",
"mode": "SINGLE",
"value": 0.5
},
{
"symbol": "L",
"mode": "SINGLE",
"value": 2
},
{
"symbol": "Cd",
"mode": "SINGLE",
"value": 0.6
}
]
}
],
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Q",
"mode": "CALCUL"
},
{
"symbol": "Z1",
"mode": "SINGLE",
"value": 102
},
{
"symbol": "Z2",
"mode": "SINGLE",
"value": 101.5
}
]
},
{
"uid": "OGZ4cm",
"props": {
"varCalc": "Hs",
"calcType": 2,
"nodeType": 2
},
"meta": {
"title": "Sec. param."
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 2.5
}
]
},
{
"uid": "ZTNvMD",
"props": {
"methodeResolution": 0,
"calcType": 4,
"nodeType": 2
},
"meta": {
"title": "Remous"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Yamont",
"mode": "SINGLE",
"value": 0.15
},
{
"symbol": "Yaval",
"mode": "SINGLE",
"value": 0.4
},
{
"symbol": "Long",
"mode": "SINGLE",
"value": 100
},
{
"symbol": "Dx",
"mode": "SINGLE",
"value": 5
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.2863766123093061
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 2.5
}
]
},
{
"uid": "eWllan",
"props": {
"calcType": 1,
"nodeType": 0
},
"meta": {
"title": "Lechapt-Calmon"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 3
},
{
"symbol": "D",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "J",
"mode": "CALCUL"
},
{
"symbol": "Lg",
"mode": "SINGLE",
"value": 100
},
{
"symbol": "L",
"mode": "SINGLE",
"value": "1.863"
},
{
"symbol": "M",
"mode": "SINGLE",
"value": "2"
},
{
"symbol": "N",
"mode": "SINGLE",
"value": "5.33"
}
]
}
]
}
\ No newline at end of file
{
"session": [
{
"uid": "OGFzOH",
"props": {
"varCalc": "Hs",
"calcType": 2,
"nodeType": 2
},
"meta": {
"title": "Sec. param."
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 2.5
}
]
},
{
"uid": "NWp1a3",
"props": {
"calcType": 3,
"nodeType": 2
},
"meta": {
"title": "R. uniforme"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "CALCUL"
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "LINK",
"targetNub": "OGFzOH",
"targetParam": "LargeurBerge"
}
]
},
{
"uid": "dWs5bm",
"props": {
"calcType": 3,
"nodeType": 2
},
"meta": {
"title": "R. uniforme 1"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "CALCUL"
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "LINK",
"targetNub": "NWp1a3",
"targetParam": "LargeurBerge"
}
]
}
]
}
\ No newline at end of file
{
"session": [
{
"uid": "YWFqMD",
"props": {
"calcType": 11,
"nodeType": 0
},
"meta": {
"title": "Macro-rugo."
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "ZF1",
"mode": "SINGLE",
"value": 12.5
},
{
"symbol": "L",
"mode": "SINGLE",
"value": 6
},
{
"symbol": "B",
"mode": "CALCUL"
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.05
},
{
"symbol": "Q",
"mode": "LINK",
"targetNub": "MXB0en",
"targetParam": "Q"
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.6
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 0.01
},
{
"symbol": "C",
"mode": "SINGLE",
"value": 0.05
},
{
"symbol": "PBD",
"mode": "SINGLE",
"value": 0.5
},
{
"symbol": "PBH",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "Cd0",
"mode": "SINGLE",
"value": 1.5
}
]
},
{
"uid": "MXB0en",
"props": {
"calcType": 3,
"nodeType": 2
},
"meta": {
"title": "R. uniforme"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "CALCUL"
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "LINK",
"targetNub": "ZHd0ej",
"targetParam": "Yco"
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 2.5
}
]
},
{
"uid": "ZHd0ej",
"props": {
"methodeResolution": 0,
"calcType": 4,
"nodeType": 2
},
"meta": {
"title": "Remous"
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Yamont",
"mode": "SINGLE",
"value": 0.15
},
{
"symbol": "Yaval",
"mode": "SINGLE",
"value": 0.4
},
{
"symbol": "Long",
"mode": "SINGLE",
"value": 100
},
{
"symbol": "Dx",
"mode": "SINGLE",
"value": 5
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.5643749999999994
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 2.5
}
]
}
]
}
\ No newline at end of file
{"session":[{"uid":"N2U4OH","props":{"varCalc":"Hs","calcType":2,"nodeType":4},"meta":{"title":"Sec. param."},"parameters":[{"symbol":"Pr","mode":"SINGLE","value":0.0001},{"symbol":"Ks","mode":"SINGLE","value":40},{"symbol":"Q","mode":"SINGLE","value":1.2},{"symbol":"If","mode":"SINGLE","value":0.001},{"symbol":"YB","mode":"SINGLE","value":1},{"symbol":"Y","mode":"SINGLE","value":0.8},{"symbol":"LargeurBerge","mode":"SINGLE","value":4},{"symbol":"k","mode":"SINGLE","value":0.5}]}]} {
\ No newline at end of file "session": [
{
"uid": "N2U4OH",
"props": {
"varCalc": "Hs",
"calcType": 2,
"nodeType": 4
},
"meta": {
"title": "Sec. param."
},
"parameters": [
{
"symbol": "Pr",
"mode": "SINGLE",
"value": 0.0001
},
{
"symbol": "Ks",
"mode": "SINGLE",
"value": 40
},
{
"symbol": "Q",
"mode": "SINGLE",
"value": 1.2
},
{
"symbol": "If",
"mode": "SINGLE",
"value": 0.001
},
{
"symbol": "YB",
"mode": "SINGLE",
"value": 1
},
{
"symbol": "Y",
"mode": "SINGLE",
"value": 0.8
},
{
"symbol": "LargeurBerge",
"mode": "SINGLE",
"value": 4
},
{
"symbol": "k",
"mode": "SINGLE",
"value": 0.5
}
]
}
]
}
\ No newline at end of file
...@@ -40,9 +40,9 @@ ...@@ -40,9 +40,9 @@
<!-- calculators list as a tabs bar--> <!-- calculators list as a tabs bar-->
<div id="tabs-container" [hidden]="! tabsFitInNavbar"> <div id="tabs-container" [hidden]="! tabsFitInNavbar">
<button mat-raised-button color="primary" *ngFor="let c of calculators" class="calculator-button" [title]="c.title" <button mat-raised-button color="primary" *ngFor="let c of calculators" class="" [title]="c.title"
[routerLink]="['/calculator/',c.uid]" [color]="c.active ? '' : 'primary'" [class.active]="c.active" [routerLink]="['/calculator/',c.uid]" [color]="c.active ? '' : 'primary'" (click)="setActiveCalc(c.uid)"
(click)="setActiveCalc(c.uid)"> [ngClass]="['calculator-button', 'calculator-uid-' + c.uid, c.active ? 'active' : '' ]">
<span class="calc-name"> <span class="calc-name">
{{ c.title }} {{ c.title }}
......
Supports Markdown
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