@sumaris-net/ngx-components 2.4.128 → 2.4.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/app/core/menu/menu.model.mjs +7 -6
- package/esm2020/src/app/core/menu/menu.service.mjs +16 -15
- package/esm2020/src/app/core/menu/sub-menu-tab.directive.mjs +13 -13
- package/esm2020/src/app/core/menu/testing/menu-other.testing.mjs +5 -4
- package/esm2020/src/app/core/menu/testing/menu.testing.mjs +13 -7
- package/esm2020/src/app/core/menu/testing/menu.testing.module.mjs +2 -2
- package/esm2020/src/environments/environment.mjs +5 -5
- package/fesm2015/sumaris-net.ngx-components.mjs +48 -40
- package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
- package/fesm2020/sumaris-net.ngx-components.mjs +48 -40
- package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/menu/menu.service.d.ts +3 -3
- package/src/app/core/menu/testing/menu.testing.d.ts +5 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, ViewChild } from '@angular/core';
|
|
2
2
|
import { AppTabEditor } from '../../form/entity/editor.class';
|
|
3
|
-
import {
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/router";
|
|
6
6
|
import * as i2 from "@ionic/angular";
|
|
@@ -14,15 +14,22 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
14
14
|
constructor(route, // Modal editor give 'null'
|
|
15
15
|
router, navController, alertCtrl, translate, menuService) {
|
|
16
16
|
super(route, router, navController, alertCtrl, translate, {
|
|
17
|
-
tabCount: 3
|
|
17
|
+
tabCount: 3,
|
|
18
18
|
});
|
|
19
19
|
this.menuService = menuService;
|
|
20
20
|
this.logPrefix = '[menu-testing] ';
|
|
21
21
|
this.childPath = '';
|
|
22
22
|
this.title = '';
|
|
23
|
-
this.secondTabTitle = '';
|
|
24
23
|
this.thirdTabTitle = '';
|
|
25
24
|
this.parentPath = null;
|
|
25
|
+
this.showOtherLinks = true;
|
|
26
|
+
this.$secondTabTitle = new BehaviorSubject('Second');
|
|
27
|
+
}
|
|
28
|
+
set secondTabTitle(value) {
|
|
29
|
+
this.$secondTabTitle.next(value);
|
|
30
|
+
}
|
|
31
|
+
get secondTabTitle() {
|
|
32
|
+
return this.$secondTabTitle.value;
|
|
26
33
|
}
|
|
27
34
|
ngOnInit() {
|
|
28
35
|
console.debug(`${this.logPrefix} Init page...`);
|
|
@@ -55,7 +62,6 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
55
62
|
this.menuService.toggleSplitPaneWhen();
|
|
56
63
|
}
|
|
57
64
|
async initSubMenu() {
|
|
58
|
-
const pathParam = MenuItems.parsePathWithQuery(this.router.url);
|
|
59
65
|
this.title = 'Menu';
|
|
60
66
|
this.secondTabTitle = 'Others';
|
|
61
67
|
this.thirdTabTitle = 'Third';
|
|
@@ -69,12 +75,12 @@ export class MenuTestingPage extends AppTabEditor {
|
|
|
69
75
|
}
|
|
70
76
|
}
|
|
71
77
|
MenuTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuTestingPage, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NavController }, { token: i2.AlertController }, { token: i3.TranslateService }, { token: i4.MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
72
|
-
MenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuTestingPage, selector: "app-testing-menu", viewQueries: [{ propertyName: "toggleThird", first: true, predicate: ["toggleThird"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
78
|
+
MenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuTestingPage, selector: "app-testing-menu", viewQueries: [{ propertyName: "toggleThird", first: true, predicate: ["toggleThird"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: ["label", "disabled", "parentPath", "path", "subMenuTitle"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]", inputs: ["routerDirection", "routerAnimation"] }, { kind: "component", type: i7.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i7.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i7.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i8.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
|
|
73
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuTestingPage, decorators: [{
|
|
74
80
|
type: Component,
|
|
75
|
-
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
81
|
+
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"] }]
|
|
76
82
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NavController }, { type: i2.AlertController }, { type: i3.TranslateService }, { type: i4.MenuService }]; }, propDecorators: { toggleThird: [{
|
|
77
83
|
type: ViewChild,
|
|
78
84
|
args: ['toggleThird']
|
|
79
85
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL21lbnUvdGVzdGluZy9tZW51LnRlc3RpbmcudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvbWVudS90ZXN0aW5nL21lbnUudGVzdGluZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFPdkMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQW1CL0MsWUFDRSxLQUFxQixFQUFFLDJCQUEyQjtJQUNsRCxNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsU0FBMEIsRUFDMUIsU0FBMkIsRUFDakIsV0FBd0I7UUFFbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUU7WUFDeEQsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFDLENBQUM7UUFKTyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXRCMUIsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV0QixvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFTLFFBQVEsQ0FBQyxDQUFDO0lBb0JsRSxDQUFDO0lBbEJELElBQWMsY0FBYyxDQUFDLEtBQWE7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQWMsY0FBYztRQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFlRCxRQUFRO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGVBQWUsQ0FBQyxDQUFDO1FBRWhELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGVBQWUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLENBQUMsRUFBVyxFQUFFLE9BQWE7UUFDN0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBd0IsRUFBRSxPQUFZO1FBQ3pDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNTLG1CQUFtQjtRQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDekMsQ0FBQztJQUNTLEtBQUssQ0FBQyxXQUFXO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsNkJBQTZCLENBQUM7UUFDL0MsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVTLHVCQUF1QjtRQUMvQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7OzRHQWxGVSxlQUFlO2dHQUFmLGVBQWUsMkxDYjVCLHkxRUFtRkE7MkZEdEVhLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0Usa0JBQWtCOzZPQUtGLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwVGFiRWRpdG9yIH0gZnJvbSAnLi4vLi4vZm9ybS9lbnRpdHkvZWRpdG9yLmNsYXNzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBJb25Ub2dnbGUsIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRlc3RpbmctbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LnRlc3RpbmcuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUudGVzdGluZy5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVUZXN0aW5nUGFnZSBleHRlbmRzIEFwcFRhYkVkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndG9nZ2xlVGhpcmQnKSB0b2dnbGVUaGlyZDogSW9uVG9nZ2xlO1xuXG4gIHByb3RlY3RlZCBsb2dQcmVmaXggPSAnW21lbnUtdGVzdGluZ10gJztcbiAgcHJvdGVjdGVkIGNoaWxkUGF0aCA9ICcnO1xuICBwcm90ZWN0ZWQgdGl0bGUgPSAnJztcbiAgcHJvdGVjdGVkIHRoaXJkVGFiVGl0bGUgPSAnJztcbiAgcHJvdGVjdGVkIHBhcmVudFBhdGg6IHN0cmluZyA9IG51bGw7XG4gIHByb3RlY3RlZCBzaG93T3RoZXJMaW5rcyA9IHRydWU7XG5cbiAgcHJvdGVjdGVkICRzZWNvbmRUYWJUaXRsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignU2Vjb25kJyk7XG5cbiAgcHJvdGVjdGVkIHNldCBzZWNvbmRUYWJUaXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy4kc2Vjb25kVGFiVGl0bGUubmV4dCh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzZWNvbmRUYWJUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiRzZWNvbmRUYWJUaXRsZS52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgLy8gTW9kYWwgZWRpdG9yIGdpdmUgJ251bGwnXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZVxuICApIHtcbiAgICBzdXBlcihyb3V0ZSwgcm91dGVyLCBuYXZDb250cm9sbGVyLCBhbGVydEN0cmwsIHRyYW5zbGF0ZSwge1xuICAgICAgdGFiQ291bnQ6IDMsXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fSBJbml0IHBhZ2UuLi5gKTtcblxuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5pbml0U3ViTWVudSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICBjb25zb2xlLmRlYnVnKGAke3RoaXMubG9nUHJlZml4fURlc3Ryb3lpbmcuLi5gKTtcbiAgfVxuXG4gIGxvYWQoaWQ/OiBudW1iZXIsIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBnZXQgaXNOZXdEYXRhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBzYXZlKGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZCwgb3B0aW9uczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5hYmxlTWVudSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubWVudVNlcnZpY2UuZW5hYmxlKHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgdG9nZ2xlU3BsaXRQYW5lV2hlbigpIHtcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLnRvZ2dsZVNwbGl0UGFuZVdoZW4oKTtcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgaW5pdFN1Yk1lbnUoKSB7XG4gICAgdGhpcy50aXRsZSA9ICdNZW51JztcbiAgICB0aGlzLnNlY29uZFRhYlRpdGxlID0gJ090aGVycyc7XG4gICAgdGhpcy50aGlyZFRhYlRpdGxlID0gJ1RoaXJkJztcbiAgICB0aGlzLnBhcmVudFBhdGggPSAnL3Rlc3RpbmcnO1xuICAgIHRoaXMuY2hpbGRQYXRoID0gJy90ZXN0aW5nL3NoYXJlZC9tZW51L290aGVycyc7XG4gICAgY29uc3QgcGF0aCA9ICcvdGVzdGluZy9zaGFyZWQvbWVudSc7XG4gICAgY29uc29sZS5kZWJ1ZyhgJHt0aGlzLmxvZ1ByZWZpeH0gU2V0dXAgd2l0aGAsIHsgcGF0aCwgcGFyZW50UGF0aDogdGhpcy5wYXJlbnRQYXRoIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpcnN0SW52YWxpZFRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiIsIjxhcHAtdG9vbGJhciBbZGVmYXVsdEJhY2tIcmVmXT1cInBhcmVudFBhdGhcIj5cbiAgPGlvbi10aXRsZT57eyB0aXRsZSB9fTwvaW9uLXRpdGxlPlxuPC9hcHAtdG9vbGJhcj5cblxuPGlvbi1jb250ZW50PlxuXG4gIDxtYXQtdGFiLWdyb3VwICN0YWJHcm91cFxuICAgICAgICAgICAgICAgICBbKHNlbGVjdGVkSW5kZXgpXT1cInNlbGVjdGVkVGFiSW5kZXhcIlxuICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25UYWJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIGR5bmFtaWNIZWlnaHQ+XG5cbiAgICA8IS0tIFRBQjogMSAtLT5cbiAgICA8bWF0LXRhYiBhcHBTdWJNZW51VGFiIFtzdWJNZW51VGl0bGVdPVwidGl0bGVcIiBbcGFyZW50UGF0aF09XCJwYXJlbnRQYXRoXCIgbGFiZWw9XCJEZXRhaWxzXCIgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgIDxpb24tbGFiZWw+RGV0YWlsczwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIDxwPkEgZmlyc3QgdGFiPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tdG9nZ2xlICN0b2dnbGVUaGlyZD5cbiAgICAgICAgICAgIFRvZ2dsZSBUaGlyZCBUYWJcbiAgICAgICAgICA8L2lvbi10b2dnbGU+XG4gICAgICAgIDwvcD5cblxuICAgICAgICA8cD5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudShmYWxzZSlcIiAqbmdJZj1cIm1lbnVTZXJ2aWNlLmVuYWJsZWR8YXN5bmNcIj5cbiAgICAgICAgICAgIERpc2FibGUgbWVudVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiZW5hYmxlTWVudSh0cnVlKVwiICpuZ0lmPVwiIShtZW51U2VydmljZS5lbmFibGVkfGFzeW5jKVwiPlxuICAgICAgICAgICAgRW5hYmxlIG1lbnVcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVNwbGl0UGFuZVdoZW4oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEobWVudVNlcnZpY2UuZW5hYmxlZHxhc3luYylcIj5cbiAgICAgICAgICAgIFRvZ2dsZSBzcGxpdCBwYW5lXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvbWF0LXRhYj5cblxuICAgIDwhLS0gVEFCOiAyIC0tPlxuICAgIDxtYXQtdGFiIGFwcFN1Yk1lbnVUYWIgW2xhYmVsXT1cIiRzZWNvbmRUYWJUaXRsZXxhc3luY1wiIGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICA8aW9uLWxhYmVsPnt7JHNlY29uZFRhYlRpdGxlfGFzeW5jfX08L2lvbi1sYWJlbD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICA8cD5BIHNlY29uZCB0YWI8L3A+XG5cbiAgICAgICAgPHAgKm5nSWY9XCJzaG93T3RoZXJMaW5rc1wiPlxuICAgICAgICAgIE5hdmlnYXRlIHRvIDogPGEgW3JvdXRlckxpbmtdPVwiY2hpbGRQYXRoKycvMSdcIiA+XG4gICAgICAgICAgICB7eyBjaGlsZFBhdGggfX0vMVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnIvPlxuICAgICAgICAgIE5hdmlnYXRlIHRvIDogPGEgW3JvdXRlckxpbmtdPVwiY2hpbGRQYXRoKycvMidcIiA+XG4gICAgICAgICAgICB7eyBjaGlsZFBhdGggfX0vMlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxwPlxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzZWNvbmRUYWJUaXRsZSA9IHNlY29uZFRhYlRpdGxlICsgJ18nXCI+XG4gICAgICAgICAgICBDaGFuZ2UgdGFiIGxhYmVsXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvbWF0LXRhYj5cblxuICAgIDwhLS0gVEFCOiAzIC0tPlxuICAgIDxtYXQtdGFiIGFwcFN1Yk1lbnVUYWIgW2xhYmVsXT1cInRoaXJkVGFiVGl0bGVcIiBjbGFzcz1cImlvbi1wYWRkaW5nXCIgW2Rpc2FibGVkXT1cIiF0b2dnbGVUaGlyZC5jaGVja2VkXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgPGlvbi1sYWJlbD57e3RoaXJkVGFiVGl0bGV9fTwvaW9uLWxhYmVsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICAgIEEgdGhpcmQgdGFiXG4gICAgICA8L2Rpdj5cblxuICAgIDwvbWF0LXRhYj5cbiAgPC9tYXQtdGFiLWdyb3VwPlxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { RouterModule } from '@angular/router';
|
|
|
4
4
|
import { MenuTestingPage } from './menu.testing';
|
|
5
5
|
import { AppMenuModule } from '../menu.module';
|
|
6
6
|
import { SharedModule } from '../../../shared/shared.module';
|
|
7
|
-
import { OtherMenuTestingPage } from
|
|
7
|
+
import { OtherMenuTestingPage } from './menu-other.testing';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/router";
|
|
10
10
|
const routes = [
|
|
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
81
81
|
],
|
|
82
82
|
}]
|
|
83
83
|
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9tZW51L3Rlc3RpbmcvbWVudS50ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUUxRCxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLE1BQU07U0FFYjtRQUNELFFBQVEsRUFBRTtZQUNSO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixTQUFTLEVBQUUsZUFBZTtnQkFDMUIsSUFBSSxFQUFFO29CQUNKLElBQUksRUFBRSxPQUFPO2lCQUNkO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxtQ0FBbUM7Z0JBQ25DLFFBQVEsRUFBRTtvQkFDUjt3QkFDRSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsU0FBUyxFQUFFLG9CQUFvQjtxQkFDaEM7aUJBQ0Y7Z0JBQ0QsaUJBQWlCO2dCQUNqQixvRkFBb0Y7Z0JBQ3BGLHlEQUF5RDtnQkFDekQsRUFBRTtnQkFDRiw4Q0FBOEM7Z0JBQzlDLDZDQUE2QztnQkFDN0MsK0JBQStCO2dCQUMvQiw0Q0FBNEM7Z0JBQzVDLGNBQWM7Z0JBQ2QsUUFBUTtnQkFDUixFQUFFO2dCQUNGLG1CQUFtQjtnQkFDbkIsTUFBTTtnQkFDTixJQUFJO2FBQ0w7U0FDRjtLQUNGO0NBRUYsQ0FBQztBQW1CRixNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBVDFCLGVBQWU7UUFDZixvQkFBb0IsYUFQcEIsWUFBWSxtQkFFWixhQUFhO1FBQ2IsWUFBWSxhQU9aLFlBQVk7UUFDWixlQUFlO1FBQ2Ysb0JBQW9COytHQUdYLGlCQUFpQixZQWYxQixZQUFZO1FBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDN0IsYUFBYTtRQUNiLFlBQVksRUFPWixZQUFZOzJGQUtILGlCQUFpQjtrQkFqQjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7d0JBQzdCLGFBQWE7d0JBQ2IsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtNZW51VGVzdGluZ1BhZ2V9IGZyb20gJy4vbWVudS50ZXN0aW5nJztcbmltcG9ydCB7QXBwTWVudU1vZHVsZX0gZnJvbSAnLi4vbWVudS5tb2R1bGUnO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7T3RoZXJNZW51VGVzdGluZ1BhZ2V9IGZyb20gJy4vbWVudS1vdGhlci50ZXN0aW5nJztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnbWVudScsXG4gICAgZGF0YToge1xuICAgICAgdGVzdDogJ21lbnUnLFxuXG4gICAgfSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAge1xuICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgIGNvbXBvbmVudDogTWVudVRlc3RpbmdQYWdlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGVzdDogJ2VtcHR5J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnb3RoZXJzJyxcbiAgICAgICAgLy8gY29tcG9uZW50OiBPdGhlck1lbnVUZXN0aW5nUGFnZSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiAnOm90aGVySWQnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBPdGhlck1lbnVUZXN0aW5nUGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdXG4gICAgICAgIC8vIGNhbkFjdGl2YXRlOiBbXG4gICAgICAgIC8vICAgPENhbkFjdGl2YXRlRm4+KHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkgPT4ge1xuICAgICAgICAvLyAgICAgY29uc29sZS5sb2coJ1RPRE8gY2FuQWN0aXZhdGUnLCByb3V0ZS5kYXRhPy50YWJzKTtcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAgIGlmIChyb3V0ZS5jb21wb25lbnQ/LlsndGFic0NoYW5nZXMnXSkge1xuICAgICAgICAvLyAgICAgICAocm91dGUuY29tcG9uZW50IGFzIGFueSkudGFic0NoYW5nZXNcbiAgICAgICAgLy8gICAgICAgICAuc3Vic2NyaWJlKHRhYnMgPT4ge1xuICAgICAgICAvLyAgICAgICAgICAgY29uc29sZS5sb2coJ1RPRE8gdGFicycsIHRhYnMpO1xuICAgICAgICAvLyAgICAgICAgIH0pO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvL1xuICAgICAgICAvLyAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyBdXG4gICAgICB9LFxuICAgIF1cbiAgfSxcblxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKSxcbiAgICBBcHBNZW51TW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNZW51VGVzdGluZ1BhZ2UsXG4gICAgT3RoZXJNZW51VGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFJvdXRlck1vZHVsZSxcbiAgICBNZW51VGVzdGluZ1BhZ2UsXG4gICAgT3RoZXJNZW51VGVzdGluZ1BhZ2VcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudVRlc3RpbmdNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -77,10 +77,10 @@ export const environment = Object.freeze({
|
|
|
77
77
|
helpUrl: 'https://gitlab.ifremer.fr/sih-public/sumaris/sumaris-doc/-/blob/master/user-manual/index_fr.md',
|
|
78
78
|
// Development
|
|
79
79
|
defaultAuthValues: {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
// Basic auth (using Person.username)
|
|
81
|
+
// username: 'admq2', password: 'q22006'
|
|
82
|
+
// Token auth (using Person.pubkey)
|
|
83
|
+
//username: 'admin@sumaris.net', password: 'admin',
|
|
84
84
|
},
|
|
85
85
|
account: {
|
|
86
86
|
enableListenChanges: true,
|
|
@@ -91,4 +91,4 @@ export const environment = Object.freeze({
|
|
|
91
91
|
listenIntervalInSeconds: 60
|
|
92
92
|
}
|
|
93
93
|
});
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdGQUFnRjtBQUNoRiwyRUFBMkU7QUFDM0UsZ0VBQWdFO0FBR2hFOzs7OztHQUtHO0FBQ0gsT0FBTyw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFbkUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3BELElBQUksRUFBRSw2QkFBNkI7SUFDbkMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLEdBQUc7SUFDWixhQUFhLEVBQUUsSUFBSTtJQUNuQixvQkFBb0IsRUFBRSxNQUFNO0lBQzVCLGlCQUFpQixFQUFFLGFBQWE7SUFFaEMsc0JBQXNCO0lBQ3RCLFlBQVksRUFBRSxLQUFLO0lBRW5CLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFFaEIsY0FBYyxFQUFFLE9BQU87SUFDdkIsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLElBQUk7S0FDWDtJQUVELFlBQVksRUFBRTtRQUNaO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLEdBQUc7U0FDVjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixJQUFJLEVBQUUsR0FBRztTQUNWO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLElBQUksRUFBRSxHQUFHO1NBQ1Y7UUFDRDtZQUNFLElBQUksRUFBRSxpQkFBaUI7WUFDdkIsSUFBSSxFQUFFLEdBQUc7U0FDVjtLQUNGO0lBQ0QsY0FBYyxFQUFFLFNBQVM7SUFDekIsd0JBQXdCLEVBQUUsK0RBQStEO0lBRXpGLFVBQVU7SUFDVixPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDO0tBQ3BIO0lBRUQsUUFBUTtJQUNSLFNBQVMsRUFBRSxxRUFBcUU7SUFDaEYsY0FBYyxFQUFFLDhFQUE4RTtJQUM5RixRQUFRLEVBQUUsMkJBQTJCO0lBQ3JDLE9BQU8sRUFBRSxnR0FBZ0c7SUFFekcsY0FBYztJQUNkLGlCQUFpQixFQUFFO0lBRWpCLHFDQUFxQztJQUNyQyx3Q0FBd0M7SUFFeEMsbUNBQW1DO0lBQ25DLG1EQUFtRDtLQUNwRDtJQUVELE9BQU8sRUFBRTtRQUNQLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtJQUVELFlBQVksRUFBRTtRQUNaLG1CQUFtQixFQUFFLElBQUk7UUFDekIsdUJBQXVCLEVBQUUsRUFBRTtLQUM1QjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBjYW4gYmUgcmVwbGFjZWQgZHVyaW5nIGJ1aWxkIGJ5IHVzaW5nIHRoZSBgZmlsZVJlcGxhY2VtZW50c2AgYXJyYXkuXG4vLyBgbmcgYnVpbGQgLS0tcHJvZGAgcmVwbGFjZXMgYGVudmlyb25tZW50LnRzYCB3aXRoIGBlbnZpcm9ubWVudC5wcm9kLnRzYC5cbi8vIFRoZSBsaXN0IG9mIGZpbGUgcmVwbGFjZW1lbnRzIGNhbiBiZSBmb3VuZCBpbiBgYW5ndWxhci5qc29uYC5cblxuaW1wb3J0IHtFbnZpcm9ubWVudH0gZnJvbSAnLi9lbnZpcm9ubWVudC5jbGFzcyc7XG4vKlxuICogSW4gZGV2ZWxvcG1lbnQgbW9kZSwgdG8gaWdub3JlIHpvbmUgcmVsYXRlZCBlcnJvciBzdGFjayBmcmFtZXMgc3VjaCBhc1xuICogYHpvbmUucnVuYCwgYHpvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrYCBmb3IgZWFzaWVyIGRlYnVnZ2luZywgeW91IGNhblxuICogaW1wb3J0IHRoZSBmb2xsb3dpbmcgZmlsZSwgYnV0IHBsZWFzZSBjb21tZW50IGl0IG91dCBpbiBwcm9kdWN0aW9uIG1vZGVcbiAqIGJlY2F1c2UgaXQgd2lsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGFjdCB3aGVuIHRocm93IGVycm9yXG4gKi9cbmltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3pvbmUtZXJyb3InO1xuaW1wb3J0IHtTdG9yYWdlRHJpdmVyc30gZnJvbSAnLi4vYXBwL3NoYXJlZC9zdG9yYWdlL3N0b3JhZ2UudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50ID0gT2JqZWN0LmZyZWV6ZSh7XG4gIG5hbWU6ICdAc3VtYXJpcy1uZXQvbmd4LWNvbXBvbmVudHMnLCAvLyBvdmVycmlkZGVuIGJ5IEVOVklST05NRU5UIHRva2VuXG4gIHZlcnNpb246IHVuZGVmaW5lZCwgLy8gb3ZlcnJpZGRlbiBieSBFTlZJUk9OTUVOVCB0b2tlblxuICBwcm9kdWN0aW9uOiB0cnVlLCAvLyBsZXQgdG8gdHJ1ZSAhIGJlY2F1c2UgdXNlZCBieSBwYWNrYWdlclxuICBiYXNlVXJsOiAnLycsXG4gIGRlZmF1bHRMb2NhbGU6ICdmcicsXG4gIGRlZmF1bHRMYXRMb25nRm9ybWF0OiAnRERNTScsXG4gIGFwb2xsb0ZldGNoUG9saWN5OiAnY2FjaGUtZmlyc3QnLFxuXG4gIC8vIEZJWE1FOiBlbmFibGUgY2FjaGVcbiAgcGVyc2lzdENhY2hlOiBmYWxzZSxcblxuICAvLyBUT0RPOiBtYWtlIHRoaXMgd29ya3NcbiAgLy9vZmZsaW5lOiB0cnVlLFxuXG4gIHBlZXJNaW5WZXJzaW9uOiAnMS44LjAnLFxuICBkZWZhdWx0UGVlcjoge1xuICAgIGhvc3Q6ICcxOTIuMTY4LjAuNDUnLFxuICAgIHBvcnQ6IDgwODBcbiAgfSxcblxuICBkZWZhdWx0UGVlcnM6IFtcbiAgICB7XG4gICAgICBob3N0OiAnbG9jYWxob3N0JyxcbiAgICAgIHBvcnQ6IDgwODBcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdsb2NhbGhvc3QnLFxuICAgICAgcG9ydDogODA4MVxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJzE5Mi4xNjguMC40NScsXG4gICAgICBwb3J0OiA4MDgwXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAnMTkyLjE2OC4wLjI0JyxcbiAgICAgIHBvcnQ6IDgwODBcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICcxOTIuMTY4LjAuMjknLFxuICAgICAgcG9ydDogODA4MFxuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3NpaC5zZmEuc2MnLFxuICAgICAgcG9ydDogNDQzXG4gICAgfSxcbiAgICB7XG4gICAgICBob3N0OiAndGVzdC5zdW1hcmlzLm5ldCcsXG4gICAgICBwb3J0OiA0NDNcbiAgICB9LFxuICAgIHtcbiAgICAgIGhvc3Q6ICdvcGVuLnN1bWFyaXMubmV0JyxcbiAgICAgIHBvcnQ6IDQ0M1xuICAgIH0sXG4gICAge1xuICAgICAgaG9zdDogJ3NlcnZlci5lLWlzLnBybycsXG4gICAgICBwb3J0OiA0NDNcbiAgICB9XG4gIF0sXG4gIGRlZmF1bHRBcHBOYW1lOiAnU1VNQVJpUycsXG4gIGRlZmF1bHRBbmRyb2lkSW5zdGFsbFVybDogJ2h0dHBzOi8vcGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHMvZGV0YWlscz9pZD1uZXQuc3VtYXJpcy5hcHAnLFxuXG4gIC8vIFN0b3JhZ2VcbiAgc3RvcmFnZToge1xuICAgIGRyaXZlck9yZGVyOiBbU3RvcmFnZURyaXZlcnMuU1FMTGl0ZSwgU3RvcmFnZURyaXZlcnMuSW5kZXhlZERCLCBTdG9yYWdlRHJpdmVycy5XZWJTUUwsIFN0b3JhZ2VEcml2ZXJzLkxvY2FsU3RvcmFnZV1cbiAgfSxcblxuICAvLyBBYm91dFxuICBzb3VyY2VVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzJyxcbiAgcmVwb3J0SXNzdWVVcmw6ICdodHRwczovL2dpdGxhYi5pZnJlbWVyLmZyL3NpaC1wdWJsaWMvc3VtYXJpcy9uZ3gtc3VtYXJpcy1jb21wb25lbnRzLy0vaXNzdWVzJyxcbiAgZm9ydW1Vcmw6ICdodHRwczovL2ZvcnVtLnN1bWFyaXMubmV0JyxcbiAgaGVscFVybDogJ2h0dHBzOi8vZ2l0bGFiLmlmcmVtZXIuZnIvc2loLXB1YmxpYy9zdW1hcmlzL3N1bWFyaXMtZG9jLy0vYmxvYi9tYXN0ZXIvdXNlci1tYW51YWwvaW5kZXhfZnIubWQnLFxuXG4gIC8vIERldmVsb3BtZW50XG4gIGRlZmF1bHRBdXRoVmFsdWVzOiB7XG5cbiAgICAvLyBCYXNpYyBhdXRoICh1c2luZyBQZXJzb24udXNlcm5hbWUpXG4gICAgLy8gdXNlcm5hbWU6ICdhZG1xMicsIHBhc3N3b3JkOiAncTIyMDA2J1xuXG4gICAgLy8gVG9rZW4gYXV0aCAodXNpbmcgUGVyc29uLnB1YmtleSlcbiAgICAvL3VzZXJuYW1lOiAnYWRtaW5Ac3VtYXJpcy5uZXQnLCBwYXNzd29yZDogJ2FkbWluJyxcbiAgfSxcblxuICBhY2NvdW50OiB7XG4gICAgZW5hYmxlTGlzdGVuQ2hhbmdlczogdHJ1ZSxcbiAgICBsaXN0ZW5JbnRlcnZhbEluU2Vjb25kczogNjBcbiAgfSxcblxuICBlbnRpdHlFZGl0b3I6IHtcbiAgICBlbmFibGVMaXN0ZW5DaGFuZ2VzOiB0cnVlLFxuICAgIGxpc3RlbkludGVydmFsSW5TZWNvbmRzOiA2MFxuICB9XG59KTtcblxuIl19
|
|
@@ -11788,10 +11788,10 @@ const environment = Object.freeze({
|
|
|
11788
11788
|
helpUrl: 'https://gitlab.ifremer.fr/sih-public/sumaris/sumaris-doc/-/blob/master/user-manual/index_fr.md',
|
|
11789
11789
|
// Development
|
|
11790
11790
|
defaultAuthValues: {
|
|
11791
|
-
|
|
11792
|
-
|
|
11793
|
-
|
|
11794
|
-
|
|
11791
|
+
// Basic auth (using Person.username)
|
|
11792
|
+
// username: 'admq2', password: 'q22006'
|
|
11793
|
+
// Token auth (using Person.pubkey)
|
|
11794
|
+
//username: 'admin@sumaris.net', password: 'admin',
|
|
11795
11795
|
},
|
|
11796
11796
|
account: {
|
|
11797
11797
|
enableListenChanges: true,
|
|
@@ -23049,10 +23049,11 @@ class MenuItems {
|
|
|
23049
23049
|
* @param otherItem
|
|
23050
23050
|
*/
|
|
23051
23051
|
static isSame(mainItem, otherItem) {
|
|
23052
|
-
return mainItem.
|
|
23053
|
-
|
|
23054
|
-
|
|
23055
|
-
|
|
23052
|
+
return (isNotNil(mainItem === null || mainItem === void 0 ? void 0 : mainItem.id) && mainItem.id === (otherItem === null || otherItem === void 0 ? void 0 : otherItem.id))
|
|
23053
|
+
|| (mainItem.path === otherItem.path
|
|
23054
|
+
&& mainItem.parentPath === otherItem.parentPath
|
|
23055
|
+
&& mainItem.title === otherItem.title
|
|
23056
|
+
&& this.isSameParams(mainItem.pathParams, otherItem.pathParams));
|
|
23056
23057
|
}
|
|
23057
23058
|
/**
|
|
23058
23059
|
* All key/value of the mainParams should exist (and be equals) in the other params
|
|
@@ -23153,7 +23154,7 @@ class MenuService extends StartableObservableService {
|
|
|
23153
23154
|
this.environment = environment;
|
|
23154
23155
|
this.accountChanges = new BehaviorSubject(undefined);
|
|
23155
23156
|
this._itemCounter = 0;
|
|
23156
|
-
this._logPrefix = '[menu-service]';
|
|
23157
|
+
this._logPrefix = '[menu-service] ';
|
|
23157
23158
|
this._$opened = new Subject();
|
|
23158
23159
|
this._$splitPaneWhen = new BehaviorSubject(DEFAULT_MENU_SHOW_WHEN);
|
|
23159
23160
|
this._$enabled = new BehaviorSubject(true);
|
|
@@ -23223,14 +23224,14 @@ class MenuService extends StartableObservableService {
|
|
|
23223
23224
|
if (!excludedItems.length)
|
|
23224
23225
|
return; // Skip if no items detached
|
|
23225
23226
|
if (this._debug)
|
|
23226
|
-
console.debug(`${this._logPrefix}
|
|
23227
|
+
console.debug(`${this._logPrefix}Detached sub menus: `, excludedItems);
|
|
23227
23228
|
// TODO Store excluded items
|
|
23228
23229
|
// TODO Restore old excluded items
|
|
23229
23230
|
// this.addSubMenuItems();
|
|
23230
23231
|
}
|
|
23231
23232
|
ngOnStart() {
|
|
23232
23233
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23233
|
-
console.info(`${this._logPrefix}
|
|
23234
|
+
console.info(`${this._logPrefix}Starting...`);
|
|
23234
23235
|
const [account, config] = yield Promise.all([
|
|
23235
23236
|
this.accountService.ready(),
|
|
23236
23237
|
this.configService.ready(),
|
|
@@ -23244,7 +23245,7 @@ class MenuService extends StartableObservableService {
|
|
|
23244
23245
|
accountEvent$
|
|
23245
23246
|
]).subscribe(([config, account]) => __awaiter(this, void 0, void 0, function* () {
|
|
23246
23247
|
if (this._debug)
|
|
23247
|
-
console.debug(`${this._logPrefix}
|
|
23248
|
+
console.debug(`${this._logPrefix}Received config or account event. Refreshing items...`, account);
|
|
23248
23249
|
// Load all items
|
|
23249
23250
|
yield this._loadMenuItems(config, account);
|
|
23250
23251
|
// Emit account changes event
|
|
@@ -23266,18 +23267,19 @@ class MenuService extends StartableObservableService {
|
|
|
23266
23267
|
if (opts.skipIfExists) {
|
|
23267
23268
|
// DEBUG
|
|
23268
23269
|
if (this._debug)
|
|
23269
|
-
console.debug(`${this._logPrefix}
|
|
23270
|
-
return;
|
|
23270
|
+
console.debug(`${this._logPrefix}Skipping sub item (already exist)`, newItem);
|
|
23271
|
+
return existingItem;
|
|
23271
23272
|
}
|
|
23272
23273
|
if (this._debug)
|
|
23273
|
-
console.debug(`${this._logPrefix}
|
|
23274
|
+
console.debug(`${this._logPrefix}Updating existing sub item #`, existingItem.id);
|
|
23274
23275
|
// Replace existing item, but keep the existing id
|
|
23275
23276
|
newItem.id = existingItem.id;
|
|
23277
|
+
newItem.$children = existingItem.$children;
|
|
23276
23278
|
}
|
|
23277
23279
|
const parent = this._findParent(newItem, opts === null || opts === void 0 ? void 0 : opts.availableParents);
|
|
23278
23280
|
if (!parent) {
|
|
23279
|
-
console.warn(`${this._logPrefix}
|
|
23280
|
-
return
|
|
23281
|
+
console.warn(`${this._logPrefix}Unable to add sub item: no parent found`);
|
|
23282
|
+
return null;
|
|
23281
23283
|
}
|
|
23282
23284
|
// Generate item's id (if need)
|
|
23283
23285
|
if (isNil(newItem.id))
|
|
@@ -23286,12 +23288,12 @@ class MenuService extends StartableObservableService {
|
|
|
23286
23288
|
// Start listening route
|
|
23287
23289
|
if (!this._$listenRoute.value)
|
|
23288
23290
|
this._$listenRoute.next(true);
|
|
23289
|
-
return
|
|
23291
|
+
return newItem;
|
|
23290
23292
|
}
|
|
23291
23293
|
_loadMenuItems(config, account) {
|
|
23292
23294
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23293
23295
|
if (this._debug)
|
|
23294
|
-
console.debug(`${this._logPrefix}
|
|
23296
|
+
console.debug(`${this._logPrefix}Loading menu items...`);
|
|
23295
23297
|
// Save previous children of root items
|
|
23296
23298
|
const rootChildren = (this.data || [])
|
|
23297
23299
|
.reduce((res, rootItem) => { var _a; return res.concat(((_a = rootItem === null || rootItem === void 0 ? void 0 : rootItem.$children) === null || _a === void 0 ? void 0 : _a.value) || []); }, []);
|
|
@@ -23334,7 +23336,7 @@ class MenuService extends StartableObservableService {
|
|
|
23334
23336
|
}, items);
|
|
23335
23337
|
}
|
|
23336
23338
|
catch (err) {
|
|
23337
|
-
console.error(`${this._logPrefix}
|
|
23339
|
+
console.error(`${this._logPrefix}Invalid value for option '${CORE_CONFIG_OPTIONS.MENU_ITEMS.key}'. Expected an array of menu item`, err);
|
|
23338
23340
|
}
|
|
23339
23341
|
}
|
|
23340
23342
|
// Filter item using account rights
|
|
@@ -23358,7 +23360,7 @@ class MenuService extends StartableObservableService {
|
|
|
23358
23360
|
yield this.addSubMenuItems(rootChildren, { skipIfExists: false, availableParents: items });
|
|
23359
23361
|
}
|
|
23360
23362
|
if (this._debug)
|
|
23361
|
-
console.debug(`${this._logPrefix}
|
|
23363
|
+
console.debug(`${this._logPrefix}Found ${items.length} visible items...`);
|
|
23362
23364
|
this.dataSubject.next(items);
|
|
23363
23365
|
});
|
|
23364
23366
|
}
|
|
@@ -23417,7 +23419,7 @@ class MenuService extends StartableObservableService {
|
|
|
23417
23419
|
if (!excludedItems.length)
|
|
23418
23420
|
return; // Skip if no items detached
|
|
23419
23421
|
if (this._debug)
|
|
23420
|
-
console.debug(`${this._logPrefix}
|
|
23422
|
+
console.debug(`${this._logPrefix}Detached sub menus: `, excludedItems);
|
|
23421
23423
|
// TODO Store excluded items
|
|
23422
23424
|
// TODO Restore old excluded items
|
|
23423
23425
|
// this.addSubMenuItems();
|
|
@@ -23795,22 +23797,21 @@ class SubMenuTabDirective {
|
|
|
23795
23797
|
parentPath,
|
|
23796
23798
|
icon: 'none',
|
|
23797
23799
|
path: this.path,
|
|
23798
|
-
pathParams
|
|
23800
|
+
pathParams,
|
|
23799
23801
|
});
|
|
23800
23802
|
}
|
|
23801
23803
|
_addItemToMenu() {
|
|
23802
23804
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23805
|
+
let menuItem = this._computeMenuItem();
|
|
23803
23806
|
if (this._menuItem) {
|
|
23804
|
-
|
|
23805
|
-
if (!MenuItems.isSame(newItem, this._menuItem))
|
|
23806
|
-
this._menuItem = newItem;
|
|
23807
|
+
menuItem.id = this._menuItem.id;
|
|
23807
23808
|
}
|
|
23808
|
-
|
|
23809
|
-
|
|
23810
|
-
|
|
23811
|
-
|
|
23812
|
-
|
|
23813
|
-
this.
|
|
23809
|
+
if (!menuItem.parentPath)
|
|
23810
|
+
return; // Skip if no parent
|
|
23811
|
+
if (isNilOrBlank(menuItem.title))
|
|
23812
|
+
return; // Skip if no title
|
|
23813
|
+
menuItem = yield this.menuService.addSubMenuItem(menuItem, { skipIfExists: isNil(menuItem.id) });
|
|
23814
|
+
this._menuItem = menuItem;
|
|
23814
23815
|
});
|
|
23815
23816
|
}
|
|
23816
23817
|
}
|
|
@@ -23819,7 +23820,7 @@ SubMenuTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", ve
|
|
|
23819
23820
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SubMenuTabDirective, decorators: [{
|
|
23820
23821
|
type: Directive,
|
|
23821
23822
|
args: [{
|
|
23822
|
-
selector: '[appSubMenuTab]'
|
|
23823
|
+
selector: '[appSubMenuTab]',
|
|
23823
23824
|
}]
|
|
23824
23825
|
}], ctorParameters: function () { return [{ type: MenuService }, { type: i7$3.MatTabGroup }, { type: i7$3.MatTab }, { type: i1$5.Router }]; }, propDecorators: { label: [{
|
|
23825
23826
|
type: Input
|
|
@@ -37169,15 +37170,22 @@ class MenuTestingPage extends AppTabEditor {
|
|
|
37169
37170
|
constructor(route, // Modal editor give 'null'
|
|
37170
37171
|
router, navController, alertCtrl, translate, menuService) {
|
|
37171
37172
|
super(route, router, navController, alertCtrl, translate, {
|
|
37172
|
-
tabCount: 3
|
|
37173
|
+
tabCount: 3,
|
|
37173
37174
|
});
|
|
37174
37175
|
this.menuService = menuService;
|
|
37175
37176
|
this.logPrefix = '[menu-testing] ';
|
|
37176
37177
|
this.childPath = '';
|
|
37177
37178
|
this.title = '';
|
|
37178
|
-
this.secondTabTitle = '';
|
|
37179
37179
|
this.thirdTabTitle = '';
|
|
37180
37180
|
this.parentPath = null;
|
|
37181
|
+
this.showOtherLinks = true;
|
|
37182
|
+
this.$secondTabTitle = new BehaviorSubject('Second');
|
|
37183
|
+
}
|
|
37184
|
+
set secondTabTitle(value) {
|
|
37185
|
+
this.$secondTabTitle.next(value);
|
|
37186
|
+
}
|
|
37187
|
+
get secondTabTitle() {
|
|
37188
|
+
return this.$secondTabTitle.value;
|
|
37181
37189
|
}
|
|
37182
37190
|
ngOnInit() {
|
|
37183
37191
|
console.debug(`${this.logPrefix} Init page...`);
|
|
@@ -37211,7 +37219,6 @@ class MenuTestingPage extends AppTabEditor {
|
|
|
37211
37219
|
}
|
|
37212
37220
|
initSubMenu() {
|
|
37213
37221
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37214
|
-
const pathParam = MenuItems.parsePathWithQuery(this.router.url);
|
|
37215
37222
|
this.title = 'Menu';
|
|
37216
37223
|
this.secondTabTitle = 'Others';
|
|
37217
37224
|
this.thirdTabTitle = 'Third';
|
|
@@ -37226,10 +37233,10 @@ class MenuTestingPage extends AppTabEditor {
|
|
|
37226
37233
|
}
|
|
37227
37234
|
}
|
|
37228
37235
|
MenuTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuTestingPage, deps: [{ token: i1$5.ActivatedRoute }, { token: i1$5.Router }, { token: i2.NavController }, { token: i2.AlertController }, { token: i1$1.TranslateService }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
37229
|
-
MenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuTestingPage, selector: "app-testing-menu", viewQueries: [{ propertyName: "toggleThird", first: true, predicate: ["toggleThird"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
37236
|
+
MenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MenuTestingPage, selector: "app-testing-menu", viewQueries: [{ propertyName: "toggleThird", first: true, predicate: ["toggleThird"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: ["label", "disabled", "parentPath", "path", "subMenuTitle"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]", inputs: ["routerDirection", "routerAnimation"] }, { kind: "component", type: i7$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i7$3.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i7$3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
37230
37237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuTestingPage, decorators: [{
|
|
37231
37238
|
type: Component,
|
|
37232
|
-
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
37239
|
+
args: [{ selector: 'app-testing-menu', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"] }]
|
|
37233
37240
|
}], ctorParameters: function () { return [{ type: i1$5.ActivatedRoute }, { type: i1$5.Router }, { type: i2.NavController }, { type: i2.AlertController }, { type: i1$1.TranslateService }, { type: MenuService }]; }, propDecorators: { toggleThird: [{
|
|
37234
37241
|
type: ViewChild,
|
|
37235
37242
|
args: ['toggleThird']
|
|
@@ -37240,6 +37247,7 @@ class OtherMenuTestingPage extends MenuTestingPage {
|
|
|
37240
37247
|
router, navController, alertCtrl, translate, menuService) {
|
|
37241
37248
|
super(route, router, navController, alertCtrl, translate, menuService);
|
|
37242
37249
|
this.logPrefix = '[menu-testing-other] ';
|
|
37250
|
+
this.showOtherLinks = false;
|
|
37243
37251
|
}
|
|
37244
37252
|
initSubMenu() {
|
|
37245
37253
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -37255,10 +37263,10 @@ class OtherMenuTestingPage extends MenuTestingPage {
|
|
|
37255
37263
|
}
|
|
37256
37264
|
}
|
|
37257
37265
|
OtherMenuTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OtherMenuTestingPage, deps: [{ token: i1$5.ActivatedRoute }, { token: i1$5.Router }, { token: i2.NavController }, { token: i2.AlertController }, { token: i1$1.TranslateService }, { token: MenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
37258
|
-
OtherMenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OtherMenuTestingPage, selector: "app-testing-menu-other", usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
37266
|
+
OtherMenuTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OtherMenuTestingPage, selector: "app-testing-menu-other", usesInheritance: true, ngImport: i0, template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: SubMenuTabDirective, selector: "[appSubMenuTab]", inputs: ["label", "disabled", "parentPath", "path", "subMenuTitle"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToggle, selector: "ion-toggle", inputs: ["alignment", "checked", "color", "disabled", "enableOnOffLabels", "justify", "labelPlacement", "legacy", "mode", "name", "value"] }, { kind: "directive", type: i2.BooleanValueAccessor, selector: "ion-checkbox,ion-toggle" }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]", inputs: ["routerDirection", "routerAnimation"] }, { kind: "component", type: i7$3.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "directive", type: i7$3.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i7$3.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
|
|
37259
37267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OtherMenuTestingPage, decorators: [{
|
|
37260
37268
|
type: Component,
|
|
37261
|
-
args: [{ selector: 'app-testing-menu-other', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <
|
|
37269
|
+
args: [{ selector: 'app-testing-menu-other', template: "<app-toolbar [defaultBackHref]=\"parentPath\">\n <ion-title>{{ title }}</ion-title>\n</app-toolbar>\n\n<ion-content>\n\n <mat-tab-group #tabGroup\n [(selectedIndex)]=\"selectedTabIndex\"\n (selectedTabChange)=\"onTabChange($event)\"\n dynamicHeight>\n\n <!-- TAB: 1 -->\n <mat-tab appSubMenuTab [subMenuTitle]=\"title\" [parentPath]=\"parentPath\" label=\"Details\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>Details</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A first tab</p>\n\n <p>\n <ion-toggle #toggleThird>\n Toggle Third Tab\n </ion-toggle>\n </p>\n\n <p>\n <ion-button (click)=\"enableMenu(false)\" *ngIf=\"menuService.enabled|async\">\n Disable menu\n </ion-button>\n <ion-button (click)=\"enableMenu(true)\" *ngIf=\"!(menuService.enabled|async)\">\n Enable menu\n </ion-button>\n <ion-button (click)=\"toggleSplitPaneWhen()\"\n [disabled]=\"!(menuService.enabled|async)\">\n Toggle split pane\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 2 -->\n <mat-tab appSubMenuTab [label]=\"$secondTabTitle|async\" class=\"ion-padding\">\n <ng-template mat-tab-label>\n <ion-label>{{$secondTabTitle|async}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n <p>A second tab</p>\n\n <p *ngIf=\"showOtherLinks\">\n Navigate to : <a [routerLink]=\"childPath+'/1'\" >\n {{ childPath }}/1\n </a>\n <br/>\n Navigate to : <a [routerLink]=\"childPath+'/2'\" >\n {{ childPath }}/2\n </a>\n </p>\n\n <p>\n <ion-button (click)=\"secondTabTitle = secondTabTitle + '_'\">\n Change tab label\n </ion-button>\n </p>\n </div>\n\n </mat-tab>\n\n <!-- TAB: 3 -->\n <mat-tab appSubMenuTab [label]=\"thirdTabTitle\" class=\"ion-padding\" [disabled]=\"!toggleThird.checked\">\n <ng-template mat-tab-label>\n <ion-label>{{thirdTabTitle}}</ion-label>\n </ng-template>\n\n <div class=\"ion-padding\">\n A third tab\n </div>\n\n </mat-tab>\n </mat-tab-group>\n</ion-content>\n", styles: [".menu-item{padding-left:0 px}\n"] }]
|
|
37262
37270
|
}], ctorParameters: function () { return [{ type: i1$5.ActivatedRoute }, { type: i1$5.Router }, { type: i2.NavController }, { type: i2.AlertController }, { type: i1$1.TranslateService }, { type: MenuService }]; } });
|
|
37263
37271
|
|
|
37264
37272
|
const routes$4 = [
|