@cityway/bo-ui 1.0.1 → 1.0.3
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/cityway-bo-ui-1.0.3.tgz +0 -0
- package/fesm2022/cityway-bo-ui.mjs +1598 -0
- package/fesm2022/cityway-bo-ui.mjs.map +1 -0
- package/index.d.ts +509 -0
- package/package.json +34 -21
- package/styles.min.css +5 -0
- package/styles.min.css.map +1 -0
- package/.eslintrc.json +0 -37
- package/ng-package.json +0 -21
- package/src/lib/bo-ui.config.ts +0 -8
- package/src/lib/components/accordions/accordions.component.html +0 -16
- package/src/lib/components/accordions/accordions.component.spec.ts +0 -24
- package/src/lib/components/accordions/accordions.component.ts +0 -27
- package/src/lib/components/accordions/components/accordions-content.component.spec.ts +0 -24
- package/src/lib/components/accordions/components/accordions-content.component.ts +0 -28
- package/src/lib/components/alert/alert.component.html +0 -15
- package/src/lib/components/alert/alert.component.spec.ts +0 -24
- package/src/lib/components/alert/alert.component.ts +0 -36
- package/src/lib/components/badge/badge.component.html +0 -7
- package/src/lib/components/badge/badge.component.spec.ts +0 -24
- package/src/lib/components/badge/badge.component.ts +0 -24
- package/src/lib/components/button/button.component.html +0 -43
- package/src/lib/components/button/button.component.spec.ts +0 -25
- package/src/lib/components/button/button.component.ts +0 -47
- package/src/lib/components/card/card.component.html +0 -15
- package/src/lib/components/card/card.component.spec.ts +0 -25
- package/src/lib/components/card/card.component.ts +0 -30
- package/src/lib/components/custom-list/custom-list.component.html +0 -31
- package/src/lib/components/custom-list/custom-list.component.spec.ts +0 -24
- package/src/lib/components/custom-list/custom-list.component.ts +0 -42
- package/src/lib/components/drag-n-drop-list/drag-n-drop-list.component.html +0 -27
- package/src/lib/components/drag-n-drop-list/drag-n-drop-list.component.spec.ts +0 -24
- package/src/lib/components/drag-n-drop-list/drag-n-drop-list.component.ts +0 -40
- package/src/lib/components/form-field/form-field.component.html +0 -333
- package/src/lib/components/form-field/form-field.component.spec.ts +0 -24
- package/src/lib/components/form-field/form-field.component.ts +0 -256
- package/src/lib/components/icon/icon.component.html +0 -9
- package/src/lib/components/icon/icon.component.spec.ts +0 -25
- package/src/lib/components/icon/icon.component.ts +0 -31
- package/src/lib/components/layout/admin-layout/admin-layout.component.html +0 -17
- package/src/lib/components/layout/admin-layout/admin-layout.component.ts +0 -181
- package/src/lib/components/layout/footer/footer.component.html +0 -51
- package/src/lib/components/layout/footer/footer.component.ts +0 -65
- package/src/lib/components/layout/header/header.component.html +0 -71
- package/src/lib/components/layout/header/header.component.ts +0 -95
- package/src/lib/components/layout/menu/menu.component.html +0 -115
- package/src/lib/components/layout/menu/menu.component.ts +0 -75
- package/src/lib/components/layout/menu-accordion/accordion.directive.ts +0 -57
- package/src/lib/components/layout/menu-accordion/accordionanchor.directive.ts +0 -21
- package/src/lib/components/layout/menu-accordion/accordionlink.directive.ts +0 -45
- package/src/lib/components/layout/menu-accordion/index.ts +0 -3
- package/src/lib/components/layout/sidebar/sidebar.component.html +0 -62
- package/src/lib/components/layout/sidebar/sidebar.component.ts +0 -28
- package/src/lib/components/layout/skip-links/skip-links.component.html +0 -3
- package/src/lib/components/layout/skip-links/skip-links.component.spec.ts +0 -25
- package/src/lib/components/layout/skip-links/skip-links.component.ts +0 -19
- package/src/lib/components/layout/title-breadcrumb/title-breadcrumb.component.html +0 -10
- package/src/lib/components/layout/title-breadcrumb/title-breadcrumb.component.spec.ts +0 -25
- package/src/lib/components/layout/title-breadcrumb/title-breadcrumb.component.ts +0 -16
- package/src/lib/components/legend/legend.component.html +0 -23
- package/src/lib/components/legend/legend.component.spec.ts +0 -24
- package/src/lib/components/legend/legend.component.ts +0 -28
- package/src/lib/components/loader/loader.component.html +0 -4
- package/src/lib/components/loader/loader.component.ts +0 -16
- package/src/lib/components/modals/modals.component.html +0 -71
- package/src/lib/components/modals/modals.component.spec.ts +0 -25
- package/src/lib/components/modals/modals.component.ts +0 -49
- package/src/lib/components/tab/components/tab-content.component.spec.ts +0 -24
- package/src/lib/components/tab/components/tab-content.component.ts +0 -27
- package/src/lib/components/tab/tab.component.html +0 -59
- package/src/lib/components/tab/tab.component.spec.ts +0 -24
- package/src/lib/components/tab/tab.component.ts +0 -79
- package/src/lib/components/table/components/actions-on-table/actions-on-table.component.html +0 -50
- package/src/lib/components/table/components/actions-on-table/actions-on-table.component.spec.ts +0 -24
- package/src/lib/components/table/components/actions-on-table/actions-on-table.component.ts +0 -33
- package/src/lib/components/table/components/filter/filter.component.html +0 -21
- package/src/lib/components/table/components/filter/filter.component.spec.ts +0 -24
- package/src/lib/components/table/components/filter/filter.component.ts +0 -38
- package/src/lib/components/table/table.component.html +0 -104
- package/src/lib/components/table/table.component.spec.ts +0 -24
- package/src/lib/components/table/table.component.ts +0 -85
- package/src/lib/components/wizard-stepper/components/wizard-step.component.spec.ts +0 -25
- package/src/lib/components/wizard-stepper/components/wizard-step.component.ts +0 -16
- package/src/lib/components/wizard-stepper/wizard-stepper.component.html +0 -45
- package/src/lib/components/wizard-stepper/wizard-stepper.component.spec.ts +0 -25
- package/src/lib/components/wizard-stepper/wizard-stepper.component.ts +0 -70
- package/src/lib/directives/double-scroll.ts +0 -64
- package/src/lib/directives/rwd-tabs.ts +0 -99
- package/src/lib/directives/show-hide-password.ts +0 -61
- package/src/lib/enum/drag-item.enum.ts +0 -5
- package/src/lib/enum/field-type.enum.ts +0 -36
- package/src/lib/enum/legend-type.enum.ts +0 -5
- package/src/lib/enum/modals.enum.ts +0 -6
- package/src/lib/enum/ui-type.enum.ts +0 -11
- package/src/lib/models/ui/custom-list.model.ts +0 -14
- package/src/lib/models/ui/legend.model.ts +0 -17
- package/src/lib/models/ui/table.model.ts +0 -33
- package/src/lib/services/ui/modals.service.ts +0 -47
- package/src/lib/services/version.service.ts +0 -22
- package/src/public-api.ts +0 -49
- package/tsconfig.lib.json +0 -18
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -14
- package/tslint.json +0 -17
- /package/{src/lib → lib}/assets/fonts/bo/_variables.scss +0 -0
- /package/{src/lib → lib}/assets/fonts/bo/bo.scss +0 -0
- /package/{src/lib → lib}/assets/fonts/bo/bo.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/bo/bo.woff2 +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/_nunito.scss +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-bold.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-bold.woff2 +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-extrabold.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-extrabold.woff2 +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-regular.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-regular.woff2 +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-semi-bold.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/nunito/nunito-semi-bold.woff2 +0 -0
- /package/{src/lib → lib}/assets/fonts/optyweb/_variables.scss +0 -0
- /package/{src/lib → lib}/assets/fonts/optyweb/optyweb.scss +0 -0
- /package/{src/lib → lib}/assets/fonts/optyweb/optyweb.woff +0 -0
- /package/{src/lib → lib}/assets/fonts/optyweb/optyweb.woff2 +0 -0
- /package/{src/lib → lib}/assets/i18n/common.en.json +0 -0
- /package/{src/lib → lib}/assets/i18n/common.fr.json +0 -0
- /package/{src/lib → lib}/assets/i18n/label.en.json +0 -0
- /package/{src/lib → lib}/assets/i18n/label.fr.json +0 -0
- /package/{src/lib → lib}/assets/images/common/bg-loader.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/bg-menu.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/bg-round.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/check-mark.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/loader.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/logo-en-bw.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/logo-en.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/logo-fr-bw.svg +0 -0
- /package/{src/lib → lib}/assets/images/common/logo-fr.svg +0 -0
- /package/{src/lib → lib}/assets/images/favicon/android-chrome-192x192.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/android-chrome-512x512.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/apple-touch-icon.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/favicon-16x16.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/favicon-32x32.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/favicon-96x96.png +0 -0
- /package/{src/lib → lib}/assets/images/favicon/favicon.ico +0 -0
- /package/{src/lib → lib}/assets/images/favicon/site.webmanifest +0 -0
- /package/{src/lib → lib}/assets/images/icon/referential-icon.svg +0 -0
- /package/{src/lib → lib}/assets/images/login/login-bg.jpg +0 -0
- /package/{src/lib → lib}/assets/images/login/logo-cityway-baseline.svg +0 -0
- /package/{src/lib → lib}/assets/images/toast/warning.svg +0 -0
- /package/{src/lib → lib}/assets/styles/scss/_components.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/_core.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/_custom-bootstrap.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_accordion.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_alert.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_badge.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_breadcrumb.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_button-group.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_buttons.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_card.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_close.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_dropdown.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_forms.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_input-group.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_lists.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_modal.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_pagination.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_popover.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_progress.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_reboot.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_tables.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_tabs.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_tooltip.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/bootstrap/_type.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_forms-firefox.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_leaflet.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_legend.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ng-select.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ng2-dragula.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ng2-validation.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ng5-slider.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngb-datepicker.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngb-timepicker.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-chips.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-editor.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-file-drop.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-intl-tel-input.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-slider.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_ngx-toast.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_pwd-policy.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_table.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_vis.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/_wizard-stepper.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-action.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-bg-cell.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-double-scroll.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-filter.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-pagination.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-popover.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/components/table/_table-sorting.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/core/_footer.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/core/_header.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/core/_layout.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/core/_menu.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/core/_sidebar.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/mixins/_utilities.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/styles.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/tools/_focus.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/tools/_loader.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/variables/_colors.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/variables/_custom.scss +0 -0
- /package/{src/lib → lib}/assets/styles/scss/variables/_site.scss +0 -0
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
<header role="banner" class="header">
|
|
2
|
-
<form [formGroup]="formHeader">
|
|
3
|
-
<nav class="navbar custom-navbar bg-faded main-header">
|
|
4
|
-
<button type="button" class="btn btn-primary menu-link" (click)="onClick()"
|
|
5
|
-
[title]="isMenuOpened ? ('_COMMON._MENU.BTN_MAIN_MENU_CLOSE' | translate) : ('_COMMON._MENU.BTN_MAIN_MENU_OPEN' | translate)">
|
|
6
|
-
<span class="bo-icons" [ngClass]="isMenuOpened ? 'bo-menu-expanded' : 'bo-menu-collapsed' "
|
|
7
|
-
aria-hidden="true"></span>
|
|
8
|
-
<span class="visually-hidden">{{ '_COMMON._MENU.BTN_MAIN_MENU' | translate}}</span>
|
|
9
|
-
</button>
|
|
10
|
-
|
|
11
|
-
<nav aria-label="breadcrumb">
|
|
12
|
-
<ol class="breadcrumb align-items-center">
|
|
13
|
-
<li class="breadcrumb-item">
|
|
14
|
-
<a href="/#">
|
|
15
|
-
<span class="optyweb cw-nav-home d-block d-md-none" aria-hidden="true"></span>
|
|
16
|
-
<span class="visually-hidden d-block d-md-none">{{ "_COMMON._BREADCRUMB.HOME" | translate }}</span>
|
|
17
|
-
<span class="d-none d-md-block">{{ "_COMMON._BREADCRUMB.HOME" | translate }}</span>
|
|
18
|
-
</a>
|
|
19
|
-
</li>
|
|
20
|
-
<li *ngFor="let item of getMenus(parent)" class="breadcrumb-item active">
|
|
21
|
-
<a *ngIf="!item.disabled" [routerLink]="item.link" href="#">{{item.title | translate}}</a>
|
|
22
|
-
<span *ngIf="item.disabled">{{item.title | translate}}</span>
|
|
23
|
-
</li>
|
|
24
|
-
<li aria-current="page" class="breadcrumb-item active navbar-heading">
|
|
25
|
-
<h1>{{ heading | translate:headingUrlParamsOptions }}</h1>
|
|
26
|
-
</li>
|
|
27
|
-
</ol>
|
|
28
|
-
</nav>
|
|
29
|
-
|
|
30
|
-
<span class="me-auto"></span>
|
|
31
|
-
|
|
32
|
-
<ul class="navbar-nav">
|
|
33
|
-
|
|
34
|
-
<li class="nav-item ms-0" ngbDropdown placement="right">
|
|
35
|
-
<button class="header-login d-flex align-items-center btn btn-light" id="language"
|
|
36
|
-
ngbDropdownToggle type="button">
|
|
37
|
-
<span class="optyweb cw-misc-man2 header-avatar" aria-hidden="true"></span>
|
|
38
|
-
<span class="header-indicator">
|
|
39
|
-
<span class="bo-icons bo-alert-success" aria-hidden="true"></span>
|
|
40
|
-
<span class="visually-hidden">{{ '_COMMON._USER.LBL_LOGGED' | translate }}</span>
|
|
41
|
-
<!-- <img src="assets/images/common/check-mark.svg" [alt]="'_COMMON._USER.LBL_LOGGED' | translate"
|
|
42
|
-
class="header-indicator" width="15" height="15"> -->
|
|
43
|
-
</span>
|
|
44
|
-
<span class="d-none d-lg-inline-block ms-3 me-1">{{ loginName }}</span>
|
|
45
|
-
</button>
|
|
46
|
-
<div ngbDropdownMenu class="dropdown-menu dropdown-menu-right">
|
|
47
|
-
<div class="dropdown-header font-md d-md-none">
|
|
48
|
-
<span>{{ loginName }}</span>
|
|
49
|
-
</div>
|
|
50
|
-
<a class="dropdown-item" href="javascript:;">
|
|
51
|
-
<span>{{'_COMMON._USER.LBL_SETTINGS' | translate}}</span>
|
|
52
|
-
</a>
|
|
53
|
-
<a class="dropdown-item" href="javascript:;">
|
|
54
|
-
<span>{{'_COMMON._USER.LBL_PROFILE' | translate}}</span>
|
|
55
|
-
</a>
|
|
56
|
-
<a class="dropdown-item" href="javascript:;">
|
|
57
|
-
<span>{{'_COMMON._USER.LBL_NOTIFICATIONS' | translate}}</span>
|
|
58
|
-
</a>
|
|
59
|
-
<div class="dropdown-divider"></div>
|
|
60
|
-
<a class="dropdown-item" href="javascript:;">
|
|
61
|
-
<span>{{'_COMMON._USER.LBL_HELP' | translate}}</span>
|
|
62
|
-
</a>
|
|
63
|
-
<a class="dropdown-item" href="javascript:;">
|
|
64
|
-
<span>{{ '_COMMON._ACTION.SIGN_OUT' | translate }}</span>
|
|
65
|
-
</a>
|
|
66
|
-
</div>
|
|
67
|
-
</li>
|
|
68
|
-
</ul>
|
|
69
|
-
</nav>
|
|
70
|
-
</form>
|
|
71
|
-
</header>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
6
|
-
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
7
|
-
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
8
|
-
import { User } from 'oidc-client';
|
|
9
|
-
import { Parent } from '../admin-layout/admin-layout.component';
|
|
10
|
-
|
|
11
|
-
@Component({
|
|
12
|
-
selector: 'app-header',
|
|
13
|
-
templateUrl: './header.component.html',
|
|
14
|
-
standalone: true,
|
|
15
|
-
imports: [
|
|
16
|
-
ReactiveFormsModule,
|
|
17
|
-
RouterModule,
|
|
18
|
-
CommonModule,
|
|
19
|
-
TranslateModule,
|
|
20
|
-
NgbDropdownModule
|
|
21
|
-
]
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
export class HeaderComponent implements OnInit, OnChanges {
|
|
25
|
-
@Input() heading: string;
|
|
26
|
-
@Input() headingUrlParamsOptions: Array<string>;
|
|
27
|
-
@Input() parent: any;
|
|
28
|
-
@Input() isMenuOpened: boolean;
|
|
29
|
-
@Output() toggleSidenav = new EventEmitter<void>();
|
|
30
|
-
|
|
31
|
-
public parentTitle: string | Array<string>;
|
|
32
|
-
public parentLink: string | Array<string>;
|
|
33
|
-
public loadMenu: boolean;
|
|
34
|
-
public extractedBy: string;
|
|
35
|
-
public loginName: string;
|
|
36
|
-
public formHeader: UntypedFormGroup;
|
|
37
|
-
public lang: string;
|
|
38
|
-
|
|
39
|
-
private jwtHelper: JwtHelperService;
|
|
40
|
-
|
|
41
|
-
constructor(
|
|
42
|
-
public translateService: TranslateService,
|
|
43
|
-
private fb: UntypedFormBuilder,
|
|
44
|
-
) {
|
|
45
|
-
this.parent = null;
|
|
46
|
-
this.jwtHelper = new JwtHelperService();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
ngOnInit() {
|
|
50
|
-
this.formHeader = this.fb.group({
|
|
51
|
-
lang: ['fr', Validators.compose([Validators.required])],
|
|
52
|
-
});
|
|
53
|
-
this.loginName = 'Admin';
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public changeLang(lang: string) {
|
|
57
|
-
localStorage.setItem('lang', lang);
|
|
58
|
-
this.lang = lang;
|
|
59
|
-
this.translateService.setDefaultLang(lang);
|
|
60
|
-
this.translateService.use(lang);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
ngOnChanges(simpleChanges: SimpleChanges) {
|
|
64
|
-
// Si il y a un changement et que la variable envoye par le parent a une currentValue
|
|
65
|
-
if (simpleChanges && simpleChanges['parent'] && simpleChanges['parent'].currentValue) {
|
|
66
|
-
// attribution des datas a nos variables pour notre HTML
|
|
67
|
-
this.parentLink = simpleChanges['parent'].currentValue.link;
|
|
68
|
-
this.parentTitle = simpleChanges['parent'].currentValue.title;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Si il y a un changement et que la variable envoye par le parent a une currentValue
|
|
72
|
-
if (simpleChanges && simpleChanges['heading'] && simpleChanges['heading'].currentValue) {
|
|
73
|
-
// Attribution des datas a nos variables pour notre HTML
|
|
74
|
-
this.heading = simpleChanges['heading'].currentValue;
|
|
75
|
-
// Si la variable du parent (parent) n'as pas change
|
|
76
|
-
if (!simpleChanges['heading']) {
|
|
77
|
-
// alors on la supprime pour le cote HTML
|
|
78
|
-
delete this.parent;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/** Renvoie un tableau de menus */
|
|
84
|
-
getMenus(parent: Parent | Array<Parent>) {
|
|
85
|
-
if (parent === null || parent === undefined) {
|
|
86
|
-
return new Array();
|
|
87
|
-
}
|
|
88
|
-
// Soit 1 element , soit 1 tableau en entée
|
|
89
|
-
return parent instanceof Array ? parent : new Array(parent);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
public onClick() {
|
|
93
|
-
this.toggleSidenav.emit()
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
<!-- <ul class="navigation" appAccordion>
|
|
2
|
-
<ng-container *ngFor="let menuitem of menus; index as Index">
|
|
3
|
-
<ng-container *ngIf="!menuitem.hide">
|
|
4
|
-
<li *ngIf="menuitem.type !== 'divider' && menuitem.type !== 'title'" appAccordionLink [group]="menuitem.state"
|
|
5
|
-
[ngClass]="menuitem.state.includes(currentRoute) ? 'navigation-item menu-opened' : 'navigation-item'" routerLinkActive="active"> -->
|
|
6
|
-
<!-- INTERNAL LINK -->
|
|
7
|
-
<!-- <a *ngIf="menuitem.type === 'link' && isOpened" [ngClass]="{'disabled': menuitem.disabled}" class="navigation-link"
|
|
8
|
-
[routerLink]="menuitem.state">
|
|
9
|
-
<ng-container [ngTemplateOutlet]="menuItem"></ng-container>
|
|
10
|
-
</a>
|
|
11
|
-
<a *ngIf="menuitem.type === 'link' && !isOpened" [ngClass]="{'disabled': menuitem.disabled}" class="navigation-link"
|
|
12
|
-
[routerLink]="menuitem.state" placement="right" [ngbTooltip]="menuitem.name | translate" container="body"
|
|
13
|
-
tooltipClass="menu-tooltip">
|
|
14
|
-
<ng-container [ngTemplateOutlet]="menuItem"></ng-container>
|
|
15
|
-
</a> -->
|
|
16
|
-
<!-- EXTERNAL LINK ou EXTERNAL LINK IN A TAB-->
|
|
17
|
-
<!-- <a *ngIf="menuitem.type === 'extLink' || menuitem.type === 'extTabLink' && isOpened" class="navigation-link"
|
|
18
|
-
[href]="menuitem.state" [attr.target]="menuitem.type === 'extTabLink' ? '_blanck' : null">
|
|
19
|
-
<ng-container [ngTemplateOutlet]="menuItem"></ng-container>
|
|
20
|
-
</a>
|
|
21
|
-
<a *ngIf="menuitem.type === 'extLink' || menuitem.type === 'extTabLink' && !isOpened" class="navigation-link"
|
|
22
|
-
[href]="menuitem.state" [attr.target]="menuitem.type === 'extTabLink' ? '_blanck' : null"
|
|
23
|
-
placement="right" [ngbTooltip]="menuitem.name | translate" container="body"
|
|
24
|
-
tooltipClass="menu-tooltip">
|
|
25
|
-
<ng-container [ngTemplateOutlet]="menuItem"></ng-container>
|
|
26
|
-
</a> -->
|
|
27
|
-
|
|
28
|
-
<!--
|
|
29
|
-
<ng-template #menuItem>
|
|
30
|
-
<span class="{{ menuitem.icon }} me-3 icon" aria-hidden="true"></span>
|
|
31
|
-
<span class="title me-auto">{{ menuitem.name | translate }}</span>
|
|
32
|
-
<span *ngFor="let badge of menuitem.badge" class="badge badge-{{ badge.type }} me-3">{{ badge.value }}</span>
|
|
33
|
-
</ng-template>
|
|
34
|
-
|
|
35
|
-
<ng-container *ngIf="isOpened">
|
|
36
|
-
<button *ngIf="menuitem.type === 'sub' || menuitem.type === 'sub-reorder'" type="button" class="navigation-link btn navigation-btn"
|
|
37
|
-
(click)="onShow(Index)" [ngClass]="isCollapsed[Index] ? 'collapsed' : ''"
|
|
38
|
-
[attr.aria-expanded]="!isCollapsed[Index]" aria-controls="collapseExample">
|
|
39
|
-
<ng-container [ngTemplateOutlet]="menuItem"></ng-container>
|
|
40
|
-
<span class="menu-caret optyweb cw-nav-collapse2" aria-hidden="true"></span>
|
|
41
|
-
</button>
|
|
42
|
-
<ul *ngIf="menuitem.type === 'sub'" class="navigation-submenu" [ngbCollapse]
|
|
43
|
-
[(ngbCollapse)]="isCollapsed[Index]">
|
|
44
|
-
<ng-container *ngFor="let childitem of menuitem.children">
|
|
45
|
-
<li *ngIf="!childitem.hide" class="navigation-item" routerLinkActive="active"
|
|
46
|
-
[ngClass]="{disabled: childitem.disabled}">
|
|
47
|
-
<a [routerLink]="['/', menuitem.state, childitem.state ]" class="navigation-submenu-link">
|
|
48
|
-
{{ childitem.name | translate }}
|
|
49
|
-
</a>
|
|
50
|
-
</li>
|
|
51
|
-
</ng-container>
|
|
52
|
-
</ul>
|
|
53
|
-
<ul *ngIf="menuitem.type === 'sub-reorder'" class="navigation-submenu" [ngbCollapse]
|
|
54
|
-
[(ngbCollapse)]="isCollapsed[Index]">
|
|
55
|
-
<ng-container *ngFor="let childitem of menuitem.children">
|
|
56
|
-
<li *ngIf="!childitem.hide" class="navigation-item" routerLinkActive="active"
|
|
57
|
-
[ngClass]="{disabled: childitem.disabled}">
|
|
58
|
-
<a [routerLink]="childitem.state" class="navigation-submenu-link">
|
|
59
|
-
{{ childitem.name | translate }}
|
|
60
|
-
</a>
|
|
61
|
-
</li>
|
|
62
|
-
</ng-container>
|
|
63
|
-
</ul>
|
|
64
|
-
</ng-container>
|
|
65
|
-
</li>
|
|
66
|
-
|
|
67
|
-
<ng-container *ngIf="!isOpened">
|
|
68
|
-
<li ngbDropdown *ngIf="menuitem.type !== 'divider' && menuitem.type !== 'title'" appAccordionLink
|
|
69
|
-
[group]="menuitem.state" class="navigation-dropdown" [autoClose]="true"
|
|
70
|
-
[container]="'body'" [dropdownClass]="'navigation-submenu-dropdown'" routerLinkActive="active" #myDrop="ngbDropdown"
|
|
71
|
-
(mouseenter)="$event.stopPropagation(); myDrop.open();" (mouseleave)="$event.stopPropagation(); myDrop.close();">
|
|
72
|
-
<button *ngIf="menuitem.type === 'sub' || menuitem.type === 'sub-reorder'" type="button" class="navigation-link btn navigation-btn"
|
|
73
|
-
id="dropdownBasic1" ngbDropdownToggle (click)="onShow(Index)">
|
|
74
|
-
<span class="{{ menuitem.icon }} me-3 icon" aria-hidden="true"></span>
|
|
75
|
-
<span class="title me-auto">{{ menuitem.name | translate }}</span>
|
|
76
|
-
<span *ngFor="let badge of menuitem.badge" class="badge badge-{{ badge.type }} me-3">{{ badge.value
|
|
77
|
-
}}</span>
|
|
78
|
-
<span class="menu-caret optyweb cw-nav-expand2" aria-hidden="true"></span>
|
|
79
|
-
</button>
|
|
80
|
-
<ul ngbDropdownMenu *ngIf="menuitem.type === 'sub'" class="navigation-submenu"
|
|
81
|
-
[ngClass]="'navigation-submenu-collapsed'"
|
|
82
|
-
(mouseenter)="$event.stopPropagation(); myDrop.open();" (mouseleave)="$event.stopPropagation(); myDrop.close();">
|
|
83
|
-
<ng-container *ngFor="let childitem of menuitem.children">
|
|
84
|
-
<li *ngIf="!childitem.hide" class="navigation-item" routerLinkActive="active"
|
|
85
|
-
[ngClass]="{disabled: childitem.disabled}">
|
|
86
|
-
<a [routerLink]="['/', menuitem.state, childitem.state ]" class="navigation-submenu-link" ngbDropdownItem>
|
|
87
|
-
{{ childitem.name | translate }}
|
|
88
|
-
</a>
|
|
89
|
-
</li>
|
|
90
|
-
</ng-container>
|
|
91
|
-
</ul>
|
|
92
|
-
<ul ngbDropdownMenu *ngIf="menuitem.type === 'sub-reorder'" class="navigation-submenu"
|
|
93
|
-
[ngClass]="'navigation-submenu-collapsed'"
|
|
94
|
-
(mouseenter)="$event.stopPropagation(); myDrop.open();" (mouseleave)="$event.stopPropagation(); myDrop.close();">
|
|
95
|
-
<ng-container *ngFor="let childitem of menuitem.children">
|
|
96
|
-
<li *ngIf="!childitem.hide" class="navigation-item" routerLinkActive="active"
|
|
97
|
-
[ngClass]="{disabled: childitem.disabled}">
|
|
98
|
-
<a [routerLink]="childitem.state" class="navigation-submenu-link" ngbDropdownItem>
|
|
99
|
-
{{ childitem.name | translate }}
|
|
100
|
-
</a>
|
|
101
|
-
</li>
|
|
102
|
-
</ng-container>
|
|
103
|
-
</ul>
|
|
104
|
-
</li>
|
|
105
|
-
</ng-container>
|
|
106
|
-
|
|
107
|
-
<li *ngIf="menuitem.type === 'divider'" class="navigation-item">
|
|
108
|
-
<hr />
|
|
109
|
-
</li>
|
|
110
|
-
<li *ngIf="menuitem.type === 'title'" class="navigation-item">
|
|
111
|
-
<span class="navigation-title">{{ menuitem.name | translate }}</span>
|
|
112
|
-
</li>
|
|
113
|
-
</ng-container>
|
|
114
|
-
</ng-container>
|
|
115
|
-
</ul> -->
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { Router, RouterModule } from '@angular/router';
|
|
4
|
-
import { NgbCollapseModule, NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
6
|
-
import { NgxPermissionsService } from 'ngx-permissions';
|
|
7
|
-
import { AccordionDirective, AccordionLinkDirective } from '../menu-accordion';
|
|
8
|
-
|
|
9
|
-
@Component({
|
|
10
|
-
selector: 'app-menu',
|
|
11
|
-
templateUrl: './menu.component.html',
|
|
12
|
-
standalone: true,
|
|
13
|
-
imports: [
|
|
14
|
-
CommonModule,
|
|
15
|
-
RouterModule,
|
|
16
|
-
NgbTooltipModule,
|
|
17
|
-
NgbCollapseModule,
|
|
18
|
-
NgbDropdownModule,
|
|
19
|
-
AccordionLinkDirective,
|
|
20
|
-
TranslateModule,
|
|
21
|
-
AccordionLinkDirective,
|
|
22
|
-
AccordionDirective
|
|
23
|
-
]
|
|
24
|
-
})
|
|
25
|
-
export class MenuComponent {
|
|
26
|
-
|
|
27
|
-
// @Input() isOpened = true;
|
|
28
|
-
|
|
29
|
-
// public menus: MenuItem[];
|
|
30
|
-
// public currentRoute: string;
|
|
31
|
-
// public isCollapsed: boolean [] = [];
|
|
32
|
-
|
|
33
|
-
// constructor(
|
|
34
|
-
// public menuService: MenuService,
|
|
35
|
-
// public translate: TranslateService,
|
|
36
|
-
// private permissionStoreService: NgxPermissionsService,
|
|
37
|
-
// private router: Router
|
|
38
|
-
// ) {
|
|
39
|
-
|
|
40
|
-
// this.menus = this.menuService.getAll();
|
|
41
|
-
// this.menuService.menu$.subscribe({ next: menu => this.menus = menu });
|
|
42
|
-
|
|
43
|
-
// this.currentRoute = this.router.url.split('/')[1];
|
|
44
|
-
// // check for permissions
|
|
45
|
-
// this.menus.forEach(menu => {
|
|
46
|
-
// if(this.currentRoute && menu.state.includes(this.currentRoute)) {
|
|
47
|
-
// this.isCollapsed.push(false);
|
|
48
|
-
// } else {
|
|
49
|
-
// this.isCollapsed.push(true);
|
|
50
|
-
// }
|
|
51
|
-
// if (menu.permissions) {
|
|
52
|
-
// this.permissionStoreService.hasPermission(menu.permissions).then(hasPermission => menu.hide = !hasPermission);
|
|
53
|
-
// }
|
|
54
|
-
// if (menu.children) {
|
|
55
|
-
// menu.children.forEach(childMenu => {
|
|
56
|
-
// if (childMenu.permissions) {
|
|
57
|
-
// this.permissionStoreService.hasPermission(childMenu.permissions).then(r => childMenu.hide = !r);
|
|
58
|
-
// }
|
|
59
|
-
// });
|
|
60
|
-
// }
|
|
61
|
-
// });
|
|
62
|
-
// router.events.subscribe(() => this.currentRoute = null);
|
|
63
|
-
// }
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
// public onShow(index): void {
|
|
67
|
-
// this.menus.forEach((menu, indexMenu) => {
|
|
68
|
-
// if (indexMenu !== index) {
|
|
69
|
-
// this.isCollapsed[indexMenu] = true;
|
|
70
|
-
// }
|
|
71
|
-
// });
|
|
72
|
-
// this.isCollapsed[index] = !this.isCollapsed[index];
|
|
73
|
-
// }
|
|
74
|
-
|
|
75
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { filter } from 'rxjs/operators';
|
|
3
|
-
import { AfterContentChecked, AfterViewInit, Directive, OnInit } from '@angular/core';
|
|
4
|
-
import { NavigationEnd, Router } from '@angular/router';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { AccordionLinkDirective } from './accordionlink.directive';
|
|
8
|
-
|
|
9
|
-
@Directive({
|
|
10
|
-
selector: '[appAccordion]',
|
|
11
|
-
standalone: true
|
|
12
|
-
})
|
|
13
|
-
export class AccordionDirective implements AfterContentChecked {
|
|
14
|
-
|
|
15
|
-
protected navlinks: AccordionLinkDirective[] = [];
|
|
16
|
-
|
|
17
|
-
constructor(private router: Router) {
|
|
18
|
-
setTimeout(() => this.checkOpenLinks());
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
ngAfterContentChecked(): void {
|
|
22
|
-
this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((e) => this.checkOpenLinks());
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
closeOtherLinks(openLink: AccordionLinkDirective): void {
|
|
26
|
-
this.navlinks.forEach((link: AccordionLinkDirective) => {
|
|
27
|
-
if (link !== openLink) {
|
|
28
|
-
link.open = false;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
addLink(link: AccordionLinkDirective): void {
|
|
34
|
-
this.navlinks.push(link);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
removeGroup(link: AccordionLinkDirective): void {
|
|
38
|
-
const index = this.navlinks.indexOf(link);
|
|
39
|
-
if (index !== -1) {
|
|
40
|
-
this.navlinks.splice(index, 1);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
checkOpenLinks() {
|
|
45
|
-
this.navlinks.forEach((link: AccordionLinkDirective) => {
|
|
46
|
-
if (link.group) {
|
|
47
|
-
const routeUrl = this.router.url;
|
|
48
|
-
const currentUrl = routeUrl.split('/');
|
|
49
|
-
if (currentUrl.indexOf(link.group) > 0) {
|
|
50
|
-
link.open = true;
|
|
51
|
-
this.closeOtherLinks(link);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener, Inject } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
import { AccordionLinkDirective } from './accordionlink.directive';
|
|
4
|
-
|
|
5
|
-
@Directive({
|
|
6
|
-
selector: '[appAccordionToggle]',
|
|
7
|
-
standalone: true
|
|
8
|
-
})
|
|
9
|
-
export class AccordionAnchorDirective {
|
|
10
|
-
|
|
11
|
-
protected navlink: AccordionLinkDirective;
|
|
12
|
-
|
|
13
|
-
constructor( @Inject(AccordionLinkDirective) navlink: AccordionLinkDirective) {
|
|
14
|
-
this.navlink = navlink;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@HostListener('click', ['$event'])
|
|
18
|
-
onClick(e: any) {
|
|
19
|
-
this.navlink.toggle();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Directive, HostBinding, Inject, Input, OnDestroy, OnInit } from '@angular/core';
|
|
2
|
-
import { AccordionDirective } from './accordion.directive';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
@Directive({
|
|
6
|
-
selector: '[appAccordionLink]',
|
|
7
|
-
standalone: true
|
|
8
|
-
})
|
|
9
|
-
export class AccordionLinkDirective implements OnInit, OnDestroy {
|
|
10
|
-
|
|
11
|
-
@Input() public group: any;
|
|
12
|
-
|
|
13
|
-
@HostBinding('class.open')
|
|
14
|
-
|
|
15
|
-
protected _open: boolean;
|
|
16
|
-
protected nav: AccordionDirective;
|
|
17
|
-
|
|
18
|
-
constructor(@Inject(AccordionDirective) nav: AccordionDirective) {
|
|
19
|
-
this.nav = nav;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@Input()
|
|
23
|
-
get open(): boolean {
|
|
24
|
-
return this._open;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
set open(value: boolean) {
|
|
28
|
-
this._open = value;
|
|
29
|
-
if (value) {
|
|
30
|
-
this.nav.closeOtherLinks(this);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
ngOnInit(): any {
|
|
35
|
-
this.nav.addLink(this);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
ngOnDestroy(): any {
|
|
39
|
-
this.nav.removeGroup(this);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
toggle(): any {
|
|
43
|
-
this.open = !this.open;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
<div class="sidebar-scroll">
|
|
2
|
-
<div class="sidebar">
|
|
3
|
-
<nav class="navbar custom-navbar main-brand justify-content-center text-center">
|
|
4
|
-
<a class="navbar-brand text-decoration-none" [routerLink]="['/']" [ngClass]="{'invisible': !isOpened}">
|
|
5
|
-
<div class="navbar-brand-name text-wrap">
|
|
6
|
-
<!-- {{ configuration.appSettings.name }} -->
|
|
7
|
-
</div>
|
|
8
|
-
<div class="navbar-brand-project">
|
|
9
|
-
<!-- {{ configuration.appSettings.clientName }} -->
|
|
10
|
-
</div>
|
|
11
|
-
</a>
|
|
12
|
-
<button type="button" class="btn btn-primary btn-close-menu d-lg-none" (click)="onClick()">
|
|
13
|
-
<span class="optyweb cw-toolbar-close1" aria-hidden="true"></span>
|
|
14
|
-
<span class="visually-hidden">{{ '_COMMON._SIDEBAR.CLOSE_BTN' | translate }}</span>
|
|
15
|
-
</button>
|
|
16
|
-
</nav>
|
|
17
|
-
|
|
18
|
-
<!-- main navigation -->
|
|
19
|
-
<!-- <nav *ngIf="menuService.menu$ | async" class="main-menu">
|
|
20
|
-
<app-menu [isOpened]="isOpened"></app-menu>
|
|
21
|
-
</nav> -->
|
|
22
|
-
|
|
23
|
-
<nav class="navbar custom-navbar sidebar-footer bg-white" [ngClass]="{'sidebar-footer-closed': !isOpened}">
|
|
24
|
-
<ul class="navbar-nav w-100">
|
|
25
|
-
<!-- <li class="nav-item">
|
|
26
|
-
<a class="btn nav-link d-flex" href="assets/docs/fr/manuel.pdf" container="body" type="button"
|
|
27
|
-
[ngbTooltip]="'_COMMON._USER.LBL_USER_MANUAL' | translate" [placement]="isOpened ? 'top' : 'right'">
|
|
28
|
-
<span class="bo-icons bo-manual" aria-hidden="true"></span>
|
|
29
|
-
<span class="visually-hidden">{{ '_COMMON._USER.LBL_USER_MANUAL' | translate }}</span>
|
|
30
|
-
</a>
|
|
31
|
-
</li>
|
|
32
|
-
<ng-container *ngIf="authService.isLoggedIn()">
|
|
33
|
-
<li class="nav-item">
|
|
34
|
-
<button (click)="authService.logout()" class="btn nav-link d-flex" container="body" type="button"
|
|
35
|
-
[ngbTooltip]="'_COMMON._APPLICATION.LOGOUT' | translate" [placement]="isOpened ? 'top' : 'right'">
|
|
36
|
-
<span class="optyweb cw-nav-connexion" aria-hidden="true"></span>
|
|
37
|
-
<span class="visually-hidden">{{ '_COMMON._APPLICATION.LOGOUT' | translate }}</span>
|
|
38
|
-
</button>
|
|
39
|
-
</li>
|
|
40
|
-
</ng-container>
|
|
41
|
-
<ng-container *ngIf="!authService.isLoggedIn()">
|
|
42
|
-
<li class="nav-item">
|
|
43
|
-
<button (click)="authService.startAuthentication()" class="btn nav-link d-flex" container="body"
|
|
44
|
-
type="button" [ngbTooltip]="'_COMMON._APPLICATION.LOGIN' | translate"
|
|
45
|
-
[placement]="isOpened ? 'top' : 'right'">
|
|
46
|
-
<span class="optyweb cw-nav-connexion" aria-hidden="true"></span>
|
|
47
|
-
<span class="visually-hidden">{{ '_COMMON._APPLICATION.LOGIN' | translate }}</span>
|
|
48
|
-
</button>
|
|
49
|
-
</li>
|
|
50
|
-
</ng-container>
|
|
51
|
-
<li class="nav-item docked-hidden">
|
|
52
|
-
<a [href]="configuration.authentication.portalSettings.urlApplications" class="nav-link d-flex"
|
|
53
|
-
container="body" [ngbTooltip]="'_COMMON._APPLICATION.CHANGE' | translate"
|
|
54
|
-
[placement]="isOpened ? 'top' : 'right'">
|
|
55
|
-
<span class="bo-icons bo-change-app" aria-hidden="true"></span>
|
|
56
|
-
<span class="visually-hidden">{{ '_COMMON._APPLICATION.CHANGE' | translate }}</span>
|
|
57
|
-
</a>
|
|
58
|
-
</li> -->
|
|
59
|
-
</ul>
|
|
60
|
-
</nav>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
-
import { MenuComponent } from '../menu/menu.component';
|
|
5
|
-
import { CommonModule } from '@angular/common';
|
|
6
|
-
import { RouterModule } from '@angular/router';
|
|
7
|
-
|
|
8
|
-
@Component({
|
|
9
|
-
selector: 'app-sidebar',
|
|
10
|
-
templateUrl: './sidebar.component.html',
|
|
11
|
-
standalone: true,
|
|
12
|
-
imports: [
|
|
13
|
-
TranslateModule,
|
|
14
|
-
MenuComponent,
|
|
15
|
-
NgbTooltipModule,
|
|
16
|
-
CommonModule,
|
|
17
|
-
RouterModule
|
|
18
|
-
]
|
|
19
|
-
})
|
|
20
|
-
export class SidebarComponent {
|
|
21
|
-
|
|
22
|
-
@Output() toggleSidenav = new EventEmitter<void>();
|
|
23
|
-
@Input() isOpened: boolean;
|
|
24
|
-
|
|
25
|
-
public onClick() {
|
|
26
|
-
this.toggleSidenav.emit()
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
-
|
|
3
|
-
import { SkipLinksComponent } from './skip-links.component';
|
|
4
|
-
|
|
5
|
-
describe('SkipLinksComponent', () => {
|
|
6
|
-
let component: SkipLinksComponent;
|
|
7
|
-
let fixture: ComponentFixture<SkipLinksComponent>;
|
|
8
|
-
|
|
9
|
-
beforeEach(async () => {
|
|
10
|
-
await TestBed.configureTestingModule({
|
|
11
|
-
declarations: [ SkipLinksComponent ]
|
|
12
|
-
})
|
|
13
|
-
.compileComponents();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
beforeEach(() => {
|
|
17
|
-
fixture = TestBed.createComponent(SkipLinksComponent);
|
|
18
|
-
component = fixture.componentInstance;
|
|
19
|
-
fixture.detectChanges();
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
it('should create', () => {
|
|
23
|
-
expect(component).toBeTruthy();
|
|
24
|
-
});
|
|
25
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Component, OnInit } from '@angular/core';
|
|
2
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
3
|
-
|
|
4
|
-
@Component({
|
|
5
|
-
selector: 'app-skip-links',
|
|
6
|
-
templateUrl: './skip-links.component.html',
|
|
7
|
-
standalone: true,
|
|
8
|
-
imports: [
|
|
9
|
-
TranslateModule
|
|
10
|
-
]
|
|
11
|
-
})
|
|
12
|
-
export class SkipLinksComponent implements OnInit {
|
|
13
|
-
|
|
14
|
-
constructor() { }
|
|
15
|
-
|
|
16
|
-
ngOnInit(): void {
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<div class="bg-white border-bottom px-3 py-3">
|
|
2
|
-
<h1>{{heading}}</h1>
|
|
3
|
-
<nav aria-label="breadcrumb">
|
|
4
|
-
<ol class="breadcrumb">
|
|
5
|
-
<li class="breadcrumb-item"><a href="#">{{ 'GENERIC.HOME' | translate}}</a></li>
|
|
6
|
-
<li class="breadcrumb-item">{{ 'GENERIC.HOME' | translate}}</li>
|
|
7
|
-
<li class="breadcrumb-item active" aria-current="page">{{ heading | uppercase | translate }}</li>
|
|
8
|
-
</ol>
|
|
9
|
-
</nav>
|
|
10
|
-
</div>
|