feat: get tab navigation items from config

This commit is contained in:
Rainer Killinger
2022-10-20 11:19:06 +00:00
parent 5e1a902d4c
commit c3130a392a
15 changed files with 365 additions and 284 deletions

View File

@@ -14,16 +14,16 @@
*/
/* eslint-disable @typescript-eslint/no-explicit-any */
import {ScheduleProvider} from '../../src/app/modules/calendar/schedule.provider';
//import {ScheduleProvider} from '../../src/app/modules/calendar/schedule.provider';
describe('dashboard', async function () {
describe('schedule section', function () {
it('should lead to the schedule', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('.schedule').contains('a', 'Stundenplan').click();
cy.url().should('include', '/schedule/recurring');
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('.schedule').contains('a', 'Kein Eintrag gefunden').click();
cy.url().should('include', '/schedule/recurring');
});
@@ -34,7 +34,7 @@ describe('dashboard', async function () {
// cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', {
// fixture: 'search/types/date-series/date-series-1.json',
// }).as('search');
// cy.visit('/dashboard');
// cy.visit('/overview');
// cy.get('.schedule-item-button').should('exist');
// cy.window()
// .then(win => (angular = (win as any).ng))
@@ -48,14 +48,14 @@ describe('dashboard', async function () {
// }),
// );
// cy.wait('@search');
// cy.visit('/dashboard');
// cy.visit('/overview');
// cy.get('.schedule-item-button').should('contain', 'UNIcert (Test)');
//});
});
describe('mensa section', function () {
it('should have info when nothing is added', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-mensa-section').within(() => {
cy.get('.card').should('have.length', 1);
@@ -67,7 +67,7 @@ describe('dashboard', async function () {
});
it('should add a mensa', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-mensa-section').find('.card > ion-label > a').click();
cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', {
fixture: 'search/types/canteen/canteen-search-result.json',
@@ -95,7 +95,7 @@ describe('dashboard', async function () {
});
it('should have desktop navigation buttons', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-news-section').within(function () {
cy.get('.swiper-button-prev').should('exist');
@@ -104,7 +104,7 @@ describe('dashboard', async function () {
});
it('should have working desktop navigation', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-news-section').within(function () {
cy.get('.swiper-slide-active').should(
@@ -119,7 +119,7 @@ describe('dashboard', async function () {
});
it('should have a link to the news page', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.wait('@search');
cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', {
fixture: 'search/types/message/single-message.json',
@@ -130,45 +130,46 @@ describe('dashboard', async function () {
});
});
describe('navigation section', function () {
it('should have editable dashboard sections', function () {
cy.visit('/dashboard');
// TODO: Reenable tests after update of component
// describe('navigation section', function () {
// it('should have editable dashboard sections', function () {
// cy.visit('/overview');
const section = 'Vorlesungsv.';
// const section = 'Vorlesungsv.';
cy.get('stapps-navigation-section').within(() => {
cy.get('.card').should('contain.text', section);
// cy.get('stapps-navigation-section').within(() => {
// cy.get('.card').should('contain.text', section);
cy.get('ion-icon[name=edit_square]').click();
});
// cy.get('ion-icon[name=edit_square]').click();
// });
cy.get('stapps-dashboard-edit-modal').within(() => {
cy.contains('ion-item', section).find('ion-toggle').click();
// cy.get('stapps-dashboard-edit-modal').within(() => {
// cy.contains('ion-item', section).find('ion-toggle').click();
cy.contains('ion-button', 'Bestätigen').click();
});
// cy.contains('ion-button', 'Bestätigen').click();
// });
cy.get('stapps-navigation-section').within(() => {
cy.get('.card').should('not.contain.text', section);
// cy.get('stapps-navigation-section').within(() => {
// cy.get('.card').should('not.contain.text', section);
cy.get('ion-icon[name=edit_square]').click({scrollBehavior: false});
});
// cy.get('ion-icon[name=edit_square]').click({scrollBehavior: false});
// });
cy.get('stapps-dashboard-edit-modal').within(() => {
cy.contains('ion-item', section).find('ion-toggle').click();
// cy.get('stapps-dashboard-edit-modal').within(() => {
// cy.contains('ion-item', section).find('ion-toggle').click();
cy.contains('ion-button', 'Bestätigen').click();
});
// cy.contains('ion-button', 'Bestätigen').click();
// });
cy.get('stapps-navigation-section')
.find('.card')
.should('contain.text', section);
});
});
// cy.get('stapps-navigation-section')
// .find('.card')
// .should('contain.text', section);
// });
// });
describe('search section', function () {
it('should lead to the search when hitting enter', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-search-section')
.find('.searchbar')
@@ -181,7 +182,7 @@ describe('dashboard', async function () {
});
it('should go to search when clicking the icon', function () {
cy.visit('/dashboard');
cy.visit('/overview');
cy.get('stapps-search-section').find('ion-icon[name=search]').click();
cy.url().should('eq', Cypress.config().baseUrl + '/search/');

446
package-lock.json generated
View File

@@ -234,6 +234,12 @@
"brace-expansion": "^1.1.7"
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
"dev": true
},
"semver": {
"version": "7.3.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
@@ -593,12 +599,12 @@
}
},
"@babel/generator": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz",
"integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==",
"version": "7.19.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz",
"integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==",
"dev": true,
"requires": {
"@babel/types": "^7.19.3",
"@babel/types": "^7.19.4",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
}
@@ -626,9 +632,9 @@
}
},
"magic-string": {
"version": "0.26.6",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.6.tgz",
"integrity": "sha512-6d+3bFybzyQFJYSoRsl9ZC0wheze8M1LrQC7tNMRqXR4izUTDOLMd9BtSuExK9iAukFh+s5K0WAhc/dlQ+HKYA==",
"version": "0.26.7",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz",
"integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==",
"dev": true,
"requires": {
"sourcemap-codec": "^1.4.8"
@@ -729,9 +735,9 @@
}
},
"@babel/compat-data": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz",
"integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
"integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
"dev": true
},
"@babel/core": {
@@ -1044,12 +1050,12 @@
}
},
"@babel/helper-simple-access": {
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
"integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
"integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
"dev": true,
"requires": {
"@babel/types": "^7.18.6"
"@babel/types": "^7.19.4"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
@@ -1071,9 +1077,9 @@
}
},
"@babel/helper-string-parser": {
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
"integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
"integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
"dev": true
},
"@babel/helper-validator-identifier": {
@@ -1113,14 +1119,14 @@
}
},
"@babel/helpers": {
"version": "7.19.0",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz",
"integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
"integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
"dev": true,
"requires": {
"@babel/template": "^7.18.10",
"@babel/traverse": "^7.19.0",
"@babel/types": "^7.19.0"
"@babel/traverse": "^7.19.4",
"@babel/types": "^7.19.4"
},
"dependencies": {
"@babel/template": {
@@ -1193,9 +1199,9 @@
}
},
"@babel/parser": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz",
"integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz",
"integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==",
"dev": true
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
@@ -1311,14 +1317,14 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz",
"integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
"integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.18.8",
"@babel/helper-compilation-targets": "^7.18.9",
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/compat-data": "^7.19.4",
"@babel/helper-compilation-targets": "^7.19.3",
"@babel/helper-plugin-utils": "^7.19.0",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
"@babel/plugin-transform-parameters": "^7.18.8"
}
@@ -1543,12 +1549,12 @@
}
},
"@babel/plugin-transform-block-scoping": {
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz",
"integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
"integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
"@babel/helper-plugin-utils": "^7.19.0"
}
},
"@babel/plugin-transform-classes": {
@@ -1595,12 +1601,12 @@
}
},
"@babel/plugin-transform-destructuring": {
"version": "7.18.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz",
"integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
"integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
"@babel/helper-plugin-utils": "^7.19.0"
}
},
"@babel/plugin-transform-dotall-regex": {
@@ -1973,17 +1979,17 @@
}
},
"@babel/runtime": {
"version": "7.19.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz",
"integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
"integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@babel/runtime-corejs3": {
"version": "7.19.1",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz",
"integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz",
"integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==",
"dev": true,
"requires": {
"core-js-pure": "^3.25.1",
@@ -2002,30 +2008,30 @@
}
},
"@babel/traverse": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz",
"integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz",
"integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.19.3",
"@babel/generator": "^7.19.4",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/parser": "^7.19.3",
"@babel/types": "^7.19.3",
"@babel/parser": "^7.19.4",
"@babel/types": "^7.19.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
"dependencies": {
"@babel/generator": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz",
"integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==",
"version": "7.19.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz",
"integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==",
"dev": true,
"requires": {
"@babel/types": "^7.19.3",
"@babel/types": "^7.19.4",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
}
@@ -2050,12 +2056,12 @@
}
},
"@babel/types": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz",
"integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==",
"version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
"integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
"dev": true,
"requires": {
"@babel/helper-string-parser": "^7.18.10",
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
"to-fast-properties": "^2.0.0"
}
@@ -2256,12 +2262,12 @@
}
},
"@babel/generator": {
"version": "7.19.3",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz",
"integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==",
"version": "7.19.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz",
"integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==",
"dev": true,
"requires": {
"@babel/types": "^7.19.3",
"@babel/types": "^7.19.4",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
}
@@ -2627,9 +2633,9 @@
}
},
"@eslint/eslintrc": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz",
"integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==",
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
"integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -2973,9 +2979,9 @@
}
},
"@ionic/core": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.0.tgz",
"integrity": "sha512-6MR0hOdIM6sQyZyXez3/jWAnHScrZKaQxzGT2XiXXIpBrKztNdeAhqDLXoxbDU1PLyDnXXPWBzT6xZ698gG67g==",
"version": "6.3.2",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.3.2.tgz",
"integrity": "sha512-L4xqJyixmGApwYc5fQgGoK80wXGCrbjL8vGfeNbjYqxxP0ZIKGAhURPoMAtSTqLLK9gdhh4Mv6gw4gNKvxodPA==",
"requires": {
"@stencil/core": "^2.18.0",
"ionicons": "^6.0.3",
@@ -3582,21 +3588,21 @@
}
},
"@nrwl/cli": {
"version": "14.8.3",
"resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.8.3.tgz",
"integrity": "sha512-a8URAbqyZvegXMYU8pCA3Hfv0UdiDJc6HboazxinCJJgZWyqKYxRIWmKiWnfpXsr+qF6ntmBR/tC6yHbOL22gQ==",
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-15.0.0.tgz",
"integrity": "sha512-D0zAhZ375bQnoUM2HLifMzAa75A3/lC9OkkewsiVVbqaznjEIry8ezHZepgfjFRVzLr3ue7FIpDEH3iJIYzvVw==",
"dev": true,
"requires": {
"nx": "14.8.3"
"nx": "15.0.0"
},
"dependencies": {
"@nrwl/tao": {
"version": "14.8.3",
"resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.8.3.tgz",
"integrity": "sha512-lN7+1biSM/7PYMMgh3jjOXJ9fe6VjhVrtZsDcB6lcklpShjXfHXqlpXDM7vjlw19aLeZMdFWHFoU2C5BTBtzgQ==",
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-15.0.0.tgz",
"integrity": "sha512-qup1eSWYwp/KVrw/wxeWBvYttQ9dcbQnqpXb5NQMD31SpXEZSpJB1i3GV/o6CF5qQQSNLwICXZx25rNTTQAqpg==",
"dev": true,
"requires": {
"nx": "14.8.3"
"nx": "15.0.0"
}
},
"@zkochan/js-yaml": {
@@ -3609,12 +3615,14 @@
}
},
"axios": {
"version": "0.21.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
"integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz",
"integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==",
"dev": true,
"requires": {
"follow-redirects": "^1.10.0"
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"chalk": {
@@ -3679,18 +3687,18 @@
}
},
"nx": {
"version": "14.8.3",
"resolved": "https://registry.npmjs.org/nx/-/nx-14.8.3.tgz",
"integrity": "sha512-6aMYrzlTqE77vHbaE1teI5P1A2oYkJGkuDMIo/zegRwUxCAjRzLAluUgPrmgqhuPTyTDn8p4aDfxAWV3Q0o/2Q==",
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/nx/-/nx-15.0.0.tgz",
"integrity": "sha512-uh9Ou5oj7yr6Uyp4QhqW1vIVoanYn1sJM1jzOyoT17GAhhODfS0BtQgUvlmInDuRqP8LMaPg4LXFMby07U1HXg==",
"dev": true,
"requires": {
"@nrwl/cli": "14.8.3",
"@nrwl/tao": "14.8.3",
"@nrwl/cli": "15.0.0",
"@nrwl/tao": "15.0.0",
"@parcel/watcher": "2.0.4",
"@yarnpkg/lockfile": "^1.1.0",
"@yarnpkg/parsers": "^3.0.0-rc.18",
"@zkochan/js-yaml": "0.0.6",
"axios": "0.21.1",
"axios": "^1.0.0",
"chalk": "4.1.0",
"chokidar": "^3.5.1",
"cli-cursor": "3.1.0",
@@ -3871,52 +3879,39 @@
}
},
"@openstapps/api": {
"version": "0.43.0",
"resolved": "https://registry.npmjs.org/@openstapps/api/-/api-0.43.0.tgz",
"integrity": "sha512-thi+i1UzybkyZSG7rsBTWspwNO+qipPzgzmkenn5iCxCMMUNjAzDXnpzTa92ZDel7IvhjLvmfPVFBxu3wOay0g==",
"version": "0.44.0",
"resolved": "https://registry.npmjs.org/@openstapps/api/-/api-0.44.0.tgz",
"integrity": "sha512-ZVSt5JiN2ESgTxrNR0IRPbeMtmXATdytAeXMbtDFeKgwFb9uJAt6jZIto9sHQHZg2kJG6Ka9ycFaMstflZjLOg==",
"requires": {
"@krlwlfrt/async-pool": "0.7.0",
"@openstapps/core": "0.69.0",
"@openstapps/core": "0.71.0",
"@openstapps/core-tools": "0.32.0",
"@openstapps/logger": "1.0.0",
"@openstapps/logger": "1.0.1",
"@types/cli-progress": "3.11.0",
"@types/express": "4.17.13",
"@types/express": "4.17.14",
"@types/morgan": "1.9.3",
"@types/node": "14.18.24",
"@types/node": "14.18.32",
"@types/traverse": "0.6.32",
"@types/uuid": "8.3.4",
"@types/wait-on": "5.3.1",
"body-parser": "1.20.0",
"body-parser": "1.20.1",
"cli-progress": "3.11.2",
"commander": "9.4.0",
"express": "4.18.1",
"commander": "9.4.1",
"express": "4.18.2",
"got": "11.8.5",
"json-schema": "0.4.0",
"moment": "2.29.4",
"morgan": "1.10.0",
"rfdc": "1.3.0",
"traverse": "0.6.6",
"traverse": "0.6.7",
"uuid": "8.3.2",
"wait-on": "6.0.1"
},
"dependencies": {
"@openstapps/core": {
"version": "0.69.0",
"resolved": "https://registry.npmjs.org/@openstapps/core/-/core-0.69.0.tgz",
"integrity": "sha512-IaUb10IfldokrqopdqsyHl5j3rVvg8CA10s2E+WpVOjgkXnW8SP9jVg5AP0jx3vgN3e0xHsrPtvrZWTPgyoSRQ==",
"requires": {
"@openstapps/core-tools": "0.32.0",
"@types/geojson": "1.0.6",
"@types/json-patch": "0.0.30",
"@types/json-schema": "7.0.11",
"@types/node": "14.18.24",
"fast-deep-equal": "3.1.3",
"http-status-codes": "2.2.0",
"json-patch": "0.7.0",
"json-schema": "0.4.0",
"rfdc": "1.3.0",
"ts-optchain": "0.1.8"
}
"@types/node": {
"version": "14.18.32",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.32.tgz",
"integrity": "sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow=="
}
}
},
@@ -3934,6 +3929,11 @@
"yaml": "1.10.2"
},
"dependencies": {
"commander": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
"integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw=="
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -3953,9 +3953,9 @@
}
},
"@openstapps/core": {
"version": "0.70.0",
"resolved": "https://registry.npmjs.org/@openstapps/core/-/core-0.70.0.tgz",
"integrity": "sha512-obLFSiI5P0cEAeadxEQ1Wbbe/FDiSi0p4azpmszUPyshpSXKqt4y6F4Z+dnswBSe85wtPg/PuHC1MYZ79SJB4g==",
"version": "0.71.0",
"resolved": "https://registry.npmjs.org/@openstapps/core/-/core-0.71.0.tgz",
"integrity": "sha512-5RpbidtKknzx8/zmHUfppNHH1UuJSevO4Sr444HmW9voULSnlaghzIGyjUuuAjCm/LCG30WVhKTe3/nWZAnCbg==",
"requires": {
"@openstapps/core-tools": "0.32.0",
"@types/geojson": "1.0.6",
@@ -3999,6 +3999,24 @@
"ts-node": "10.9.1"
},
"dependencies": {
"@openstapps/logger": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-1.0.0.tgz",
"integrity": "sha512-ImCfnLJWHWwFJ1W7KCIWgFe7EXI0cAtap0Dznz+758BPAlLZ+hJHSbIbGHWwEAfRNAB53TIABF5npSsKSDq4Sw==",
"requires": {
"@types/node": "14.18.24",
"@types/nodemailer": "6.4.5",
"chalk": "4.1.2",
"flatted": "3.2.6",
"moment": "2.29.4",
"nodemailer": "6.7.8"
}
},
"commander": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
"integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw=="
},
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -4079,16 +4097,41 @@
}
},
"@openstapps/logger": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-1.0.0.tgz",
"integrity": "sha512-ImCfnLJWHWwFJ1W7KCIWgFe7EXI0cAtap0Dznz+758BPAlLZ+hJHSbIbGHWwEAfRNAB53TIABF5npSsKSDq4Sw==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-1.0.1.tgz",
"integrity": "sha512-ekiqaj07NG2JKUdJBSoLTYJTz1sEtzJsGoz0F19s0h2A9fxP2duWD7bIcqfOcxj5Wggxr88zX/AK8cZG4Gda4g==",
"requires": {
"@types/node": "14.18.24",
"@types/nodemailer": "6.4.5",
"@types/node": "14.18.32",
"@types/nodemailer": "6.4.6",
"chalk": "4.1.2",
"flatted": "3.2.6",
"flatted": "3.2.7",
"moment": "2.29.4",
"nodemailer": "6.7.8"
"nodemailer": "6.8.0"
},
"dependencies": {
"@types/node": {
"version": "14.18.32",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.32.tgz",
"integrity": "sha512-Y6S38pFr04yb13qqHf8uk1nHE3lXgQ30WZbv1mLliV9pt0NjvqdWttLcrOYLnXbOafknVYRHZGoMSpR9UwfYow=="
},
"@types/nodemailer": {
"version": "6.4.6",
"resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.6.tgz",
"integrity": "sha512-pD6fL5GQtUKvD2WnPmg5bC2e8kWCAPDwMPmHe/ohQbW+Dy0EcHgZ2oCSuPlWNqk74LS5BVMig1SymQbFMPPK3w==",
"requires": {
"@types/node": "*"
}
},
"flatted": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
},
"nodemailer": {
"version": "6.8.0",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.8.0.tgz",
"integrity": "sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ=="
}
}
},
"@parcel/watcher": {
@@ -4161,9 +4204,9 @@
"integrity": "sha512-/fXkh1lwZ+X9JQCw50mPjhBogzEHOBvVC5pLoDLZqodVYK0DGWILM2YLV4dcIUBNEK8/HMDpO/Rq81/rS3mNOw=="
},
"@swc/helpers": {
"version": "0.4.11",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz",
"integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==",
"version": "0.4.12",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.12.tgz",
"integrity": "sha512-R6RmwS9Dld5lNvwKlPn62+piU+WDG1sMfsnfJioXCciyko/gZ0DQ4Mqglhq1iGU1nQ/RcGkAwfMH+elMSkJH3Q==",
"dev": true,
"requires": {
"tslib": "^2.4.0"
@@ -4323,9 +4366,9 @@
"dev": true
},
"@types/express": {
"version": "4.17.13",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
"integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
"version": "4.17.14",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
"integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.18",
@@ -5122,9 +5165,9 @@
"dev": true
},
"@yarnpkg/parsers": {
"version": "3.0.0-rc.22",
"resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.22.tgz",
"integrity": "sha512-GAWDjXduYBUVmOzlj3X0OwTQ1BV4ZeDdgw8yXST3K0lB95drWEGxa1at0v7BmHDyK2y1F1IJufc8N4yrcuXjWg==",
"version": "3.0.0-rc.25",
"resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.25.tgz",
"integrity": "sha512-uotaIJwVQeV/DcGA9G2EVuVFHnEEdxDy3yRLeh9VHS6Lx7nZETaWzJPU1bgAwnAa3gplol2NIQhlsr2eqgq9qA==",
"dev": true,
"requires": {
"js-yaml": "^3.10.0",
@@ -5851,9 +5894,9 @@
"dev": true
},
"body-parser": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
"integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
"integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
"requires": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
@@ -5863,7 +5906,7 @@
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.10.3",
"qs": "6.11.0",
"raw-body": "2.5.1",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
@@ -6240,9 +6283,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001418",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz",
"integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==",
"version": "1.0.30001421",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001421.tgz",
"integrity": "sha512-Sw4eLbgUJAEhjLs1Fa+mk45sidp1wRn5y6GtDpHGBaNJ9OCDJaVh2tIaWWUnGfuXfKf1JCBaIarak3FkVAvEeA==",
"dev": true
},
"capacitor-secure-storage-plugin": {
@@ -6463,9 +6506,9 @@
"dev": true
},
"ci-info": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz",
"integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==",
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
"integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
"dev": true
},
"circular-dependency-plugin": {
@@ -6651,9 +6694,9 @@
}
},
"commander": {
"version": "9.4.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
"integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw=="
"version": "9.4.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
"integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw=="
},
"comment-parser": {
"version": "1.3.1",
@@ -7080,21 +7123,10 @@
}
},
"convert-source-map": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
"integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
"dev": true
}
}
},
"cookie": {
"version": "0.5.0",
@@ -7699,9 +7731,9 @@
}
},
"defaults": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
"integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
"integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
"dev": true,
"requires": {
"clone": "^1.0.2"
@@ -8036,9 +8068,9 @@
}
},
"electron-to-chromium": {
"version": "1.4.275",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.275.tgz",
"integrity": "sha512-aJeQQ+Hl9Jyyzv4chBqYJwmVRY46N5i2BEX5Cuyk/5gFCUZ5F3i7Hnba6snZftWla7Gglwc5pIgcd+E7cW+rPg==",
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
"dev": true
},
"elementtree": {
@@ -8935,13 +8967,13 @@
"dev": true
},
"express": {
"version": "4.18.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
"integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"version": "4.18.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
"integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.0",
"body-parser": "1.20.1",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.5.0",
@@ -8960,7 +8992,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.10.3",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.18.0",
@@ -10975,9 +11007,9 @@
"dev": true
},
"joi": {
"version": "17.6.2",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.6.2.tgz",
"integrity": "sha512-+gqqdh1xc1wb+Lor0J9toqgeReyDOCqOdG8QSdRcEvwrcRiFQZneUCGKjFjuyBWUb3uaFOgY56yMaZ5FIc+H4w==",
"version": "17.6.3",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.6.3.tgz",
"integrity": "sha512-YlQsIaS9MHYekzf1Qe11LjTkNzx9qhYluK3172z38RxYoAUf82XMX1p1DG1H4Wtk2ED/vPdSn9OggqtDu+aTow==",
"requires": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
@@ -12337,9 +12369,9 @@
}
},
"minimist": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
},
"minimist-options": {
"version": "4.1.0",
@@ -12537,9 +12569,9 @@
"dev": true
},
"nan": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
"integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA=="
"version": "2.17.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
"integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
},
"nanoid": {
"version": "3.3.4",
@@ -12711,9 +12743,9 @@
"dev": true
},
"node-gyp": {
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.2.0.tgz",
"integrity": "sha512-/+/YxGfIJOh/fnMsr4Ep0v6oOIjnO1BgLd2dcDspBX1spTkQU7xSIox5RdRE/2/Uq3ZwK8Z5swRIbMUmPlslmg==",
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz",
"integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==",
"requires": {
"env-paths": "^2.2.0",
"glob": "^7.1.4",
@@ -13530,9 +13562,9 @@
}
},
"pdfmake": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.5.tgz",
"integrity": "sha512-NlayjehMtuZEdw2Lyipf/MxOCR2vATZQ7jn8cH0/dHwsNb+mqof9/6SW4jZT5p+So4qz+0mD21KG81+dDQSEhA==",
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.6.tgz",
"integrity": "sha512-gZARnKLJjTuHWKIkqF4G6dafIaPfH7NFqBz9U9wb26PV5koHQ5eeQ/0rgZmIdfJzMKqHzXB9aK25ykG2AnnzEQ==",
"dev": true,
"requires": {
"@foliojs-fork/linebreak": "^1.1.1",
@@ -14602,9 +14634,9 @@
"dev": true
},
"qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
"integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"requires": {
"side-channel": "^1.0.4"
}
@@ -15030,9 +15062,9 @@
}
},
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
"version": "0.13.10",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz",
"integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw=="
},
"regenerator-transform": {
"version": "0.15.0",
@@ -15878,9 +15910,9 @@
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
},
"socket.io": {
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.2.tgz",
"integrity": "sha512-6fCnk4ARMPZN448+SQcnn1u8OHUC72puJcNtSgg2xS34Cu7br1gQ09YKkO1PFfDn/wyUE9ZgMAwosJed003+NQ==",
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.3.tgz",
"integrity": "sha512-zdpnnKU+H6mOp7nYRXH4GNv1ux6HL6+lHL8g7Ds7Lj8CkdK1jJK/dlwsKDculbyOHifcJ0Pr/yeXnZQ5GeFrcg==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
@@ -16871,13 +16903,13 @@
},
"dependencies": {
"@jridgewell/trace-mapping": {
"version": "0.3.15",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
"integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
"version": "0.3.17",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
"integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
"@jridgewell/resolve-uri": "3.1.0",
"@jridgewell/sourcemap-codec": "1.4.14"
}
},
"ajv": {
@@ -17038,9 +17070,9 @@
}
},
"traverse": {
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
"integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw=="
"version": "0.6.7",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz",
"integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg=="
},
"tree-kill": {
"version": "1.2.2",
@@ -17249,9 +17281,9 @@
"dev": true
},
"ua-parser-js": {
"version": "0.7.31",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
"integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
"version": "0.7.32",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz",
"integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==",
"dev": true
},
"uglify-js": {

View File

@@ -85,9 +85,9 @@
"@ionic/storage-angular": "3.0.6",
"@ngx-translate/core": "14.0.0",
"@ngx-translate/http-loader": "7.0.0",
"@openstapps/api": "0.43.0",
"@openstapps/api": "0.44.0",
"@openstapps/configuration": "0.33.0",
"@openstapps/core": "0.70.0",
"@openstapps/core": "0.71.0",
"@transistorsoft/capacitor-background-fetch": "1.0.0",
"capacitor-secure-storage-plugin": "0.8.0",
"cordova-plugin-calendar": "5.1.6",

View File

@@ -159,7 +159,6 @@ export const sampleIndexResponse: SCIndexResponse = {
menus: [
{
icon: 'icon',
id: 'main',
items: [
{
icon: 'icon',
@@ -175,13 +174,14 @@ export const sampleIndexResponse: SCIndexResponse = {
},
},
],
name: 'main',
title: 'main',
route: '/main',
translations: {
de: {
name: 'Haupt',
title: 'Haupt',
},
en: {
name: 'main',
title: 'main',
},
},
},

View File

@@ -15,9 +15,7 @@
import {NgModule} from '@angular/core';
import {PreloadAllModules, RouterModule, Routes} from '@angular/router';
const routes: Routes = [
{path: '', redirectTo: '/dashboard', pathMatch: 'full'},
];
const routes: Routes = [{path: '', redirectTo: '/overview', pathMatch: 'full'}];
/**
* TODO
@@ -30,7 +28,7 @@ const routes: Routes = [
errorHandler: error => {
// Handle unknown routes, at the moment this can only be done via window.location
if (error.message.includes('Cannot match any routes')) {
window.location.href = '/dashboard';
window.location.href = '/overview';
}
},
}),

View File

@@ -49,7 +49,6 @@
</div>
<ion-content fullscreen="true" #ionContent>
<stapps-navigation-section></stapps-navigation-section>
<stapps-search-section
#search
(focusin)="onSearchBarFocus($event)"

View File

@@ -37,7 +37,7 @@ import {IonIconModule} from '../../util/ion-icon/ion-icon.module';
const catalogRoutes: Routes = [
{
path: 'dashboard',
path: 'overview',
component: DashboardComponent,
},
];

View File

@@ -30,13 +30,24 @@
</ion-toolbar>
</ion-header>
<ion-content *ngIf="menu">
<ion-list *ngFor="let category of menu">
<ion-list-header *ngIf="category.name !== ''">
<ion-list *ngFor="let category of menu; first as isFirst">
<ion-item
*ngIf="category.title !== ''"
[rootLink]="category.route"
[redirectedFrom]="isFirst ? '/' : category.route"
lines="none"
class="menu-category"
>
<ion-icon slot="end" [name]="category.icon"></ion-icon>
<ion-label>
{{ category.translations[language].name | titlecase }}
{{ category.translations[language].title | titlecase }}
</ion-label>
</ion-list-header>
<ion-item *ngFor="let item of category.items" [rootLink]="item.route">
</ion-item>
<ion-item
*ngFor="let item of category.items"
[rootLink]="item.route"
[redirectedFrom]="item.route"
>
<ion-icon slot="end" [name]="item.icon"></ion-icon>
<ion-label>
{{ item.translations[language].title | titlecase }}

View File

@@ -51,6 +51,13 @@ ion-router-outlet {
background: white;
}
.menu-category {
ion-label {
font-weight: bold;
font-size: 115%;
}
}
.link-active > * {
color: var(--ion-color-primary);

View File

@@ -19,7 +19,7 @@ import {RouterModule, Routes} from '@angular/router';
const routes: Routes = [
{
path: '',
redirectTo: '/dashboard',
redirectTo: '/overview',
pathMatch: 'full',
},
];

View File

@@ -14,6 +14,7 @@
*/
import {Component} from '@angular/core';
import {NavigationEnd, Router} from '@angular/router';
import {
SCAppConfigurationMenuCategory,
SCLanguage,
@@ -33,29 +34,44 @@ export class TabsComponent {
/**
* Possible languages to be used for translation
*/
language: keyof SCTranslations<SCLanguage> = 'en';
language: keyof SCTranslations<SCLanguage>;
/**
* Menu entries from config module
*/
menu: SCAppConfigurationMenuCategory;
menu: SCAppConfigurationMenuCategory[];
/**
* Core translator
*/
translator: SCThingTranslator;
/**
* Name of selected tab
*/
selectedTab: string;
constructor(
private readonly configProvider: ConfigProvider,
public translateService: TranslateService,
private readonly logger: NGXLogger,
private readonly router: Router,
) {
this.language = this.translateService
.currentLang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
void this.loadMenuEntries();
this.router.events.subscribe((event: unknown) => {
if (event instanceof NavigationEnd) {
this.selectTab(event.url);
}
});
this.selectTab(router.url);
translateService.onLangChange?.subscribe((event: LangChangeEvent) => {
this.language = event.lang as keyof SCTranslations<SCLanguage>;
this.translator = new SCThingTranslator(this.language);
});
this.translator = new SCThingTranslator('en');
}
/**
@@ -67,7 +83,7 @@ export class TabsComponent {
'menus',
)) as SCAppConfigurationMenuCategory[];
const menu = menus.find(menu => menu.id === 'main');
const menu = menus.slice(0, 5);
if (menu) {
this.menu = menu;
}
@@ -75,4 +91,19 @@ export class TabsComponent {
this.logger.error(`error from loading menu entries: ${error}`);
}
}
/* eslint-disable @typescript-eslint/no-explicit-any */
selectTab(url: string) {
if (!this.menu) {
return;
}
if (url === '/') {
this.selectedTab = (this.menu[0] as any)?.title ?? '';
return;
}
const candidate = this.menu
.slice(0, 5)
.find(category => url.includes(category.route));
this.selectedTab = candidate?.title ?? '';
}
}

View File

@@ -16,6 +16,7 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import {CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
import {TestBed, waitForAsync} from '@angular/core/testing';
import {RouterTestingModule} from '@angular/router/testing';
import {TabsComponent} from './tabs.component';
import {ConfigProvider} from '../../config/config.provider';
@@ -80,7 +81,7 @@ describe('Tabs', () => {
TestBed.configureTestingModule({
declarations: [TabsComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [TranslateModule.forRoot()],
imports: [RouterTestingModule, TranslateModule.forRoot()],
providers: [
{provide: Platform, useValue: platformSpy},
{provide: TranslateService, useValue: translateServiceSpy},

View File

@@ -12,9 +12,9 @@
~ You should have received a copy of the GNU General Public License along with
~ this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!--
<ion-tab-bar slot="bottom">
<ion-tab-button rootLink="/dashboard" redirectedFrom="/" tab="dashboard">
<ion-tab-button rootLink="/overview" redirectedFrom="/" tab="overview">
<ion-icon name="home"></ion-icon>
<ion-label>{{ 'tabs.home' | translate }}</ion-label>
</ion-tab-button>
@@ -31,3 +31,18 @@
<ion-label>{{ 'tabs.map' | translate }}</ion-label>
</ion-tab-button>
</ion-tab-bar>
-->
<ion-tab-bar slot="bottom" [selectedTab]="selectedTab">
<ion-tab-button
*ngFor="let category of menu; first as isFirst"
[rootLink]="category.route"
[redirectedFrom]="category.route"
[tab]="category.title"
>
<ion-icon [name]="category.icon"></ion-icon>
<ion-label>{{
category.translations[language].title | titlecase
}}</ion-label>
</ion-tab-button>
</ion-tab-bar>

View File

@@ -30,13 +30,6 @@
"UNKNOWN": "Unbekannter Fehler."
}
},
"tabs": {
"home": "Home",
"canteens": "Mensa",
"schedule": "Studium",
"map": "Karte",
"profile": "Profil"
},
"assessments": {
"TITLE": "Noten",
"courseOfStudyAssessments": {

View File

@@ -30,13 +30,6 @@
"UNKNOWN": "Unknown problem."
}
},
"tabs": {
"home": "Home",
"canteens": "Canteens",
"schedule": "Study",
"map": "Map",
"profile": "Profile"
},
"assessments": {
"TITLE": "Grades",
"courseOfStudyAssessments": {