@villedemontreal/angular-ui 16.0.8 → 16.1.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/esm2022/lib/dropdown-menu/dropdown-menu.component.mjs +8 -7
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +10 -1
- package/esm2022/lib/message-bar/index.mjs +8 -0
- package/esm2022/lib/message-bar/message-bar.component.mjs +87 -0
- package/esm2022/lib/message-bar/module.mjs +26 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/villedemontreal-angular-ui.mjs +125 -7
- package/fesm2022/villedemontreal-angular-ui.mjs.map +1 -1
- package/lib/dropdown-menu/dropdown-menu.component.d.ts +1 -2
- package/lib/hyperlink/hyperlink.component.d.ts +1 -0
- package/lib/message-bar/index.d.ts +2 -0
- package/lib/message-bar/message-bar.component.d.ts +28 -0
- package/lib/message-bar/module.d.ts +11 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -3825,6 +3825,15 @@ class BaoHyperlinkComponent {
|
|
|
3825
3825
|
ngAfterViewInit() {
|
|
3826
3826
|
this.setIcon();
|
|
3827
3827
|
this.addIconClass();
|
|
3828
|
+
this.addTabIndex();
|
|
3829
|
+
}
|
|
3830
|
+
addTabIndex() {
|
|
3831
|
+
if (!this.nativeElement)
|
|
3832
|
+
return;
|
|
3833
|
+
const anchorElement = Array.from(this.nativeElement.children).find(el => el.localName === 'a');
|
|
3834
|
+
if (!anchorElement)
|
|
3835
|
+
return;
|
|
3836
|
+
this.renderer.setAttribute(anchorElement, 'tabIndex', '0');
|
|
3828
3837
|
}
|
|
3829
3838
|
setIcon() {
|
|
3830
3839
|
const parentName = this.nativeElement.parentElement.localName;
|
|
@@ -4119,9 +4128,11 @@ class BaoDropdownMenuComponent {
|
|
|
4119
4128
|
}
|
|
4120
4129
|
}
|
|
4121
4130
|
/** Prevents focus to be lost when SHIFT + TAB has reached beginning of menu */
|
|
4122
|
-
shiftTabKeyEvent() {
|
|
4131
|
+
shiftTabKeyEvent(event) {
|
|
4123
4132
|
if (this.isOpen) {
|
|
4124
4133
|
if (document.activeElement === this._listItems.first.nativeElement) {
|
|
4134
|
+
event.preventDefault();
|
|
4135
|
+
event.stopPropagation();
|
|
4125
4136
|
this.isClosedByKeyEvent.emit();
|
|
4126
4137
|
}
|
|
4127
4138
|
}
|
|
@@ -4213,7 +4224,7 @@ class BaoDropdownMenuComponent {
|
|
|
4213
4224
|
}
|
|
4214
4225
|
}
|
|
4215
4226
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoDropdownMenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BaoDropdownMenuComponent, selector: "bao-dropdown-menu", outputs: { isOpenChange: "isOpenChange", isClosedByKeyEvent: "isClosedByKeyEvent" }, host: { listeners: { "window:keyup.arrowup": "upKeyEvent()", "window:keyup.arrowdown": "downKeyEvent()", "window:keydown.tab": "tabKeyEvent()", "window:keyup.tab": "tabUpKeyEvent()", "window:keydown.shift.tab": "shiftTabKeyEvent()" }, properties: { "class.bao-overlay-transparent-backdrop": "isOpen===false", "class.bao-dropdown-menu-closed": "isOpen===false", "attr.aria-expanded": "isOpen" }, classAttribute: "bao-dropdown-menu-container" }, queries: [{ propertyName: "_listItems", predicate: BaoDropdownMenuItem, descendants: true }], viewQueries: [{ propertyName: "_menuContent", first: true, predicate: ["menuContent"], descendants: true }], ngImport: i0, template: "<div #menuContent class=\"bao-dropdown-menu\" tabindex=\"-1\">\n <ng-content></ng-content>\n</div>\n", styles: [".bao-dropdown-menu-container.bao-dropdown-menu-closed{display:none}.bao-dropdown-menu{min-width:16rem;max-width:32rem;overflow-y:auto;background:#ffffff;box-shadow:0 .5rem 2rem #0000001a;border-radius:.25rem;margin-top:.25rem;margin-bottom:.25rem;padding-top:.5rem;padding-bottom:.5rem}.bao-dropdown-menu:focus-visible{outline:none}.bao-dropdown-menu .bao-overlay-transparent-backdrop{background-color:#fff0;display:none}.bao-dropdown-menu ul{list-style-type:none;padding:0;margin:0}.bao-dropdown-menu h5{padding:.5rem 0 .5rem 1rem;margin:0}.bao-dropdown-menu .bao-dropdown-menu-item{display:flex;align-items:center;text-decoration:none;border-bottom:none;cursor:default}.bao-dropdown-menu .bao-dropdown-menu-item:hover{background-color:#f8f9fa}.bao-dropdown-menu .bao-dropdown-menu-item:active{background-color:#eefaf8}.bao-dropdown-menu .bao-dropdown-menu-item:focus{box-shadow:inset 0 0 0 .25rem #98bcde}.bao-dropdown-menu .bao-dropdown-menu-item.active-link{background-color:#eefaf8}.bao-dropdown-menu .bao-dropdown-menu-item.has-element-right{padding-right:1.5rem}.bao-dropdown-menu .bao-dropdown-menu-item.has-element-left{padding-left:1rem}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled{cursor:not-allowed;pointer-events:none}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled:hover,.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled:active{background:#ffffff}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled .bao-dropdown-menu-item-content .bao-dropdown-menu-item-label,.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled .bao-dropdown-menu-item-content .bao-dropdown-menu-item-description{color:#adb2bd}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content{display:flex;flex-direction:column;margin:.5rem 1rem;background-color:inherit}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content .bao-dropdown-menu-item-label{font-weight:400;font-size:1rem;line-height:1.5rem;color:#212529}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content .bao-dropdown-menu-item-description{font-weight:400;font-size:.875rem;line-height:1.25rem;color:#637381}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-icon{color:#adb2bd;flex-shrink:0}.bao-dropdown-menu .bao-dropdown-menu-divider hr{margin-top:.5rem;margin-bottom:.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BaoDropdownMenuComponent, selector: "bao-dropdown-menu", outputs: { isOpenChange: "isOpenChange", isClosedByKeyEvent: "isClosedByKeyEvent" }, host: { listeners: { "window:keyup.arrowup": "upKeyEvent()", "window:keyup.arrowdown": "downKeyEvent()", "window:keydown.tab": "tabKeyEvent()", "window:keyup.tab": "tabUpKeyEvent()", "window:keydown.shift.tab": "shiftTabKeyEvent($event)" }, properties: { "class.bao-overlay-transparent-backdrop": "isOpen===false", "class.bao-dropdown-menu-closed": "isOpen===false", "attr.aria-expanded": "isOpen" }, classAttribute: "bao-dropdown-menu-container" }, queries: [{ propertyName: "_listItems", predicate: BaoDropdownMenuItem, descendants: true }], viewQueries: [{ propertyName: "_menuContent", first: true, predicate: ["menuContent"], descendants: true }], ngImport: i0, template: "<div #menuContent class=\"bao-dropdown-menu\" tabindex=\"-1\">\n <ng-content></ng-content>\n</div>\n", styles: [".bao-dropdown-menu-container.bao-dropdown-menu-closed{display:none}.bao-dropdown-menu{min-width:16rem;max-width:32rem;overflow-y:auto;background:#ffffff;box-shadow:0 .5rem 2rem #0000001a;border-radius:.25rem;margin-top:.25rem;margin-bottom:.25rem;padding-top:.5rem;padding-bottom:.5rem}.bao-dropdown-menu:focus-visible{outline:none}.bao-dropdown-menu .bao-overlay-transparent-backdrop{background-color:#fff0;display:none}.bao-dropdown-menu ul{list-style-type:none;padding:0;margin:0}.bao-dropdown-menu h5{padding:.5rem 0 .5rem 1rem;margin:0}.bao-dropdown-menu .bao-dropdown-menu-item{display:flex;align-items:center;text-decoration:none;border-bottom:none;cursor:default}.bao-dropdown-menu .bao-dropdown-menu-item:hover{background-color:#f8f9fa}.bao-dropdown-menu .bao-dropdown-menu-item:active{background-color:#eefaf8}.bao-dropdown-menu .bao-dropdown-menu-item:focus{box-shadow:inset 0 0 0 .25rem #98bcde}.bao-dropdown-menu .bao-dropdown-menu-item.active-link{background-color:#eefaf8}.bao-dropdown-menu .bao-dropdown-menu-item.has-element-right{padding-right:1.5rem}.bao-dropdown-menu .bao-dropdown-menu-item.has-element-left{padding-left:1rem}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled{cursor:not-allowed;pointer-events:none}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled:hover,.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled:active{background:#ffffff}.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled .bao-dropdown-menu-item-content .bao-dropdown-menu-item-label,.bao-dropdown-menu .bao-dropdown-menu-item.bao-dropdown-menu-item-disabled .bao-dropdown-menu-item-content .bao-dropdown-menu-item-description{color:#adb2bd}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content{display:flex;flex-direction:column;margin:.5rem 1rem;background-color:inherit}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content .bao-dropdown-menu-item-label{font-weight:400;font-size:1rem;line-height:1.5rem;color:#212529}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-dropdown-menu-item-content .bao-dropdown-menu-item-description{font-weight:400;font-size:.875rem;line-height:1.25rem;color:#637381}.bao-dropdown-menu .bao-dropdown-menu-item>.bao-icon{color:#adb2bd;flex-shrink:0}.bao-dropdown-menu .bao-dropdown-menu-divider hr{margin-top:.5rem;margin-bottom:.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4217
4228
|
}
|
|
4218
4229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoDropdownMenuComponent, decorators: [{
|
|
4219
4230
|
type: Component,
|
|
@@ -4247,7 +4258,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
4247
4258
|
args: ['window:keyup.tab']
|
|
4248
4259
|
}], shiftTabKeyEvent: [{
|
|
4249
4260
|
type: HostListener,
|
|
4250
|
-
args: ['window:keydown.shift.tab']
|
|
4261
|
+
args: ['window:keydown.shift.tab', ['$event']]
|
|
4251
4262
|
}] } });
|
|
4252
4263
|
/**
|
|
4253
4264
|
* Directive to be applied on element that will trigger the opening and closing of menu.
|
|
@@ -4259,7 +4270,6 @@ class BaoDropdownMenuTrigger {
|
|
|
4259
4270
|
this.overlay = overlay;
|
|
4260
4271
|
this._overlayRef = null;
|
|
4261
4272
|
this._isMenuOpen = false;
|
|
4262
|
-
this.animationDelay = 50;
|
|
4263
4273
|
}
|
|
4264
4274
|
get nativeElement() {
|
|
4265
4275
|
return this.elementRef.nativeElement;
|
|
@@ -4278,7 +4288,7 @@ class BaoDropdownMenuTrigger {
|
|
|
4278
4288
|
this.renderer.setAttribute(this.nativeElement, 'aria-controls', `bao-dropdown-menu-${dropdownMenuUniqueId}`);
|
|
4279
4289
|
this.menu.isClosedByKeyEvent.subscribe(() => {
|
|
4280
4290
|
this.closeMenu();
|
|
4281
|
-
|
|
4291
|
+
this.nativeElement.focus();
|
|
4282
4292
|
});
|
|
4283
4293
|
}
|
|
4284
4294
|
ngOnDestroy() {
|
|
@@ -4304,7 +4314,7 @@ class BaoDropdownMenuTrigger {
|
|
|
4304
4314
|
overlayRef.attach(this.menu.menuPortal);
|
|
4305
4315
|
this._isMenuOpen = true;
|
|
4306
4316
|
this.menu.open();
|
|
4307
|
-
|
|
4317
|
+
this.menu.focus();
|
|
4308
4318
|
}
|
|
4309
4319
|
createOverlay() {
|
|
4310
4320
|
if (!this._overlayRef) {
|
|
@@ -6141,6 +6151,114 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
6141
6151
|
* See LICENSE file in the project root for full license information.
|
|
6142
6152
|
*/
|
|
6143
6153
|
|
|
6154
|
+
/*
|
|
6155
|
+
* Copyright (c) 2025 Ville de Montreal. All rights reserved.
|
|
6156
|
+
* Licensed under the MIT license.
|
|
6157
|
+
* See LICENSE file in the project root for full license information.
|
|
6158
|
+
*/
|
|
6159
|
+
/**
|
|
6160
|
+
* The BaoMessageBarContent directive is used within the <bao-message-bar>
|
|
6161
|
+
* It ensures consistency in text formatting and spacing.
|
|
6162
|
+
*
|
|
6163
|
+
* This directive is purely visual and does not provide any additional behaviors.
|
|
6164
|
+
*/
|
|
6165
|
+
class BaoMessageBarContent {
|
|
6166
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6167
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.6", type: BaoMessageBarContent, selector: "bao-message-content", host: { classAttribute: "bao-message-content" }, ngImport: i0 }); }
|
|
6168
|
+
}
|
|
6169
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarContent, decorators: [{
|
|
6170
|
+
type: Directive,
|
|
6171
|
+
args: [{
|
|
6172
|
+
selector: 'bao-message-content',
|
|
6173
|
+
host: { class: 'bao-message-content' }
|
|
6174
|
+
}]
|
|
6175
|
+
}] });
|
|
6176
|
+
class BaoMessageBarComponent {
|
|
6177
|
+
constructor(elementRef) {
|
|
6178
|
+
this.elementRef = elementRef;
|
|
6179
|
+
this.type = 'info';
|
|
6180
|
+
this.dismissible = false;
|
|
6181
|
+
this.dismissibleButtonAriaLabel = 'Cacher le message';
|
|
6182
|
+
this.dismiss = new EventEmitter();
|
|
6183
|
+
}
|
|
6184
|
+
ngOnChanges(changes) {
|
|
6185
|
+
if (changes['type']) {
|
|
6186
|
+
this.iconType = this.getIconType(changes['type'].currentValue);
|
|
6187
|
+
this.iconTitle = this.getIconTitle(changes['type'].currentValue);
|
|
6188
|
+
}
|
|
6189
|
+
}
|
|
6190
|
+
onDismissClicked() {
|
|
6191
|
+
const messageBar = this.elementRef.nativeElement;
|
|
6192
|
+
messageBar.classList.add('bao-fade-out');
|
|
6193
|
+
setTimeout(() => {
|
|
6194
|
+
this.dismiss.emit();
|
|
6195
|
+
}, 300);
|
|
6196
|
+
}
|
|
6197
|
+
getIconType(value) {
|
|
6198
|
+
const icons = {
|
|
6199
|
+
info: 'icon-info',
|
|
6200
|
+
alert: 'icon-warning',
|
|
6201
|
+
urgent: 'icon-emergency',
|
|
6202
|
+
neutral: 'icon-info'
|
|
6203
|
+
};
|
|
6204
|
+
return icons[value] || 'icon-info';
|
|
6205
|
+
}
|
|
6206
|
+
getIconTitle(value) {
|
|
6207
|
+
const titles = {
|
|
6208
|
+
info: 'Information',
|
|
6209
|
+
alert: 'Alerte',
|
|
6210
|
+
urgent: 'Urgence',
|
|
6211
|
+
neutral: 'Information'
|
|
6212
|
+
};
|
|
6213
|
+
return titles[value] || 'Information';
|
|
6214
|
+
}
|
|
6215
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.6", type: BaoMessageBarComponent, selector: "bao-message-bar", inputs: { type: "type", dismissible: "dismissible", dismissibleButtonAriaLabel: "dismissibleButtonAriaLabel" }, outputs: { dismiss: "dismiss" }, host: { properties: { "class.bao-message-bar-info": "type === \"info\"", "class.bao-message-bar-alert": "type === \"alert\"", "class.bao-message-bar-urgent": "type === \"urgent\"", "class.bao-message-bar-neutral": "type === \"neutral\"" }, classAttribute: "bao-message-bar message-bar-dismissible bao-fade-in" }, usesOnChanges: true, ngImport: i0, template: "<bao-icon [svgIcon]=\"iconType\" [title]=\"iconTitle\"></bao-icon>\n\n<div class=\"bao-message-content\">\n <ng-content></ng-content>\n</div>\n\n<button\n *ngIf=\"dismissible\"\n class=\"bao-message-close\"\n type=\"button\"\n data-dismiss=\"message\"\n role=\"button\"\n [attr.aria-label]=\"dismissibleButtonAriaLabel\"\n (click)=\"onDismissClicked()\"\n>\n <bao-icon svgIcon=\"icon-x\"></bao-icon>\n</button>\n", styles: ["@keyframes bao-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bao-fade-out{0%{opacity:1}to{opacity:0}}.bao-fade-in{animation:bao-fade-in .3s ease-in-out}.bao-fade-out{animation:bao-fade-out .3s ease-in-out;pointer-events:none}.bao-message-bar{display:flex;align-items:flex-start;padding:1rem;width:100%;position:relative;border-left-width:4px;justify-content:flex-start;gap:12px;padding-left:32px}.bao-message-bar .bao-message-icon{flex-shrink:0;width:1.5rem;height:1.5rem}.bao-message-bar .bao-message-icon svg{fill:#fff;width:100%;height:100%}@media (max-width: 768px){.bao-message-bar{padding-left:16px}}.bao-message-bar .bao-message-content{display:inline;word-break:break-word;white-space:normal;max-width:calc(100% - 5rem);margin-right:1rem;justify-content:space-between}.bao-message-bar .bao-message-content>*{display:inline}.bao-message-bar a,.bao-message-bar bao-hyperlink{text-decoration:none;font-weight:700;border-bottom:1px solid currentColor;white-space:nowrap;display:inline-block;flex-shrink:0;outline:none;padding:2px}.bao-message-bar .bao-message-close{background:rgba(255,255,255,.0001);border:none;cursor:pointer;font-size:1.5rem;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:absolute;right:1rem;top:1rem}.bao-message-bar .bao-message-close:hover,.bao-message-bar .bao-message-close:focus{opacity:.75}.bao-message-bar-info{background-color:#0079c4;border-left:4px solid #0079c4;color:#fff}.bao-message-bar-info a,.bao-message-bar-info bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-info a:hover,.bao-message-bar-info bao-hyperlink:hover{background-color:#005a91}.bao-message-bar-info a:focus,.bao-message-bar-info bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-info .bao-message-icon svg{fill:#fff}.bao-message-bar-info .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-info .bao-message-close:hover{opacity:.8}.bao-message-bar-info .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}.bao-message-bar-alert{background-color:#ffb833;border-left:4px solid #ffb833;color:#212529}.bao-message-bar-alert a,.bao-message-bar-alert bao-hyperlink{color:#212529;margin:3px}.bao-message-bar-alert a:hover,.bao-message-bar-alert bao-hyperlink:hover{background-color:#ffca66}.bao-message-bar-alert a:focus,.bao-message-bar-alert bao-hyperlink:focus{outline:3px solid #0079c4;outline-offset:3px;background-color:#2125291a;box-shadow:0 0 0 3px #fff}.bao-message-bar-alert .bao-message-icon svg{fill:#212529}.bao-message-bar-alert .bao-message-close{color:#212529;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-alert .bao-message-close:hover{opacity:.8}.bao-message-bar-alert .bao-message-close:focus{outline:3px solid #0079c4;outline-offset:3px;background-color:#2125291a;box-shadow:0 0 0 3px #fff;border-radius:2px}.bao-message-bar-urgent{background-color:#d3310a;border-left:4px solid #d3310a;color:#fff}.bao-message-bar-urgent a,.bao-message-bar-urgent bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-urgent a:hover,.bao-message-bar-urgent bao-hyperlink:hover{background-color:#a22608}.bao-message-bar-urgent a:focus,.bao-message-bar-urgent bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-urgent .bao-message-icon svg{fill:#fff}.bao-message-bar-urgent .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-urgent .bao-message-close:hover{opacity:.8}.bao-message-bar-urgent .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}.bao-message-bar-neutral{background-color:#212529;border-left:4px solid #212529;color:#fff}.bao-message-bar-neutral a,.bao-message-bar-neutral bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-neutral a:hover,.bao-message-bar-neutral bao-hyperlink:hover{background-color:#637381}.bao-message-bar-neutral a:focus,.bao-message-bar-neutral bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-neutral .bao-message-icon svg{fill:#fff}.bao-message-bar-neutral .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-neutral .bao-message-close:hover{opacity:.8}.bao-message-bar-neutral .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
6217
|
+
}
|
|
6218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarComponent, decorators: [{
|
|
6219
|
+
type: Component,
|
|
6220
|
+
args: [{ selector: 'bao-message-bar', encapsulation: ViewEncapsulation.None, host: {
|
|
6221
|
+
class: 'bao-message-bar message-bar-dismissible bao-fade-in',
|
|
6222
|
+
'[class.bao-message-bar-info]': 'type === "info"',
|
|
6223
|
+
'[class.bao-message-bar-alert]': 'type === "alert"',
|
|
6224
|
+
'[class.bao-message-bar-urgent]': 'type === "urgent"',
|
|
6225
|
+
'[class.bao-message-bar-neutral]': 'type === "neutral"'
|
|
6226
|
+
}, template: "<bao-icon [svgIcon]=\"iconType\" [title]=\"iconTitle\"></bao-icon>\n\n<div class=\"bao-message-content\">\n <ng-content></ng-content>\n</div>\n\n<button\n *ngIf=\"dismissible\"\n class=\"bao-message-close\"\n type=\"button\"\n data-dismiss=\"message\"\n role=\"button\"\n [attr.aria-label]=\"dismissibleButtonAriaLabel\"\n (click)=\"onDismissClicked()\"\n>\n <bao-icon svgIcon=\"icon-x\"></bao-icon>\n</button>\n", styles: ["@keyframes bao-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bao-fade-out{0%{opacity:1}to{opacity:0}}.bao-fade-in{animation:bao-fade-in .3s ease-in-out}.bao-fade-out{animation:bao-fade-out .3s ease-in-out;pointer-events:none}.bao-message-bar{display:flex;align-items:flex-start;padding:1rem;width:100%;position:relative;border-left-width:4px;justify-content:flex-start;gap:12px;padding-left:32px}.bao-message-bar .bao-message-icon{flex-shrink:0;width:1.5rem;height:1.5rem}.bao-message-bar .bao-message-icon svg{fill:#fff;width:100%;height:100%}@media (max-width: 768px){.bao-message-bar{padding-left:16px}}.bao-message-bar .bao-message-content{display:inline;word-break:break-word;white-space:normal;max-width:calc(100% - 5rem);margin-right:1rem;justify-content:space-between}.bao-message-bar .bao-message-content>*{display:inline}.bao-message-bar a,.bao-message-bar bao-hyperlink{text-decoration:none;font-weight:700;border-bottom:1px solid currentColor;white-space:nowrap;display:inline-block;flex-shrink:0;outline:none;padding:2px}.bao-message-bar .bao-message-close{background:rgba(255,255,255,.0001);border:none;cursor:pointer;font-size:1.5rem;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:absolute;right:1rem;top:1rem}.bao-message-bar .bao-message-close:hover,.bao-message-bar .bao-message-close:focus{opacity:.75}.bao-message-bar-info{background-color:#0079c4;border-left:4px solid #0079c4;color:#fff}.bao-message-bar-info a,.bao-message-bar-info bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-info a:hover,.bao-message-bar-info bao-hyperlink:hover{background-color:#005a91}.bao-message-bar-info a:focus,.bao-message-bar-info bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-info .bao-message-icon svg{fill:#fff}.bao-message-bar-info .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-info .bao-message-close:hover{opacity:.8}.bao-message-bar-info .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}.bao-message-bar-alert{background-color:#ffb833;border-left:4px solid #ffb833;color:#212529}.bao-message-bar-alert a,.bao-message-bar-alert bao-hyperlink{color:#212529;margin:3px}.bao-message-bar-alert a:hover,.bao-message-bar-alert bao-hyperlink:hover{background-color:#ffca66}.bao-message-bar-alert a:focus,.bao-message-bar-alert bao-hyperlink:focus{outline:3px solid #0079c4;outline-offset:3px;background-color:#2125291a;box-shadow:0 0 0 3px #fff}.bao-message-bar-alert .bao-message-icon svg{fill:#212529}.bao-message-bar-alert .bao-message-close{color:#212529;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-alert .bao-message-close:hover{opacity:.8}.bao-message-bar-alert .bao-message-close:focus{outline:3px solid #0079c4;outline-offset:3px;background-color:#2125291a;box-shadow:0 0 0 3px #fff;border-radius:2px}.bao-message-bar-urgent{background-color:#d3310a;border-left:4px solid #d3310a;color:#fff}.bao-message-bar-urgent a,.bao-message-bar-urgent bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-urgent a:hover,.bao-message-bar-urgent bao-hyperlink:hover{background-color:#a22608}.bao-message-bar-urgent a:focus,.bao-message-bar-urgent bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-urgent .bao-message-icon svg{fill:#fff}.bao-message-bar-urgent .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-urgent .bao-message-close:hover{opacity:.8}.bao-message-bar-urgent .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}.bao-message-bar-neutral{background-color:#212529;border-left:4px solid #212529;color:#fff}.bao-message-bar-neutral a,.bao-message-bar-neutral bao-hyperlink{color:#fff;margin:3px}.bao-message-bar-neutral a:hover,.bao-message-bar-neutral bao-hyperlink:hover{background-color:#637381}.bao-message-bar-neutral a:focus,.bao-message-bar-neutral bao-hyperlink:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000}.bao-message-bar-neutral .bao-message-icon svg{fill:#fff}.bao-message-bar-neutral .bao-message-close{color:#fff;background-color:#fff0;border-radius:0rem;height:2.5rem;width:2.5rem;margin-left:auto;margin-right:-.5rem;margin-top:-.5rem}.bao-message-bar-neutral .bao-message-close:hover{opacity:.8}.bao-message-bar-neutral .bao-message-close:focus{outline:3px solid #ffb833;outline-offset:3px;background-color:#ffffff1a;box-shadow:0 0 0 3px #000;border-radius:4px}\n"] }]
|
|
6227
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { type: [{
|
|
6228
|
+
type: Input
|
|
6229
|
+
}], dismissible: [{
|
|
6230
|
+
type: Input
|
|
6231
|
+
}], dismissibleButtonAriaLabel: [{
|
|
6232
|
+
type: Input
|
|
6233
|
+
}], dismiss: [{
|
|
6234
|
+
type: Output
|
|
6235
|
+
}] } });
|
|
6236
|
+
|
|
6237
|
+
/*
|
|
6238
|
+
* Copyright (c) 2025 Ville de Montreal. All rights reserved.
|
|
6239
|
+
* Licensed under the MIT license.
|
|
6240
|
+
* See LICENSE file in the project root for full license information.
|
|
6241
|
+
*/
|
|
6242
|
+
class BaoMessageBarModule {
|
|
6243
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6244
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarModule, declarations: [BaoMessageBarComponent, BaoMessageBarContent], imports: [CommonModule, BaoIconModule, BaoButtonModule, BaoHyperlinkModule], exports: [BaoMessageBarComponent, BaoMessageBarContent] }); }
|
|
6245
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarModule, imports: [CommonModule, BaoIconModule, BaoButtonModule, BaoHyperlinkModule] }); }
|
|
6246
|
+
}
|
|
6247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BaoMessageBarModule, decorators: [{
|
|
6248
|
+
type: NgModule,
|
|
6249
|
+
args: [{
|
|
6250
|
+
imports: [CommonModule, BaoIconModule, BaoButtonModule, BaoHyperlinkModule],
|
|
6251
|
+
declarations: [BaoMessageBarComponent, BaoMessageBarContent],
|
|
6252
|
+
exports: [BaoMessageBarComponent, BaoMessageBarContent]
|
|
6253
|
+
}]
|
|
6254
|
+
}] });
|
|
6255
|
+
|
|
6256
|
+
/*
|
|
6257
|
+
* Copyright (c) 2025 Ville de Montreal. All rights reserved.
|
|
6258
|
+
* Licensed under the MIT license.
|
|
6259
|
+
* See LICENSE file in the project root for full license information.
|
|
6260
|
+
*/
|
|
6261
|
+
|
|
6144
6262
|
/*
|
|
6145
6263
|
* Copyright (c) 2025 Ville de Montreal. All rights reserved.
|
|
6146
6264
|
* Licensed under the MIT license.
|
|
@@ -6151,5 +6269,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
6151
6269
|
* Generated bundle index. Do not edit.
|
|
6152
6270
|
*/
|
|
6153
6271
|
|
|
6154
|
-
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, BaoSummaryComponent, BaoSummaryDescription, BaoSummaryModule, BaoSystemHeaderComponent, BaoSystemHeaderModule, BaoTabHeader, BaoTabPanel, BaoTablistComponent, BaoTabsContainer, BaoTabsModule, BaoTagComponent, BaoTagModule, BaoTitleTextComponent, _BaoModalContainerBase, _closeModalVia, baoFactory, eModalDesktopWidthSize, eModalMobileWidthSize, throwBaoModalContentAlreadyAttachedError };
|
|
6272
|
+
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, BaoMessageBarComponent, BaoMessageBarContent, BaoMessageBarModule, BaoModal, BaoModalBase, BaoModalClose, BaoModalContainer, BaoModalInitialConfig, BaoModalModule, BaoModalRef, BaoModule, BaoNavList, BaoRadioButtonComponent, BaoRadioButtonGroupComponent, BaoRadioDescription, BaoRadioModule, BaoSimpleSnackBarComponent, BaoSnackBarConfig, BaoSnackBarContainerComponent, BaoSnackBarModule, BaoSnackBarRef, BaoSnackBarService, BaoSummaryComponent, BaoSummaryDescription, BaoSummaryModule, BaoSystemHeaderComponent, BaoSystemHeaderModule, BaoTabHeader, BaoTabPanel, BaoTablistComponent, BaoTabsContainer, BaoTabsModule, BaoTagComponent, BaoTagModule, BaoTitleTextComponent, _BaoModalContainerBase, _closeModalVia, baoFactory, eModalDesktopWidthSize, eModalMobileWidthSize, throwBaoModalContentAlreadyAttachedError };
|
|
6155
6273
|
//# sourceMappingURL=villedemontreal-angular-ui.mjs.map
|