@villedemontreal/angular-ui 14.1.0 → 14.2.0
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/lib/alert/alert.component.mjs +2 -2
- package/esm2020/lib/alert/index.mjs +3 -3
- package/esm2020/lib/alert/module.mjs +2 -2
- package/esm2020/lib/avatar/avatar.component.mjs +2 -2
- package/esm2020/lib/avatar/index.mjs +2 -2
- package/esm2020/lib/avatar/module.mjs +2 -2
- package/esm2020/lib/badge/badge.component.mjs +2 -2
- package/esm2020/lib/badge/index.mjs +2 -2
- package/esm2020/lib/badge/module.mjs +2 -2
- package/esm2020/lib/bao.module.mjs +13 -8
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/lib/breadcrumb/index.mjs +2 -2
- package/esm2020/lib/breadcrumb/module.mjs +2 -2
- package/esm2020/lib/button/button.component.mjs +3 -3
- package/esm2020/lib/button/index.mjs +2 -2
- package/esm2020/lib/button/module.mjs +2 -2
- package/esm2020/lib/card/card.component.mjs +2 -2
- package/esm2020/lib/card/index.mjs +2 -2
- package/esm2020/lib/card/module.mjs +2 -2
- package/esm2020/lib/checkbox/checkbox-group.component.mjs +2 -2
- package/esm2020/lib/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/lib/checkbox/index.mjs +2 -2
- package/esm2020/lib/checkbox/module.mjs +2 -2
- package/esm2020/lib/common-components/error-text/errorText.component.mjs +2 -2
- package/esm2020/lib/common-components/guiding-text/guidingText.component.mjs +2 -2
- package/esm2020/lib/common-components/index.mjs +2 -2
- package/esm2020/lib/common-components/label-text/labelText.component.mjs +2 -2
- package/esm2020/lib/common-components/module.mjs +2 -2
- package/esm2020/lib/common-components/title-text/titleText.component.mjs +2 -2
- package/esm2020/lib/core/breakpoints.mjs +13 -0
- package/esm2020/lib/core/colors.mjs +1 -1
- package/esm2020/lib/core/index.mjs +8 -0
- package/esm2020/lib/dropdown-menu/dropdown-menu.component.mjs +33 -10
- package/esm2020/lib/dropdown-menu/index.mjs +2 -2
- package/esm2020/lib/dropdown-menu/module.mjs +2 -2
- package/esm2020/lib/file/file-input.component.mjs +2 -2
- package/esm2020/lib/file/file-intl.mjs +2 -2
- package/esm2020/lib/file/file-preview.component.mjs +2 -2
- package/esm2020/lib/file/index.mjs +2 -2
- package/esm2020/lib/file/module.mjs +2 -2
- package/esm2020/lib/header-info/header-info.component.mjs +2 -2
- package/esm2020/lib/header-info/index.mjs +2 -2
- package/esm2020/lib/header-info/module.mjs +2 -2
- package/esm2020/lib/hyperlink/hyperlink.component.mjs +2 -2
- package/esm2020/lib/hyperlink/index.mjs +2 -2
- package/esm2020/lib/hyperlink/module.mjs +2 -2
- package/esm2020/lib/icon/bao-icon-registry.mjs +2 -2
- package/esm2020/lib/icon/icon.component.mjs +2 -2
- package/esm2020/lib/icon/icons-dictionary.mjs +2 -2
- package/esm2020/lib/icon/index.mjs +2 -2
- package/esm2020/lib/icon/module.mjs +2 -2
- package/esm2020/lib/list/index.mjs +2 -2
- package/esm2020/lib/list/list.component.mjs +2 -2
- package/esm2020/lib/list/module.mjs +2 -2
- package/esm2020/lib/modal/index.mjs +2 -2
- package/esm2020/lib/modal/modal-config.mjs +2 -2
- package/esm2020/lib/modal/modal-container.mjs +3 -3
- package/esm2020/lib/modal/modal-directives.mjs +2 -2
- package/esm2020/lib/modal/modal-ref.mjs +1 -1
- package/esm2020/lib/modal/modal.mjs +2 -2
- package/esm2020/lib/modal/module.mjs +2 -2
- package/esm2020/lib/radio/index.mjs +2 -2
- package/esm2020/lib/radio/module.mjs +2 -2
- package/esm2020/lib/radio/radio-group.component.mjs +2 -2
- package/esm2020/lib/radio/radio.component.mjs +1 -1
- package/esm2020/lib/shared/enum/display-mode.mjs +1 -1
- package/esm2020/lib/shared/index.mjs +2 -2
- package/esm2020/lib/snack-bar/index.mjs +12 -0
- package/esm2020/lib/snack-bar/module.mjs +51 -0
- package/esm2020/lib/snack-bar/simple-snack-bar.component.mjs +92 -0
- package/esm2020/lib/snack-bar/snack-bar-animations.mjs +28 -0
- package/esm2020/lib/snack-bar/snack-bar-config.mjs +44 -0
- package/esm2020/lib/snack-bar/snack-bar-container.mjs +273 -0
- package/esm2020/lib/snack-bar/snack-bar-ref.mjs +75 -0
- package/esm2020/lib/snack-bar/snack-bar.mjs +251 -0
- package/esm2020/lib/summary/index.mjs +2 -2
- package/esm2020/lib/summary/list-summary.component.mjs +2 -2
- package/esm2020/lib/summary/module.mjs +2 -2
- package/esm2020/lib/summary/summary.component.mjs +2 -2
- package/esm2020/lib/system-header/index.mjs +8 -0
- package/esm2020/lib/system-header/module.mjs +33 -0
- package/esm2020/lib/system-header/system-header.component.mjs +128 -0
- package/esm2020/lib/tabs/index.mjs +2 -2
- package/esm2020/lib/tabs/module.mjs +2 -2
- package/esm2020/lib/tabs/tabs.component.mjs +2 -2
- package/esm2020/lib/tag/index.mjs +2 -2
- package/esm2020/lib/tag/module.mjs +2 -2
- package/esm2020/lib/tag/tag.component.mjs +2 -2
- package/esm2020/public-api.mjs +4 -2
- package/fesm2015/villedemontreal-angular-ui.mjs +1118 -130
- package/fesm2015/villedemontreal-angular-ui.mjs.map +1 -1
- package/fesm2020/villedemontreal-angular-ui.mjs +1114 -130
- package/fesm2020/villedemontreal-angular-ui.mjs.map +1 -1
- package/lib/alert/index.d.ts +1 -1
- package/lib/bao.module.d.ts +3 -1
- package/lib/button/button.component.d.ts +3 -3
- package/lib/core/breakpoints.d.ts +7 -0
- package/lib/core/index.d.ts +2 -0
- package/lib/dropdown-menu/dropdown-menu.component.d.ts +10 -4
- package/lib/snack-bar/index.d.ts +6 -0
- package/lib/snack-bar/module.d.ts +13 -0
- package/lib/snack-bar/simple-snack-bar.component.d.ts +51 -0
- package/lib/snack-bar/snack-bar-animations.d.ts +8 -0
- package/lib/snack-bar/snack-bar-config.d.ts +55 -0
- package/lib/snack-bar/snack-bar-container.d.ts +111 -0
- package/lib/snack-bar/snack-bar-ref.d.ts +51 -0
- package/lib/snack-bar/snack-bar.d.ts +89 -0
- package/lib/system-header/index.d.ts +2 -0
- package/lib/system-header/module.d.ts +9 -0
- package/lib/system-header/system-header.component.d.ts +41 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { SecurityContext, Injectable, Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Input,
|
|
2
|
+
import { SecurityContext, Injectable, Inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Directive, EventEmitter, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA, ViewChild, forwardRef, InjectionToken, ContentChildren, Optional, HostListener, ContentChild, Injector, TemplateRef, SkipSelf, ViewChildren, inject } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/common';
|
|
4
4
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1 from '@angular/platform-browser';
|
|
@@ -12,10 +12,14 @@ import * as i2 from '@angular/cdk/collections';
|
|
|
12
12
|
import * as i1$4 from '@angular/cdk/overlay';
|
|
13
13
|
import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
14
14
|
import * as i3 from '@angular/cdk/portal';
|
|
15
|
-
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule, DomPortal } from '@angular/cdk/portal';
|
|
15
|
+
import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule, DomPortal, PortalInjector } from '@angular/cdk/portal';
|
|
16
16
|
import { Subject, filter, take, defer, startWith } from 'rxjs';
|
|
17
|
+
import * as i1$5 from '@angular/cdk/platform';
|
|
17
18
|
import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
|
|
18
19
|
import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
|
|
20
|
+
import { take as take$1 } from 'rxjs/operators';
|
|
21
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
22
|
+
import * as i2$1 from '@angular/cdk/layout';
|
|
19
23
|
|
|
20
24
|
function baoColorToHex(baoColor) {
|
|
21
25
|
switch (baoColor) {
|
|
@@ -43,7 +47,7 @@ function baoColorToHex(baoColor) {
|
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
/*
|
|
46
|
-
* Copyright (c)
|
|
50
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
47
51
|
* Licensed under the MIT license.
|
|
48
52
|
* See LICENSE file in the project root for full license information.
|
|
49
53
|
*/
|
|
@@ -168,7 +172,7 @@ const ICONS_DCT = {
|
|
|
168
172
|
};
|
|
169
173
|
|
|
170
174
|
/*
|
|
171
|
-
* Copyright (c)
|
|
175
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
172
176
|
* Licensed under the MIT license.
|
|
173
177
|
* See LICENSE file in the project root for full license information.
|
|
174
178
|
*/
|
|
@@ -207,7 +211,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
207
211
|
}] }, { type: i1.DomSanitizer }]; } });
|
|
208
212
|
|
|
209
213
|
/*
|
|
210
|
-
* Copyright (c)
|
|
214
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
211
215
|
* Licensed under the MIT license.
|
|
212
216
|
* See LICENSE file in the project root for full license information.
|
|
213
217
|
*/
|
|
@@ -359,27 +363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
359
363
|
}] } });
|
|
360
364
|
|
|
361
365
|
/*
|
|
362
|
-
* Copyright (c)
|
|
363
|
-
* Licensed under the MIT license.
|
|
364
|
-
* See LICENSE file in the project root for full license information.
|
|
365
|
-
*/
|
|
366
|
-
const ICON_DIRECTIVES = [BaoIconComponent];
|
|
367
|
-
class BaoIconModule {
|
|
368
|
-
}
|
|
369
|
-
BaoIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
370
|
-
BaoIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, declarations: [BaoIconComponent], imports: [CommonModule], exports: [BaoIconComponent] });
|
|
371
|
-
BaoIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, imports: [CommonModule] });
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, decorators: [{
|
|
373
|
-
type: NgModule,
|
|
374
|
-
args: [{
|
|
375
|
-
imports: [CommonModule],
|
|
376
|
-
declarations: ICON_DIRECTIVES,
|
|
377
|
-
exports: ICON_DIRECTIVES
|
|
378
|
-
}]
|
|
379
|
-
}] });
|
|
380
|
-
|
|
381
|
-
/*
|
|
382
|
-
* Copyright (c) 2023 Ville de Montreal. All rights reserved.
|
|
366
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
383
367
|
* Licensed under the MIT license.
|
|
384
368
|
* See LICENSE file in the project root for full license information.
|
|
385
369
|
*/
|
|
@@ -429,7 +413,7 @@ class BaoButtonComponent {
|
|
|
429
413
|
get nativeElement() {
|
|
430
414
|
return this.elementRef.nativeElement;
|
|
431
415
|
}
|
|
432
|
-
|
|
416
|
+
ngAfterContentInit() {
|
|
433
417
|
const childNodes = Array.from(this.nativeElement.childNodes);
|
|
434
418
|
const textIndex = childNodes.findIndex(c => c.nodeType === Node.TEXT_NODE);
|
|
435
419
|
this.noText = textIndex === -1;
|
|
@@ -475,27 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
475
459
|
}] } });
|
|
476
460
|
|
|
477
461
|
/*
|
|
478
|
-
* Copyright (c)
|
|
479
|
-
* Licensed under the MIT license.
|
|
480
|
-
* See LICENSE file in the project root for full license information.
|
|
481
|
-
*/
|
|
482
|
-
const BUTTON_DIRECTIVES = [BaoButtonComponent];
|
|
483
|
-
class BaoButtonModule {
|
|
484
|
-
}
|
|
485
|
-
BaoButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
486
|
-
BaoButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, declarations: [BaoButtonComponent], imports: [CommonModule, BaoIconModule], exports: [BaoButtonComponent, BaoIconModule] });
|
|
487
|
-
BaoButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, imports: [CommonModule, BaoIconModule, BaoIconModule] });
|
|
488
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, decorators: [{
|
|
489
|
-
type: NgModule,
|
|
490
|
-
args: [{
|
|
491
|
-
imports: [CommonModule, BaoIconModule],
|
|
492
|
-
declarations: BUTTON_DIRECTIVES,
|
|
493
|
-
exports: [...BUTTON_DIRECTIVES, BaoIconModule]
|
|
494
|
-
}]
|
|
495
|
-
}] });
|
|
496
|
-
|
|
497
|
-
/*
|
|
498
|
-
* Copyright (c) 2023 Ville de Montreal. All rights reserved.
|
|
462
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
499
463
|
* Licensed under the MIT license.
|
|
500
464
|
* See LICENSE file in the project root for full license information.
|
|
501
465
|
*/
|
|
@@ -652,7 +616,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
652
616
|
}] } });
|
|
653
617
|
|
|
654
618
|
/*
|
|
655
|
-
* Copyright (c)
|
|
619
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
620
|
+
* Licensed under the MIT license.
|
|
621
|
+
* See LICENSE file in the project root for full license information.
|
|
622
|
+
*/
|
|
623
|
+
const ICON_DIRECTIVES = [BaoIconComponent];
|
|
624
|
+
class BaoIconModule {
|
|
625
|
+
}
|
|
626
|
+
BaoIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
627
|
+
BaoIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, declarations: [BaoIconComponent], imports: [CommonModule], exports: [BaoIconComponent] });
|
|
628
|
+
BaoIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, imports: [CommonModule] });
|
|
629
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, decorators: [{
|
|
630
|
+
type: NgModule,
|
|
631
|
+
args: [{
|
|
632
|
+
imports: [CommonModule],
|
|
633
|
+
declarations: ICON_DIRECTIVES,
|
|
634
|
+
exports: ICON_DIRECTIVES
|
|
635
|
+
}]
|
|
636
|
+
}] });
|
|
637
|
+
|
|
638
|
+
/*
|
|
639
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
640
|
+
* Licensed under the MIT license.
|
|
641
|
+
* See LICENSE file in the project root for full license information.
|
|
642
|
+
*/
|
|
643
|
+
const BUTTON_DIRECTIVES = [BaoButtonComponent];
|
|
644
|
+
class BaoButtonModule {
|
|
645
|
+
}
|
|
646
|
+
BaoButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
647
|
+
BaoButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, declarations: [BaoButtonComponent], imports: [CommonModule, BaoIconModule], exports: [BaoButtonComponent, BaoIconModule] });
|
|
648
|
+
BaoButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, imports: [CommonModule, BaoIconModule, BaoIconModule] });
|
|
649
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, decorators: [{
|
|
650
|
+
type: NgModule,
|
|
651
|
+
args: [{
|
|
652
|
+
imports: [CommonModule, BaoIconModule],
|
|
653
|
+
declarations: BUTTON_DIRECTIVES,
|
|
654
|
+
exports: [...BUTTON_DIRECTIVES, BaoIconModule]
|
|
655
|
+
}]
|
|
656
|
+
}] });
|
|
657
|
+
|
|
658
|
+
/*
|
|
659
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
656
660
|
* Licensed under the MIT license.
|
|
657
661
|
* See LICENSE file in the project root for full license information.
|
|
658
662
|
*/
|
|
@@ -687,13 +691,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
687
691
|
}] });
|
|
688
692
|
|
|
689
693
|
/*
|
|
690
|
-
* Copyright (c)
|
|
694
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
691
695
|
* Licensed under the MIT license.
|
|
692
696
|
* See LICENSE file in the project root for full license information.
|
|
693
697
|
*/
|
|
694
698
|
|
|
695
699
|
/*
|
|
696
|
-
* Copyright (c)
|
|
700
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
697
701
|
* Licensed under the MIT license.
|
|
698
702
|
* See LICENSE file in the project root for full license information.
|
|
699
703
|
*/
|
|
@@ -726,7 +730,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
726
730
|
}] } });
|
|
727
731
|
|
|
728
732
|
/*
|
|
729
|
-
* Copyright (c)
|
|
733
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
730
734
|
* Licensed under the MIT license.
|
|
731
735
|
* See LICENSE file in the project root for full license information.
|
|
732
736
|
*/
|
|
@@ -746,19 +750,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
746
750
|
}] });
|
|
747
751
|
|
|
748
752
|
/*
|
|
749
|
-
* Copyright (c)
|
|
753
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
750
754
|
* Licensed under the MIT license.
|
|
751
755
|
* See LICENSE file in the project root for full license information.
|
|
752
756
|
*/
|
|
753
757
|
|
|
754
758
|
/*
|
|
755
|
-
* Copyright (c)
|
|
759
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
756
760
|
* Licensed under the MIT license.
|
|
757
761
|
* See LICENSE file in the project root for full license information.
|
|
758
762
|
*/
|
|
759
763
|
|
|
760
764
|
/*
|
|
761
|
-
* Copyright (c)
|
|
765
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
762
766
|
* Licensed under the MIT license.
|
|
763
767
|
* See LICENSE file in the project root for full license information.
|
|
764
768
|
*/
|
|
@@ -850,7 +854,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
850
854
|
}] });
|
|
851
855
|
|
|
852
856
|
/*
|
|
853
|
-
* Copyright (c)
|
|
857
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
854
858
|
* Licensed under the MIT license.
|
|
855
859
|
* See LICENSE file in the project root for full license information.
|
|
856
860
|
*/
|
|
@@ -884,13 +888,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
884
888
|
}] });
|
|
885
889
|
|
|
886
890
|
/*
|
|
887
|
-
* Copyright (c)
|
|
891
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
888
892
|
* Licensed under the MIT license.
|
|
889
893
|
* See LICENSE file in the project root for full license information.
|
|
890
894
|
*/
|
|
891
895
|
|
|
892
896
|
/*
|
|
893
|
-
* Copyright (c)
|
|
897
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
894
898
|
* Licensed under the MIT license.
|
|
895
899
|
* See LICENSE file in the project root for full license information.
|
|
896
900
|
*/
|
|
@@ -904,7 +908,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
904
908
|
}] });
|
|
905
909
|
|
|
906
910
|
/*
|
|
907
|
-
* Copyright (c)
|
|
911
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
908
912
|
* Licensed under the MIT license.
|
|
909
913
|
* See LICENSE file in the project root for full license information.
|
|
910
914
|
*/
|
|
@@ -918,7 +922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
918
922
|
}] });
|
|
919
923
|
|
|
920
924
|
/*
|
|
921
|
-
* Copyright (c)
|
|
925
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
922
926
|
* Licensed under the MIT license.
|
|
923
927
|
* See LICENSE file in the project root for full license information.
|
|
924
928
|
*/
|
|
@@ -937,7 +941,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
937
941
|
}] } });
|
|
938
942
|
|
|
939
943
|
/*
|
|
940
|
-
* Copyright (c)
|
|
944
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
941
945
|
* Licensed under the MIT license.
|
|
942
946
|
* See LICENSE file in the project root for full license information.
|
|
943
947
|
*/
|
|
@@ -951,7 +955,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
951
955
|
}] });
|
|
952
956
|
|
|
953
957
|
/*
|
|
954
|
-
* Copyright (c)
|
|
958
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
955
959
|
* Licensed under the MIT license.
|
|
956
960
|
* See LICENSE file in the project root for full license information.
|
|
957
961
|
*/
|
|
@@ -982,7 +986,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
982
986
|
}] });
|
|
983
987
|
|
|
984
988
|
/*
|
|
985
|
-
* Copyright (c)
|
|
989
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
986
990
|
* Licensed under the MIT license.
|
|
987
991
|
* See LICENSE file in the project root for full license information.
|
|
988
992
|
*/
|
|
@@ -1337,7 +1341,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1337
1341
|
}] });
|
|
1338
1342
|
|
|
1339
1343
|
/*
|
|
1340
|
-
* Copyright (c)
|
|
1344
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1341
1345
|
* Licensed under the MIT license.
|
|
1342
1346
|
* See LICENSE file in the project root for full license information.
|
|
1343
1347
|
*/
|
|
@@ -1365,19 +1369,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1365
1369
|
}] });
|
|
1366
1370
|
|
|
1367
1371
|
/*
|
|
1368
|
-
* Copyright (c)
|
|
1372
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1369
1373
|
* Licensed under the MIT license.
|
|
1370
1374
|
* See LICENSE file in the project root for full license information.
|
|
1371
1375
|
*/
|
|
1372
1376
|
|
|
1373
1377
|
/*
|
|
1374
|
-
* Copyright (c)
|
|
1378
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1375
1379
|
* Licensed under the MIT license.
|
|
1376
1380
|
* See LICENSE file in the project root for full license information.
|
|
1377
1381
|
*/
|
|
1378
1382
|
|
|
1379
1383
|
/*
|
|
1380
|
-
* Copyright (c)
|
|
1384
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1381
1385
|
* Licensed under the MIT license.
|
|
1382
1386
|
* See LICENSE file in the project root for full license information.
|
|
1383
1387
|
*/
|
|
@@ -1478,7 +1482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1478
1482
|
}] });
|
|
1479
1483
|
|
|
1480
1484
|
/*
|
|
1481
|
-
* Copyright (c)
|
|
1485
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1482
1486
|
* Licensed under the MIT license.
|
|
1483
1487
|
* See LICENSE file in the project root for full license information.
|
|
1484
1488
|
*/
|
|
@@ -1515,19 +1519,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1515
1519
|
}] });
|
|
1516
1520
|
|
|
1517
1521
|
/*
|
|
1518
|
-
* Copyright (c)
|
|
1522
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1519
1523
|
* Licensed under the MIT license.
|
|
1520
1524
|
* See LICENSE file in the project root for full license information.
|
|
1521
1525
|
*/
|
|
1522
1526
|
|
|
1523
1527
|
/*
|
|
1524
|
-
* Copyright (c)
|
|
1528
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1525
1529
|
* Licensed under the MIT license.
|
|
1526
1530
|
* See LICENSE file in the project root for full license information.
|
|
1527
1531
|
*/
|
|
1528
1532
|
|
|
1529
1533
|
/*
|
|
1530
|
-
* Copyright (c)
|
|
1534
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1531
1535
|
* Licensed under the MIT license.
|
|
1532
1536
|
* See LICENSE file in the project root for full license information.
|
|
1533
1537
|
*/
|
|
@@ -1598,7 +1602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1598
1602
|
}] });
|
|
1599
1603
|
|
|
1600
1604
|
/*
|
|
1601
|
-
* Copyright (c)
|
|
1605
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1602
1606
|
* Licensed under the MIT license.
|
|
1603
1607
|
* See LICENSE file in the project root for full license information.
|
|
1604
1608
|
*/
|
|
@@ -1632,13 +1636,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1632
1636
|
}] });
|
|
1633
1637
|
|
|
1634
1638
|
/*
|
|
1635
|
-
* Copyright (c)
|
|
1639
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1636
1640
|
* Licensed under the MIT license.
|
|
1637
1641
|
* See LICENSE file in the project root for full license information.
|
|
1638
1642
|
*/
|
|
1639
1643
|
|
|
1640
1644
|
/*
|
|
1641
|
-
* Copyright (c)
|
|
1645
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1642
1646
|
* Licensed under the MIT license.
|
|
1643
1647
|
* See LICENSE file in the project root for full license information.
|
|
1644
1648
|
*/
|
|
@@ -2164,7 +2168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2164
2168
|
}] });
|
|
2165
2169
|
|
|
2166
2170
|
/*
|
|
2167
|
-
* Copyright (c)
|
|
2171
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2168
2172
|
* Licensed under the MIT license.
|
|
2169
2173
|
* See LICENSE file in the project root for full license information.
|
|
2170
2174
|
*/
|
|
@@ -2209,13 +2213,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2209
2213
|
}] });
|
|
2210
2214
|
|
|
2211
2215
|
/*
|
|
2212
|
-
* Copyright (c)
|
|
2216
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2213
2217
|
* Licensed under the MIT license.
|
|
2214
2218
|
* See LICENSE file in the project root for full license information.
|
|
2215
2219
|
*/
|
|
2216
2220
|
|
|
2217
2221
|
/*
|
|
2218
|
-
* Copyright (c)
|
|
2222
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2219
2223
|
* Licensed under the MIT license.
|
|
2220
2224
|
* See LICENSE file in the project root for full license information.
|
|
2221
2225
|
*/
|
|
@@ -2288,7 +2292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2288
2292
|
}] } });
|
|
2289
2293
|
|
|
2290
2294
|
/*
|
|
2291
|
-
* Copyright (c)
|
|
2295
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2292
2296
|
* Licensed under the MIT license.
|
|
2293
2297
|
* See LICENSE file in the project root for full license information.
|
|
2294
2298
|
*/
|
|
@@ -2308,13 +2312,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2308
2312
|
}] });
|
|
2309
2313
|
|
|
2310
2314
|
/*
|
|
2311
|
-
* Copyright (c)
|
|
2315
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2312
2316
|
* Licensed under the MIT license.
|
|
2313
2317
|
* See LICENSE file in the project root for full license information.
|
|
2314
2318
|
*/
|
|
2315
2319
|
|
|
2316
2320
|
/*
|
|
2317
|
-
* Copyright (c)
|
|
2321
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2318
2322
|
* Licensed under the MIT license.
|
|
2319
2323
|
* See LICENSE file in the project root for full license information.
|
|
2320
2324
|
*/
|
|
@@ -2405,7 +2409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2405
2409
|
}] });
|
|
2406
2410
|
|
|
2407
2411
|
/*
|
|
2408
|
-
* Copyright (c)
|
|
2412
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2409
2413
|
* Licensed under the MIT license.
|
|
2410
2414
|
* See LICENSE file in the project root for full license information.
|
|
2411
2415
|
*/
|
|
@@ -2433,7 +2437,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2433
2437
|
}] });
|
|
2434
2438
|
|
|
2435
2439
|
/*
|
|
2436
|
-
* Copyright (c)
|
|
2440
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2437
2441
|
* Licensed under the MIT license.
|
|
2438
2442
|
* See LICENSE file in the project root for full license information.
|
|
2439
2443
|
*/
|
|
@@ -2464,13 +2468,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2464
2468
|
}] });
|
|
2465
2469
|
|
|
2466
2470
|
/*
|
|
2467
|
-
* Copyright (c)
|
|
2471
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2468
2472
|
* Licensed under the MIT license.
|
|
2469
2473
|
* See LICENSE file in the project root for full license information.
|
|
2470
2474
|
*/
|
|
2471
2475
|
|
|
2472
2476
|
/*
|
|
2473
|
-
* Copyright (c)
|
|
2477
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2474
2478
|
* Licensed under the MIT license.
|
|
2475
2479
|
* See LICENSE file in the project root for full license information.
|
|
2476
2480
|
*/
|
|
@@ -2570,7 +2574,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2570
2574
|
}] } });
|
|
2571
2575
|
|
|
2572
2576
|
/*
|
|
2573
|
-
* Copyright (c)
|
|
2577
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2574
2578
|
* Licensed under the MIT license.
|
|
2575
2579
|
* See LICENSE file in the project root for full license information.
|
|
2576
2580
|
*/
|
|
@@ -2590,13 +2594,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2590
2594
|
}] });
|
|
2591
2595
|
|
|
2592
2596
|
/*
|
|
2593
|
-
* Copyright (c)
|
|
2597
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2594
2598
|
* Licensed under the MIT license.
|
|
2595
2599
|
* See LICENSE file in the project root for full license information.
|
|
2596
2600
|
*/
|
|
2597
2601
|
|
|
2598
2602
|
/*
|
|
2599
|
-
* Copyright (c)
|
|
2603
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2600
2604
|
* Licensed under the MIT license.
|
|
2601
2605
|
* See LICENSE file in the project root for full license information.
|
|
2602
2606
|
*/
|
|
@@ -2889,7 +2893,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2889
2893
|
}] } });
|
|
2890
2894
|
|
|
2891
2895
|
/*
|
|
2892
|
-
* Copyright (c)
|
|
2896
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2893
2897
|
* Licensed under the MIT license.
|
|
2894
2898
|
* See LICENSE file in the project root for full license information.
|
|
2895
2899
|
*/
|
|
@@ -2920,13 +2924,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2920
2924
|
}] });
|
|
2921
2925
|
|
|
2922
2926
|
/*
|
|
2923
|
-
* Copyright (c)
|
|
2927
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2924
2928
|
* Licensed under the MIT license.
|
|
2925
2929
|
* See LICENSE file in the project root for full license information.
|
|
2926
2930
|
*/
|
|
2927
2931
|
|
|
2928
2932
|
/*
|
|
2929
|
-
* Copyright (c)
|
|
2933
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2930
2934
|
* Licensed under the MIT license.
|
|
2931
2935
|
* See LICENSE file in the project root for full license information.
|
|
2932
2936
|
*/
|
|
@@ -3207,7 +3211,7 @@ class BaoModalContainer extends _BaoModalContainerBase {
|
|
|
3207
3211
|
}
|
|
3208
3212
|
}
|
|
3209
3213
|
BaoModalContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModalContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3210
|
-
BaoModalContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoModalContainer, selector: "bao-modal-container", host: { attributes: { "tabindex": "-1", "aria-modal": "true" }, properties: { "id": "_id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null" }, classAttribute: "bao-modal-container" }, usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex}.cdk-overlay-pane.bao-modal-mobil-full{width:100%;height:100%}.cdk-overlay-pane.bao-modal-mobil-compact{width:300px;height:100%}@media (min-width: 768px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md,.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto}}@media (min-width: 992px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md{width:800px;height:auto}.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-modal-container{display:block;overflow:auto;
|
|
3214
|
+
BaoModalContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoModalContainer, selector: "bao-modal-container", host: { attributes: { "tabindex": "-1", "aria-modal": "true" }, properties: { "id": "_id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null" }, classAttribute: "bao-modal-container" }, usesInheritance: true, ngImport: i0, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex}.cdk-overlay-pane.bao-modal-mobil-full{width:100%;height:100%}.cdk-overlay-pane.bao-modal-mobil-compact{width:300px;height:100%}@media (min-width: 768px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md,.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto;max-height:calc(100% - 4rem)}}@media (min-width: 992px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md{width:800px;height:auto;max-height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto;max-height:calc(100% - 4rem)}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-modal-container{display:block;overflow:auto;min-height:inherit;max-height:inherit;background-color:#fff;background-clip:padding-box;border:0 solid rgba(0,0,0,.2);border-radius:.5rem;outline:0}.bao-modal-content{display:flex;flex-direction:column;height:100%}.bao-modal-header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #ced4da;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bao-modal-header .bao-modal-title{font-size:1rem;line-height:1.5rem;margin:1rem 0 1rem 1rem}.bao-modal-header button{margin:.5rem}.bao-modal-body{display:block;padding:1rem;overflow:auto;flex-grow:1}@media (min-width: 768px){.bao-modal-body{padding:2rem}}.bao-modal-footer{display:flex;flex-wrap:wrap;padding:1rem;border-top:1px solid #ced4da;border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.bao-modal-footer.bao-modal-footer-order{justify-content:unset;flex-direction:column-reverse}.bao-modal-footer button{text-align:center}.bao-modal-footer .bao-button-primary,.bao-modal-footer .bao-button-secondary{width:100%;display:block}.bao-modal-footer .bao-button-secondary{margin-bottom:.5rem}.bao-modal-footer .bao-button-tertiary{display:none}@media (min-width: 768px){.bao-modal-footer{justify-content:flex-end}.bao-modal-footer.bao-modal-footer-order{flex-direction:row-reverse}.bao-modal-footer .bao-button-primary{margin-left:1rem}.bao-modal-footer .bao-button-secondary{margin-bottom:0}.bao-modal-footer .bao-button-primary,.bao-modal-footer .bao-button-secondary{width:auto}.bao-modal-footer .bao-button-tertiary{display:block}}\n"], dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
3211
3215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModalContainer, decorators: [{
|
|
3212
3216
|
type: Component,
|
|
3213
3217
|
args: [{ selector: 'bao-modal-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
|
|
@@ -3219,18 +3223,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3219
3223
|
'[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',
|
|
3220
3224
|
'[attr.aria-label]': '_config.ariaLabel',
|
|
3221
3225
|
'[attr.aria-describedby]': '_config.ariaDescribedBy || null'
|
|
3222
|
-
}, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex}.cdk-overlay-pane.bao-modal-mobil-full{width:100%;height:100%}.cdk-overlay-pane.bao-modal-mobil-compact{width:300px;height:100%}@media (min-width: 768px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md,.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto}}@media (min-width: 992px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md{width:800px;height:auto}.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-modal-container{display:block;overflow:auto;
|
|
3226
|
+
}, template: "<ng-template cdkPortalOutlet></ng-template>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex}.cdk-overlay-pane.bao-modal-mobil-full{width:100%;height:100%}.cdk-overlay-pane.bao-modal-mobil-compact{width:300px;height:100%}@media (min-width: 768px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md,.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto;max-height:calc(100% - 4rem)}}@media (min-width: 992px){.cdk-overlay-pane{width:500px;height:auto}.cdk-overlay-pane.bao-modal-lg{width:calc(100% - 4rem);height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-md{width:800px;height:auto;max-height:calc(100% - 4rem)}.cdk-overlay-pane.bao-modal-sm{width:500px;height:auto;max-height:calc(100% - 4rem)}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-modal-container{display:block;overflow:auto;min-height:inherit;max-height:inherit;background-color:#fff;background-clip:padding-box;border:0 solid rgba(0,0,0,.2);border-radius:.5rem;outline:0}.bao-modal-content{display:flex;flex-direction:column;height:100%}.bao-modal-header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #ced4da;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.bao-modal-header .bao-modal-title{font-size:1rem;line-height:1.5rem;margin:1rem 0 1rem 1rem}.bao-modal-header button{margin:.5rem}.bao-modal-body{display:block;padding:1rem;overflow:auto;flex-grow:1}@media (min-width: 768px){.bao-modal-body{padding:2rem}}.bao-modal-footer{display:flex;flex-wrap:wrap;padding:1rem;border-top:1px solid #ced4da;border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.bao-modal-footer.bao-modal-footer-order{justify-content:unset;flex-direction:column-reverse}.bao-modal-footer button{text-align:center}.bao-modal-footer .bao-button-primary,.bao-modal-footer .bao-button-secondary{width:100%;display:block}.bao-modal-footer .bao-button-secondary{margin-bottom:.5rem}.bao-modal-footer .bao-button-tertiary{display:none}@media (min-width: 768px){.bao-modal-footer{justify-content:flex-end}.bao-modal-footer.bao-modal-footer-order{flex-direction:row-reverse}.bao-modal-footer .bao-button-primary{margin-left:1rem}.bao-modal-footer .bao-button-secondary{margin-bottom:0}.bao-modal-footer .bao-button-primary,.bao-modal-footer .bao-button-secondary{width:auto}.bao-modal-footer .bao-button-tertiary{display:block}}\n"] }]
|
|
3223
3227
|
}] });
|
|
3224
3228
|
|
|
3225
3229
|
// Counter for unique modal ids.
|
|
3226
|
-
let uniqueId = 0;
|
|
3230
|
+
let uniqueId$1 = 0;
|
|
3227
3231
|
/**
|
|
3228
3232
|
* Reference to a modal opened via the BaoModalService.
|
|
3229
3233
|
*/
|
|
3230
3234
|
class BaoModalRef {
|
|
3231
3235
|
constructor(_overlayRef, _containerInstance,
|
|
3232
3236
|
/** Id of the modal. */
|
|
3233
|
-
id = `bao-modal-${uniqueId++}`) {
|
|
3237
|
+
id = `bao-modal-${uniqueId$1++}`) {
|
|
3234
3238
|
this._overlayRef = _overlayRef;
|
|
3235
3239
|
this._containerInstance = _containerInstance;
|
|
3236
3240
|
this.id = id;
|
|
@@ -3419,7 +3423,7 @@ function _closeModalVia(ref, interactionType, result) {
|
|
|
3419
3423
|
}
|
|
3420
3424
|
|
|
3421
3425
|
/*
|
|
3422
|
-
* Copyright (c)
|
|
3426
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3423
3427
|
* Licensed under the MIT license.
|
|
3424
3428
|
* See LICENSE file in the project root for full license information.
|
|
3425
3429
|
*/
|
|
@@ -3681,7 +3685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3681
3685
|
}] }, { type: i1$4.OverlayContainer }]; } });
|
|
3682
3686
|
|
|
3683
3687
|
/*
|
|
3684
|
-
* Copyright (c)
|
|
3688
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3685
3689
|
* Licensed under the MIT license.
|
|
3686
3690
|
* See LICENSE file in the project root for full license information.
|
|
3687
3691
|
*/
|
|
@@ -3760,7 +3764,7 @@ function getClosestDialog(element, openDialogs) {
|
|
|
3760
3764
|
}
|
|
3761
3765
|
|
|
3762
3766
|
/*
|
|
3763
|
-
* Copyright (c)
|
|
3767
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3764
3768
|
* Licensed under the MIT license.
|
|
3765
3769
|
* See LICENSE file in the project root for full license information.
|
|
3766
3770
|
*/
|
|
@@ -3781,7 +3785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3781
3785
|
}] });
|
|
3782
3786
|
|
|
3783
3787
|
/*
|
|
3784
|
-
* Copyright (c)
|
|
3788
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3785
3789
|
* Licensed under the MIT license.
|
|
3786
3790
|
* See LICENSE file in the project root for full license information.
|
|
3787
3791
|
*/
|
|
@@ -3854,7 +3858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3854
3858
|
}] } });
|
|
3855
3859
|
|
|
3856
3860
|
/*
|
|
3857
|
-
* Copyright (c)
|
|
3861
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3858
3862
|
* Licensed under the MIT license.
|
|
3859
3863
|
* See LICENSE file in the project root for full license information.
|
|
3860
3864
|
*/
|
|
@@ -3874,13 +3878,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3874
3878
|
}] });
|
|
3875
3879
|
|
|
3876
3880
|
/*
|
|
3877
|
-
* Copyright (c)
|
|
3881
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3878
3882
|
* Licensed under the MIT license.
|
|
3879
3883
|
* See LICENSE file in the project root for full license information.
|
|
3880
3884
|
*/
|
|
3881
3885
|
|
|
3882
3886
|
/*
|
|
3883
|
-
* Copyright (c)
|
|
3887
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3884
3888
|
* Licensed under the MIT license.
|
|
3885
3889
|
* See LICENSE file in the project root for full license information.
|
|
3886
3890
|
*/
|
|
@@ -3897,6 +3901,10 @@ class BaoDropdownMenuItem {
|
|
|
3897
3901
|
* Is the list item disabled
|
|
3898
3902
|
*/
|
|
3899
3903
|
this.disabled = false;
|
|
3904
|
+
/**
|
|
3905
|
+
* Emits when menu item is clicked
|
|
3906
|
+
*/
|
|
3907
|
+
this.itemClicked = new EventEmitter();
|
|
3900
3908
|
}
|
|
3901
3909
|
get nativeElement() {
|
|
3902
3910
|
return this.elementRef.nativeElement;
|
|
@@ -3977,19 +3985,25 @@ class BaoDropdownMenuItem {
|
|
|
3977
3985
|
}
|
|
3978
3986
|
}
|
|
3979
3987
|
/**
|
|
3980
|
-
* This method propagates a click event to menu item children with inputs (checkbox, radio button)
|
|
3988
|
+
* This method propagates a click event to menu item children with inputs (checkbox, radio button).
|
|
3989
|
+
* It emits event to close menu if item does not contain an input.
|
|
3981
3990
|
*/
|
|
3982
3991
|
propagateClick() {
|
|
3992
|
+
let closeMenu = true;
|
|
3983
3993
|
for (let i = 0; i < this.nativeElement.children.length; i++) {
|
|
3984
3994
|
if (this.nativeElement.children.item(i).firstElementChild.localName ==
|
|
3985
3995
|
'input') {
|
|
3986
3996
|
this.nativeElement.children.item(i).firstElementChild.click();
|
|
3997
|
+
closeMenu = false;
|
|
3987
3998
|
}
|
|
3988
3999
|
}
|
|
4000
|
+
if (closeMenu) {
|
|
4001
|
+
this.itemClicked.emit();
|
|
4002
|
+
}
|
|
3989
4003
|
}
|
|
3990
4004
|
}
|
|
3991
4005
|
BaoDropdownMenuItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuItem, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: BaoDropdownMenuComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3992
|
-
BaoDropdownMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoDropdownMenuItem, selector: "bao-dropdown-menu-item, [bao-dropdown-menu-item]", inputs: { disabled: "disabled" }, host: { listeners: { "window:keyup.space": "spaceKeyEvent()", "click": "onClick($event.target)", "window:
|
|
4006
|
+
BaoDropdownMenuItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoDropdownMenuItem, selector: "bao-dropdown-menu-item, [bao-dropdown-menu-item]", inputs: { disabled: "disabled" }, outputs: { itemClicked: "itemClicked" }, host: { listeners: { "window:keyup.space": "spaceKeyEvent()", "click": "onClick($event.target)", "window:keyup.enter": "enterKeyEvent()" }, properties: { "class.bao-dropdown-menu-item-disabled": "disabled===true" }, classAttribute: "bao-dropdown-menu-item" }, usesOnChanges: true, ngImport: i0 });
|
|
3993
4007
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuItem, decorators: [{
|
|
3994
4008
|
type: Directive,
|
|
3995
4009
|
args: [{
|
|
@@ -4001,6 +4015,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4001
4015
|
}]
|
|
4002
4016
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: BaoDropdownMenuComponent }]; }, propDecorators: { disabled: [{
|
|
4003
4017
|
type: Input
|
|
4018
|
+
}], itemClicked: [{
|
|
4019
|
+
type: Output
|
|
4004
4020
|
}], spaceKeyEvent: [{
|
|
4005
4021
|
type: HostListener,
|
|
4006
4022
|
args: ['window:keyup.space']
|
|
@@ -4009,7 +4025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4009
4025
|
args: ['click', ['$event.target']]
|
|
4010
4026
|
}], enterKeyEvent: [{
|
|
4011
4027
|
type: HostListener,
|
|
4012
|
-
args: ['window:
|
|
4028
|
+
args: ['window:keyup.enter']
|
|
4013
4029
|
}] } });
|
|
4014
4030
|
class BaoDropdownMenuComponent {
|
|
4015
4031
|
constructor(cdr, renderer, elementRef) {
|
|
@@ -4087,6 +4103,9 @@ class BaoDropdownMenuComponent {
|
|
|
4087
4103
|
this.renderer.setAttribute(this.nativeElement, 'id', this.menuId);
|
|
4088
4104
|
this._menuPortal = new DomPortal(this._menuContent);
|
|
4089
4105
|
}
|
|
4106
|
+
ngAfterContentInit() {
|
|
4107
|
+
this._listItems.forEach((item) => item.itemClicked.subscribe(() => this.isClosedByKeyEvent.emit()));
|
|
4108
|
+
}
|
|
4090
4109
|
focusFirstItem() {
|
|
4091
4110
|
this._activeItemIndex = 0;
|
|
4092
4111
|
this._listItems.first.nativeElement.focus();
|
|
@@ -4207,8 +4226,9 @@ class BaoDropdownMenuTrigger {
|
|
|
4207
4226
|
}
|
|
4208
4227
|
/** Enter key event triggers click event which opens menu,
|
|
4209
4228
|
* then focus is put on first item in the menu */
|
|
4210
|
-
enterKeyEvent() {
|
|
4229
|
+
enterKeyEvent(event) {
|
|
4211
4230
|
if (this._isMenuOpen && document.activeElement === this.nativeElement) {
|
|
4231
|
+
event.stopImmediatePropagation();
|
|
4212
4232
|
this.menu.focusFirstItem();
|
|
4213
4233
|
}
|
|
4214
4234
|
}
|
|
@@ -4280,11 +4300,18 @@ class BaoDropdownMenuTrigger {
|
|
|
4280
4300
|
overlayY: 'bottom'
|
|
4281
4301
|
},
|
|
4282
4302
|
{
|
|
4283
|
-
// top-right of the overlay is connected to bottom-
|
|
4284
|
-
originX: '
|
|
4303
|
+
// top-right of the overlay is connected to bottom-right of the origin;
|
|
4304
|
+
originX: 'end',
|
|
4285
4305
|
originY: 'bottom',
|
|
4286
4306
|
overlayX: 'end',
|
|
4287
4307
|
overlayY: 'top'
|
|
4308
|
+
},
|
|
4309
|
+
{
|
|
4310
|
+
// bottom-right of the overlay is connected to top-right of the origin;
|
|
4311
|
+
originX: 'end',
|
|
4312
|
+
originY: 'top',
|
|
4313
|
+
overlayX: 'end',
|
|
4314
|
+
overlayY: 'bottom'
|
|
4288
4315
|
}
|
|
4289
4316
|
]),
|
|
4290
4317
|
backdropClass: 'bao-overlay-transparent-backdrop',
|
|
@@ -4294,7 +4321,7 @@ class BaoDropdownMenuTrigger {
|
|
|
4294
4321
|
}
|
|
4295
4322
|
}
|
|
4296
4323
|
BaoDropdownMenuTrigger.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuTrigger, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1$4.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4297
|
-
BaoDropdownMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoDropdownMenuTrigger, selector: "bao-dropdown-menu-trigger, [bao-dropdown-menu-trigger], [baoDropdownMenuTriggerFor]", inputs: { menu: ["baoDropdownMenuTriggerFor", "menu"] }, host: { listeners: { "window:keyup.escape": "escapeKeyEvent()", "window:keyup.enter": "enterKeyEvent()", "click": "onClick()" }, classAttribute: "bao-dropdown-menu-trigger" }, ngImport: i0 });
|
|
4324
|
+
BaoDropdownMenuTrigger.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoDropdownMenuTrigger, selector: "bao-dropdown-menu-trigger, [bao-dropdown-menu-trigger], [baoDropdownMenuTriggerFor]", inputs: { menu: ["baoDropdownMenuTriggerFor", "menu"] }, host: { listeners: { "window:keyup.escape": "escapeKeyEvent()", "window:keyup.enter": "enterKeyEvent($event)", "click": "onClick()" }, classAttribute: "bao-dropdown-menu-trigger" }, ngImport: i0 });
|
|
4298
4325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuTrigger, decorators: [{
|
|
4299
4326
|
type: Directive,
|
|
4300
4327
|
args: [{
|
|
@@ -4309,7 +4336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4309
4336
|
args: ['window:keyup.escape']
|
|
4310
4337
|
}], enterKeyEvent: [{
|
|
4311
4338
|
type: HostListener,
|
|
4312
|
-
args: ['window:keyup.enter']
|
|
4339
|
+
args: ['window:keyup.enter', ['$event']]
|
|
4313
4340
|
}], onClick: [{
|
|
4314
4341
|
type: HostListener,
|
|
4315
4342
|
args: ['click']
|
|
@@ -4404,7 +4431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4404
4431
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
|
|
4405
4432
|
|
|
4406
4433
|
/*
|
|
4407
|
-
* Copyright (c)
|
|
4434
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4408
4435
|
* Licensed under the MIT license.
|
|
4409
4436
|
* See LICENSE file in the project root for full license information.
|
|
4410
4437
|
*/
|
|
@@ -4444,13 +4471,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4444
4471
|
}] });
|
|
4445
4472
|
|
|
4446
4473
|
/*
|
|
4447
|
-
* Copyright (c)
|
|
4474
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4448
4475
|
* Licensed under the MIT license.
|
|
4449
4476
|
* See LICENSE file in the project root for full license information.
|
|
4450
4477
|
*/
|
|
4451
4478
|
|
|
4452
4479
|
/*
|
|
4453
|
-
* Copyright (c)
|
|
4480
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4454
4481
|
* Licensed under the MIT license.
|
|
4455
4482
|
* See LICENSE file in the project root for full license information.
|
|
4456
4483
|
*/
|
|
@@ -4532,7 +4559,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4532
4559
|
}] } });
|
|
4533
4560
|
|
|
4534
4561
|
/*
|
|
4535
|
-
* Copyright (c)
|
|
4562
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4536
4563
|
* Licensed under the MIT license.
|
|
4537
4564
|
* See LICENSE file in the project root for full license information.
|
|
4538
4565
|
*/
|
|
@@ -4594,7 +4621,7 @@ const BAO_FILE_INTL_PROVIDER = {
|
|
|
4594
4621
|
};
|
|
4595
4622
|
|
|
4596
4623
|
/*
|
|
4597
|
-
* Copyright (c)
|
|
4624
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4598
4625
|
* Licensed under the MIT license.
|
|
4599
4626
|
* See LICENSE file in the project root for full license information.
|
|
4600
4627
|
*/
|
|
@@ -4903,7 +4930,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4903
4930
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
|
|
4904
4931
|
|
|
4905
4932
|
/*
|
|
4906
|
-
* Copyright (c)
|
|
4933
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4907
4934
|
* Licensed under the MIT license.
|
|
4908
4935
|
* See LICENSE file in the project root for full license information.
|
|
4909
4936
|
*/
|
|
@@ -4948,8 +4975,956 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4948
4975
|
}]
|
|
4949
4976
|
}] });
|
|
4950
4977
|
|
|
4978
|
+
/** Injection token that can be used to access the data that was passed in to a snack bar. */
|
|
4979
|
+
const BAO_SNACK_BAR_DATA = new InjectionToken('BaoSnackBarData');
|
|
4980
|
+
/** Possible types of toast to display the snack bar */
|
|
4981
|
+
var BaoSnackBarToastTypeEnum;
|
|
4982
|
+
(function (BaoSnackBarToastTypeEnum) {
|
|
4983
|
+
BaoSnackBarToastTypeEnum["Info"] = "info";
|
|
4984
|
+
BaoSnackBarToastTypeEnum["Success"] = "success";
|
|
4985
|
+
BaoSnackBarToastTypeEnum["Danger"] = "danger";
|
|
4986
|
+
})(BaoSnackBarToastTypeEnum || (BaoSnackBarToastTypeEnum = {}));
|
|
4987
|
+
/**
|
|
4988
|
+
* Configuration used when opening a snack-bar.
|
|
4989
|
+
*/
|
|
4990
|
+
class BaoSnackBarConfig {
|
|
4991
|
+
constructor() {
|
|
4992
|
+
/** The message to display in the snackbar. */
|
|
4993
|
+
this.message = 'No message';
|
|
4994
|
+
/** The type of snackbar template to display. */
|
|
4995
|
+
this.toastType = BaoSnackBarToastTypeEnum.Info;
|
|
4996
|
+
/**
|
|
4997
|
+
* The attached action to the snack bar. If the name of the action matches an icon provided as part of
|
|
4998
|
+
* angular-ui icon dictionnary an icon will be displayed instead of text.
|
|
4999
|
+
* */
|
|
5000
|
+
this.actionLabelOrIcon = '';
|
|
5001
|
+
/** Displays the close button when set to true */
|
|
5002
|
+
this.showClose = false;
|
|
5003
|
+
/** The length of time in milliseconds to wait before automatically dismissing the snack bar. */
|
|
5004
|
+
this.duration = 5000;
|
|
5005
|
+
/** The politeness level for the MatAriaLiveAnnouncer announcement. */
|
|
5006
|
+
this.politeness = 'assertive';
|
|
5007
|
+
/**
|
|
5008
|
+
* Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom
|
|
5009
|
+
* component or template, the announcement message will default to the specified message.
|
|
5010
|
+
*/
|
|
5011
|
+
this.announcementMessage = '';
|
|
5012
|
+
/** Data being injected into the child component. */
|
|
5013
|
+
this.data = null;
|
|
5014
|
+
/** The horizontal position to place the snack bar. */
|
|
5015
|
+
this.horizontalPosition = 'left';
|
|
5016
|
+
/** The vertical position to place the snack bar. */
|
|
5017
|
+
this.verticalPosition = 'bottom';
|
|
5018
|
+
}
|
|
5019
|
+
}
|
|
5020
|
+
|
|
5021
|
+
/** Maximum amount of milliseconds that can be passed into setTimeout. */
|
|
5022
|
+
const MAX_TIMEOUT = Math.pow(2, 31) - 1;
|
|
5023
|
+
/**
|
|
5024
|
+
* Reference to a snack bar dispatched from the snack bar service.
|
|
5025
|
+
*/
|
|
5026
|
+
class BaoSnackBarRef {
|
|
5027
|
+
constructor(containerInstance, _overlayRef) {
|
|
5028
|
+
this._overlayRef = _overlayRef;
|
|
5029
|
+
/** Subject for notifying the user that the snack bar has been dismissed. */
|
|
5030
|
+
this._afterDismissed = new Subject();
|
|
5031
|
+
/** Subject for notifying the user that the snack bar has opened and appeared. */
|
|
5032
|
+
this._afterOpened = new Subject();
|
|
5033
|
+
/** Subject for notifying the user that the snack bar action was called. */
|
|
5034
|
+
this._onAction = new Subject();
|
|
5035
|
+
/** Whether the snack bar was dismissed using the action button. */
|
|
5036
|
+
this._dismissedByAction = false;
|
|
5037
|
+
this.containerInstance = containerInstance;
|
|
5038
|
+
// Dismiss snackbar on action.
|
|
5039
|
+
this.onAction().subscribe(() => this.dismiss());
|
|
5040
|
+
containerInstance._onExit.subscribe(() => this.finishDismiss());
|
|
5041
|
+
}
|
|
5042
|
+
/** Dismisses the snack bar. */
|
|
5043
|
+
dismiss() {
|
|
5044
|
+
if (!this._afterDismissed.closed) {
|
|
5045
|
+
this.containerInstance.exit();
|
|
5046
|
+
}
|
|
5047
|
+
clearTimeout(this._durationTimeoutId);
|
|
5048
|
+
}
|
|
5049
|
+
/** Marks the snackbar action clicked. */
|
|
5050
|
+
dismissWithAction() {
|
|
5051
|
+
if (!this._onAction.closed) {
|
|
5052
|
+
this._dismissedByAction = true;
|
|
5053
|
+
this._onAction.next();
|
|
5054
|
+
this._onAction.complete();
|
|
5055
|
+
}
|
|
5056
|
+
}
|
|
5057
|
+
/** Dismisses the snack bar after some duration */
|
|
5058
|
+
dismissAfter(duration) {
|
|
5059
|
+
// Note that we need to cap the duration to the maximum value for setTimeout, because
|
|
5060
|
+
// it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.
|
|
5061
|
+
// @TODO: window.setTimeout() ?
|
|
5062
|
+
this._durationTimeoutId = window.setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));
|
|
5063
|
+
}
|
|
5064
|
+
/** Marks the snackbar as opened */
|
|
5065
|
+
open() {
|
|
5066
|
+
if (!this._afterOpened.closed) {
|
|
5067
|
+
this._afterOpened.next();
|
|
5068
|
+
this._afterOpened.complete();
|
|
5069
|
+
}
|
|
5070
|
+
}
|
|
5071
|
+
/** Gets an observable that is notified when the snack bar is finished closing. */
|
|
5072
|
+
afterDismissed() {
|
|
5073
|
+
return this._afterDismissed;
|
|
5074
|
+
}
|
|
5075
|
+
/** Gets an observable that is notified when the snack bar has opened and appeared. */
|
|
5076
|
+
afterOpened() {
|
|
5077
|
+
return this.containerInstance._onEnter;
|
|
5078
|
+
}
|
|
5079
|
+
/** Gets an observable that is notified when the snack bar action is called. */
|
|
5080
|
+
onAction() {
|
|
5081
|
+
return this._onAction;
|
|
5082
|
+
}
|
|
5083
|
+
/** Cleans up the DOM after closing. */
|
|
5084
|
+
finishDismiss() {
|
|
5085
|
+
this._overlayRef.dispose();
|
|
5086
|
+
if (!this._onAction.closed) {
|
|
5087
|
+
this._onAction.complete();
|
|
5088
|
+
}
|
|
5089
|
+
this._afterDismissed.next({ dismissedByAction: this._dismissedByAction });
|
|
5090
|
+
this._afterDismissed.complete();
|
|
5091
|
+
this._dismissedByAction = false;
|
|
5092
|
+
}
|
|
5093
|
+
}
|
|
5094
|
+
|
|
4951
5095
|
/*
|
|
4952
|
-
* Copyright (c)
|
|
5096
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5097
|
+
* Licensed under the MIT license.
|
|
5098
|
+
* See LICENSE file in the project root for full license information.
|
|
5099
|
+
*/
|
|
5100
|
+
const toastTypeToAttributes = {
|
|
5101
|
+
info: {
|
|
5102
|
+
toast: 'snackbar-info',
|
|
5103
|
+
icon: 'icon-info',
|
|
5104
|
+
iconTitle: 'Information',
|
|
5105
|
+
politeness: 'assertive'
|
|
5106
|
+
},
|
|
5107
|
+
success: {
|
|
5108
|
+
toast: 'snackbar-success',
|
|
5109
|
+
icon: 'icon-check-circle',
|
|
5110
|
+
iconTitle: 'Succès',
|
|
5111
|
+
politeness: 'polite'
|
|
5112
|
+
},
|
|
5113
|
+
danger: {
|
|
5114
|
+
toast: 'snackbar-danger',
|
|
5115
|
+
icon: 'icon-error',
|
|
5116
|
+
iconTitle: 'Erreur',
|
|
5117
|
+
politeness: 'assertive'
|
|
5118
|
+
}
|
|
5119
|
+
};
|
|
5120
|
+
/**
|
|
5121
|
+
* A component used to open as the default snack bar, matching material spec.
|
|
5122
|
+
* This should only be used internally by the snack bar service.
|
|
5123
|
+
*/
|
|
5124
|
+
class BaoSimpleSnackBarComponent {
|
|
5125
|
+
constructor(snackBarRef, data) {
|
|
5126
|
+
this.snackBarRef = snackBarRef;
|
|
5127
|
+
this.showCloseTitle = 'Fermer le message';
|
|
5128
|
+
this.data = data;
|
|
5129
|
+
}
|
|
5130
|
+
/** Returns the politeness */
|
|
5131
|
+
get politeness() {
|
|
5132
|
+
return (toastTypeToAttributes[this.data.toastType]?.politeness ||
|
|
5133
|
+
toastTypeToAttributes['info'].politeness);
|
|
5134
|
+
}
|
|
5135
|
+
/** Returns the toast class */
|
|
5136
|
+
get toastType() {
|
|
5137
|
+
return (toastTypeToAttributes[this.data.toastType]?.toast ||
|
|
5138
|
+
toastTypeToAttributes['info'].toast);
|
|
5139
|
+
}
|
|
5140
|
+
/** Returns the toast icon */
|
|
5141
|
+
get toastIcon() {
|
|
5142
|
+
return (toastTypeToAttributes[this.data.toastType]?.icon ||
|
|
5143
|
+
toastTypeToAttributes['info'].icon);
|
|
5144
|
+
}
|
|
5145
|
+
/** Returns the toast icon title */
|
|
5146
|
+
get toastIconTitle() {
|
|
5147
|
+
return (toastTypeToAttributes[this.data.toastType]?.iconTitle ||
|
|
5148
|
+
toastTypeToAttributes['info'].iconTitle);
|
|
5149
|
+
}
|
|
5150
|
+
/** If the action button should be shown. */
|
|
5151
|
+
get hasAction() {
|
|
5152
|
+
return !!this.data.actionLabelOrIcon;
|
|
5153
|
+
}
|
|
5154
|
+
/** If the action is an icon */
|
|
5155
|
+
get isActionIcon() {
|
|
5156
|
+
return !!ICONS_DCT[this.data.actionLabelOrIcon];
|
|
5157
|
+
}
|
|
5158
|
+
/** Performs the action on the snack bar. */
|
|
5159
|
+
action() {
|
|
5160
|
+
this.snackBarRef.dismissWithAction();
|
|
5161
|
+
}
|
|
5162
|
+
/** Closes the snack bar. */
|
|
5163
|
+
close() {
|
|
5164
|
+
this.snackBarRef.dismiss();
|
|
5165
|
+
}
|
|
5166
|
+
}
|
|
5167
|
+
BaoSimpleSnackBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSimpleSnackBarComponent, deps: [{ token: BaoSnackBarRef }, { token: BAO_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
5168
|
+
BaoSimpleSnackBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoSimpleSnackBarComponent, selector: "bao-simple-snack-bar", host: { classAttribute: "mat-simple-snackbar" }, ngImport: i0, template: "<div\n class=\"snackbar show\"\n [ngClass]=\"toastType\"\n [attr.aria-live]=\"politeness\"\n aria-atomic=\"true\"\n>\n <div class=\"snackbar-icon\">\n <bao-icon [svgIcon]=\"toastIcon\" [title]=\"toastIconTitle\"></bao-icon>\n </div>\n <div class=\"snackbar-body\">\n {{ data.message }}\n </div>\n <div class=\"snackbar-action\">\n <div *ngIf=\"hasAction\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n [title]=\"data.actionLabelOrIcon\"\n (click)=\"action()\"\n >\n <bao-icon\n *ngIf=\"isActionIcon; else isActionText\"\n [svgIcon]=\"data.actionLabelOrIcon\"\n [title]=\"data.actionLabelOrIcon\"\n ></bao-icon>\n <ng-template #isActionText\n ><span>{{ data.actionLabelOrIcon }}</span></ng-template\n >\n </button>\n </div>\n <div *ngIf=\"data.showClose\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n title=\"{{ showCloseTitle }}\"\n (click)=\"close()\"\n >\n <bao-icon svgIcon=\"icon-x\" title=\"{{ showCloseTitle }}\"></bao-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.snackbar{overflow:hidden;font-size:.875rem;line-height:1.25rem;color:#fff;background-color:#004b7b;background-clip:padding-box;box-shadow:0 2px 8px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem;width:100%}.snackbar:not(:last-child){margin-bottom:1rem}.snackbar.showing{opacity:1}.snackbar.show{display:inline-flex;opacity:1}.snackbar.hide{display:none}@media (min-width: 768px){.snackbar{margin:1rem;width:auto}}.snackbar-icon{display:inline-flex;align-items:center;flex-grow:0;margin:1rem 0 1rem 1rem}.snackbar-body{display:flex;align-items:center;padding:1rem;margin:0}.snackbar-action{display:flex;align-items:center;margin-left:auto}.snackbar-action:last-child{margin-right:.5rem}.snackbar-info{color:#fff;background-color:#004b7b}.snackbar-success{color:#fff;background-color:#025d29}.snackbar-danger{color:#fff;background-color:#851a00}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BaoButtonComponent, selector: "button[bao-button]", inputs: ["displayType", "level", "size", "loading", "reversed", "loadingSpinnerAriaLabel", "fullWidth"] }, { kind: "component", type: BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSimpleSnackBarComponent, decorators: [{
|
|
5170
|
+
type: Component,
|
|
5171
|
+
args: [{ selector: 'bao-simple-snack-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
5172
|
+
class: 'mat-simple-snackbar'
|
|
5173
|
+
}, template: "<div\n class=\"snackbar show\"\n [ngClass]=\"toastType\"\n [attr.aria-live]=\"politeness\"\n aria-atomic=\"true\"\n>\n <div class=\"snackbar-icon\">\n <bao-icon [svgIcon]=\"toastIcon\" [title]=\"toastIconTitle\"></bao-icon>\n </div>\n <div class=\"snackbar-body\">\n {{ data.message }}\n </div>\n <div class=\"snackbar-action\">\n <div *ngIf=\"hasAction\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n [title]=\"data.actionLabelOrIcon\"\n (click)=\"action()\"\n >\n <bao-icon\n *ngIf=\"isActionIcon; else isActionText\"\n [svgIcon]=\"data.actionLabelOrIcon\"\n [title]=\"data.actionLabelOrIcon\"\n ></bao-icon>\n <ng-template #isActionText\n ><span>{{ data.actionLabelOrIcon }}</span></ng-template\n >\n </button>\n </div>\n <div *ngIf=\"data.showClose\">\n <button\n bao-button\n role=\"button\"\n type=\"utility\"\n level=\"tertiary\"\n [reversed]=\"true\"\n title=\"{{ showCloseTitle }}\"\n (click)=\"close()\"\n >\n <bao-icon svgIcon=\"icon-x\" title=\"{{ showCloseTitle }}\"></bao-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.snackbar{overflow:hidden;font-size:.875rem;line-height:1.25rem;color:#fff;background-color:#004b7b;background-clip:padding-box;box-shadow:0 2px 8px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem;width:100%}.snackbar:not(:last-child){margin-bottom:1rem}.snackbar.showing{opacity:1}.snackbar.show{display:inline-flex;opacity:1}.snackbar.hide{display:none}@media (min-width: 768px){.snackbar{margin:1rem;width:auto}}.snackbar-icon{display:inline-flex;align-items:center;flex-grow:0;margin:1rem 0 1rem 1rem}.snackbar-body{display:flex;align-items:center;padding:1rem;margin:0}.snackbar-action{display:flex;align-items:center;margin-left:auto}.snackbar-action:last-child{margin-right:.5rem}.snackbar-info{color:#fff;background-color:#004b7b}.snackbar-success{color:#fff;background-color:#025d29}.snackbar-danger{color:#fff;background-color:#851a00}\n"] }]
|
|
5174
|
+
}], ctorParameters: function () { return [{ type: BaoSnackBarRef }, { type: undefined, decorators: [{
|
|
5175
|
+
type: Inject,
|
|
5176
|
+
args: [BAO_SNACK_BAR_DATA]
|
|
5177
|
+
}] }]; } });
|
|
5178
|
+
|
|
5179
|
+
/*
|
|
5180
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5181
|
+
* Licensed under the MIT license.
|
|
5182
|
+
* See LICENSE file in the project root for full license information.
|
|
5183
|
+
*/
|
|
5184
|
+
/**
|
|
5185
|
+
* Animations used by the Material snack bar.
|
|
5186
|
+
* @docs-private
|
|
5187
|
+
*/
|
|
5188
|
+
const matSnackBarAnimations = {
|
|
5189
|
+
/** Animation that shows and hides a snack bar. */
|
|
5190
|
+
snackBarState: trigger('state', [
|
|
5191
|
+
state('void, hidden', style({
|
|
5192
|
+
transform: 'scale(0.8)',
|
|
5193
|
+
opacity: 0
|
|
5194
|
+
})),
|
|
5195
|
+
state('visible', style({
|
|
5196
|
+
transform: 'scale(1)',
|
|
5197
|
+
opacity: 1
|
|
5198
|
+
})),
|
|
5199
|
+
transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),
|
|
5200
|
+
transition('* => void, * => hidden', animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', style({
|
|
5201
|
+
opacity: 0
|
|
5202
|
+
})))
|
|
5203
|
+
])
|
|
5204
|
+
};
|
|
5205
|
+
|
|
5206
|
+
let uniqueId = 0;
|
|
5207
|
+
/**
|
|
5208
|
+
* Internal component that wraps user-provided snack bar content.
|
|
5209
|
+
* @docs-private
|
|
5210
|
+
*/
|
|
5211
|
+
class BaoSnackBarContainerComponent extends BasePortalOutlet {
|
|
5212
|
+
constructor(_ngZone, _elementRef, _changeDetectorRef, _platform,
|
|
5213
|
+
/** The snack bar configuration. */
|
|
5214
|
+
snackBarConfig) {
|
|
5215
|
+
super();
|
|
5216
|
+
this._ngZone = _ngZone;
|
|
5217
|
+
this._elementRef = _elementRef;
|
|
5218
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
5219
|
+
this._platform = _platform;
|
|
5220
|
+
this.snackBarConfig = snackBarConfig;
|
|
5221
|
+
this._document = inject(DOCUMENT);
|
|
5222
|
+
this._trackedModals = new Set();
|
|
5223
|
+
/** Subject for notifying that the snack bar has announced to screen readers. */
|
|
5224
|
+
this._onAnnounce = new Subject();
|
|
5225
|
+
/** Subject for notifying that the snack bar has exited from view. */
|
|
5226
|
+
this._onExit = new Subject();
|
|
5227
|
+
/** Subject for notifying that the snack bar has finished entering the view. */
|
|
5228
|
+
this._onEnter = new Subject();
|
|
5229
|
+
/** The state of the snack bar animations. */
|
|
5230
|
+
this._animationState = 'void';
|
|
5231
|
+
/** The number of milliseconds to wait before announcing the snack bar's content. */
|
|
5232
|
+
this._announceDelay = 150;
|
|
5233
|
+
/** Whether the component has been destroyed. */
|
|
5234
|
+
this._destroyed = false;
|
|
5235
|
+
/** Unique ID of the aria-live element. */
|
|
5236
|
+
this._liveElementId = `bao-snack-bar-container-live-${uniqueId++}`;
|
|
5237
|
+
/**
|
|
5238
|
+
* Attaches a DOM portal to the snack bar container.
|
|
5239
|
+
* @deprecated To be turned into a method.
|
|
5240
|
+
* @breaking-change 10.0.0
|
|
5241
|
+
*/
|
|
5242
|
+
this.attachDomPortal = (portal) => {
|
|
5243
|
+
this.assertNotAttached();
|
|
5244
|
+
const result = this._portalOutlet.attachDomPortal(portal);
|
|
5245
|
+
this._afterPortalAttached();
|
|
5246
|
+
return result;
|
|
5247
|
+
};
|
|
5248
|
+
// Use aria-live rather than a live role like 'alert' or 'status'
|
|
5249
|
+
// because NVDA and JAWS have show inconsistent behavior with live roles.
|
|
5250
|
+
if (snackBarConfig.politeness === 'assertive' &&
|
|
5251
|
+
!snackBarConfig.announcementMessage) {
|
|
5252
|
+
this._live = 'assertive';
|
|
5253
|
+
}
|
|
5254
|
+
else if (snackBarConfig.politeness === 'off') {
|
|
5255
|
+
this._live = 'off';
|
|
5256
|
+
}
|
|
5257
|
+
else {
|
|
5258
|
+
this._live = 'polite';
|
|
5259
|
+
}
|
|
5260
|
+
// Only set role for Firefox. Set role based on aria-live because setting role="alert" implies
|
|
5261
|
+
// aria-live="assertive" which may cause issues if aria-live is set to "polite" above.
|
|
5262
|
+
if (this._platform.FIREFOX) {
|
|
5263
|
+
if (this._live === 'polite') {
|
|
5264
|
+
this._role = 'status';
|
|
5265
|
+
}
|
|
5266
|
+
if (this._live === 'assertive') {
|
|
5267
|
+
this._role = 'alert';
|
|
5268
|
+
}
|
|
5269
|
+
}
|
|
5270
|
+
}
|
|
5271
|
+
/** Attach a component portal as content to this snack bar container. */
|
|
5272
|
+
attachComponentPortal(portal) {
|
|
5273
|
+
this.assertNotAttached();
|
|
5274
|
+
this.applySnackBarClasses();
|
|
5275
|
+
const result = this._portalOutlet.attachComponentPortal(portal);
|
|
5276
|
+
this._afterPortalAttached();
|
|
5277
|
+
return result;
|
|
5278
|
+
}
|
|
5279
|
+
/** Attach a template portal as content to this snack bar container. */
|
|
5280
|
+
attachTemplatePortal(portal) {
|
|
5281
|
+
this.assertNotAttached();
|
|
5282
|
+
this.applySnackBarClasses();
|
|
5283
|
+
const result = this._portalOutlet.attachTemplatePortal(portal);
|
|
5284
|
+
this._afterPortalAttached();
|
|
5285
|
+
return result;
|
|
5286
|
+
}
|
|
5287
|
+
/** Handle end of animations, updating the state of the snackbar. */
|
|
5288
|
+
onAnimationEnd(event) {
|
|
5289
|
+
const { fromState, toState } = event;
|
|
5290
|
+
if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {
|
|
5291
|
+
this.completeExit();
|
|
5292
|
+
}
|
|
5293
|
+
if (toState === 'visible') {
|
|
5294
|
+
// Note: we shouldn't use `this` inside the zone callback,
|
|
5295
|
+
// because it can cause a memory leak.
|
|
5296
|
+
const onEnter = this._onEnter;
|
|
5297
|
+
this._ngZone.run(() => {
|
|
5298
|
+
onEnter.next();
|
|
5299
|
+
onEnter.complete();
|
|
5300
|
+
});
|
|
5301
|
+
}
|
|
5302
|
+
}
|
|
5303
|
+
/** Begin animation of snack bar entrance into view. */
|
|
5304
|
+
enter() {
|
|
5305
|
+
if (!this._destroyed) {
|
|
5306
|
+
this._animationState = 'visible';
|
|
5307
|
+
this._changeDetectorRef.detectChanges();
|
|
5308
|
+
this.screenReaderAnnounce();
|
|
5309
|
+
}
|
|
5310
|
+
}
|
|
5311
|
+
/** Begin animation of the snack bar exiting from view. */
|
|
5312
|
+
exit() {
|
|
5313
|
+
// Note: this one transitions to `hidden`, rather than `void`, in order to handle the case
|
|
5314
|
+
// where multiple snack bars are opened in quick succession (e.g. two consecutive calls to
|
|
5315
|
+
// `MatSnackBar.open`).
|
|
5316
|
+
this._animationState = 'hidden';
|
|
5317
|
+
// Mark this element with an 'exit' attribute to indicate that the snackbar has
|
|
5318
|
+
// been dismissed and will soon be removed from the DOM. This is used by the snackbar
|
|
5319
|
+
// test harness.
|
|
5320
|
+
this._elementRef.nativeElement.setAttribute('mat-exit', '');
|
|
5321
|
+
// If the snack bar hasn't been announced by the time it exits it wouldn't have been open
|
|
5322
|
+
// long enough to visually read it either, so clear the timeout for announcing.
|
|
5323
|
+
clearTimeout(this._announceTimeoutId);
|
|
5324
|
+
return this._onExit;
|
|
5325
|
+
}
|
|
5326
|
+
/** Makes sure the exit callbacks have been invoked when the element is destroyed. */
|
|
5327
|
+
ngOnDestroy() {
|
|
5328
|
+
this._destroyed = true;
|
|
5329
|
+
this.completeExit();
|
|
5330
|
+
}
|
|
5331
|
+
/**
|
|
5332
|
+
* Waits for the zone to settle before removing the element. Helps prevent
|
|
5333
|
+
* errors where we end up removing an element which is in the middle of an animation.
|
|
5334
|
+
*/
|
|
5335
|
+
completeExit() {
|
|
5336
|
+
this._ngZone.onMicrotaskEmpty.pipe(take$1(1)).subscribe(() => {
|
|
5337
|
+
this._onExit.next();
|
|
5338
|
+
this._onExit.complete();
|
|
5339
|
+
});
|
|
5340
|
+
}
|
|
5341
|
+
/** Applies the various positioning and user-configured CSS classes to the snack bar. */
|
|
5342
|
+
applySnackBarClasses() {
|
|
5343
|
+
const element = this._elementRef.nativeElement;
|
|
5344
|
+
const panelClasses = this.snackBarConfig.panelClass;
|
|
5345
|
+
if (panelClasses) {
|
|
5346
|
+
if (Array.isArray(panelClasses)) {
|
|
5347
|
+
// Note that we can't use a spread here, because IE doesn't support multiple arguments.
|
|
5348
|
+
panelClasses.forEach(cssClass => element.classList.add(cssClass));
|
|
5349
|
+
}
|
|
5350
|
+
else {
|
|
5351
|
+
element.classList.add(panelClasses);
|
|
5352
|
+
}
|
|
5353
|
+
}
|
|
5354
|
+
if (this.snackBarConfig.horizontalPosition === 'center') {
|
|
5355
|
+
element.classList.add('bao-snack-bar-center');
|
|
5356
|
+
}
|
|
5357
|
+
if (this.snackBarConfig.verticalPosition === 'top') {
|
|
5358
|
+
element.classList.add('bao-snack-bar-top');
|
|
5359
|
+
}
|
|
5360
|
+
}
|
|
5361
|
+
/**
|
|
5362
|
+
* Called after the portal contents have been attached. Can be
|
|
5363
|
+
* used to modify the DOM once it's guaranteed to be in place.
|
|
5364
|
+
*/
|
|
5365
|
+
_afterPortalAttached() {
|
|
5366
|
+
const element = this._elementRef.nativeElement;
|
|
5367
|
+
const panelClasses = this.snackBarConfig.panelClass;
|
|
5368
|
+
if (panelClasses) {
|
|
5369
|
+
if (Array.isArray(panelClasses)) {
|
|
5370
|
+
// Note that we can't use a spread here, because IE doesn't support multiple arguments.
|
|
5371
|
+
panelClasses.forEach(cssClass => element.classList.add(cssClass));
|
|
5372
|
+
}
|
|
5373
|
+
else {
|
|
5374
|
+
element.classList.add(panelClasses);
|
|
5375
|
+
}
|
|
5376
|
+
}
|
|
5377
|
+
this._exposeToModals();
|
|
5378
|
+
}
|
|
5379
|
+
/**
|
|
5380
|
+
* Some browsers won't expose the accessibility node of the live element if there is an
|
|
5381
|
+
* `aria-modal` and the live element is outside of it. This method works around the issue by
|
|
5382
|
+
* pointing the `aria-owns` of all modals to the live element.
|
|
5383
|
+
*/
|
|
5384
|
+
_exposeToModals() {
|
|
5385
|
+
// TODO(crisbeto): consider de-duplicating this with the `LiveAnnouncer`.
|
|
5386
|
+
// Note that the selector here is limited to CDK overlays at the moment in order to reduce the
|
|
5387
|
+
// section of the DOM we need to look through. This should cover all the cases we support, but
|
|
5388
|
+
// the selector can be expanded if it turns out to be too narrow.
|
|
5389
|
+
const id = this._liveElementId;
|
|
5390
|
+
const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');
|
|
5391
|
+
for (let i = 0; i < modals.length; i++) {
|
|
5392
|
+
const modal = modals[i];
|
|
5393
|
+
const ariaOwns = modal.getAttribute('aria-owns');
|
|
5394
|
+
this._trackedModals.add(modal);
|
|
5395
|
+
if (!ariaOwns) {
|
|
5396
|
+
modal.setAttribute('aria-owns', id);
|
|
5397
|
+
}
|
|
5398
|
+
else if (ariaOwns.indexOf(id) === -1) {
|
|
5399
|
+
modal.setAttribute('aria-owns', ariaOwns + ' ' + id);
|
|
5400
|
+
}
|
|
5401
|
+
}
|
|
5402
|
+
}
|
|
5403
|
+
/** Clears the references to the live element from any modals it was added to. */
|
|
5404
|
+
_clearFromModals() {
|
|
5405
|
+
this._trackedModals.forEach(modal => {
|
|
5406
|
+
const ariaOwns = modal.getAttribute('aria-owns');
|
|
5407
|
+
if (ariaOwns) {
|
|
5408
|
+
const newValue = ariaOwns.replace(this._liveElementId, '').trim();
|
|
5409
|
+
if (newValue.length > 0) {
|
|
5410
|
+
modal.setAttribute('aria-owns', newValue);
|
|
5411
|
+
}
|
|
5412
|
+
else {
|
|
5413
|
+
modal.removeAttribute('aria-owns');
|
|
5414
|
+
}
|
|
5415
|
+
}
|
|
5416
|
+
});
|
|
5417
|
+
this._trackedModals.clear();
|
|
5418
|
+
}
|
|
5419
|
+
/** Asserts that no content is already attached to the container. */
|
|
5420
|
+
assertNotAttached() {
|
|
5421
|
+
if (this._portalOutlet.hasAttached()) {
|
|
5422
|
+
throw Error('Attempting to attach snack bar content after content is already attached');
|
|
5423
|
+
}
|
|
5424
|
+
}
|
|
5425
|
+
/**
|
|
5426
|
+
* Starts a timeout to move the snack bar content to the live region so screen readers will
|
|
5427
|
+
* announce it.
|
|
5428
|
+
*/
|
|
5429
|
+
screenReaderAnnounce() {
|
|
5430
|
+
if (!this._announceTimeoutId) {
|
|
5431
|
+
this._ngZone.runOutsideAngular(() => {
|
|
5432
|
+
this._announceTimeoutId = window.setTimeout(() => {
|
|
5433
|
+
const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');
|
|
5434
|
+
const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');
|
|
5435
|
+
if (inertElement && liveElement) {
|
|
5436
|
+
// If an element in the snack bar content is focused before being moved
|
|
5437
|
+
// track it and restore focus after moving to the live region.
|
|
5438
|
+
let focusedElement = null;
|
|
5439
|
+
if (this._platform.isBrowser &&
|
|
5440
|
+
document.activeElement instanceof HTMLElement &&
|
|
5441
|
+
inertElement.contains(document.activeElement)) {
|
|
5442
|
+
focusedElement = document.activeElement;
|
|
5443
|
+
}
|
|
5444
|
+
inertElement.removeAttribute('aria-hidden');
|
|
5445
|
+
liveElement.appendChild(inertElement);
|
|
5446
|
+
focusedElement?.focus();
|
|
5447
|
+
this._onAnnounce.next();
|
|
5448
|
+
this._onAnnounce.complete();
|
|
5449
|
+
}
|
|
5450
|
+
}, this._announceDelay);
|
|
5451
|
+
});
|
|
5452
|
+
}
|
|
5453
|
+
}
|
|
5454
|
+
}
|
|
5455
|
+
BaoSnackBarContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarContainerComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$5.Platform }, { token: BaoSnackBarConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
5456
|
+
BaoSnackBarContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoSnackBarContainerComponent, selector: "bao-snack-bar-container", host: { listeners: { "@state.done": "onAnimationEnd($event)" }, properties: { "@state": "_animationState" }, classAttribute: "bao-snack-bar-container" }, viewQueries: [{ propertyName: "_portalOutlet", first: true, predicate: CdkPortalOutlet, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n<div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n\n<!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n<div\n [attr.aria-live]=\"_live\"\n [attr.role]=\"_role\"\n [attr.id]=\"_liveElementId\"\n></div>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;width:100%}@media (min-width: 768px){.cdk-overlay-pane{margin:0;width:auto}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .25s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-snack-bar-container{border-radius:.25rem;box-sizing:border-box;display:block;margin:1rem;max-width:100vw;min-width:15rem;min-height:3rem;transform-origin:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [matSnackBarAnimations.snackBarState], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
5457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarContainerComponent, decorators: [{
|
|
5458
|
+
type: Component,
|
|
5459
|
+
args: [{ selector: 'bao-snack-bar-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [matSnackBarAnimations.snackBarState], host: {
|
|
5460
|
+
class: 'bao-snack-bar-container',
|
|
5461
|
+
'[@state]': '_animationState',
|
|
5462
|
+
'(@state.done)': 'onAnimationEnd($event)'
|
|
5463
|
+
}, template: "<!-- Initialy holds the snack bar content, will be empty after announcing to screen readers. -->\n<div aria-hidden=\"true\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n\n<!-- Will receive the snack bar content from the non-live div, move will happen a short delay after opening -->\n<div\n [attr.aria-live]=\"_live\"\n [attr.role]=\"_role\"\n [attr.id]=\"_liveElementId\"\n></div>\n", styles: [".bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;width:100%}@media (min-width: 768px){.cdk-overlay-pane{margin:0;width:auto}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .25s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:black}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:.5}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.bao-snack-bar-container{border-radius:.25rem;box-sizing:border-box;display:block;margin:1rem;max-width:100vw;min-width:15rem;min-height:3rem;transform-origin:center;width:100%}\n"] }]
|
|
5464
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$5.Platform }, { type: BaoSnackBarConfig }]; }, propDecorators: { _portalOutlet: [{
|
|
5465
|
+
type: ViewChild,
|
|
5466
|
+
args: [CdkPortalOutlet, { static: true }]
|
|
5467
|
+
}] } });
|
|
5468
|
+
|
|
5469
|
+
function baoFactory() {
|
|
5470
|
+
return new BaoSnackBarConfig();
|
|
5471
|
+
}
|
|
5472
|
+
/** Injection token that can be used to specify default snack bar. */
|
|
5473
|
+
const BAO_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken('bao-snack-bar-default-options', {
|
|
5474
|
+
providedIn: 'root',
|
|
5475
|
+
factory: baoFactory
|
|
5476
|
+
});
|
|
5477
|
+
/**
|
|
5478
|
+
* Service to dispatch Material Design snack bar messages.
|
|
5479
|
+
*/
|
|
5480
|
+
class BaoSnackBarService {
|
|
5481
|
+
constructor(_overlay, _live, _injector, _parentSnackBar, _defaultConfig) {
|
|
5482
|
+
this._overlay = _overlay;
|
|
5483
|
+
this._live = _live;
|
|
5484
|
+
this._injector = _injector;
|
|
5485
|
+
this._parentSnackBar = _parentSnackBar;
|
|
5486
|
+
this._defaultConfig = _defaultConfig;
|
|
5487
|
+
/** The component that should be rendered as the snack bar's simple component. */
|
|
5488
|
+
this.simpleSnackBarComponent = BaoSimpleSnackBarComponent;
|
|
5489
|
+
/** The container component that attaches the provided template or component. */
|
|
5490
|
+
this.snackBarContainerComponent = BaoSnackBarContainerComponent;
|
|
5491
|
+
/**
|
|
5492
|
+
* Reference to the current snack bar in the view *at this level* (in the Angular injector tree).
|
|
5493
|
+
* If there is a parent snack-bar service, all operations should delegate to that parent
|
|
5494
|
+
* via `_openedSnackBarRef`.
|
|
5495
|
+
*/
|
|
5496
|
+
this._snackBarRefAtThisLevel = null;
|
|
5497
|
+
}
|
|
5498
|
+
/** Reference to the currently opened snackbar at *any* level. */
|
|
5499
|
+
get _openedSnackBarRef() {
|
|
5500
|
+
const parent = this._parentSnackBar;
|
|
5501
|
+
return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;
|
|
5502
|
+
}
|
|
5503
|
+
set _openedSnackBarRef(value) {
|
|
5504
|
+
if (this._parentSnackBar) {
|
|
5505
|
+
this._parentSnackBar._openedSnackBarRef = value;
|
|
5506
|
+
}
|
|
5507
|
+
else {
|
|
5508
|
+
this._snackBarRefAtThisLevel = value;
|
|
5509
|
+
}
|
|
5510
|
+
}
|
|
5511
|
+
/**
|
|
5512
|
+
* Creates and dispatches a snack bar with a custom component for the content, removing any
|
|
5513
|
+
* currently opened snack bars.
|
|
5514
|
+
*
|
|
5515
|
+
* @param component Component to be instantiated.
|
|
5516
|
+
* @param config Extra configuration for the snack bar.
|
|
5517
|
+
*/
|
|
5518
|
+
openFromComponent(component, config) {
|
|
5519
|
+
return this.attach(component, config);
|
|
5520
|
+
}
|
|
5521
|
+
/**
|
|
5522
|
+
* Creates and dispatches a snack bar with a custom template for the content, removing any
|
|
5523
|
+
* currently opened snack bars.
|
|
5524
|
+
*
|
|
5525
|
+
* @param template Template to be instantiated.
|
|
5526
|
+
* @param config Extra configuration for the snack bar.
|
|
5527
|
+
*/
|
|
5528
|
+
openFromTemplate(template, config) {
|
|
5529
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
5530
|
+
return this.attach(template, config);
|
|
5531
|
+
}
|
|
5532
|
+
/**
|
|
5533
|
+
* Opens a snackbar with a message and an optional action.
|
|
5534
|
+
* @param message The message to show in the snackbar.
|
|
5535
|
+
* @param toastType The type of of toast to display the snackbar.
|
|
5536
|
+
* @param actionLabelOrIcon The label or icon for the snackbar action.
|
|
5537
|
+
* @param showClose If true, the snackbar will require user interaction to close.
|
|
5538
|
+
* @param config Additional configuration options for the snackbar.
|
|
5539
|
+
*/
|
|
5540
|
+
open(config) {
|
|
5541
|
+
const _config = { ...this._defaultConfig, ...config };
|
|
5542
|
+
// Since the user doesn't have access to the component, we can
|
|
5543
|
+
// override the data to pass in our own message, action and type.
|
|
5544
|
+
_config.data = {
|
|
5545
|
+
message: _config.message,
|
|
5546
|
+
toastType: _config.toastType,
|
|
5547
|
+
actionLabelOrIcon: _config.actionLabelOrIcon,
|
|
5548
|
+
showClose: _config.showClose
|
|
5549
|
+
};
|
|
5550
|
+
if (_config.showClose)
|
|
5551
|
+
_config.duration = 0;
|
|
5552
|
+
if (!_config.announcementMessage) {
|
|
5553
|
+
_config.announcementMessage = _config.message;
|
|
5554
|
+
}
|
|
5555
|
+
return this.openFromComponent(this.simpleSnackBarComponent, _config);
|
|
5556
|
+
}
|
|
5557
|
+
/**
|
|
5558
|
+
* Dismisses the currently-visible snack bar.
|
|
5559
|
+
*/
|
|
5560
|
+
dismiss() {
|
|
5561
|
+
if (this._openedSnackBarRef) {
|
|
5562
|
+
this._openedSnackBarRef.dismiss();
|
|
5563
|
+
}
|
|
5564
|
+
}
|
|
5565
|
+
ngOnDestroy() {
|
|
5566
|
+
// Only dismiss the snack bar at the current level on destroy.
|
|
5567
|
+
if (this._snackBarRefAtThisLevel) {
|
|
5568
|
+
this._snackBarRefAtThisLevel.dismiss();
|
|
5569
|
+
}
|
|
5570
|
+
}
|
|
5571
|
+
/**
|
|
5572
|
+
* Attaches the snack bar container component to the overlay.
|
|
5573
|
+
*/
|
|
5574
|
+
attachSnackBarContainer(overlayRef, config) {
|
|
5575
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
5576
|
+
const injector = new PortalInjector(userInjector || this._injector, new WeakMap([[BaoSnackBarConfig, config]]));
|
|
5577
|
+
const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);
|
|
5578
|
+
const containerRef = overlayRef.attach(containerPortal);
|
|
5579
|
+
containerRef.instance.snackBarConfig = config;
|
|
5580
|
+
return containerRef.instance;
|
|
5581
|
+
}
|
|
5582
|
+
/**
|
|
5583
|
+
* Places a new component or a template as the content of the snack bar container.
|
|
5584
|
+
*/
|
|
5585
|
+
attach(content, userConfig) {
|
|
5586
|
+
const config = {
|
|
5587
|
+
...new BaoSnackBarConfig(),
|
|
5588
|
+
...this._defaultConfig,
|
|
5589
|
+
...userConfig
|
|
5590
|
+
};
|
|
5591
|
+
const overlayRef = this.createOverlay(config);
|
|
5592
|
+
const container = this.attachSnackBarContainer(overlayRef, config);
|
|
5593
|
+
const snackBarRef = new BaoSnackBarRef(container, overlayRef);
|
|
5594
|
+
if (content instanceof TemplateRef) {
|
|
5595
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5596
|
+
const portal = new TemplatePortal(content, null, {
|
|
5597
|
+
$implicit: config.data,
|
|
5598
|
+
snackBarRef
|
|
5599
|
+
});
|
|
5600
|
+
snackBarRef.instance = container.attachTemplatePortal(portal);
|
|
5601
|
+
}
|
|
5602
|
+
else {
|
|
5603
|
+
const injector = this.createInjector(config, snackBarRef);
|
|
5604
|
+
const portal = new ComponentPortal(content, undefined, injector);
|
|
5605
|
+
const contentRef = container.attachComponentPortal(portal);
|
|
5606
|
+
// We can't pass this via the injector, because the injector is created earlier.
|
|
5607
|
+
snackBarRef.instance = contentRef.instance;
|
|
5608
|
+
}
|
|
5609
|
+
this.animateSnackBar(snackBarRef, config);
|
|
5610
|
+
this._openedSnackBarRef = snackBarRef;
|
|
5611
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
5612
|
+
return this._openedSnackBarRef;
|
|
5613
|
+
}
|
|
5614
|
+
/** Animates the old snack bar out and the new one in. */
|
|
5615
|
+
animateSnackBar(snackBarRef, config) {
|
|
5616
|
+
// When the snackbar is dismissed, clear the reference to it.
|
|
5617
|
+
snackBarRef.afterDismissed().subscribe(() => {
|
|
5618
|
+
// Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.
|
|
5619
|
+
// eslint-disable-next-line eqeqeq
|
|
5620
|
+
if (this._openedSnackBarRef == snackBarRef) {
|
|
5621
|
+
this._openedSnackBarRef = null;
|
|
5622
|
+
}
|
|
5623
|
+
if (config.announcementMessage) {
|
|
5624
|
+
this._live.clear();
|
|
5625
|
+
}
|
|
5626
|
+
});
|
|
5627
|
+
if (this._openedSnackBarRef) {
|
|
5628
|
+
// If a snack bar is already in view, dismiss it and enter the
|
|
5629
|
+
// new snack bar after exit animation is complete.
|
|
5630
|
+
this._openedSnackBarRef.afterDismissed().subscribe(() => {
|
|
5631
|
+
snackBarRef.containerInstance.enter();
|
|
5632
|
+
});
|
|
5633
|
+
this._openedSnackBarRef.dismiss();
|
|
5634
|
+
}
|
|
5635
|
+
else {
|
|
5636
|
+
// If no snack bar is in view, enter the new snack bar.
|
|
5637
|
+
snackBarRef.containerInstance.enter();
|
|
5638
|
+
}
|
|
5639
|
+
// If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.
|
|
5640
|
+
if (config.duration && config.duration > 0) {
|
|
5641
|
+
snackBarRef
|
|
5642
|
+
.afterOpened()
|
|
5643
|
+
.subscribe(() => snackBarRef.dismissAfter(config.duration));
|
|
5644
|
+
}
|
|
5645
|
+
if (config.announcementMessage) {
|
|
5646
|
+
void this._live.announce(config.announcementMessage, config.politeness);
|
|
5647
|
+
}
|
|
5648
|
+
}
|
|
5649
|
+
/**
|
|
5650
|
+
* Creates a new overlay and places it in the correct location.
|
|
5651
|
+
* @param config The user-specified snack bar config.
|
|
5652
|
+
*/
|
|
5653
|
+
createOverlay(config) {
|
|
5654
|
+
const overlayConfig = new OverlayConfig();
|
|
5655
|
+
overlayConfig.direction = config.direction;
|
|
5656
|
+
const positionStrategy = this._overlay.position().global();
|
|
5657
|
+
// Set horizontal position.
|
|
5658
|
+
const isRtl = config.direction === 'rtl';
|
|
5659
|
+
const isLeft = config.horizontalPosition === 'left' ||
|
|
5660
|
+
(config.horizontalPosition === 'start' && !isRtl) ||
|
|
5661
|
+
(config.horizontalPosition === 'end' && isRtl);
|
|
5662
|
+
const isRight = !isLeft && config.horizontalPosition !== 'center';
|
|
5663
|
+
if (isLeft) {
|
|
5664
|
+
positionStrategy.left('0');
|
|
5665
|
+
}
|
|
5666
|
+
else if (isRight) {
|
|
5667
|
+
positionStrategy.right('0');
|
|
5668
|
+
}
|
|
5669
|
+
else {
|
|
5670
|
+
positionStrategy.centerHorizontally();
|
|
5671
|
+
}
|
|
5672
|
+
// Set horizontal position.
|
|
5673
|
+
if (config.verticalPosition === 'top') {
|
|
5674
|
+
positionStrategy.top('0');
|
|
5675
|
+
}
|
|
5676
|
+
else {
|
|
5677
|
+
positionStrategy.bottom('0');
|
|
5678
|
+
}
|
|
5679
|
+
overlayConfig.positionStrategy = positionStrategy;
|
|
5680
|
+
return this._overlay.create(overlayConfig);
|
|
5681
|
+
}
|
|
5682
|
+
/**
|
|
5683
|
+
* Creates an injector to be used inside of a snack bar component.
|
|
5684
|
+
* @param config Config that was used to create the snack bar.
|
|
5685
|
+
* @param snackBarRef Reference to the snack bar.
|
|
5686
|
+
*/
|
|
5687
|
+
createInjector(config, snackBarRef) {
|
|
5688
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
5689
|
+
return new PortalInjector(userInjector || this._injector, new WeakMap([
|
|
5690
|
+
[BaoSnackBarRef, snackBarRef],
|
|
5691
|
+
[BAO_SNACK_BAR_DATA, config.data]
|
|
5692
|
+
]));
|
|
5693
|
+
}
|
|
5694
|
+
}
|
|
5695
|
+
BaoSnackBarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarService, deps: [{ token: i1$4.Overlay }, { token: i1$3.LiveAnnouncer }, { token: i0.Injector }, { token: BaoSnackBarService, optional: true, skipSelf: true }, { token: BAO_SNACK_BAR_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5696
|
+
BaoSnackBarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarService, providedIn: 'root' });
|
|
5697
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarService, decorators: [{
|
|
5698
|
+
type: Injectable,
|
|
5699
|
+
args: [{ providedIn: 'root' }]
|
|
5700
|
+
}], ctorParameters: function () { return [{ type: i1$4.Overlay }, { type: i1$3.LiveAnnouncer }, { type: i0.Injector }, { type: BaoSnackBarService, decorators: [{
|
|
5701
|
+
type: Optional
|
|
5702
|
+
}, {
|
|
5703
|
+
type: SkipSelf
|
|
5704
|
+
}] }, { type: BaoSnackBarConfig, decorators: [{
|
|
5705
|
+
type: Inject,
|
|
5706
|
+
args: [BAO_SNACK_BAR_DEFAULT_OPTIONS]
|
|
5707
|
+
}] }]; } });
|
|
5708
|
+
|
|
5709
|
+
/*
|
|
5710
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5711
|
+
* Licensed under the MIT license.
|
|
5712
|
+
* See LICENSE file in the project root for full license information.
|
|
5713
|
+
*/
|
|
5714
|
+
const SNACKBAR_DIRECTIVES = [
|
|
5715
|
+
BaoSimpleSnackBarComponent,
|
|
5716
|
+
BaoSnackBarContainerComponent
|
|
5717
|
+
];
|
|
5718
|
+
class BaoSnackBarModule {
|
|
5719
|
+
}
|
|
5720
|
+
BaoSnackBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5721
|
+
BaoSnackBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, declarations: [BaoSimpleSnackBarComponent,
|
|
5722
|
+
BaoSnackBarContainerComponent], imports: [CommonModule,
|
|
5723
|
+
OverlayModule,
|
|
5724
|
+
PortalModule,
|
|
5725
|
+
BaoButtonModule,
|
|
5726
|
+
BaoIconModule], exports: [BaoSimpleSnackBarComponent,
|
|
5727
|
+
BaoSnackBarContainerComponent] });
|
|
5728
|
+
BaoSnackBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, providers: [BaoSnackBarService], imports: [CommonModule,
|
|
5729
|
+
OverlayModule,
|
|
5730
|
+
PortalModule,
|
|
5731
|
+
BaoButtonModule,
|
|
5732
|
+
BaoIconModule] });
|
|
5733
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, decorators: [{
|
|
5734
|
+
type: NgModule,
|
|
5735
|
+
args: [{
|
|
5736
|
+
imports: [
|
|
5737
|
+
CommonModule,
|
|
5738
|
+
OverlayModule,
|
|
5739
|
+
PortalModule,
|
|
5740
|
+
BaoButtonModule,
|
|
5741
|
+
BaoIconModule
|
|
5742
|
+
],
|
|
5743
|
+
providers: [BaoSnackBarService],
|
|
5744
|
+
declarations: SNACKBAR_DIRECTIVES,
|
|
5745
|
+
exports: SNACKBAR_DIRECTIVES,
|
|
5746
|
+
entryComponents: [SNACKBAR_DIRECTIVES]
|
|
5747
|
+
}]
|
|
5748
|
+
}] });
|
|
5749
|
+
|
|
5750
|
+
/*
|
|
5751
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5752
|
+
* Licensed under the MIT license.
|
|
5753
|
+
* See LICENSE file in the project root for full license information.
|
|
5754
|
+
*/
|
|
5755
|
+
const Breakpoints = {
|
|
5756
|
+
XSmall: '(max-width: 575.98px)',
|
|
5757
|
+
Small: '(min-width: 576px) and (max-width: 767.98px)',
|
|
5758
|
+
Medium: '(min-width: 768px) and (max-width: 991.98px)',
|
|
5759
|
+
Large: '(min-width: 992px) and (max-width: 1199.98px)',
|
|
5760
|
+
XLarge: '(min-width: 1200px)'
|
|
5761
|
+
};
|
|
5762
|
+
|
|
5763
|
+
/*
|
|
5764
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5765
|
+
* Licensed under the MIT license.
|
|
5766
|
+
* See LICENSE file in the project root for full license information.
|
|
5767
|
+
*/
|
|
5768
|
+
|
|
5769
|
+
/**
|
|
5770
|
+
* This component is dynamically added to replace breadcrumb when System Header is viewed on tablet or mobile screens.
|
|
5771
|
+
* Used internally by BaoSystemHeaderComponent only, not to be used by host application.
|
|
5772
|
+
*/
|
|
5773
|
+
class BaoBackNavigationComponent {
|
|
5774
|
+
constructor(renderer, elementRef) {
|
|
5775
|
+
this.renderer = renderer;
|
|
5776
|
+
this.elementRef = elementRef;
|
|
5777
|
+
}
|
|
5778
|
+
ngOnChanges(changes) {
|
|
5779
|
+
if (changes['link'] && changes['link'].currentValue) {
|
|
5780
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.children[0], 'href', changes['link'].currentValue);
|
|
5781
|
+
}
|
|
5782
|
+
}
|
|
5783
|
+
}
|
|
5784
|
+
BaoBackNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5785
|
+
BaoBackNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoBackNavigationComponent, selector: "bao-back-navigation-component", inputs: { link: "link" }, host: { classAttribute: "bao-system-header-back-button" }, usesOnChanges: true, ngImport: i0, template: ` <a>
|
|
5786
|
+
<bao-icon
|
|
5787
|
+
color="action"
|
|
5788
|
+
title="arrow-left"
|
|
5789
|
+
svgIcon="icon-arrow-left"
|
|
5790
|
+
size="x-small"
|
|
5791
|
+
></bao-icon>
|
|
5792
|
+
</a>`, isInline: true, dependencies: [{ kind: "component", type: BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }] });
|
|
5793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationComponent, decorators: [{
|
|
5794
|
+
type: Component,
|
|
5795
|
+
args: [{
|
|
5796
|
+
selector: 'bao-back-navigation-component',
|
|
5797
|
+
template: ` <a>
|
|
5798
|
+
<bao-icon
|
|
5799
|
+
color="action"
|
|
5800
|
+
title="arrow-left"
|
|
5801
|
+
svgIcon="icon-arrow-left"
|
|
5802
|
+
size="x-small"
|
|
5803
|
+
></bao-icon>
|
|
5804
|
+
</a>`,
|
|
5805
|
+
host: {
|
|
5806
|
+
class: 'bao-system-header-back-button'
|
|
5807
|
+
}
|
|
5808
|
+
}]
|
|
5809
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { link: [{
|
|
5810
|
+
type: Input
|
|
5811
|
+
}] } });
|
|
5812
|
+
/**
|
|
5813
|
+
* This directive is to mark the template where the BaoBackNavigationComponent should be dynamically inserted,
|
|
5814
|
+
* when a Breadcrumb component needs to be replaced
|
|
5815
|
+
*/
|
|
5816
|
+
class BaoBackNavigationInsert {
|
|
5817
|
+
constructor(viewContainerRef) {
|
|
5818
|
+
this.viewContainerRef = viewContainerRef;
|
|
5819
|
+
}
|
|
5820
|
+
}
|
|
5821
|
+
BaoBackNavigationInsert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationInsert, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5822
|
+
BaoBackNavigationInsert.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoBackNavigationInsert, selector: "[backNavigationInsert]", ngImport: i0 });
|
|
5823
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationInsert, decorators: [{
|
|
5824
|
+
type: Directive,
|
|
5825
|
+
args: [{
|
|
5826
|
+
selector: '[backNavigationInsert]'
|
|
5827
|
+
}]
|
|
5828
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
5829
|
+
class BaoSystemHeaderComponent {
|
|
5830
|
+
constructor(breakpointObserver, renderer) {
|
|
5831
|
+
this.breakpointObserver = breakpointObserver;
|
|
5832
|
+
this.renderer = renderer;
|
|
5833
|
+
this.screenType = 'desktop';
|
|
5834
|
+
}
|
|
5835
|
+
get textContainerChildren() {
|
|
5836
|
+
return Array.from(this.textContainer.nativeElement.children);
|
|
5837
|
+
}
|
|
5838
|
+
ngOnInit() {
|
|
5839
|
+
if ([Breakpoints.XSmall, Breakpoints.Small].some(size => this.breakpointObserver.isMatched(size))) {
|
|
5840
|
+
this.screenType = 'mobile';
|
|
5841
|
+
}
|
|
5842
|
+
else if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {
|
|
5843
|
+
this.screenType = 'tablet';
|
|
5844
|
+
}
|
|
5845
|
+
else if ([Breakpoints.Large, Breakpoints.XLarge].some(size => this.breakpointObserver.isMatched(size))) {
|
|
5846
|
+
this.screenType = 'desktop';
|
|
5847
|
+
}
|
|
5848
|
+
}
|
|
5849
|
+
ngAfterViewInit() {
|
|
5850
|
+
this.formatNavigation();
|
|
5851
|
+
this.applySizeClass();
|
|
5852
|
+
}
|
|
5853
|
+
formatNavigation() {
|
|
5854
|
+
// If view is rendered on a mobile/tablet screen
|
|
5855
|
+
if (this.screenType == 'mobile' || this.screenType == 'tablet') {
|
|
5856
|
+
if (this.textContainerChildren[0].className == 'bao-breadcrumb') {
|
|
5857
|
+
// Retrieve link of parent page
|
|
5858
|
+
const breadcrumbElementsList = this.textContainerChildren[0].children[0];
|
|
5859
|
+
const breadcrumbLength = breadcrumbElementsList.children.length;
|
|
5860
|
+
const parentLink = breadcrumbElementsList.children[breadcrumbLength - 2].attributes['href'].value;
|
|
5861
|
+
// Remove Breadcrumb component and replace it with back button
|
|
5862
|
+
this.renderer.removeChild(this.textContainer.nativeElement, this.textContainerChildren[0]);
|
|
5863
|
+
const viewContainerRef = this.backButtonInsert.viewContainerRef;
|
|
5864
|
+
viewContainerRef.clear();
|
|
5865
|
+
const componentRef = viewContainerRef.createComponent(BaoBackNavigationComponent);
|
|
5866
|
+
componentRef.instance.link = parentLink;
|
|
5867
|
+
}
|
|
5868
|
+
}
|
|
5869
|
+
}
|
|
5870
|
+
applySizeClass() {
|
|
5871
|
+
const tagInfoContainer = this.textContainer.nativeElement.childNodes[this.textContainerChildren.length - 1];
|
|
5872
|
+
if (this.screenType === 'mobile') {
|
|
5873
|
+
this.renderer.addClass(tagInfoContainer, 'mobile');
|
|
5874
|
+
}
|
|
5875
|
+
}
|
|
5876
|
+
}
|
|
5877
|
+
BaoSystemHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderComponent, deps: [{ token: i2$1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
5878
|
+
BaoSystemHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: BaoSystemHeaderComponent, selector: "bao-system-header", host: { classAttribute: "bao-system-header" }, viewQueries: [{ propertyName: "textContainer", first: true, predicate: ["textContainer"], descendants: true }, { propertyName: "backButtonInsert", first: true, predicate: BaoBackNavigationInsert, descendants: true, static: true }], ngImport: i0, template: "<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-system-header{display:flex;justify-content:flex-start}.bao-system-header .left-side-content{display:inline-flex;width:75%}.bao-system-header .left-side-content .back-navigation-container a{margin-right:1.25rem;border-bottom:none}.bao-system-header .left-side-content .back-navigation-container a:hover{cursor:pointer}.bao-system-header .left-side-content .text-content{width:100%}.bao-system-header .left-side-content .text-content h1{font-weight:700;color:#212529;font-size:1.5rem;line-height:2rem;margin-bottom:.5rem}.bao-system-header .left-side-content .text-content .tag-info-container{width:100%;display:block}.bao-system-header .left-side-content .text-content .tag-info-container>span:nth-child(2):before{content:\"\\b7\";margin:0 .5rem}.bao-system-header .left-side-content .text-content .tag-info-container .additional-info>*{font-weight:400;font-size:.875rem;line-height:1.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .bao-tag{margin-bottom:.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info{display:block}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info:before{content:none}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag{max-width:100%}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag>span{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bao-system-header .button-container{flex-shrink:0;margin-left:auto}.bao-system-header .button-container .bao-button{margin-left:1rem}\n"], dependencies: [{ kind: "directive", type: BaoBackNavigationInsert, selector: "[backNavigationInsert]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
5879
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderComponent, decorators: [{
|
|
5880
|
+
type: Component,
|
|
5881
|
+
args: [{ selector: 'bao-system-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
5882
|
+
class: 'bao-system-header'
|
|
5883
|
+
}, template: "<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-system-header{display:flex;justify-content:flex-start}.bao-system-header .left-side-content{display:inline-flex;width:75%}.bao-system-header .left-side-content .back-navigation-container a{margin-right:1.25rem;border-bottom:none}.bao-system-header .left-side-content .back-navigation-container a:hover{cursor:pointer}.bao-system-header .left-side-content .text-content{width:100%}.bao-system-header .left-side-content .text-content h1{font-weight:700;color:#212529;font-size:1.5rem;line-height:2rem;margin-bottom:.5rem}.bao-system-header .left-side-content .text-content .tag-info-container{width:100%;display:block}.bao-system-header .left-side-content .text-content .tag-info-container>span:nth-child(2):before{content:\"\\b7\";margin:0 .5rem}.bao-system-header .left-side-content .text-content .tag-info-container .additional-info>*{font-weight:400;font-size:.875rem;line-height:1.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .bao-tag{margin-bottom:.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info{display:block}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info:before{content:none}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag{max-width:100%}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag>span{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bao-system-header .button-container{flex-shrink:0;margin-left:auto}.bao-system-header .button-container .bao-button{margin-left:1rem}\n"] }]
|
|
5884
|
+
}], ctorParameters: function () { return [{ type: i2$1.BreakpointObserver }, { type: i0.Renderer2 }]; }, propDecorators: { textContainer: [{
|
|
5885
|
+
type: ViewChild,
|
|
5886
|
+
args: ['textContainer', { static: false }]
|
|
5887
|
+
}], backButtonInsert: [{
|
|
5888
|
+
type: ViewChild,
|
|
5889
|
+
args: [BaoBackNavigationInsert, { static: true }]
|
|
5890
|
+
}] } });
|
|
5891
|
+
|
|
5892
|
+
/*
|
|
5893
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5894
|
+
* Licensed under the MIT license.
|
|
5895
|
+
* See LICENSE file in the project root for full license information.
|
|
5896
|
+
*/
|
|
5897
|
+
const SYSTEM_HEADER_DIRECTIVES = [
|
|
5898
|
+
BaoSystemHeaderComponent,
|
|
5899
|
+
BaoBackNavigationInsert,
|
|
5900
|
+
BaoBackNavigationComponent
|
|
5901
|
+
];
|
|
5902
|
+
class BaoSystemHeaderModule {
|
|
5903
|
+
}
|
|
5904
|
+
BaoSystemHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5905
|
+
BaoSystemHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, declarations: [BaoSystemHeaderComponent,
|
|
5906
|
+
BaoBackNavigationInsert,
|
|
5907
|
+
BaoBackNavigationComponent], imports: [CommonModule, BaoIconModule], exports: [BaoSystemHeaderComponent,
|
|
5908
|
+
BaoBackNavigationInsert,
|
|
5909
|
+
BaoBackNavigationComponent] });
|
|
5910
|
+
BaoSystemHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, imports: [CommonModule, BaoIconModule] });
|
|
5911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, decorators: [{
|
|
5912
|
+
type: NgModule,
|
|
5913
|
+
args: [{
|
|
5914
|
+
imports: [CommonModule, BaoIconModule],
|
|
5915
|
+
declarations: [SYSTEM_HEADER_DIRECTIVES],
|
|
5916
|
+
exports: [SYSTEM_HEADER_DIRECTIVES]
|
|
5917
|
+
}]
|
|
5918
|
+
}] });
|
|
5919
|
+
|
|
5920
|
+
/*
|
|
5921
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5922
|
+
* Licensed under the MIT license.
|
|
5923
|
+
* See LICENSE file in the project root for full license information.
|
|
5924
|
+
*/
|
|
5925
|
+
|
|
5926
|
+
/*
|
|
5927
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4953
5928
|
* Licensed under the MIT license.
|
|
4954
5929
|
* See LICENSE file in the project root for full license information.
|
|
4955
5930
|
*/
|
|
@@ -4978,9 +5953,10 @@ BaoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
4978
5953
|
BaoModalModule,
|
|
4979
5954
|
BaoHyperlinkModule,
|
|
4980
5955
|
BaoDropdownMenuModule,
|
|
4981
|
-
BaoFileModule
|
|
5956
|
+
BaoFileModule,
|
|
5957
|
+
BaoSnackBarModule,
|
|
5958
|
+
BaoSystemHeaderModule
|
|
4982
5959
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
4983
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
4984
5960
|
] });
|
|
4985
5961
|
BaoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModule, imports: [BaoIconModule,
|
|
4986
5962
|
BaoButtonModule,
|
|
@@ -5004,9 +5980,10 @@ BaoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
|
5004
5980
|
BaoModalModule,
|
|
5005
5981
|
BaoHyperlinkModule,
|
|
5006
5982
|
BaoDropdownMenuModule,
|
|
5007
|
-
BaoFileModule
|
|
5983
|
+
BaoFileModule,
|
|
5984
|
+
BaoSnackBarModule,
|
|
5985
|
+
BaoSystemHeaderModule
|
|
5008
5986
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
5009
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
5010
5987
|
] });
|
|
5011
5988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModule, decorators: [{
|
|
5012
5989
|
type: NgModule,
|
|
@@ -5037,15 +6014,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5037
6014
|
BaoModalModule,
|
|
5038
6015
|
BaoHyperlinkModule,
|
|
5039
6016
|
BaoDropdownMenuModule,
|
|
5040
|
-
BaoFileModule
|
|
6017
|
+
BaoFileModule,
|
|
6018
|
+
BaoSnackBarModule,
|
|
6019
|
+
BaoSystemHeaderModule
|
|
5041
6020
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
5042
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
5043
6021
|
]
|
|
5044
6022
|
}]
|
|
5045
6023
|
}] });
|
|
5046
6024
|
|
|
5047
6025
|
/*
|
|
5048
|
-
* Copyright (c)
|
|
6026
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5049
6027
|
* Licensed under the MIT license.
|
|
5050
6028
|
* See LICENSE file in the project root for full license information.
|
|
5051
6029
|
*/
|
|
@@ -5070,7 +6048,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5070
6048
|
}] } });
|
|
5071
6049
|
|
|
5072
6050
|
/*
|
|
5073
|
-
* Copyright (c)
|
|
6051
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5074
6052
|
* Licensed under the MIT license.
|
|
5075
6053
|
* See LICENSE file in the project root for full license information.
|
|
5076
6054
|
*/
|
|
@@ -5090,31 +6068,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5090
6068
|
}] });
|
|
5091
6069
|
|
|
5092
6070
|
/*
|
|
5093
|
-
* Copyright (c)
|
|
6071
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
6072
|
+
* Licensed under the MIT license.
|
|
6073
|
+
* See LICENSE file in the project root for full license information.
|
|
6074
|
+
*/
|
|
6075
|
+
|
|
6076
|
+
/*
|
|
6077
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5094
6078
|
* Licensed under the MIT license.
|
|
5095
6079
|
* See LICENSE file in the project root for full license information.
|
|
5096
6080
|
*/
|
|
5097
6081
|
|
|
5098
6082
|
/*
|
|
5099
|
-
* Copyright (c)
|
|
6083
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5100
6084
|
* Licensed under the MIT license.
|
|
5101
6085
|
* See LICENSE file in the project root for full license information.
|
|
5102
6086
|
*/
|
|
5103
6087
|
|
|
5104
6088
|
/*
|
|
5105
|
-
* Copyright (c)
|
|
6089
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5106
6090
|
* Licensed under the MIT license.
|
|
5107
6091
|
* See LICENSE file in the project root for full license information.
|
|
5108
6092
|
*/
|
|
5109
6093
|
|
|
5110
6094
|
/*
|
|
5111
|
-
* Copyright (c)
|
|
6095
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5112
6096
|
* Licensed under the MIT license.
|
|
5113
6097
|
* See LICENSE file in the project root for full license information.
|
|
5114
6098
|
*/
|
|
5115
6099
|
|
|
5116
6100
|
/*
|
|
5117
|
-
* Copyright (c)
|
|
6101
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5118
6102
|
* Licensed under the MIT license.
|
|
5119
6103
|
* See LICENSE file in the project root for full license information.
|
|
5120
6104
|
*/
|
|
@@ -5123,5 +6107,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5123
6107
|
* Generated bundle index. Do not edit.
|
|
5124
6108
|
*/
|
|
5125
6109
|
|
|
5126
|
-
export { BAO_FILE_INTL_PROVIDER, BAO_FILE_INTL_PROVIDER_FACTORY, BAO_MODAL_DATA, BAO_RADIO_GROUP, BaoAlertActions, BaoAlertComponent, BaoAlertContent, BaoAlertLink, BaoAlertModule, BaoAlertTitle, BaoAvatarComponent, BaoAvatarContent, BaoAvatarModule, BaoBadgeComponent, BaoBadgeModule, BaoBreadcrumbComponent, BaoBreadcrumbModule, BaoButtonComponent, BaoButtonModule, BaoCardComponent, BaoCardContent, BaoCardHeader, BaoCardModule, BaoCardTextInterface, BaoCardTitle, BaoCheckBoxDescription, BaoCheckboxComponent, BaoCheckboxGroupComponent, BaoCheckboxModule, BaoCommonComponentsModule, BaoDropdownMenuComponent, BaoDropdownMenuDivider, BaoDropdownMenuItem, BaoDropdownMenuItemDescription, BaoDropdownMenuItemLabel, BaoDropdownMenuModule, BaoDropdownMenuSection, BaoDropdownMenuTrigger, BaoErrorTextComponent, BaoFileDropDirective, BaoFileDropzoneIntructions, BaoFileInputComponent, BaoFileIntl, BaoFileIntlEnglish, BaoFileModule, BaoFilePreviewComponent, BaoGuidingTextComponent, BaoHeaderInfoComponent, BaoHeaderInfoContent, BaoHeaderInfoModule, BaoHeaderInfoSubtitle, BaoHeaderInfoSurtitle, BaoHeaderInfoTitle, BaoHeaderInfoTitleGroupComponent, BaoHyperlinkComponent, BaoHyperlinkModule, BaoIconComponent, BaoIconModule, BaoLabelTextComponent, BaoList, BaoListItem, BaoListItemDescription, BaoListItemTitle, BaoListModule, BaoListSummary, BaoListSummaryItem, BaoModal, BaoModalBase, BaoModalClose, BaoModalContainer, BaoModalInitialConfig, BaoModalModule, BaoModalRef, BaoModule, BaoNavList, BaoRadioButtonComponent, BaoRadioButtonGroupComponent, BaoRadioDescription, BaoRadioModule, BaoSummaryComponent, BaoSummaryDescription, BaoSummaryModule, BaoTabHeader, BaoTabPanel, BaoTablistComponent, BaoTabsContainer, BaoTabsModule, BaoTagComponent, BaoTagModule, BaoTitleTextComponent, _BaoModalContainerBase, _closeModalVia, eModalDesktopWidthSize, eModalMobileWidthSize, throwBaoModalContentAlreadyAttachedError };
|
|
6110
|
+
export { BAO_FILE_INTL_PROVIDER, BAO_FILE_INTL_PROVIDER_FACTORY, BAO_MODAL_DATA, BAO_RADIO_GROUP, BAO_SNACK_BAR_DATA, BAO_SNACK_BAR_DEFAULT_OPTIONS, BaoAlertActions, BaoAlertComponent, BaoAlertContent, BaoAlertLink, BaoAlertModule, BaoAlertTitle, BaoAvatarComponent, BaoAvatarContent, BaoAvatarModule, BaoBackNavigationComponent, BaoBackNavigationInsert, BaoBadgeComponent, BaoBadgeModule, BaoBreadcrumbComponent, BaoBreadcrumbModule, BaoButtonComponent, BaoButtonModule, BaoCardComponent, BaoCardContent, BaoCardHeader, BaoCardModule, BaoCardTextInterface, BaoCardTitle, BaoCheckBoxDescription, BaoCheckboxComponent, BaoCheckboxGroupComponent, BaoCheckboxModule, BaoCommonComponentsModule, BaoDropdownMenuComponent, BaoDropdownMenuDivider, BaoDropdownMenuItem, BaoDropdownMenuItemDescription, BaoDropdownMenuItemLabel, BaoDropdownMenuModule, BaoDropdownMenuSection, BaoDropdownMenuTrigger, BaoErrorTextComponent, BaoFileDropDirective, BaoFileDropzoneIntructions, BaoFileInputComponent, BaoFileIntl, BaoFileIntlEnglish, BaoFileModule, BaoFilePreviewComponent, BaoGuidingTextComponent, BaoHeaderInfoComponent, BaoHeaderInfoContent, BaoHeaderInfoModule, BaoHeaderInfoSubtitle, BaoHeaderInfoSurtitle, BaoHeaderInfoTitle, BaoHeaderInfoTitleGroupComponent, BaoHyperlinkComponent, BaoHyperlinkModule, BaoIconComponent, BaoIconModule, BaoLabelTextComponent, BaoList, BaoListItem, BaoListItemDescription, BaoListItemTitle, BaoListModule, BaoListSummary, BaoListSummaryItem, BaoModal, BaoModalBase, BaoModalClose, BaoModalContainer, BaoModalInitialConfig, BaoModalModule, BaoModalRef, BaoModule, BaoNavList, BaoRadioButtonComponent, BaoRadioButtonGroupComponent, BaoRadioDescription, BaoRadioModule, BaoSimpleSnackBarComponent, BaoSnackBarConfig, BaoSnackBarContainerComponent, BaoSnackBarModule, BaoSnackBarRef, BaoSnackBarService, BaoSnackBarToastTypeEnum, BaoSummaryComponent, BaoSummaryDescription, BaoSummaryModule, BaoSystemHeaderComponent, BaoSystemHeaderModule, BaoTabHeader, BaoTabPanel, BaoTablistComponent, BaoTabsContainer, BaoTabsModule, BaoTagComponent, BaoTagModule, BaoTitleTextComponent, _BaoModalContainerBase, _closeModalVia, baoFactory, eModalDesktopWidthSize, eModalMobileWidthSize, throwBaoModalContentAlreadyAttachedError };
|
|
5127
6111
|
//# sourceMappingURL=villedemontreal-angular-ui.mjs.map
|