@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,11 +12,15 @@ 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
17
|
import { __awaiter } from 'tslib';
|
|
18
|
+
import * as i1$5 from '@angular/cdk/platform';
|
|
18
19
|
import { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';
|
|
19
20
|
import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
|
|
21
|
+
import { take as take$1 } from 'rxjs/operators';
|
|
22
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
23
|
+
import * as i2$1 from '@angular/cdk/layout';
|
|
20
24
|
|
|
21
25
|
function baoColorToHex(baoColor) {
|
|
22
26
|
switch (baoColor) {
|
|
@@ -44,7 +48,7 @@ function baoColorToHex(baoColor) {
|
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
/*
|
|
47
|
-
* Copyright (c)
|
|
51
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
48
52
|
* Licensed under the MIT license.
|
|
49
53
|
* See LICENSE file in the project root for full license information.
|
|
50
54
|
*/
|
|
@@ -169,7 +173,7 @@ const ICONS_DCT = {
|
|
|
169
173
|
};
|
|
170
174
|
|
|
171
175
|
/*
|
|
172
|
-
* Copyright (c)
|
|
176
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
173
177
|
* Licensed under the MIT license.
|
|
174
178
|
* See LICENSE file in the project root for full license information.
|
|
175
179
|
*/
|
|
@@ -210,7 +214,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
210
214
|
} });
|
|
211
215
|
|
|
212
216
|
/*
|
|
213
|
-
* Copyright (c)
|
|
217
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
214
218
|
* Licensed under the MIT license.
|
|
215
219
|
* See LICENSE file in the project root for full license information.
|
|
216
220
|
*/
|
|
@@ -362,27 +366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
362
366
|
}] } });
|
|
363
367
|
|
|
364
368
|
/*
|
|
365
|
-
* Copyright (c)
|
|
366
|
-
* Licensed under the MIT license.
|
|
367
|
-
* See LICENSE file in the project root for full license information.
|
|
368
|
-
*/
|
|
369
|
-
const ICON_DIRECTIVES = [BaoIconComponent];
|
|
370
|
-
class BaoIconModule {
|
|
371
|
-
}
|
|
372
|
-
BaoIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
373
|
-
BaoIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, declarations: [BaoIconComponent], imports: [CommonModule], exports: [BaoIconComponent] });
|
|
374
|
-
BaoIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, imports: [CommonModule] });
|
|
375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, decorators: [{
|
|
376
|
-
type: NgModule,
|
|
377
|
-
args: [{
|
|
378
|
-
imports: [CommonModule],
|
|
379
|
-
declarations: ICON_DIRECTIVES,
|
|
380
|
-
exports: ICON_DIRECTIVES
|
|
381
|
-
}]
|
|
382
|
-
}] });
|
|
383
|
-
|
|
384
|
-
/*
|
|
385
|
-
* Copyright (c) 2023 Ville de Montreal. All rights reserved.
|
|
369
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
386
370
|
* Licensed under the MIT license.
|
|
387
371
|
* See LICENSE file in the project root for full license information.
|
|
388
372
|
*/
|
|
@@ -432,7 +416,7 @@ class BaoButtonComponent {
|
|
|
432
416
|
get nativeElement() {
|
|
433
417
|
return this.elementRef.nativeElement;
|
|
434
418
|
}
|
|
435
|
-
|
|
419
|
+
ngAfterContentInit() {
|
|
436
420
|
const childNodes = Array.from(this.nativeElement.childNodes);
|
|
437
421
|
const textIndex = childNodes.findIndex(c => c.nodeType === Node.TEXT_NODE);
|
|
438
422
|
this.noText = textIndex === -1;
|
|
@@ -478,27 +462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
478
462
|
}] } });
|
|
479
463
|
|
|
480
464
|
/*
|
|
481
|
-
* Copyright (c)
|
|
482
|
-
* Licensed under the MIT license.
|
|
483
|
-
* See LICENSE file in the project root for full license information.
|
|
484
|
-
*/
|
|
485
|
-
const BUTTON_DIRECTIVES = [BaoButtonComponent];
|
|
486
|
-
class BaoButtonModule {
|
|
487
|
-
}
|
|
488
|
-
BaoButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
489
|
-
BaoButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, declarations: [BaoButtonComponent], imports: [CommonModule, BaoIconModule], exports: [BaoButtonComponent, BaoIconModule] });
|
|
490
|
-
BaoButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, imports: [CommonModule, BaoIconModule, BaoIconModule] });
|
|
491
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, decorators: [{
|
|
492
|
-
type: NgModule,
|
|
493
|
-
args: [{
|
|
494
|
-
imports: [CommonModule, BaoIconModule],
|
|
495
|
-
declarations: BUTTON_DIRECTIVES,
|
|
496
|
-
exports: [...BUTTON_DIRECTIVES, BaoIconModule]
|
|
497
|
-
}]
|
|
498
|
-
}] });
|
|
499
|
-
|
|
500
|
-
/*
|
|
501
|
-
* Copyright (c) 2023 Ville de Montreal. All rights reserved.
|
|
465
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
502
466
|
* Licensed under the MIT license.
|
|
503
467
|
* See LICENSE file in the project root for full license information.
|
|
504
468
|
*/
|
|
@@ -655,7 +619,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
655
619
|
}] } });
|
|
656
620
|
|
|
657
621
|
/*
|
|
658
|
-
* Copyright (c)
|
|
622
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
623
|
+
* Licensed under the MIT license.
|
|
624
|
+
* See LICENSE file in the project root for full license information.
|
|
625
|
+
*/
|
|
626
|
+
const ICON_DIRECTIVES = [BaoIconComponent];
|
|
627
|
+
class BaoIconModule {
|
|
628
|
+
}
|
|
629
|
+
BaoIconModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
630
|
+
BaoIconModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, declarations: [BaoIconComponent], imports: [CommonModule], exports: [BaoIconComponent] });
|
|
631
|
+
BaoIconModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, imports: [CommonModule] });
|
|
632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoIconModule, decorators: [{
|
|
633
|
+
type: NgModule,
|
|
634
|
+
args: [{
|
|
635
|
+
imports: [CommonModule],
|
|
636
|
+
declarations: ICON_DIRECTIVES,
|
|
637
|
+
exports: ICON_DIRECTIVES
|
|
638
|
+
}]
|
|
639
|
+
}] });
|
|
640
|
+
|
|
641
|
+
/*
|
|
642
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
643
|
+
* Licensed under the MIT license.
|
|
644
|
+
* See LICENSE file in the project root for full license information.
|
|
645
|
+
*/
|
|
646
|
+
const BUTTON_DIRECTIVES = [BaoButtonComponent];
|
|
647
|
+
class BaoButtonModule {
|
|
648
|
+
}
|
|
649
|
+
BaoButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
650
|
+
BaoButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, declarations: [BaoButtonComponent], imports: [CommonModule, BaoIconModule], exports: [BaoButtonComponent, BaoIconModule] });
|
|
651
|
+
BaoButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, imports: [CommonModule, BaoIconModule, BaoIconModule] });
|
|
652
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoButtonModule, decorators: [{
|
|
653
|
+
type: NgModule,
|
|
654
|
+
args: [{
|
|
655
|
+
imports: [CommonModule, BaoIconModule],
|
|
656
|
+
declarations: BUTTON_DIRECTIVES,
|
|
657
|
+
exports: [...BUTTON_DIRECTIVES, BaoIconModule]
|
|
658
|
+
}]
|
|
659
|
+
}] });
|
|
660
|
+
|
|
661
|
+
/*
|
|
662
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
659
663
|
* Licensed under the MIT license.
|
|
660
664
|
* See LICENSE file in the project root for full license information.
|
|
661
665
|
*/
|
|
@@ -690,13 +694,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
690
694
|
}] });
|
|
691
695
|
|
|
692
696
|
/*
|
|
693
|
-
* Copyright (c)
|
|
697
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
694
698
|
* Licensed under the MIT license.
|
|
695
699
|
* See LICENSE file in the project root for full license information.
|
|
696
700
|
*/
|
|
697
701
|
|
|
698
702
|
/*
|
|
699
|
-
* Copyright (c)
|
|
703
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
700
704
|
* Licensed under the MIT license.
|
|
701
705
|
* See LICENSE file in the project root for full license information.
|
|
702
706
|
*/
|
|
@@ -729,7 +733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
729
733
|
}] } });
|
|
730
734
|
|
|
731
735
|
/*
|
|
732
|
-
* Copyright (c)
|
|
736
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
733
737
|
* Licensed under the MIT license.
|
|
734
738
|
* See LICENSE file in the project root for full license information.
|
|
735
739
|
*/
|
|
@@ -749,19 +753,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
749
753
|
}] });
|
|
750
754
|
|
|
751
755
|
/*
|
|
752
|
-
* Copyright (c)
|
|
756
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
753
757
|
* Licensed under the MIT license.
|
|
754
758
|
* See LICENSE file in the project root for full license information.
|
|
755
759
|
*/
|
|
756
760
|
|
|
757
761
|
/*
|
|
758
|
-
* Copyright (c)
|
|
762
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
759
763
|
* Licensed under the MIT license.
|
|
760
764
|
* See LICENSE file in the project root for full license information.
|
|
761
765
|
*/
|
|
762
766
|
|
|
763
767
|
/*
|
|
764
|
-
* Copyright (c)
|
|
768
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
765
769
|
* Licensed under the MIT license.
|
|
766
770
|
* See LICENSE file in the project root for full license information.
|
|
767
771
|
*/
|
|
@@ -853,7 +857,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
853
857
|
}] });
|
|
854
858
|
|
|
855
859
|
/*
|
|
856
|
-
* Copyright (c)
|
|
860
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
857
861
|
* Licensed under the MIT license.
|
|
858
862
|
* See LICENSE file in the project root for full license information.
|
|
859
863
|
*/
|
|
@@ -887,13 +891,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
887
891
|
}] });
|
|
888
892
|
|
|
889
893
|
/*
|
|
890
|
-
* Copyright (c)
|
|
894
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
891
895
|
* Licensed under the MIT license.
|
|
892
896
|
* See LICENSE file in the project root for full license information.
|
|
893
897
|
*/
|
|
894
898
|
|
|
895
899
|
/*
|
|
896
|
-
* Copyright (c)
|
|
900
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
897
901
|
* Licensed under the MIT license.
|
|
898
902
|
* See LICENSE file in the project root for full license information.
|
|
899
903
|
*/
|
|
@@ -907,7 +911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
907
911
|
}] });
|
|
908
912
|
|
|
909
913
|
/*
|
|
910
|
-
* Copyright (c)
|
|
914
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
911
915
|
* Licensed under the MIT license.
|
|
912
916
|
* See LICENSE file in the project root for full license information.
|
|
913
917
|
*/
|
|
@@ -921,7 +925,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
921
925
|
}] });
|
|
922
926
|
|
|
923
927
|
/*
|
|
924
|
-
* Copyright (c)
|
|
928
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
925
929
|
* Licensed under the MIT license.
|
|
926
930
|
* See LICENSE file in the project root for full license information.
|
|
927
931
|
*/
|
|
@@ -940,7 +944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
940
944
|
}] } });
|
|
941
945
|
|
|
942
946
|
/*
|
|
943
|
-
* Copyright (c)
|
|
947
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
944
948
|
* Licensed under the MIT license.
|
|
945
949
|
* See LICENSE file in the project root for full license information.
|
|
946
950
|
*/
|
|
@@ -954,7 +958,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
954
958
|
}] });
|
|
955
959
|
|
|
956
960
|
/*
|
|
957
|
-
* Copyright (c)
|
|
961
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
958
962
|
* Licensed under the MIT license.
|
|
959
963
|
* See LICENSE file in the project root for full license information.
|
|
960
964
|
*/
|
|
@@ -985,7 +989,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
985
989
|
}] });
|
|
986
990
|
|
|
987
991
|
/*
|
|
988
|
-
* Copyright (c)
|
|
992
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
989
993
|
* Licensed under the MIT license.
|
|
990
994
|
* See LICENSE file in the project root for full license information.
|
|
991
995
|
*/
|
|
@@ -1340,7 +1344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1340
1344
|
}] });
|
|
1341
1345
|
|
|
1342
1346
|
/*
|
|
1343
|
-
* Copyright (c)
|
|
1347
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1344
1348
|
* Licensed under the MIT license.
|
|
1345
1349
|
* See LICENSE file in the project root for full license information.
|
|
1346
1350
|
*/
|
|
@@ -1368,19 +1372,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1368
1372
|
}] });
|
|
1369
1373
|
|
|
1370
1374
|
/*
|
|
1371
|
-
* Copyright (c)
|
|
1375
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1372
1376
|
* Licensed under the MIT license.
|
|
1373
1377
|
* See LICENSE file in the project root for full license information.
|
|
1374
1378
|
*/
|
|
1375
1379
|
|
|
1376
1380
|
/*
|
|
1377
|
-
* Copyright (c)
|
|
1381
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1378
1382
|
* Licensed under the MIT license.
|
|
1379
1383
|
* See LICENSE file in the project root for full license information.
|
|
1380
1384
|
*/
|
|
1381
1385
|
|
|
1382
1386
|
/*
|
|
1383
|
-
* Copyright (c)
|
|
1387
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1384
1388
|
* Licensed under the MIT license.
|
|
1385
1389
|
* See LICENSE file in the project root for full license information.
|
|
1386
1390
|
*/
|
|
@@ -1481,7 +1485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1481
1485
|
}] });
|
|
1482
1486
|
|
|
1483
1487
|
/*
|
|
1484
|
-
* Copyright (c)
|
|
1488
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1485
1489
|
* Licensed under the MIT license.
|
|
1486
1490
|
* See LICENSE file in the project root for full license information.
|
|
1487
1491
|
*/
|
|
@@ -1518,19 +1522,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1518
1522
|
}] });
|
|
1519
1523
|
|
|
1520
1524
|
/*
|
|
1521
|
-
* Copyright (c)
|
|
1525
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1522
1526
|
* Licensed under the MIT license.
|
|
1523
1527
|
* See LICENSE file in the project root for full license information.
|
|
1524
1528
|
*/
|
|
1525
1529
|
|
|
1526
1530
|
/*
|
|
1527
|
-
* Copyright (c)
|
|
1531
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1528
1532
|
* Licensed under the MIT license.
|
|
1529
1533
|
* See LICENSE file in the project root for full license information.
|
|
1530
1534
|
*/
|
|
1531
1535
|
|
|
1532
1536
|
/*
|
|
1533
|
-
* Copyright (c)
|
|
1537
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1534
1538
|
* Licensed under the MIT license.
|
|
1535
1539
|
* See LICENSE file in the project root for full license information.
|
|
1536
1540
|
*/
|
|
@@ -1601,7 +1605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1601
1605
|
}] });
|
|
1602
1606
|
|
|
1603
1607
|
/*
|
|
1604
|
-
* Copyright (c)
|
|
1608
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1605
1609
|
* Licensed under the MIT license.
|
|
1606
1610
|
* See LICENSE file in the project root for full license information.
|
|
1607
1611
|
*/
|
|
@@ -1635,13 +1639,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
1635
1639
|
}] });
|
|
1636
1640
|
|
|
1637
1641
|
/*
|
|
1638
|
-
* Copyright (c)
|
|
1642
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1639
1643
|
* Licensed under the MIT license.
|
|
1640
1644
|
* See LICENSE file in the project root for full license information.
|
|
1641
1645
|
*/
|
|
1642
1646
|
|
|
1643
1647
|
/*
|
|
1644
|
-
* Copyright (c)
|
|
1648
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
1645
1649
|
* Licensed under the MIT license.
|
|
1646
1650
|
* See LICENSE file in the project root for full license information.
|
|
1647
1651
|
*/
|
|
@@ -2169,7 +2173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2169
2173
|
}] });
|
|
2170
2174
|
|
|
2171
2175
|
/*
|
|
2172
|
-
* Copyright (c)
|
|
2176
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2173
2177
|
* Licensed under the MIT license.
|
|
2174
2178
|
* See LICENSE file in the project root for full license information.
|
|
2175
2179
|
*/
|
|
@@ -2214,13 +2218,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2214
2218
|
}] });
|
|
2215
2219
|
|
|
2216
2220
|
/*
|
|
2217
|
-
* Copyright (c)
|
|
2221
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2218
2222
|
* Licensed under the MIT license.
|
|
2219
2223
|
* See LICENSE file in the project root for full license information.
|
|
2220
2224
|
*/
|
|
2221
2225
|
|
|
2222
2226
|
/*
|
|
2223
|
-
* Copyright (c)
|
|
2227
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2224
2228
|
* Licensed under the MIT license.
|
|
2225
2229
|
* See LICENSE file in the project root for full license information.
|
|
2226
2230
|
*/
|
|
@@ -2293,7 +2297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2293
2297
|
}] } });
|
|
2294
2298
|
|
|
2295
2299
|
/*
|
|
2296
|
-
* Copyright (c)
|
|
2300
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2297
2301
|
* Licensed under the MIT license.
|
|
2298
2302
|
* See LICENSE file in the project root for full license information.
|
|
2299
2303
|
*/
|
|
@@ -2313,13 +2317,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2313
2317
|
}] });
|
|
2314
2318
|
|
|
2315
2319
|
/*
|
|
2316
|
-
* Copyright (c)
|
|
2320
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2317
2321
|
* Licensed under the MIT license.
|
|
2318
2322
|
* See LICENSE file in the project root for full license information.
|
|
2319
2323
|
*/
|
|
2320
2324
|
|
|
2321
2325
|
/*
|
|
2322
|
-
* Copyright (c)
|
|
2326
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2323
2327
|
* Licensed under the MIT license.
|
|
2324
2328
|
* See LICENSE file in the project root for full license information.
|
|
2325
2329
|
*/
|
|
@@ -2410,7 +2414,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2410
2414
|
}] });
|
|
2411
2415
|
|
|
2412
2416
|
/*
|
|
2413
|
-
* Copyright (c)
|
|
2417
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2414
2418
|
* Licensed under the MIT license.
|
|
2415
2419
|
* See LICENSE file in the project root for full license information.
|
|
2416
2420
|
*/
|
|
@@ -2438,7 +2442,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2438
2442
|
}] });
|
|
2439
2443
|
|
|
2440
2444
|
/*
|
|
2441
|
-
* Copyright (c)
|
|
2445
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2442
2446
|
* Licensed under the MIT license.
|
|
2443
2447
|
* See LICENSE file in the project root for full license information.
|
|
2444
2448
|
*/
|
|
@@ -2469,13 +2473,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2469
2473
|
}] });
|
|
2470
2474
|
|
|
2471
2475
|
/*
|
|
2472
|
-
* Copyright (c)
|
|
2476
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2473
2477
|
* Licensed under the MIT license.
|
|
2474
2478
|
* See LICENSE file in the project root for full license information.
|
|
2475
2479
|
*/
|
|
2476
2480
|
|
|
2477
2481
|
/*
|
|
2478
|
-
* Copyright (c)
|
|
2482
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2479
2483
|
* Licensed under the MIT license.
|
|
2480
2484
|
* See LICENSE file in the project root for full license information.
|
|
2481
2485
|
*/
|
|
@@ -2575,7 +2579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2575
2579
|
}] } });
|
|
2576
2580
|
|
|
2577
2581
|
/*
|
|
2578
|
-
* Copyright (c)
|
|
2582
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2579
2583
|
* Licensed under the MIT license.
|
|
2580
2584
|
* See LICENSE file in the project root for full license information.
|
|
2581
2585
|
*/
|
|
@@ -2595,13 +2599,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2595
2599
|
}] });
|
|
2596
2600
|
|
|
2597
2601
|
/*
|
|
2598
|
-
* Copyright (c)
|
|
2602
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2599
2603
|
* Licensed under the MIT license.
|
|
2600
2604
|
* See LICENSE file in the project root for full license information.
|
|
2601
2605
|
*/
|
|
2602
2606
|
|
|
2603
2607
|
/*
|
|
2604
|
-
* Copyright (c)
|
|
2608
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2605
2609
|
* Licensed under the MIT license.
|
|
2606
2610
|
* See LICENSE file in the project root for full license information.
|
|
2607
2611
|
*/
|
|
@@ -2894,7 +2898,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2894
2898
|
}] } });
|
|
2895
2899
|
|
|
2896
2900
|
/*
|
|
2897
|
-
* Copyright (c)
|
|
2901
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2898
2902
|
* Licensed under the MIT license.
|
|
2899
2903
|
* See LICENSE file in the project root for full license information.
|
|
2900
2904
|
*/
|
|
@@ -2925,13 +2929,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
2925
2929
|
}] });
|
|
2926
2930
|
|
|
2927
2931
|
/*
|
|
2928
|
-
* Copyright (c)
|
|
2932
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2929
2933
|
* Licensed under the MIT license.
|
|
2930
2934
|
* See LICENSE file in the project root for full license information.
|
|
2931
2935
|
*/
|
|
2932
2936
|
|
|
2933
2937
|
/*
|
|
2934
|
-
* Copyright (c)
|
|
2938
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
2935
2939
|
* Licensed under the MIT license.
|
|
2936
2940
|
* See LICENSE file in the project root for full license information.
|
|
2937
2941
|
*/
|
|
@@ -3218,7 +3222,7 @@ class BaoModalContainer extends _BaoModalContainerBase {
|
|
|
3218
3222
|
}
|
|
3219
3223
|
}
|
|
3220
3224
|
BaoModalContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModalContainer, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3221
|
-
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;
|
|
3225
|
+
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 });
|
|
3222
3226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModalContainer, decorators: [{
|
|
3223
3227
|
type: Component,
|
|
3224
3228
|
args: [{ selector: 'bao-modal-container', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
|
|
@@ -3230,18 +3234,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3230
3234
|
'[attr.aria-labelledby]': '_config.ariaLabel ? null : _ariaLabelledBy',
|
|
3231
3235
|
'[attr.aria-label]': '_config.ariaLabel',
|
|
3232
3236
|
'[attr.aria-describedby]': '_config.ariaDescribedBy || null'
|
|
3233
|
-
}, 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;
|
|
3237
|
+
}, 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"] }]
|
|
3234
3238
|
}] });
|
|
3235
3239
|
|
|
3236
3240
|
// Counter for unique modal ids.
|
|
3237
|
-
let uniqueId = 0;
|
|
3241
|
+
let uniqueId$1 = 0;
|
|
3238
3242
|
/**
|
|
3239
3243
|
* Reference to a modal opened via the BaoModalService.
|
|
3240
3244
|
*/
|
|
3241
3245
|
class BaoModalRef {
|
|
3242
3246
|
constructor(_overlayRef, _containerInstance,
|
|
3243
3247
|
/** Id of the modal. */
|
|
3244
|
-
id = `bao-modal-${uniqueId++}`) {
|
|
3248
|
+
id = `bao-modal-${uniqueId$1++}`) {
|
|
3245
3249
|
this._overlayRef = _overlayRef;
|
|
3246
3250
|
this._containerInstance = _containerInstance;
|
|
3247
3251
|
this.id = id;
|
|
@@ -3430,7 +3434,7 @@ function _closeModalVia(ref, interactionType, result) {
|
|
|
3430
3434
|
}
|
|
3431
3435
|
|
|
3432
3436
|
/*
|
|
3433
|
-
* Copyright (c)
|
|
3437
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3434
3438
|
* Licensed under the MIT license.
|
|
3435
3439
|
* See LICENSE file in the project root for full license information.
|
|
3436
3440
|
*/
|
|
@@ -3691,7 +3695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3691
3695
|
} });
|
|
3692
3696
|
|
|
3693
3697
|
/*
|
|
3694
|
-
* Copyright (c)
|
|
3698
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3695
3699
|
* Licensed under the MIT license.
|
|
3696
3700
|
* See LICENSE file in the project root for full license information.
|
|
3697
3701
|
*/
|
|
@@ -3772,7 +3776,7 @@ function getClosestDialog(element, openDialogs) {
|
|
|
3772
3776
|
}
|
|
3773
3777
|
|
|
3774
3778
|
/*
|
|
3775
|
-
* Copyright (c)
|
|
3779
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3776
3780
|
* Licensed under the MIT license.
|
|
3777
3781
|
* See LICENSE file in the project root for full license information.
|
|
3778
3782
|
*/
|
|
@@ -3793,7 +3797,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3793
3797
|
}] });
|
|
3794
3798
|
|
|
3795
3799
|
/*
|
|
3796
|
-
* Copyright (c)
|
|
3800
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3797
3801
|
* Licensed under the MIT license.
|
|
3798
3802
|
* See LICENSE file in the project root for full license information.
|
|
3799
3803
|
*/
|
|
@@ -3866,7 +3870,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3866
3870
|
}] } });
|
|
3867
3871
|
|
|
3868
3872
|
/*
|
|
3869
|
-
* Copyright (c)
|
|
3873
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3870
3874
|
* Licensed under the MIT license.
|
|
3871
3875
|
* See LICENSE file in the project root for full license information.
|
|
3872
3876
|
*/
|
|
@@ -3886,13 +3890,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
3886
3890
|
}] });
|
|
3887
3891
|
|
|
3888
3892
|
/*
|
|
3889
|
-
* Copyright (c)
|
|
3893
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3890
3894
|
* Licensed under the MIT license.
|
|
3891
3895
|
* See LICENSE file in the project root for full license information.
|
|
3892
3896
|
*/
|
|
3893
3897
|
|
|
3894
3898
|
/*
|
|
3895
|
-
* Copyright (c)
|
|
3899
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
3896
3900
|
* Licensed under the MIT license.
|
|
3897
3901
|
* See LICENSE file in the project root for full license information.
|
|
3898
3902
|
*/
|
|
@@ -3909,6 +3913,10 @@ class BaoDropdownMenuItem {
|
|
|
3909
3913
|
* Is the list item disabled
|
|
3910
3914
|
*/
|
|
3911
3915
|
this.disabled = false;
|
|
3916
|
+
/**
|
|
3917
|
+
* Emits when menu item is clicked
|
|
3918
|
+
*/
|
|
3919
|
+
this.itemClicked = new EventEmitter();
|
|
3912
3920
|
}
|
|
3913
3921
|
get nativeElement() {
|
|
3914
3922
|
return this.elementRef.nativeElement;
|
|
@@ -3989,19 +3997,25 @@ class BaoDropdownMenuItem {
|
|
|
3989
3997
|
}
|
|
3990
3998
|
}
|
|
3991
3999
|
/**
|
|
3992
|
-
* This method propagates a click event to menu item children with inputs (checkbox, radio button)
|
|
4000
|
+
* This method propagates a click event to menu item children with inputs (checkbox, radio button).
|
|
4001
|
+
* It emits event to close menu if item does not contain an input.
|
|
3993
4002
|
*/
|
|
3994
4003
|
propagateClick() {
|
|
4004
|
+
let closeMenu = true;
|
|
3995
4005
|
for (let i = 0; i < this.nativeElement.children.length; i++) {
|
|
3996
4006
|
if (this.nativeElement.children.item(i).firstElementChild.localName ==
|
|
3997
4007
|
'input') {
|
|
3998
4008
|
this.nativeElement.children.item(i).firstElementChild.click();
|
|
4009
|
+
closeMenu = false;
|
|
3999
4010
|
}
|
|
4000
4011
|
}
|
|
4012
|
+
if (closeMenu) {
|
|
4013
|
+
this.itemClicked.emit();
|
|
4014
|
+
}
|
|
4001
4015
|
}
|
|
4002
4016
|
}
|
|
4003
4017
|
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 });
|
|
4004
|
-
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:
|
|
4018
|
+
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 });
|
|
4005
4019
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuItem, decorators: [{
|
|
4006
4020
|
type: Directive,
|
|
4007
4021
|
args: [{
|
|
@@ -4013,6 +4027,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4013
4027
|
}]
|
|
4014
4028
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: BaoDropdownMenuComponent }]; }, propDecorators: { disabled: [{
|
|
4015
4029
|
type: Input
|
|
4030
|
+
}], itemClicked: [{
|
|
4031
|
+
type: Output
|
|
4016
4032
|
}], spaceKeyEvent: [{
|
|
4017
4033
|
type: HostListener,
|
|
4018
4034
|
args: ['window:keyup.space']
|
|
@@ -4021,7 +4037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4021
4037
|
args: ['click', ['$event.target']]
|
|
4022
4038
|
}], enterKeyEvent: [{
|
|
4023
4039
|
type: HostListener,
|
|
4024
|
-
args: ['window:
|
|
4040
|
+
args: ['window:keyup.enter']
|
|
4025
4041
|
}] } });
|
|
4026
4042
|
class BaoDropdownMenuComponent {
|
|
4027
4043
|
constructor(cdr, renderer, elementRef) {
|
|
@@ -4099,6 +4115,9 @@ class BaoDropdownMenuComponent {
|
|
|
4099
4115
|
this.renderer.setAttribute(this.nativeElement, 'id', this.menuId);
|
|
4100
4116
|
this._menuPortal = new DomPortal(this._menuContent);
|
|
4101
4117
|
}
|
|
4118
|
+
ngAfterContentInit() {
|
|
4119
|
+
this._listItems.forEach((item) => item.itemClicked.subscribe(() => this.isClosedByKeyEvent.emit()));
|
|
4120
|
+
}
|
|
4102
4121
|
focusFirstItem() {
|
|
4103
4122
|
this._activeItemIndex = 0;
|
|
4104
4123
|
this._listItems.first.nativeElement.focus();
|
|
@@ -4219,8 +4238,9 @@ class BaoDropdownMenuTrigger {
|
|
|
4219
4238
|
}
|
|
4220
4239
|
/** Enter key event triggers click event which opens menu,
|
|
4221
4240
|
* then focus is put on first item in the menu */
|
|
4222
|
-
enterKeyEvent() {
|
|
4241
|
+
enterKeyEvent(event) {
|
|
4223
4242
|
if (this._isMenuOpen && document.activeElement === this.nativeElement) {
|
|
4243
|
+
event.stopImmediatePropagation();
|
|
4224
4244
|
this.menu.focusFirstItem();
|
|
4225
4245
|
}
|
|
4226
4246
|
}
|
|
@@ -4292,11 +4312,18 @@ class BaoDropdownMenuTrigger {
|
|
|
4292
4312
|
overlayY: 'bottom'
|
|
4293
4313
|
},
|
|
4294
4314
|
{
|
|
4295
|
-
// top-right of the overlay is connected to bottom-
|
|
4296
|
-
originX: '
|
|
4315
|
+
// top-right of the overlay is connected to bottom-right of the origin;
|
|
4316
|
+
originX: 'end',
|
|
4297
4317
|
originY: 'bottom',
|
|
4298
4318
|
overlayX: 'end',
|
|
4299
4319
|
overlayY: 'top'
|
|
4320
|
+
},
|
|
4321
|
+
{
|
|
4322
|
+
// bottom-right of the overlay is connected to top-right of the origin;
|
|
4323
|
+
originX: 'end',
|
|
4324
|
+
originY: 'top',
|
|
4325
|
+
overlayX: 'end',
|
|
4326
|
+
overlayY: 'bottom'
|
|
4300
4327
|
}
|
|
4301
4328
|
]),
|
|
4302
4329
|
backdropClass: 'bao-overlay-transparent-backdrop',
|
|
@@ -4306,7 +4333,7 @@ class BaoDropdownMenuTrigger {
|
|
|
4306
4333
|
}
|
|
4307
4334
|
}
|
|
4308
4335
|
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 });
|
|
4309
|
-
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 });
|
|
4336
|
+
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 });
|
|
4310
4337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoDropdownMenuTrigger, decorators: [{
|
|
4311
4338
|
type: Directive,
|
|
4312
4339
|
args: [{
|
|
@@ -4321,7 +4348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4321
4348
|
args: ['window:keyup.escape']
|
|
4322
4349
|
}], enterKeyEvent: [{
|
|
4323
4350
|
type: HostListener,
|
|
4324
|
-
args: ['window:keyup.enter']
|
|
4351
|
+
args: ['window:keyup.enter', ['$event']]
|
|
4325
4352
|
}], onClick: [{
|
|
4326
4353
|
type: HostListener,
|
|
4327
4354
|
args: ['click']
|
|
@@ -4416,7 +4443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4416
4443
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
|
|
4417
4444
|
|
|
4418
4445
|
/*
|
|
4419
|
-
* Copyright (c)
|
|
4446
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4420
4447
|
* Licensed under the MIT license.
|
|
4421
4448
|
* See LICENSE file in the project root for full license information.
|
|
4422
4449
|
*/
|
|
@@ -4456,13 +4483,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4456
4483
|
}] });
|
|
4457
4484
|
|
|
4458
4485
|
/*
|
|
4459
|
-
* Copyright (c)
|
|
4486
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4460
4487
|
* Licensed under the MIT license.
|
|
4461
4488
|
* See LICENSE file in the project root for full license information.
|
|
4462
4489
|
*/
|
|
4463
4490
|
|
|
4464
4491
|
/*
|
|
4465
|
-
* Copyright (c)
|
|
4492
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4466
4493
|
* Licensed under the MIT license.
|
|
4467
4494
|
* See LICENSE file in the project root for full license information.
|
|
4468
4495
|
*/
|
|
@@ -4544,7 +4571,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4544
4571
|
}] } });
|
|
4545
4572
|
|
|
4546
4573
|
/*
|
|
4547
|
-
* Copyright (c)
|
|
4574
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4548
4575
|
* Licensed under the MIT license.
|
|
4549
4576
|
* See LICENSE file in the project root for full license information.
|
|
4550
4577
|
*/
|
|
@@ -4606,7 +4633,7 @@ const BAO_FILE_INTL_PROVIDER = {
|
|
|
4606
4633
|
};
|
|
4607
4634
|
|
|
4608
4635
|
/*
|
|
4609
|
-
* Copyright (c)
|
|
4636
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4610
4637
|
* Licensed under the MIT license.
|
|
4611
4638
|
* See LICENSE file in the project root for full license information.
|
|
4612
4639
|
*/
|
|
@@ -4915,7 +4942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4915
4942
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; } });
|
|
4916
4943
|
|
|
4917
4944
|
/*
|
|
4918
|
-
* Copyright (c)
|
|
4945
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4919
4946
|
* Licensed under the MIT license.
|
|
4920
4947
|
* See LICENSE file in the project root for full license information.
|
|
4921
4948
|
*/
|
|
@@ -4960,8 +4987,960 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
4960
4987
|
}]
|
|
4961
4988
|
}] });
|
|
4962
4989
|
|
|
4990
|
+
/** Injection token that can be used to access the data that was passed in to a snack bar. */
|
|
4991
|
+
const BAO_SNACK_BAR_DATA = new InjectionToken('BaoSnackBarData');
|
|
4992
|
+
/** Possible types of toast to display the snack bar */
|
|
4993
|
+
var BaoSnackBarToastTypeEnum;
|
|
4994
|
+
(function (BaoSnackBarToastTypeEnum) {
|
|
4995
|
+
BaoSnackBarToastTypeEnum["Info"] = "info";
|
|
4996
|
+
BaoSnackBarToastTypeEnum["Success"] = "success";
|
|
4997
|
+
BaoSnackBarToastTypeEnum["Danger"] = "danger";
|
|
4998
|
+
})(BaoSnackBarToastTypeEnum || (BaoSnackBarToastTypeEnum = {}));
|
|
4999
|
+
/**
|
|
5000
|
+
* Configuration used when opening a snack-bar.
|
|
5001
|
+
*/
|
|
5002
|
+
class BaoSnackBarConfig {
|
|
5003
|
+
constructor() {
|
|
5004
|
+
/** The message to display in the snackbar. */
|
|
5005
|
+
this.message = 'No message';
|
|
5006
|
+
/** The type of snackbar template to display. */
|
|
5007
|
+
this.toastType = BaoSnackBarToastTypeEnum.Info;
|
|
5008
|
+
/**
|
|
5009
|
+
* The attached action to the snack bar. If the name of the action matches an icon provided as part of
|
|
5010
|
+
* angular-ui icon dictionnary an icon will be displayed instead of text.
|
|
5011
|
+
* */
|
|
5012
|
+
this.actionLabelOrIcon = '';
|
|
5013
|
+
/** Displays the close button when set to true */
|
|
5014
|
+
this.showClose = false;
|
|
5015
|
+
/** The length of time in milliseconds to wait before automatically dismissing the snack bar. */
|
|
5016
|
+
this.duration = 5000;
|
|
5017
|
+
/** The politeness level for the MatAriaLiveAnnouncer announcement. */
|
|
5018
|
+
this.politeness = 'assertive';
|
|
5019
|
+
/**
|
|
5020
|
+
* Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom
|
|
5021
|
+
* component or template, the announcement message will default to the specified message.
|
|
5022
|
+
*/
|
|
5023
|
+
this.announcementMessage = '';
|
|
5024
|
+
/** Data being injected into the child component. */
|
|
5025
|
+
this.data = null;
|
|
5026
|
+
/** The horizontal position to place the snack bar. */
|
|
5027
|
+
this.horizontalPosition = 'left';
|
|
5028
|
+
/** The vertical position to place the snack bar. */
|
|
5029
|
+
this.verticalPosition = 'bottom';
|
|
5030
|
+
}
|
|
5031
|
+
}
|
|
5032
|
+
|
|
5033
|
+
/** Maximum amount of milliseconds that can be passed into setTimeout. */
|
|
5034
|
+
const MAX_TIMEOUT = Math.pow(2, 31) - 1;
|
|
5035
|
+
/**
|
|
5036
|
+
* Reference to a snack bar dispatched from the snack bar service.
|
|
5037
|
+
*/
|
|
5038
|
+
class BaoSnackBarRef {
|
|
5039
|
+
constructor(containerInstance, _overlayRef) {
|
|
5040
|
+
this._overlayRef = _overlayRef;
|
|
5041
|
+
/** Subject for notifying the user that the snack bar has been dismissed. */
|
|
5042
|
+
this._afterDismissed = new Subject();
|
|
5043
|
+
/** Subject for notifying the user that the snack bar has opened and appeared. */
|
|
5044
|
+
this._afterOpened = new Subject();
|
|
5045
|
+
/** Subject for notifying the user that the snack bar action was called. */
|
|
5046
|
+
this._onAction = new Subject();
|
|
5047
|
+
/** Whether the snack bar was dismissed using the action button. */
|
|
5048
|
+
this._dismissedByAction = false;
|
|
5049
|
+
this.containerInstance = containerInstance;
|
|
5050
|
+
// Dismiss snackbar on action.
|
|
5051
|
+
this.onAction().subscribe(() => this.dismiss());
|
|
5052
|
+
containerInstance._onExit.subscribe(() => this.finishDismiss());
|
|
5053
|
+
}
|
|
5054
|
+
/** Dismisses the snack bar. */
|
|
5055
|
+
dismiss() {
|
|
5056
|
+
if (!this._afterDismissed.closed) {
|
|
5057
|
+
this.containerInstance.exit();
|
|
5058
|
+
}
|
|
5059
|
+
clearTimeout(this._durationTimeoutId);
|
|
5060
|
+
}
|
|
5061
|
+
/** Marks the snackbar action clicked. */
|
|
5062
|
+
dismissWithAction() {
|
|
5063
|
+
if (!this._onAction.closed) {
|
|
5064
|
+
this._dismissedByAction = true;
|
|
5065
|
+
this._onAction.next();
|
|
5066
|
+
this._onAction.complete();
|
|
5067
|
+
}
|
|
5068
|
+
}
|
|
5069
|
+
/** Dismisses the snack bar after some duration */
|
|
5070
|
+
dismissAfter(duration) {
|
|
5071
|
+
// Note that we need to cap the duration to the maximum value for setTimeout, because
|
|
5072
|
+
// it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.
|
|
5073
|
+
// @TODO: window.setTimeout() ?
|
|
5074
|
+
this._durationTimeoutId = window.setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));
|
|
5075
|
+
}
|
|
5076
|
+
/** Marks the snackbar as opened */
|
|
5077
|
+
open() {
|
|
5078
|
+
if (!this._afterOpened.closed) {
|
|
5079
|
+
this._afterOpened.next();
|
|
5080
|
+
this._afterOpened.complete();
|
|
5081
|
+
}
|
|
5082
|
+
}
|
|
5083
|
+
/** Gets an observable that is notified when the snack bar is finished closing. */
|
|
5084
|
+
afterDismissed() {
|
|
5085
|
+
return this._afterDismissed;
|
|
5086
|
+
}
|
|
5087
|
+
/** Gets an observable that is notified when the snack bar has opened and appeared. */
|
|
5088
|
+
afterOpened() {
|
|
5089
|
+
return this.containerInstance._onEnter;
|
|
5090
|
+
}
|
|
5091
|
+
/** Gets an observable that is notified when the snack bar action is called. */
|
|
5092
|
+
onAction() {
|
|
5093
|
+
return this._onAction;
|
|
5094
|
+
}
|
|
5095
|
+
/** Cleans up the DOM after closing. */
|
|
5096
|
+
finishDismiss() {
|
|
5097
|
+
this._overlayRef.dispose();
|
|
5098
|
+
if (!this._onAction.closed) {
|
|
5099
|
+
this._onAction.complete();
|
|
5100
|
+
}
|
|
5101
|
+
this._afterDismissed.next({ dismissedByAction: this._dismissedByAction });
|
|
5102
|
+
this._afterDismissed.complete();
|
|
5103
|
+
this._dismissedByAction = false;
|
|
5104
|
+
}
|
|
5105
|
+
}
|
|
5106
|
+
|
|
5107
|
+
/*
|
|
5108
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5109
|
+
* Licensed under the MIT license.
|
|
5110
|
+
* See LICENSE file in the project root for full license information.
|
|
5111
|
+
*/
|
|
5112
|
+
const toastTypeToAttributes = {
|
|
5113
|
+
info: {
|
|
5114
|
+
toast: 'snackbar-info',
|
|
5115
|
+
icon: 'icon-info',
|
|
5116
|
+
iconTitle: 'Information',
|
|
5117
|
+
politeness: 'assertive'
|
|
5118
|
+
},
|
|
5119
|
+
success: {
|
|
5120
|
+
toast: 'snackbar-success',
|
|
5121
|
+
icon: 'icon-check-circle',
|
|
5122
|
+
iconTitle: 'Succès',
|
|
5123
|
+
politeness: 'polite'
|
|
5124
|
+
},
|
|
5125
|
+
danger: {
|
|
5126
|
+
toast: 'snackbar-danger',
|
|
5127
|
+
icon: 'icon-error',
|
|
5128
|
+
iconTitle: 'Erreur',
|
|
5129
|
+
politeness: 'assertive'
|
|
5130
|
+
}
|
|
5131
|
+
};
|
|
5132
|
+
/**
|
|
5133
|
+
* A component used to open as the default snack bar, matching material spec.
|
|
5134
|
+
* This should only be used internally by the snack bar service.
|
|
5135
|
+
*/
|
|
5136
|
+
class BaoSimpleSnackBarComponent {
|
|
5137
|
+
constructor(snackBarRef, data) {
|
|
5138
|
+
this.snackBarRef = snackBarRef;
|
|
5139
|
+
this.showCloseTitle = 'Fermer le message';
|
|
5140
|
+
this.data = data;
|
|
5141
|
+
}
|
|
5142
|
+
/** Returns the politeness */
|
|
5143
|
+
get politeness() {
|
|
5144
|
+
var _a;
|
|
5145
|
+
return (((_a = toastTypeToAttributes[this.data.toastType]) === null || _a === void 0 ? void 0 : _a.politeness) ||
|
|
5146
|
+
toastTypeToAttributes['info'].politeness);
|
|
5147
|
+
}
|
|
5148
|
+
/** Returns the toast class */
|
|
5149
|
+
get toastType() {
|
|
5150
|
+
var _a;
|
|
5151
|
+
return (((_a = toastTypeToAttributes[this.data.toastType]) === null || _a === void 0 ? void 0 : _a.toast) ||
|
|
5152
|
+
toastTypeToAttributes['info'].toast);
|
|
5153
|
+
}
|
|
5154
|
+
/** Returns the toast icon */
|
|
5155
|
+
get toastIcon() {
|
|
5156
|
+
var _a;
|
|
5157
|
+
return (((_a = toastTypeToAttributes[this.data.toastType]) === null || _a === void 0 ? void 0 : _a.icon) ||
|
|
5158
|
+
toastTypeToAttributes['info'].icon);
|
|
5159
|
+
}
|
|
5160
|
+
/** Returns the toast icon title */
|
|
5161
|
+
get toastIconTitle() {
|
|
5162
|
+
var _a;
|
|
5163
|
+
return (((_a = toastTypeToAttributes[this.data.toastType]) === null || _a === void 0 ? void 0 : _a.iconTitle) ||
|
|
5164
|
+
toastTypeToAttributes['info'].iconTitle);
|
|
5165
|
+
}
|
|
5166
|
+
/** If the action button should be shown. */
|
|
5167
|
+
get hasAction() {
|
|
5168
|
+
return !!this.data.actionLabelOrIcon;
|
|
5169
|
+
}
|
|
5170
|
+
/** If the action is an icon */
|
|
5171
|
+
get isActionIcon() {
|
|
5172
|
+
return !!ICONS_DCT[this.data.actionLabelOrIcon];
|
|
5173
|
+
}
|
|
5174
|
+
/** Performs the action on the snack bar. */
|
|
5175
|
+
action() {
|
|
5176
|
+
this.snackBarRef.dismissWithAction();
|
|
5177
|
+
}
|
|
5178
|
+
/** Closes the snack bar. */
|
|
5179
|
+
close() {
|
|
5180
|
+
this.snackBarRef.dismiss();
|
|
5181
|
+
}
|
|
5182
|
+
}
|
|
5183
|
+
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 });
|
|
5184
|
+
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 });
|
|
5185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSimpleSnackBarComponent, decorators: [{
|
|
5186
|
+
type: Component,
|
|
5187
|
+
args: [{ selector: 'bao-simple-snack-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
5188
|
+
class: 'mat-simple-snackbar'
|
|
5189
|
+
}, 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"] }]
|
|
5190
|
+
}], ctorParameters: function () {
|
|
5191
|
+
return [{ type: BaoSnackBarRef }, { type: undefined, decorators: [{
|
|
5192
|
+
type: Inject,
|
|
5193
|
+
args: [BAO_SNACK_BAR_DATA]
|
|
5194
|
+
}] }];
|
|
5195
|
+
} });
|
|
5196
|
+
|
|
5197
|
+
/*
|
|
5198
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5199
|
+
* Licensed under the MIT license.
|
|
5200
|
+
* See LICENSE file in the project root for full license information.
|
|
5201
|
+
*/
|
|
5202
|
+
/**
|
|
5203
|
+
* Animations used by the Material snack bar.
|
|
5204
|
+
* @docs-private
|
|
5205
|
+
*/
|
|
5206
|
+
const matSnackBarAnimations = {
|
|
5207
|
+
/** Animation that shows and hides a snack bar. */
|
|
5208
|
+
snackBarState: trigger('state', [
|
|
5209
|
+
state('void, hidden', style({
|
|
5210
|
+
transform: 'scale(0.8)',
|
|
5211
|
+
opacity: 0
|
|
5212
|
+
})),
|
|
5213
|
+
state('visible', style({
|
|
5214
|
+
transform: 'scale(1)',
|
|
5215
|
+
opacity: 1
|
|
5216
|
+
})),
|
|
5217
|
+
transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),
|
|
5218
|
+
transition('* => void, * => hidden', animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', style({
|
|
5219
|
+
opacity: 0
|
|
5220
|
+
})))
|
|
5221
|
+
])
|
|
5222
|
+
};
|
|
5223
|
+
|
|
5224
|
+
let uniqueId = 0;
|
|
5225
|
+
/**
|
|
5226
|
+
* Internal component that wraps user-provided snack bar content.
|
|
5227
|
+
* @docs-private
|
|
5228
|
+
*/
|
|
5229
|
+
class BaoSnackBarContainerComponent extends BasePortalOutlet {
|
|
5230
|
+
constructor(_ngZone, _elementRef, _changeDetectorRef, _platform,
|
|
5231
|
+
/** The snack bar configuration. */
|
|
5232
|
+
snackBarConfig) {
|
|
5233
|
+
super();
|
|
5234
|
+
this._ngZone = _ngZone;
|
|
5235
|
+
this._elementRef = _elementRef;
|
|
5236
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
5237
|
+
this._platform = _platform;
|
|
5238
|
+
this.snackBarConfig = snackBarConfig;
|
|
5239
|
+
this._document = inject(DOCUMENT);
|
|
5240
|
+
this._trackedModals = new Set();
|
|
5241
|
+
/** Subject for notifying that the snack bar has announced to screen readers. */
|
|
5242
|
+
this._onAnnounce = new Subject();
|
|
5243
|
+
/** Subject for notifying that the snack bar has exited from view. */
|
|
5244
|
+
this._onExit = new Subject();
|
|
5245
|
+
/** Subject for notifying that the snack bar has finished entering the view. */
|
|
5246
|
+
this._onEnter = new Subject();
|
|
5247
|
+
/** The state of the snack bar animations. */
|
|
5248
|
+
this._animationState = 'void';
|
|
5249
|
+
/** The number of milliseconds to wait before announcing the snack bar's content. */
|
|
5250
|
+
this._announceDelay = 150;
|
|
5251
|
+
/** Whether the component has been destroyed. */
|
|
5252
|
+
this._destroyed = false;
|
|
5253
|
+
/** Unique ID of the aria-live element. */
|
|
5254
|
+
this._liveElementId = `bao-snack-bar-container-live-${uniqueId++}`;
|
|
5255
|
+
/**
|
|
5256
|
+
* Attaches a DOM portal to the snack bar container.
|
|
5257
|
+
* @deprecated To be turned into a method.
|
|
5258
|
+
* @breaking-change 10.0.0
|
|
5259
|
+
*/
|
|
5260
|
+
this.attachDomPortal = (portal) => {
|
|
5261
|
+
this.assertNotAttached();
|
|
5262
|
+
const result = this._portalOutlet.attachDomPortal(portal);
|
|
5263
|
+
this._afterPortalAttached();
|
|
5264
|
+
return result;
|
|
5265
|
+
};
|
|
5266
|
+
// Use aria-live rather than a live role like 'alert' or 'status'
|
|
5267
|
+
// because NVDA and JAWS have show inconsistent behavior with live roles.
|
|
5268
|
+
if (snackBarConfig.politeness === 'assertive' &&
|
|
5269
|
+
!snackBarConfig.announcementMessage) {
|
|
5270
|
+
this._live = 'assertive';
|
|
5271
|
+
}
|
|
5272
|
+
else if (snackBarConfig.politeness === 'off') {
|
|
5273
|
+
this._live = 'off';
|
|
5274
|
+
}
|
|
5275
|
+
else {
|
|
5276
|
+
this._live = 'polite';
|
|
5277
|
+
}
|
|
5278
|
+
// Only set role for Firefox. Set role based on aria-live because setting role="alert" implies
|
|
5279
|
+
// aria-live="assertive" which may cause issues if aria-live is set to "polite" above.
|
|
5280
|
+
if (this._platform.FIREFOX) {
|
|
5281
|
+
if (this._live === 'polite') {
|
|
5282
|
+
this._role = 'status';
|
|
5283
|
+
}
|
|
5284
|
+
if (this._live === 'assertive') {
|
|
5285
|
+
this._role = 'alert';
|
|
5286
|
+
}
|
|
5287
|
+
}
|
|
5288
|
+
}
|
|
5289
|
+
/** Attach a component portal as content to this snack bar container. */
|
|
5290
|
+
attachComponentPortal(portal) {
|
|
5291
|
+
this.assertNotAttached();
|
|
5292
|
+
this.applySnackBarClasses();
|
|
5293
|
+
const result = this._portalOutlet.attachComponentPortal(portal);
|
|
5294
|
+
this._afterPortalAttached();
|
|
5295
|
+
return result;
|
|
5296
|
+
}
|
|
5297
|
+
/** Attach a template portal as content to this snack bar container. */
|
|
5298
|
+
attachTemplatePortal(portal) {
|
|
5299
|
+
this.assertNotAttached();
|
|
5300
|
+
this.applySnackBarClasses();
|
|
5301
|
+
const result = this._portalOutlet.attachTemplatePortal(portal);
|
|
5302
|
+
this._afterPortalAttached();
|
|
5303
|
+
return result;
|
|
5304
|
+
}
|
|
5305
|
+
/** Handle end of animations, updating the state of the snackbar. */
|
|
5306
|
+
onAnimationEnd(event) {
|
|
5307
|
+
const { fromState, toState } = event;
|
|
5308
|
+
if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {
|
|
5309
|
+
this.completeExit();
|
|
5310
|
+
}
|
|
5311
|
+
if (toState === 'visible') {
|
|
5312
|
+
// Note: we shouldn't use `this` inside the zone callback,
|
|
5313
|
+
// because it can cause a memory leak.
|
|
5314
|
+
const onEnter = this._onEnter;
|
|
5315
|
+
this._ngZone.run(() => {
|
|
5316
|
+
onEnter.next();
|
|
5317
|
+
onEnter.complete();
|
|
5318
|
+
});
|
|
5319
|
+
}
|
|
5320
|
+
}
|
|
5321
|
+
/** Begin animation of snack bar entrance into view. */
|
|
5322
|
+
enter() {
|
|
5323
|
+
if (!this._destroyed) {
|
|
5324
|
+
this._animationState = 'visible';
|
|
5325
|
+
this._changeDetectorRef.detectChanges();
|
|
5326
|
+
this.screenReaderAnnounce();
|
|
5327
|
+
}
|
|
5328
|
+
}
|
|
5329
|
+
/** Begin animation of the snack bar exiting from view. */
|
|
5330
|
+
exit() {
|
|
5331
|
+
// Note: this one transitions to `hidden`, rather than `void`, in order to handle the case
|
|
5332
|
+
// where multiple snack bars are opened in quick succession (e.g. two consecutive calls to
|
|
5333
|
+
// `MatSnackBar.open`).
|
|
5334
|
+
this._animationState = 'hidden';
|
|
5335
|
+
// Mark this element with an 'exit' attribute to indicate that the snackbar has
|
|
5336
|
+
// been dismissed and will soon be removed from the DOM. This is used by the snackbar
|
|
5337
|
+
// test harness.
|
|
5338
|
+
this._elementRef.nativeElement.setAttribute('mat-exit', '');
|
|
5339
|
+
// If the snack bar hasn't been announced by the time it exits it wouldn't have been open
|
|
5340
|
+
// long enough to visually read it either, so clear the timeout for announcing.
|
|
5341
|
+
clearTimeout(this._announceTimeoutId);
|
|
5342
|
+
return this._onExit;
|
|
5343
|
+
}
|
|
5344
|
+
/** Makes sure the exit callbacks have been invoked when the element is destroyed. */
|
|
5345
|
+
ngOnDestroy() {
|
|
5346
|
+
this._destroyed = true;
|
|
5347
|
+
this.completeExit();
|
|
5348
|
+
}
|
|
5349
|
+
/**
|
|
5350
|
+
* Waits for the zone to settle before removing the element. Helps prevent
|
|
5351
|
+
* errors where we end up removing an element which is in the middle of an animation.
|
|
5352
|
+
*/
|
|
5353
|
+
completeExit() {
|
|
5354
|
+
this._ngZone.onMicrotaskEmpty.pipe(take$1(1)).subscribe(() => {
|
|
5355
|
+
this._onExit.next();
|
|
5356
|
+
this._onExit.complete();
|
|
5357
|
+
});
|
|
5358
|
+
}
|
|
5359
|
+
/** Applies the various positioning and user-configured CSS classes to the snack bar. */
|
|
5360
|
+
applySnackBarClasses() {
|
|
5361
|
+
const element = this._elementRef.nativeElement;
|
|
5362
|
+
const panelClasses = this.snackBarConfig.panelClass;
|
|
5363
|
+
if (panelClasses) {
|
|
5364
|
+
if (Array.isArray(panelClasses)) {
|
|
5365
|
+
// Note that we can't use a spread here, because IE doesn't support multiple arguments.
|
|
5366
|
+
panelClasses.forEach(cssClass => element.classList.add(cssClass));
|
|
5367
|
+
}
|
|
5368
|
+
else {
|
|
5369
|
+
element.classList.add(panelClasses);
|
|
5370
|
+
}
|
|
5371
|
+
}
|
|
5372
|
+
if (this.snackBarConfig.horizontalPosition === 'center') {
|
|
5373
|
+
element.classList.add('bao-snack-bar-center');
|
|
5374
|
+
}
|
|
5375
|
+
if (this.snackBarConfig.verticalPosition === 'top') {
|
|
5376
|
+
element.classList.add('bao-snack-bar-top');
|
|
5377
|
+
}
|
|
5378
|
+
}
|
|
5379
|
+
/**
|
|
5380
|
+
* Called after the portal contents have been attached. Can be
|
|
5381
|
+
* used to modify the DOM once it's guaranteed to be in place.
|
|
5382
|
+
*/
|
|
5383
|
+
_afterPortalAttached() {
|
|
5384
|
+
const element = this._elementRef.nativeElement;
|
|
5385
|
+
const panelClasses = this.snackBarConfig.panelClass;
|
|
5386
|
+
if (panelClasses) {
|
|
5387
|
+
if (Array.isArray(panelClasses)) {
|
|
5388
|
+
// Note that we can't use a spread here, because IE doesn't support multiple arguments.
|
|
5389
|
+
panelClasses.forEach(cssClass => element.classList.add(cssClass));
|
|
5390
|
+
}
|
|
5391
|
+
else {
|
|
5392
|
+
element.classList.add(panelClasses);
|
|
5393
|
+
}
|
|
5394
|
+
}
|
|
5395
|
+
this._exposeToModals();
|
|
5396
|
+
}
|
|
5397
|
+
/**
|
|
5398
|
+
* Some browsers won't expose the accessibility node of the live element if there is an
|
|
5399
|
+
* `aria-modal` and the live element is outside of it. This method works around the issue by
|
|
5400
|
+
* pointing the `aria-owns` of all modals to the live element.
|
|
5401
|
+
*/
|
|
5402
|
+
_exposeToModals() {
|
|
5403
|
+
// TODO(crisbeto): consider de-duplicating this with the `LiveAnnouncer`.
|
|
5404
|
+
// Note that the selector here is limited to CDK overlays at the moment in order to reduce the
|
|
5405
|
+
// section of the DOM we need to look through. This should cover all the cases we support, but
|
|
5406
|
+
// the selector can be expanded if it turns out to be too narrow.
|
|
5407
|
+
const id = this._liveElementId;
|
|
5408
|
+
const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');
|
|
5409
|
+
for (let i = 0; i < modals.length; i++) {
|
|
5410
|
+
const modal = modals[i];
|
|
5411
|
+
const ariaOwns = modal.getAttribute('aria-owns');
|
|
5412
|
+
this._trackedModals.add(modal);
|
|
5413
|
+
if (!ariaOwns) {
|
|
5414
|
+
modal.setAttribute('aria-owns', id);
|
|
5415
|
+
}
|
|
5416
|
+
else if (ariaOwns.indexOf(id) === -1) {
|
|
5417
|
+
modal.setAttribute('aria-owns', ariaOwns + ' ' + id);
|
|
5418
|
+
}
|
|
5419
|
+
}
|
|
5420
|
+
}
|
|
5421
|
+
/** Clears the references to the live element from any modals it was added to. */
|
|
5422
|
+
_clearFromModals() {
|
|
5423
|
+
this._trackedModals.forEach(modal => {
|
|
5424
|
+
const ariaOwns = modal.getAttribute('aria-owns');
|
|
5425
|
+
if (ariaOwns) {
|
|
5426
|
+
const newValue = ariaOwns.replace(this._liveElementId, '').trim();
|
|
5427
|
+
if (newValue.length > 0) {
|
|
5428
|
+
modal.setAttribute('aria-owns', newValue);
|
|
5429
|
+
}
|
|
5430
|
+
else {
|
|
5431
|
+
modal.removeAttribute('aria-owns');
|
|
5432
|
+
}
|
|
5433
|
+
}
|
|
5434
|
+
});
|
|
5435
|
+
this._trackedModals.clear();
|
|
5436
|
+
}
|
|
5437
|
+
/** Asserts that no content is already attached to the container. */
|
|
5438
|
+
assertNotAttached() {
|
|
5439
|
+
if (this._portalOutlet.hasAttached()) {
|
|
5440
|
+
throw Error('Attempting to attach snack bar content after content is already attached');
|
|
5441
|
+
}
|
|
5442
|
+
}
|
|
5443
|
+
/**
|
|
5444
|
+
* Starts a timeout to move the snack bar content to the live region so screen readers will
|
|
5445
|
+
* announce it.
|
|
5446
|
+
*/
|
|
5447
|
+
screenReaderAnnounce() {
|
|
5448
|
+
if (!this._announceTimeoutId) {
|
|
5449
|
+
this._ngZone.runOutsideAngular(() => {
|
|
5450
|
+
this._announceTimeoutId = window.setTimeout(() => {
|
|
5451
|
+
const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');
|
|
5452
|
+
const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');
|
|
5453
|
+
if (inertElement && liveElement) {
|
|
5454
|
+
// If an element in the snack bar content is focused before being moved
|
|
5455
|
+
// track it and restore focus after moving to the live region.
|
|
5456
|
+
let focusedElement = null;
|
|
5457
|
+
if (this._platform.isBrowser &&
|
|
5458
|
+
document.activeElement instanceof HTMLElement &&
|
|
5459
|
+
inertElement.contains(document.activeElement)) {
|
|
5460
|
+
focusedElement = document.activeElement;
|
|
5461
|
+
}
|
|
5462
|
+
inertElement.removeAttribute('aria-hidden');
|
|
5463
|
+
liveElement.appendChild(inertElement);
|
|
5464
|
+
focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.focus();
|
|
5465
|
+
this._onAnnounce.next();
|
|
5466
|
+
this._onAnnounce.complete();
|
|
5467
|
+
}
|
|
5468
|
+
}, this._announceDelay);
|
|
5469
|
+
});
|
|
5470
|
+
}
|
|
5471
|
+
}
|
|
5472
|
+
}
|
|
5473
|
+
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 });
|
|
5474
|
+
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 });
|
|
5475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarContainerComponent, decorators: [{
|
|
5476
|
+
type: Component,
|
|
5477
|
+
args: [{ selector: 'bao-snack-bar-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [matSnackBarAnimations.snackBarState], host: {
|
|
5478
|
+
class: 'bao-snack-bar-container',
|
|
5479
|
+
'[@state]': '_animationState',
|
|
5480
|
+
'(@state.done)': 'onAnimationEnd($event)'
|
|
5481
|
+
}, 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"] }]
|
|
5482
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$5.Platform }, { type: BaoSnackBarConfig }]; }, propDecorators: { _portalOutlet: [{
|
|
5483
|
+
type: ViewChild,
|
|
5484
|
+
args: [CdkPortalOutlet, { static: true }]
|
|
5485
|
+
}] } });
|
|
5486
|
+
|
|
5487
|
+
function baoFactory() {
|
|
5488
|
+
return new BaoSnackBarConfig();
|
|
5489
|
+
}
|
|
5490
|
+
/** Injection token that can be used to specify default snack bar. */
|
|
5491
|
+
const BAO_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken('bao-snack-bar-default-options', {
|
|
5492
|
+
providedIn: 'root',
|
|
5493
|
+
factory: baoFactory
|
|
5494
|
+
});
|
|
5495
|
+
/**
|
|
5496
|
+
* Service to dispatch Material Design snack bar messages.
|
|
5497
|
+
*/
|
|
5498
|
+
class BaoSnackBarService {
|
|
5499
|
+
constructor(_overlay, _live, _injector, _parentSnackBar, _defaultConfig) {
|
|
5500
|
+
this._overlay = _overlay;
|
|
5501
|
+
this._live = _live;
|
|
5502
|
+
this._injector = _injector;
|
|
5503
|
+
this._parentSnackBar = _parentSnackBar;
|
|
5504
|
+
this._defaultConfig = _defaultConfig;
|
|
5505
|
+
/** The component that should be rendered as the snack bar's simple component. */
|
|
5506
|
+
this.simpleSnackBarComponent = BaoSimpleSnackBarComponent;
|
|
5507
|
+
/** The container component that attaches the provided template or component. */
|
|
5508
|
+
this.snackBarContainerComponent = BaoSnackBarContainerComponent;
|
|
5509
|
+
/**
|
|
5510
|
+
* Reference to the current snack bar in the view *at this level* (in the Angular injector tree).
|
|
5511
|
+
* If there is a parent snack-bar service, all operations should delegate to that parent
|
|
5512
|
+
* via `_openedSnackBarRef`.
|
|
5513
|
+
*/
|
|
5514
|
+
this._snackBarRefAtThisLevel = null;
|
|
5515
|
+
}
|
|
5516
|
+
/** Reference to the currently opened snackbar at *any* level. */
|
|
5517
|
+
get _openedSnackBarRef() {
|
|
5518
|
+
const parent = this._parentSnackBar;
|
|
5519
|
+
return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;
|
|
5520
|
+
}
|
|
5521
|
+
set _openedSnackBarRef(value) {
|
|
5522
|
+
if (this._parentSnackBar) {
|
|
5523
|
+
this._parentSnackBar._openedSnackBarRef = value;
|
|
5524
|
+
}
|
|
5525
|
+
else {
|
|
5526
|
+
this._snackBarRefAtThisLevel = value;
|
|
5527
|
+
}
|
|
5528
|
+
}
|
|
5529
|
+
/**
|
|
5530
|
+
* Creates and dispatches a snack bar with a custom component for the content, removing any
|
|
5531
|
+
* currently opened snack bars.
|
|
5532
|
+
*
|
|
5533
|
+
* @param component Component to be instantiated.
|
|
5534
|
+
* @param config Extra configuration for the snack bar.
|
|
5535
|
+
*/
|
|
5536
|
+
openFromComponent(component, config) {
|
|
5537
|
+
return this.attach(component, config);
|
|
5538
|
+
}
|
|
5539
|
+
/**
|
|
5540
|
+
* Creates and dispatches a snack bar with a custom template for the content, removing any
|
|
5541
|
+
* currently opened snack bars.
|
|
5542
|
+
*
|
|
5543
|
+
* @param template Template to be instantiated.
|
|
5544
|
+
* @param config Extra configuration for the snack bar.
|
|
5545
|
+
*/
|
|
5546
|
+
openFromTemplate(template, config) {
|
|
5547
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
5548
|
+
return this.attach(template, config);
|
|
5549
|
+
}
|
|
5550
|
+
/**
|
|
5551
|
+
* Opens a snackbar with a message and an optional action.
|
|
5552
|
+
* @param message The message to show in the snackbar.
|
|
5553
|
+
* @param toastType The type of of toast to display the snackbar.
|
|
5554
|
+
* @param actionLabelOrIcon The label or icon for the snackbar action.
|
|
5555
|
+
* @param showClose If true, the snackbar will require user interaction to close.
|
|
5556
|
+
* @param config Additional configuration options for the snackbar.
|
|
5557
|
+
*/
|
|
5558
|
+
open(config) {
|
|
5559
|
+
const _config = Object.assign(Object.assign({}, this._defaultConfig), config);
|
|
5560
|
+
// Since the user doesn't have access to the component, we can
|
|
5561
|
+
// override the data to pass in our own message, action and type.
|
|
5562
|
+
_config.data = {
|
|
5563
|
+
message: _config.message,
|
|
5564
|
+
toastType: _config.toastType,
|
|
5565
|
+
actionLabelOrIcon: _config.actionLabelOrIcon,
|
|
5566
|
+
showClose: _config.showClose
|
|
5567
|
+
};
|
|
5568
|
+
if (_config.showClose)
|
|
5569
|
+
_config.duration = 0;
|
|
5570
|
+
if (!_config.announcementMessage) {
|
|
5571
|
+
_config.announcementMessage = _config.message;
|
|
5572
|
+
}
|
|
5573
|
+
return this.openFromComponent(this.simpleSnackBarComponent, _config);
|
|
5574
|
+
}
|
|
5575
|
+
/**
|
|
5576
|
+
* Dismisses the currently-visible snack bar.
|
|
5577
|
+
*/
|
|
5578
|
+
dismiss() {
|
|
5579
|
+
if (this._openedSnackBarRef) {
|
|
5580
|
+
this._openedSnackBarRef.dismiss();
|
|
5581
|
+
}
|
|
5582
|
+
}
|
|
5583
|
+
ngOnDestroy() {
|
|
5584
|
+
// Only dismiss the snack bar at the current level on destroy.
|
|
5585
|
+
if (this._snackBarRefAtThisLevel) {
|
|
5586
|
+
this._snackBarRefAtThisLevel.dismiss();
|
|
5587
|
+
}
|
|
5588
|
+
}
|
|
5589
|
+
/**
|
|
5590
|
+
* Attaches the snack bar container component to the overlay.
|
|
5591
|
+
*/
|
|
5592
|
+
attachSnackBarContainer(overlayRef, config) {
|
|
5593
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
5594
|
+
const injector = new PortalInjector(userInjector || this._injector, new WeakMap([[BaoSnackBarConfig, config]]));
|
|
5595
|
+
const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);
|
|
5596
|
+
const containerRef = overlayRef.attach(containerPortal);
|
|
5597
|
+
containerRef.instance.snackBarConfig = config;
|
|
5598
|
+
return containerRef.instance;
|
|
5599
|
+
}
|
|
5600
|
+
/**
|
|
5601
|
+
* Places a new component or a template as the content of the snack bar container.
|
|
5602
|
+
*/
|
|
5603
|
+
attach(content, userConfig) {
|
|
5604
|
+
const config = Object.assign(Object.assign(Object.assign({}, new BaoSnackBarConfig()), this._defaultConfig), userConfig);
|
|
5605
|
+
const overlayRef = this.createOverlay(config);
|
|
5606
|
+
const container = this.attachSnackBarContainer(overlayRef, config);
|
|
5607
|
+
const snackBarRef = new BaoSnackBarRef(container, overlayRef);
|
|
5608
|
+
if (content instanceof TemplateRef) {
|
|
5609
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5610
|
+
const portal = new TemplatePortal(content, null, {
|
|
5611
|
+
$implicit: config.data,
|
|
5612
|
+
snackBarRef
|
|
5613
|
+
});
|
|
5614
|
+
snackBarRef.instance = container.attachTemplatePortal(portal);
|
|
5615
|
+
}
|
|
5616
|
+
else {
|
|
5617
|
+
const injector = this.createInjector(config, snackBarRef);
|
|
5618
|
+
const portal = new ComponentPortal(content, undefined, injector);
|
|
5619
|
+
const contentRef = container.attachComponentPortal(portal);
|
|
5620
|
+
// We can't pass this via the injector, because the injector is created earlier.
|
|
5621
|
+
snackBarRef.instance = contentRef.instance;
|
|
5622
|
+
}
|
|
5623
|
+
this.animateSnackBar(snackBarRef, config);
|
|
5624
|
+
this._openedSnackBarRef = snackBarRef;
|
|
5625
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
5626
|
+
return this._openedSnackBarRef;
|
|
5627
|
+
}
|
|
5628
|
+
/** Animates the old snack bar out and the new one in. */
|
|
5629
|
+
animateSnackBar(snackBarRef, config) {
|
|
5630
|
+
// When the snackbar is dismissed, clear the reference to it.
|
|
5631
|
+
snackBarRef.afterDismissed().subscribe(() => {
|
|
5632
|
+
// Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.
|
|
5633
|
+
// eslint-disable-next-line eqeqeq
|
|
5634
|
+
if (this._openedSnackBarRef == snackBarRef) {
|
|
5635
|
+
this._openedSnackBarRef = null;
|
|
5636
|
+
}
|
|
5637
|
+
if (config.announcementMessage) {
|
|
5638
|
+
this._live.clear();
|
|
5639
|
+
}
|
|
5640
|
+
});
|
|
5641
|
+
if (this._openedSnackBarRef) {
|
|
5642
|
+
// If a snack bar is already in view, dismiss it and enter the
|
|
5643
|
+
// new snack bar after exit animation is complete.
|
|
5644
|
+
this._openedSnackBarRef.afterDismissed().subscribe(() => {
|
|
5645
|
+
snackBarRef.containerInstance.enter();
|
|
5646
|
+
});
|
|
5647
|
+
this._openedSnackBarRef.dismiss();
|
|
5648
|
+
}
|
|
5649
|
+
else {
|
|
5650
|
+
// If no snack bar is in view, enter the new snack bar.
|
|
5651
|
+
snackBarRef.containerInstance.enter();
|
|
5652
|
+
}
|
|
5653
|
+
// If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.
|
|
5654
|
+
if (config.duration && config.duration > 0) {
|
|
5655
|
+
snackBarRef
|
|
5656
|
+
.afterOpened()
|
|
5657
|
+
.subscribe(() => snackBarRef.dismissAfter(config.duration));
|
|
5658
|
+
}
|
|
5659
|
+
if (config.announcementMessage) {
|
|
5660
|
+
void this._live.announce(config.announcementMessage, config.politeness);
|
|
5661
|
+
}
|
|
5662
|
+
}
|
|
5663
|
+
/**
|
|
5664
|
+
* Creates a new overlay and places it in the correct location.
|
|
5665
|
+
* @param config The user-specified snack bar config.
|
|
5666
|
+
*/
|
|
5667
|
+
createOverlay(config) {
|
|
5668
|
+
const overlayConfig = new OverlayConfig();
|
|
5669
|
+
overlayConfig.direction = config.direction;
|
|
5670
|
+
const positionStrategy = this._overlay.position().global();
|
|
5671
|
+
// Set horizontal position.
|
|
5672
|
+
const isRtl = config.direction === 'rtl';
|
|
5673
|
+
const isLeft = config.horizontalPosition === 'left' ||
|
|
5674
|
+
(config.horizontalPosition === 'start' && !isRtl) ||
|
|
5675
|
+
(config.horizontalPosition === 'end' && isRtl);
|
|
5676
|
+
const isRight = !isLeft && config.horizontalPosition !== 'center';
|
|
5677
|
+
if (isLeft) {
|
|
5678
|
+
positionStrategy.left('0');
|
|
5679
|
+
}
|
|
5680
|
+
else if (isRight) {
|
|
5681
|
+
positionStrategy.right('0');
|
|
5682
|
+
}
|
|
5683
|
+
else {
|
|
5684
|
+
positionStrategy.centerHorizontally();
|
|
5685
|
+
}
|
|
5686
|
+
// Set horizontal position.
|
|
5687
|
+
if (config.verticalPosition === 'top') {
|
|
5688
|
+
positionStrategy.top('0');
|
|
5689
|
+
}
|
|
5690
|
+
else {
|
|
5691
|
+
positionStrategy.bottom('0');
|
|
5692
|
+
}
|
|
5693
|
+
overlayConfig.positionStrategy = positionStrategy;
|
|
5694
|
+
return this._overlay.create(overlayConfig);
|
|
5695
|
+
}
|
|
5696
|
+
/**
|
|
5697
|
+
* Creates an injector to be used inside of a snack bar component.
|
|
5698
|
+
* @param config Config that was used to create the snack bar.
|
|
5699
|
+
* @param snackBarRef Reference to the snack bar.
|
|
5700
|
+
*/
|
|
5701
|
+
createInjector(config, snackBarRef) {
|
|
5702
|
+
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
5703
|
+
return new PortalInjector(userInjector || this._injector, new WeakMap([
|
|
5704
|
+
[BaoSnackBarRef, snackBarRef],
|
|
5705
|
+
[BAO_SNACK_BAR_DATA, config.data]
|
|
5706
|
+
]));
|
|
5707
|
+
}
|
|
5708
|
+
}
|
|
5709
|
+
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 });
|
|
5710
|
+
BaoSnackBarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarService, providedIn: 'root' });
|
|
5711
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarService, decorators: [{
|
|
5712
|
+
type: Injectable,
|
|
5713
|
+
args: [{ providedIn: 'root' }]
|
|
5714
|
+
}], ctorParameters: function () {
|
|
5715
|
+
return [{ type: i1$4.Overlay }, { type: i1$3.LiveAnnouncer }, { type: i0.Injector }, { type: BaoSnackBarService, decorators: [{
|
|
5716
|
+
type: Optional
|
|
5717
|
+
}, {
|
|
5718
|
+
type: SkipSelf
|
|
5719
|
+
}] }, { type: BaoSnackBarConfig, decorators: [{
|
|
5720
|
+
type: Inject,
|
|
5721
|
+
args: [BAO_SNACK_BAR_DEFAULT_OPTIONS]
|
|
5722
|
+
}] }];
|
|
5723
|
+
} });
|
|
5724
|
+
|
|
5725
|
+
/*
|
|
5726
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5727
|
+
* Licensed under the MIT license.
|
|
5728
|
+
* See LICENSE file in the project root for full license information.
|
|
5729
|
+
*/
|
|
5730
|
+
const SNACKBAR_DIRECTIVES = [
|
|
5731
|
+
BaoSimpleSnackBarComponent,
|
|
5732
|
+
BaoSnackBarContainerComponent
|
|
5733
|
+
];
|
|
5734
|
+
class BaoSnackBarModule {
|
|
5735
|
+
}
|
|
5736
|
+
BaoSnackBarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5737
|
+
BaoSnackBarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, declarations: [BaoSimpleSnackBarComponent,
|
|
5738
|
+
BaoSnackBarContainerComponent], imports: [CommonModule,
|
|
5739
|
+
OverlayModule,
|
|
5740
|
+
PortalModule,
|
|
5741
|
+
BaoButtonModule,
|
|
5742
|
+
BaoIconModule], exports: [BaoSimpleSnackBarComponent,
|
|
5743
|
+
BaoSnackBarContainerComponent] });
|
|
5744
|
+
BaoSnackBarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, providers: [BaoSnackBarService], imports: [CommonModule,
|
|
5745
|
+
OverlayModule,
|
|
5746
|
+
PortalModule,
|
|
5747
|
+
BaoButtonModule,
|
|
5748
|
+
BaoIconModule] });
|
|
5749
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSnackBarModule, decorators: [{
|
|
5750
|
+
type: NgModule,
|
|
5751
|
+
args: [{
|
|
5752
|
+
imports: [
|
|
5753
|
+
CommonModule,
|
|
5754
|
+
OverlayModule,
|
|
5755
|
+
PortalModule,
|
|
5756
|
+
BaoButtonModule,
|
|
5757
|
+
BaoIconModule
|
|
5758
|
+
],
|
|
5759
|
+
providers: [BaoSnackBarService],
|
|
5760
|
+
declarations: SNACKBAR_DIRECTIVES,
|
|
5761
|
+
exports: SNACKBAR_DIRECTIVES,
|
|
5762
|
+
entryComponents: [SNACKBAR_DIRECTIVES]
|
|
5763
|
+
}]
|
|
5764
|
+
}] });
|
|
5765
|
+
|
|
4963
5766
|
/*
|
|
4964
|
-
* Copyright (c)
|
|
5767
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5768
|
+
* Licensed under the MIT license.
|
|
5769
|
+
* See LICENSE file in the project root for full license information.
|
|
5770
|
+
*/
|
|
5771
|
+
const Breakpoints = {
|
|
5772
|
+
XSmall: '(max-width: 575.98px)',
|
|
5773
|
+
Small: '(min-width: 576px) and (max-width: 767.98px)',
|
|
5774
|
+
Medium: '(min-width: 768px) and (max-width: 991.98px)',
|
|
5775
|
+
Large: '(min-width: 992px) and (max-width: 1199.98px)',
|
|
5776
|
+
XLarge: '(min-width: 1200px)'
|
|
5777
|
+
};
|
|
5778
|
+
|
|
5779
|
+
/*
|
|
5780
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5781
|
+
* Licensed under the MIT license.
|
|
5782
|
+
* See LICENSE file in the project root for full license information.
|
|
5783
|
+
*/
|
|
5784
|
+
|
|
5785
|
+
/**
|
|
5786
|
+
* This component is dynamically added to replace breadcrumb when System Header is viewed on tablet or mobile screens.
|
|
5787
|
+
* Used internally by BaoSystemHeaderComponent only, not to be used by host application.
|
|
5788
|
+
*/
|
|
5789
|
+
class BaoBackNavigationComponent {
|
|
5790
|
+
constructor(renderer, elementRef) {
|
|
5791
|
+
this.renderer = renderer;
|
|
5792
|
+
this.elementRef = elementRef;
|
|
5793
|
+
}
|
|
5794
|
+
ngOnChanges(changes) {
|
|
5795
|
+
if (changes['link'] && changes['link'].currentValue) {
|
|
5796
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.children[0], 'href', changes['link'].currentValue);
|
|
5797
|
+
}
|
|
5798
|
+
}
|
|
5799
|
+
}
|
|
5800
|
+
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 });
|
|
5801
|
+
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>
|
|
5802
|
+
<bao-icon
|
|
5803
|
+
color="action"
|
|
5804
|
+
title="arrow-left"
|
|
5805
|
+
svgIcon="icon-arrow-left"
|
|
5806
|
+
size="x-small"
|
|
5807
|
+
></bao-icon>
|
|
5808
|
+
</a>`, isInline: true, dependencies: [{ kind: "component", type: BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }] });
|
|
5809
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationComponent, decorators: [{
|
|
5810
|
+
type: Component,
|
|
5811
|
+
args: [{
|
|
5812
|
+
selector: 'bao-back-navigation-component',
|
|
5813
|
+
template: ` <a>
|
|
5814
|
+
<bao-icon
|
|
5815
|
+
color="action"
|
|
5816
|
+
title="arrow-left"
|
|
5817
|
+
svgIcon="icon-arrow-left"
|
|
5818
|
+
size="x-small"
|
|
5819
|
+
></bao-icon>
|
|
5820
|
+
</a>`,
|
|
5821
|
+
host: {
|
|
5822
|
+
class: 'bao-system-header-back-button'
|
|
5823
|
+
}
|
|
5824
|
+
}]
|
|
5825
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { link: [{
|
|
5826
|
+
type: Input
|
|
5827
|
+
}] } });
|
|
5828
|
+
/**
|
|
5829
|
+
* This directive is to mark the template where the BaoBackNavigationComponent should be dynamically inserted,
|
|
5830
|
+
* when a Breadcrumb component needs to be replaced
|
|
5831
|
+
*/
|
|
5832
|
+
class BaoBackNavigationInsert {
|
|
5833
|
+
constructor(viewContainerRef) {
|
|
5834
|
+
this.viewContainerRef = viewContainerRef;
|
|
5835
|
+
}
|
|
5836
|
+
}
|
|
5837
|
+
BaoBackNavigationInsert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationInsert, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5838
|
+
BaoBackNavigationInsert.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.1", type: BaoBackNavigationInsert, selector: "[backNavigationInsert]", ngImport: i0 });
|
|
5839
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoBackNavigationInsert, decorators: [{
|
|
5840
|
+
type: Directive,
|
|
5841
|
+
args: [{
|
|
5842
|
+
selector: '[backNavigationInsert]'
|
|
5843
|
+
}]
|
|
5844
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
5845
|
+
class BaoSystemHeaderComponent {
|
|
5846
|
+
constructor(breakpointObserver, renderer) {
|
|
5847
|
+
this.breakpointObserver = breakpointObserver;
|
|
5848
|
+
this.renderer = renderer;
|
|
5849
|
+
this.screenType = 'desktop';
|
|
5850
|
+
}
|
|
5851
|
+
get textContainerChildren() {
|
|
5852
|
+
return Array.from(this.textContainer.nativeElement.children);
|
|
5853
|
+
}
|
|
5854
|
+
ngOnInit() {
|
|
5855
|
+
if ([Breakpoints.XSmall, Breakpoints.Small].some(size => this.breakpointObserver.isMatched(size))) {
|
|
5856
|
+
this.screenType = 'mobile';
|
|
5857
|
+
}
|
|
5858
|
+
else if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {
|
|
5859
|
+
this.screenType = 'tablet';
|
|
5860
|
+
}
|
|
5861
|
+
else if ([Breakpoints.Large, Breakpoints.XLarge].some(size => this.breakpointObserver.isMatched(size))) {
|
|
5862
|
+
this.screenType = 'desktop';
|
|
5863
|
+
}
|
|
5864
|
+
}
|
|
5865
|
+
ngAfterViewInit() {
|
|
5866
|
+
this.formatNavigation();
|
|
5867
|
+
this.applySizeClass();
|
|
5868
|
+
}
|
|
5869
|
+
formatNavigation() {
|
|
5870
|
+
// If view is rendered on a mobile/tablet screen
|
|
5871
|
+
if (this.screenType == 'mobile' || this.screenType == 'tablet') {
|
|
5872
|
+
if (this.textContainerChildren[0].className == 'bao-breadcrumb') {
|
|
5873
|
+
// Retrieve link of parent page
|
|
5874
|
+
const breadcrumbElementsList = this.textContainerChildren[0].children[0];
|
|
5875
|
+
const breadcrumbLength = breadcrumbElementsList.children.length;
|
|
5876
|
+
const parentLink = breadcrumbElementsList.children[breadcrumbLength - 2].attributes['href'].value;
|
|
5877
|
+
// Remove Breadcrumb component and replace it with back button
|
|
5878
|
+
this.renderer.removeChild(this.textContainer.nativeElement, this.textContainerChildren[0]);
|
|
5879
|
+
const viewContainerRef = this.backButtonInsert.viewContainerRef;
|
|
5880
|
+
viewContainerRef.clear();
|
|
5881
|
+
const componentRef = viewContainerRef.createComponent(BaoBackNavigationComponent);
|
|
5882
|
+
componentRef.instance.link = parentLink;
|
|
5883
|
+
}
|
|
5884
|
+
}
|
|
5885
|
+
}
|
|
5886
|
+
applySizeClass() {
|
|
5887
|
+
const tagInfoContainer = this.textContainer.nativeElement.childNodes[this.textContainerChildren.length - 1];
|
|
5888
|
+
if (this.screenType === 'mobile') {
|
|
5889
|
+
this.renderer.addClass(tagInfoContainer, 'mobile');
|
|
5890
|
+
}
|
|
5891
|
+
}
|
|
5892
|
+
}
|
|
5893
|
+
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 });
|
|
5894
|
+
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 });
|
|
5895
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderComponent, decorators: [{
|
|
5896
|
+
type: Component,
|
|
5897
|
+
args: [{ selector: 'bao-system-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
5898
|
+
class: 'bao-system-header'
|
|
5899
|
+
}, 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"] }]
|
|
5900
|
+
}], ctorParameters: function () { return [{ type: i2$1.BreakpointObserver }, { type: i0.Renderer2 }]; }, propDecorators: { textContainer: [{
|
|
5901
|
+
type: ViewChild,
|
|
5902
|
+
args: ['textContainer', { static: false }]
|
|
5903
|
+
}], backButtonInsert: [{
|
|
5904
|
+
type: ViewChild,
|
|
5905
|
+
args: [BaoBackNavigationInsert, { static: true }]
|
|
5906
|
+
}] } });
|
|
5907
|
+
|
|
5908
|
+
/*
|
|
5909
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5910
|
+
* Licensed under the MIT license.
|
|
5911
|
+
* See LICENSE file in the project root for full license information.
|
|
5912
|
+
*/
|
|
5913
|
+
const SYSTEM_HEADER_DIRECTIVES = [
|
|
5914
|
+
BaoSystemHeaderComponent,
|
|
5915
|
+
BaoBackNavigationInsert,
|
|
5916
|
+
BaoBackNavigationComponent
|
|
5917
|
+
];
|
|
5918
|
+
class BaoSystemHeaderModule {
|
|
5919
|
+
}
|
|
5920
|
+
BaoSystemHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5921
|
+
BaoSystemHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, declarations: [BaoSystemHeaderComponent,
|
|
5922
|
+
BaoBackNavigationInsert,
|
|
5923
|
+
BaoBackNavigationComponent], imports: [CommonModule, BaoIconModule], exports: [BaoSystemHeaderComponent,
|
|
5924
|
+
BaoBackNavigationInsert,
|
|
5925
|
+
BaoBackNavigationComponent] });
|
|
5926
|
+
BaoSystemHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, imports: [CommonModule, BaoIconModule] });
|
|
5927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoSystemHeaderModule, decorators: [{
|
|
5928
|
+
type: NgModule,
|
|
5929
|
+
args: [{
|
|
5930
|
+
imports: [CommonModule, BaoIconModule],
|
|
5931
|
+
declarations: [SYSTEM_HEADER_DIRECTIVES],
|
|
5932
|
+
exports: [SYSTEM_HEADER_DIRECTIVES]
|
|
5933
|
+
}]
|
|
5934
|
+
}] });
|
|
5935
|
+
|
|
5936
|
+
/*
|
|
5937
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5938
|
+
* Licensed under the MIT license.
|
|
5939
|
+
* See LICENSE file in the project root for full license information.
|
|
5940
|
+
*/
|
|
5941
|
+
|
|
5942
|
+
/*
|
|
5943
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
4965
5944
|
* Licensed under the MIT license.
|
|
4966
5945
|
* See LICENSE file in the project root for full license information.
|
|
4967
5946
|
*/
|
|
@@ -4990,9 +5969,10 @@ BaoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
|
|
4990
5969
|
BaoModalModule,
|
|
4991
5970
|
BaoHyperlinkModule,
|
|
4992
5971
|
BaoDropdownMenuModule,
|
|
4993
|
-
BaoFileModule
|
|
5972
|
+
BaoFileModule,
|
|
5973
|
+
BaoSnackBarModule,
|
|
5974
|
+
BaoSystemHeaderModule
|
|
4994
5975
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
4995
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
4996
5976
|
] });
|
|
4997
5977
|
BaoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModule, imports: [BaoIconModule,
|
|
4998
5978
|
BaoButtonModule,
|
|
@@ -5016,9 +5996,10 @@ BaoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
|
|
5016
5996
|
BaoModalModule,
|
|
5017
5997
|
BaoHyperlinkModule,
|
|
5018
5998
|
BaoDropdownMenuModule,
|
|
5019
|
-
BaoFileModule
|
|
5999
|
+
BaoFileModule,
|
|
6000
|
+
BaoSnackBarModule,
|
|
6001
|
+
BaoSystemHeaderModule
|
|
5020
6002
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
5021
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
5022
6003
|
] });
|
|
5023
6004
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: BaoModule, decorators: [{
|
|
5024
6005
|
type: NgModule,
|
|
@@ -5049,15 +6030,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5049
6030
|
BaoModalModule,
|
|
5050
6031
|
BaoHyperlinkModule,
|
|
5051
6032
|
BaoDropdownMenuModule,
|
|
5052
|
-
BaoFileModule
|
|
6033
|
+
BaoFileModule,
|
|
6034
|
+
BaoSnackBarModule,
|
|
6035
|
+
BaoSystemHeaderModule
|
|
5053
6036
|
// TODO: reactivate once component does not depend on global css BaoBadgeModule,
|
|
5054
|
-
// TODO: reactivate once component does not depend on global css BaoSnackBarModule,
|
|
5055
6037
|
]
|
|
5056
6038
|
}]
|
|
5057
6039
|
}] });
|
|
5058
6040
|
|
|
5059
6041
|
/*
|
|
5060
|
-
* Copyright (c)
|
|
6042
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5061
6043
|
* Licensed under the MIT license.
|
|
5062
6044
|
* See LICENSE file in the project root for full license information.
|
|
5063
6045
|
*/
|
|
@@ -5082,7 +6064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5082
6064
|
}] } });
|
|
5083
6065
|
|
|
5084
6066
|
/*
|
|
5085
|
-
* Copyright (c)
|
|
6067
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5086
6068
|
* Licensed under the MIT license.
|
|
5087
6069
|
* See LICENSE file in the project root for full license information.
|
|
5088
6070
|
*/
|
|
@@ -5102,31 +6084,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5102
6084
|
}] });
|
|
5103
6085
|
|
|
5104
6086
|
/*
|
|
5105
|
-
* Copyright (c)
|
|
6087
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
6088
|
+
* Licensed under the MIT license.
|
|
6089
|
+
* See LICENSE file in the project root for full license information.
|
|
6090
|
+
*/
|
|
6091
|
+
|
|
6092
|
+
/*
|
|
6093
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5106
6094
|
* Licensed under the MIT license.
|
|
5107
6095
|
* See LICENSE file in the project root for full license information.
|
|
5108
6096
|
*/
|
|
5109
6097
|
|
|
5110
6098
|
/*
|
|
5111
|
-
* Copyright (c)
|
|
6099
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5112
6100
|
* Licensed under the MIT license.
|
|
5113
6101
|
* See LICENSE file in the project root for full license information.
|
|
5114
6102
|
*/
|
|
5115
6103
|
|
|
5116
6104
|
/*
|
|
5117
|
-
* Copyright (c)
|
|
6105
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5118
6106
|
* Licensed under the MIT license.
|
|
5119
6107
|
* See LICENSE file in the project root for full license information.
|
|
5120
6108
|
*/
|
|
5121
6109
|
|
|
5122
6110
|
/*
|
|
5123
|
-
* Copyright (c)
|
|
6111
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5124
6112
|
* Licensed under the MIT license.
|
|
5125
6113
|
* See LICENSE file in the project root for full license information.
|
|
5126
6114
|
*/
|
|
5127
6115
|
|
|
5128
6116
|
/*
|
|
5129
|
-
* Copyright (c)
|
|
6117
|
+
* Copyright (c) 2024 Ville de Montreal. All rights reserved.
|
|
5130
6118
|
* Licensed under the MIT license.
|
|
5131
6119
|
* See LICENSE file in the project root for full license information.
|
|
5132
6120
|
*/
|
|
@@ -5135,5 +6123,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
|
|
|
5135
6123
|
* Generated bundle index. Do not edit.
|
|
5136
6124
|
*/
|
|
5137
6125
|
|
|
5138
|
-
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 };
|
|
6126
|
+
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 };
|
|
5139
6127
|
//# sourceMappingURL=villedemontreal-angular-ui.mjs.map
|