@villedemontreal/angular-ui 18.0.0 → 19.0.1
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/fesm2022/villedemontreal-angular-ui.mjs +421 -372
- package/fesm2022/villedemontreal-angular-ui.mjs.map +1 -1
- package/lib/dropdown-menu/dropdown-menu.component.d.ts +16 -9
- package/lib/modal/modal-container.d.ts +1 -1
- package/lib/modal/modal.d.ts +1 -1
- package/package.json +5 -7
- package/esm2022/lib/alert/alert.component.mjs +0 -169
- package/esm2022/lib/alert/index.mjs +0 -8
- package/esm2022/lib/alert/module.mjs +0 -41
- package/esm2022/lib/avatar/avatar.component.mjs +0 -102
- package/esm2022/lib/avatar/index.mjs +0 -8
- package/esm2022/lib/avatar/module.mjs +0 -24
- package/esm2022/lib/badge/badge.component.mjs +0 -27
- package/esm2022/lib/badge/index.mjs +0 -8
- package/esm2022/lib/badge/module.mjs +0 -24
- package/esm2022/lib/bao.module.mjs +0 -124
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -36
- package/esm2022/lib/breadcrumb/index.mjs +0 -8
- package/esm2022/lib/breadcrumb/module.mjs +0 -25
- package/esm2022/lib/button/button.component.mjs +0 -100
- package/esm2022/lib/button/index.mjs +0 -8
- package/esm2022/lib/button/module.mjs +0 -25
- package/esm2022/lib/card/card.component.mjs +0 -94
- package/esm2022/lib/card/index.mjs +0 -8
- package/esm2022/lib/card/module.mjs +0 -38
- package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -58
- package/esm2022/lib/checkbox/checkbox.component.mjs +0 -304
- package/esm2022/lib/checkbox/index.mjs +0 -9
- package/esm2022/lib/checkbox/module.mjs +0 -35
- package/esm2022/lib/common-components/error-text/errorText.component.mjs +0 -16
- package/esm2022/lib/common-components/guiding-text/guidingText.component.mjs +0 -16
- package/esm2022/lib/common-components/index.mjs +0 -11
- package/esm2022/lib/common-components/label-text/labelText.component.mjs +0 -22
- package/esm2022/lib/common-components/module.mjs +0 -38
- package/esm2022/lib/common-components/title-text/titleText.component.mjs +0 -16
- package/esm2022/lib/core/breakpoints.mjs +0 -13
- package/esm2022/lib/core/colors.mjs +0 -25
- package/esm2022/lib/core/index.mjs +0 -8
- package/esm2022/lib/dropdown-menu/dropdown-menu.component.mjs +0 -573
- package/esm2022/lib/dropdown-menu/index.mjs +0 -8
- package/esm2022/lib/dropdown-menu/module.mjs +0 -47
- package/esm2022/lib/file/file-input.component.mjs +0 -320
- package/esm2022/lib/file/file-intl.mjs +0 -65
- package/esm2022/lib/file/file-preview.component.mjs +0 -96
- package/esm2022/lib/file/index.mjs +0 -10
- package/esm2022/lib/file/module.mjs +0 -56
- package/esm2022/lib/header-info/header-info.component.mjs +0 -104
- package/esm2022/lib/header-info/index.mjs +0 -8
- package/esm2022/lib/header-info/module.mjs +0 -41
- package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -84
- package/esm2022/lib/hyperlink/index.mjs +0 -8
- package/esm2022/lib/hyperlink/module.mjs +0 -24
- package/esm2022/lib/icon/bao-icon-registry.mjs +0 -47
- package/esm2022/lib/icon/icon.component.mjs +0 -158
- package/esm2022/lib/icon/icons-dictionary.mjs +0 -129
- package/esm2022/lib/icon/index.mjs +0 -8
- package/esm2022/lib/icon/module.mjs +0 -24
- package/esm2022/lib/list/index.mjs +0 -8
- package/esm2022/lib/list/list.component.mjs +0 -73
- package/esm2022/lib/list/module.mjs +0 -38
- package/esm2022/lib/message-bar/index.mjs +0 -8
- package/esm2022/lib/message-bar/message-bar.component.mjs +0 -87
- package/esm2022/lib/message-bar/module.mjs +0 -26
- package/esm2022/lib/modal/index.mjs +0 -12
- package/esm2022/lib/modal/modal-config.mjs +0 -73
- package/esm2022/lib/modal/modal-container.mjs +0 -240
- package/esm2022/lib/modal/modal-directives.mjs +0 -84
- package/esm2022/lib/modal/modal-ref.mjs +0 -226
- package/esm2022/lib/modal/modal.mjs +0 -344
- package/esm2022/lib/modal/module.mjs +0 -29
- package/esm2022/lib/pagination/index.mjs +0 -8
- package/esm2022/lib/pagination/module.mjs +0 -25
- package/esm2022/lib/pagination/pagination.component.mjs +0 -217
- package/esm2022/lib/radio/index.mjs +0 -9
- package/esm2022/lib/radio/module.mjs +0 -54
- package/esm2022/lib/radio/radio-group.component.mjs +0 -247
- package/esm2022/lib/radio/radio.component.mjs +0 -291
- package/esm2022/lib/shared/enum/display-mode.mjs +0 -2
- package/esm2022/lib/shared/index.mjs +0 -7
- package/esm2022/lib/snack-bar/index.mjs +0 -12
- package/esm2022/lib/snack-bar/module.mjs +0 -51
- package/esm2022/lib/snack-bar/simple-snack-bar.component.mjs +0 -92
- package/esm2022/lib/snack-bar/snack-bar-animations.mjs +0 -28
- package/esm2022/lib/snack-bar/snack-bar-config.mjs +0 -37
- package/esm2022/lib/snack-bar/snack-bar-container.mjs +0 -277
- package/esm2022/lib/snack-bar/snack-bar-ref.mjs +0 -75
- package/esm2022/lib/snack-bar/snack-bar.mjs +0 -251
- package/esm2022/lib/summary/index.mjs +0 -9
- package/esm2022/lib/summary/list-summary.component.mjs +0 -30
- package/esm2022/lib/summary/module.mjs +0 -37
- package/esm2022/lib/summary/summary.component.mjs +0 -93
- package/esm2022/lib/system-header/index.mjs +0 -8
- package/esm2022/lib/system-header/module.mjs +0 -33
- package/esm2022/lib/system-header/system-header.component.mjs +0 -130
- package/esm2022/lib/tabs/index.mjs +0 -8
- package/esm2022/lib/tabs/module.mjs +0 -35
- package/esm2022/lib/tabs/tabs.component.mjs +0 -295
- package/esm2022/lib/tag/index.mjs +0 -8
- package/esm2022/lib/tag/module.mjs +0 -24
- package/esm2022/lib/tag/tag.component.mjs +0 -75
- package/esm2022/public-api.mjs +0 -31
- package/esm2022/villedemontreal-angular-ui.mjs +0 -5
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
2
|
-
import { ComponentPortal, PortalInjector, TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
-
import { Inject, Injectable, InjectionToken, Optional, SkipSelf, TemplateRef } from '@angular/core';
|
|
4
|
-
import { BaoSimpleSnackBarComponent } from './simple-snack-bar.component';
|
|
5
|
-
import { BAO_SNACK_BAR_DATA, BaoSnackBarConfig } from './snack-bar-config';
|
|
6
|
-
import { BaoSnackBarContainerComponent } from './snack-bar-container';
|
|
7
|
-
import { BaoSnackBarRef } from './snack-bar-ref';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
10
|
-
import * as i2 from "@angular/cdk/a11y";
|
|
11
|
-
import * as i3 from "./snack-bar-config";
|
|
12
|
-
export function baoFactory() {
|
|
13
|
-
return new BaoSnackBarConfig();
|
|
14
|
-
}
|
|
15
|
-
/** Injection token that can be used to specify default snack bar. */
|
|
16
|
-
export const BAO_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken('bao-snack-bar-default-options', {
|
|
17
|
-
providedIn: 'root',
|
|
18
|
-
factory: baoFactory
|
|
19
|
-
});
|
|
20
|
-
/**
|
|
21
|
-
* Service to dispatch Material Design snack bar messages.
|
|
22
|
-
*/
|
|
23
|
-
export class BaoSnackBarService {
|
|
24
|
-
constructor(_overlay, _live, _injector, _parentSnackBar, _defaultConfig) {
|
|
25
|
-
this._overlay = _overlay;
|
|
26
|
-
this._live = _live;
|
|
27
|
-
this._injector = _injector;
|
|
28
|
-
this._parentSnackBar = _parentSnackBar;
|
|
29
|
-
this._defaultConfig = _defaultConfig;
|
|
30
|
-
/** The component that should be rendered as the snack bar's simple component. */
|
|
31
|
-
this.simpleSnackBarComponent = BaoSimpleSnackBarComponent;
|
|
32
|
-
/** The container component that attaches the provided template or component. */
|
|
33
|
-
this.snackBarContainerComponent = BaoSnackBarContainerComponent;
|
|
34
|
-
/**
|
|
35
|
-
* Reference to the current snack bar in the view *at this level* (in the Angular injector tree).
|
|
36
|
-
* If there is a parent snack-bar service, all operations should delegate to that parent
|
|
37
|
-
* via `_openedSnackBarRef`.
|
|
38
|
-
*/
|
|
39
|
-
this._snackBarRefAtThisLevel = null;
|
|
40
|
-
}
|
|
41
|
-
/** Reference to the currently opened snackbar at *any* level. */
|
|
42
|
-
get _openedSnackBarRef() {
|
|
43
|
-
const parent = this._parentSnackBar;
|
|
44
|
-
return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;
|
|
45
|
-
}
|
|
46
|
-
set _openedSnackBarRef(value) {
|
|
47
|
-
if (this._parentSnackBar) {
|
|
48
|
-
this._parentSnackBar._openedSnackBarRef = value;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this._snackBarRefAtThisLevel = value;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Creates and dispatches a snack bar with a custom component for the content, removing any
|
|
56
|
-
* currently opened snack bars.
|
|
57
|
-
*
|
|
58
|
-
* @param component Component to be instantiated.
|
|
59
|
-
* @param config Extra configuration for the snack bar.
|
|
60
|
-
*/
|
|
61
|
-
openFromComponent(component, config) {
|
|
62
|
-
return this.attach(component, config);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Creates and dispatches a snack bar with a custom template for the content, removing any
|
|
66
|
-
* currently opened snack bars.
|
|
67
|
-
*
|
|
68
|
-
* @param template Template to be instantiated.
|
|
69
|
-
* @param config Extra configuration for the snack bar.
|
|
70
|
-
*/
|
|
71
|
-
openFromTemplate(template, config) {
|
|
72
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
73
|
-
return this.attach(template, config);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Opens a snackbar with a message and an optional action.
|
|
77
|
-
* @param message The message to show in the snackbar.
|
|
78
|
-
* @param toastType The type of of toast to display the snackbar.
|
|
79
|
-
* @param actionLabelOrIcon The label or icon for the snackbar action.
|
|
80
|
-
* @param showClose If true, the snackbar will require user interaction to close.
|
|
81
|
-
* @param config Additional configuration options for the snackbar.
|
|
82
|
-
*/
|
|
83
|
-
open(config) {
|
|
84
|
-
const _config = { ...this._defaultConfig, ...config };
|
|
85
|
-
// Since the user doesn't have access to the component, we can
|
|
86
|
-
// override the data to pass in our own message, action and type.
|
|
87
|
-
_config.data = {
|
|
88
|
-
message: _config.message,
|
|
89
|
-
toastType: _config.toastType,
|
|
90
|
-
actionLabelOrIcon: _config.actionLabelOrIcon,
|
|
91
|
-
showClose: _config.showClose
|
|
92
|
-
};
|
|
93
|
-
if (_config.showClose)
|
|
94
|
-
_config.duration = 0;
|
|
95
|
-
if (!_config.announcementMessage) {
|
|
96
|
-
_config.announcementMessage = _config.message;
|
|
97
|
-
}
|
|
98
|
-
return this.openFromComponent(this.simpleSnackBarComponent, _config);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Dismisses the currently-visible snack bar.
|
|
102
|
-
*/
|
|
103
|
-
dismiss() {
|
|
104
|
-
if (this._openedSnackBarRef) {
|
|
105
|
-
this._openedSnackBarRef.dismiss();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
ngOnDestroy() {
|
|
109
|
-
// Only dismiss the snack bar at the current level on destroy.
|
|
110
|
-
if (this._snackBarRefAtThisLevel) {
|
|
111
|
-
this._snackBarRefAtThisLevel.dismiss();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Attaches the snack bar container component to the overlay.
|
|
116
|
-
*/
|
|
117
|
-
attachSnackBarContainer(overlayRef, config) {
|
|
118
|
-
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
119
|
-
const injector = new PortalInjector(userInjector || this._injector, new WeakMap([[BaoSnackBarConfig, config]]));
|
|
120
|
-
const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);
|
|
121
|
-
const containerRef = overlayRef.attach(containerPortal);
|
|
122
|
-
containerRef.instance.snackBarConfig = config;
|
|
123
|
-
return containerRef.instance;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Places a new component or a template as the content of the snack bar container.
|
|
127
|
-
*/
|
|
128
|
-
attach(content, userConfig) {
|
|
129
|
-
const config = {
|
|
130
|
-
...new BaoSnackBarConfig(),
|
|
131
|
-
...this._defaultConfig,
|
|
132
|
-
...userConfig
|
|
133
|
-
};
|
|
134
|
-
const overlayRef = this.createOverlay(config);
|
|
135
|
-
const container = this.attachSnackBarContainer(overlayRef, config);
|
|
136
|
-
const snackBarRef = new BaoSnackBarRef(container, overlayRef);
|
|
137
|
-
if (content instanceof TemplateRef) {
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
139
|
-
const portal = new TemplatePortal(content, null, {
|
|
140
|
-
$implicit: config.data,
|
|
141
|
-
snackBarRef
|
|
142
|
-
});
|
|
143
|
-
snackBarRef.instance = container.attachTemplatePortal(portal);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
const injector = this.createInjector(config, snackBarRef);
|
|
147
|
-
const portal = new ComponentPortal(content, undefined, injector);
|
|
148
|
-
const contentRef = container.attachComponentPortal(portal);
|
|
149
|
-
// We can't pass this via the injector, because the injector is created earlier.
|
|
150
|
-
snackBarRef.instance = contentRef.instance;
|
|
151
|
-
}
|
|
152
|
-
this.animateSnackBar(snackBarRef, config);
|
|
153
|
-
this._openedSnackBarRef = snackBarRef;
|
|
154
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
155
|
-
return this._openedSnackBarRef;
|
|
156
|
-
}
|
|
157
|
-
/** Animates the old snack bar out and the new one in. */
|
|
158
|
-
animateSnackBar(snackBarRef, config) {
|
|
159
|
-
// When the snackbar is dismissed, clear the reference to it.
|
|
160
|
-
snackBarRef.afterDismissed().subscribe(() => {
|
|
161
|
-
// Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.
|
|
162
|
-
// eslint-disable-next-line eqeqeq
|
|
163
|
-
if (this._openedSnackBarRef == snackBarRef) {
|
|
164
|
-
this._openedSnackBarRef = null;
|
|
165
|
-
}
|
|
166
|
-
if (config.announcementMessage) {
|
|
167
|
-
this._live.clear();
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
if (this._openedSnackBarRef) {
|
|
171
|
-
// If a snack bar is already in view, dismiss it and enter the
|
|
172
|
-
// new snack bar after exit animation is complete.
|
|
173
|
-
this._openedSnackBarRef.afterDismissed().subscribe(() => {
|
|
174
|
-
snackBarRef.containerInstance.enter();
|
|
175
|
-
});
|
|
176
|
-
this._openedSnackBarRef.dismiss();
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
// If no snack bar is in view, enter the new snack bar.
|
|
180
|
-
snackBarRef.containerInstance.enter();
|
|
181
|
-
}
|
|
182
|
-
// If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.
|
|
183
|
-
if (config.duration && config.duration > 0) {
|
|
184
|
-
snackBarRef
|
|
185
|
-
.afterOpened()
|
|
186
|
-
.subscribe(() => snackBarRef.dismissAfter(config.duration));
|
|
187
|
-
}
|
|
188
|
-
if (config.announcementMessage) {
|
|
189
|
-
void this._live.announce(config.announcementMessage, config.politeness);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Creates a new overlay and places it in the correct location.
|
|
194
|
-
* @param config The user-specified snack bar config.
|
|
195
|
-
*/
|
|
196
|
-
createOverlay(config) {
|
|
197
|
-
const overlayConfig = new OverlayConfig();
|
|
198
|
-
overlayConfig.direction = config.direction;
|
|
199
|
-
const positionStrategy = this._overlay.position().global();
|
|
200
|
-
// Set horizontal position.
|
|
201
|
-
const isRtl = config.direction === 'rtl';
|
|
202
|
-
const isLeft = config.horizontalPosition === 'left' ||
|
|
203
|
-
(config.horizontalPosition === 'start' && !isRtl) ||
|
|
204
|
-
(config.horizontalPosition === 'end' && isRtl);
|
|
205
|
-
const isRight = !isLeft && config.horizontalPosition !== 'center';
|
|
206
|
-
if (isLeft) {
|
|
207
|
-
positionStrategy.left('0');
|
|
208
|
-
}
|
|
209
|
-
else if (isRight) {
|
|
210
|
-
positionStrategy.right('0');
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
positionStrategy.centerHorizontally();
|
|
214
|
-
}
|
|
215
|
-
// Set horizontal position.
|
|
216
|
-
if (config.verticalPosition === 'top') {
|
|
217
|
-
positionStrategy.top('0');
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
positionStrategy.bottom('0');
|
|
221
|
-
}
|
|
222
|
-
overlayConfig.positionStrategy = positionStrategy;
|
|
223
|
-
return this._overlay.create(overlayConfig);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Creates an injector to be used inside of a snack bar component.
|
|
227
|
-
* @param config Config that was used to create the snack bar.
|
|
228
|
-
* @param snackBarRef Reference to the snack bar.
|
|
229
|
-
*/
|
|
230
|
-
createInjector(config, snackBarRef) {
|
|
231
|
-
const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;
|
|
232
|
-
return new PortalInjector(userInjector || this._injector, new WeakMap([
|
|
233
|
-
[BaoSnackBarRef, snackBarRef],
|
|
234
|
-
[BAO_SNACK_BAR_DATA, config.data]
|
|
235
|
-
]));
|
|
236
|
-
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSnackBarService, deps: [{ token: i1.Overlay }, { token: i2.LiveAnnouncer }, { token: i0.Injector }, { token: BaoSnackBarService, optional: true, skipSelf: true }, { token: BAO_SNACK_BAR_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
238
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSnackBarService, providedIn: 'root' }); }
|
|
239
|
-
}
|
|
240
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSnackBarService, decorators: [{
|
|
241
|
-
type: Injectable,
|
|
242
|
-
args: [{ providedIn: 'root' }]
|
|
243
|
-
}], ctorParameters: () => [{ type: i1.Overlay }, { type: i2.LiveAnnouncer }, { type: i0.Injector }, { type: BaoSnackBarService, decorators: [{
|
|
244
|
-
type: Optional
|
|
245
|
-
}, {
|
|
246
|
-
type: SkipSelf
|
|
247
|
-
}] }, { type: i3.BaoSnackBarConfig, decorators: [{
|
|
248
|
-
type: Inject,
|
|
249
|
-
args: [BAO_SNACK_BAR_DEFAULT_OPTIONS]
|
|
250
|
-
}] }] });
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2stYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3NuYWNrLWJhci9zbmFjay1iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFDTCxlQUFlLEVBRWYsY0FBYyxFQUNkLGNBQWMsRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFHTCxNQUFNLEVBQ04sVUFBVSxFQUNWLGNBQWMsRUFHZCxRQUFRLEVBQ1IsUUFBUSxFQUNSLFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMEJBQTBCLEVBRTNCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUNMLDZCQUE2QixFQUU5QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFFakQsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELHFFQUFxRTtBQUNyRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FDeEMsSUFBSSxjQUFjLENBQW9CLCtCQUErQixFQUFFO0lBQ3JFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxVQUFVO0NBQ3BCLENBQUMsQ0FBQztBQUVMOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFDVSxRQUFpQixFQUNqQixLQUFvQixFQUNwQixTQUFtQixFQUNLLGVBQW1DLEVBRTNELGNBQWlDO1FBTGpDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixj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QUNKLENBQUM7K0dBblJVLGtCQUFrQiw2SkFxQm5CLDZCQUE2QjttSEFyQjVCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFxQjdCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixNQUFNOzJCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBDb21wb25lbnRQb3J0YWwsXG4gIENvbXBvbmVudFR5cGUsXG4gIFBvcnRhbEluamVjdG9yLFxuICBUZW1wbGF0ZVBvcnRhbFxufSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFvU2ltcGxlU25hY2tCYXJDb21wb25lbnQsXG4gIElUZXh0T25seVNuYWNrQmFyXG59IGZyb20gJy4vc2ltcGxlLXNuYWNrLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQkFPX1NOQUNLX0JBUl9EQVRBLCBCYW9TbmFja0JhckNvbmZpZyB9IGZyb20gJy4vc25hY2stYmFyLWNvbmZpZyc7XG5pbXBvcnQge1xuICBCYW9TbmFja0JhckNvbnRhaW5lckNvbXBvbmVudCxcbiAgSUJhb1NuYWNrQmFyQ29udGFpbmVyXG59IGZyb20gJy4vc25hY2stYmFyLWNvbnRhaW5lcic7XG5pbXBvcnQgeyBCYW9TbmFja0JhclJlZiB9IGZyb20gJy4vc25hY2stYmFyLXJlZic7XG5cbmV4cG9ydCBmdW5jdGlvbiBiYW9GYWN0b3J5KCkge1xuICByZXR1cm4gbmV3IEJhb1NuYWNrQmFyQ29uZmlnKCk7XG59XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdGhhdCBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGRlZmF1bHQgc25hY2sgYmFyLiAqL1xuZXhwb3J0IGNvbnN0IEJBT19TTkFDS19CQVJfREVGQVVMVF9PUFRJT05TID1cbiAgbmV3IEluamVjdGlvblRva2VuPEJhb1NuYWNrQmFyQ29uZmlnPignYmFvLXNuYWNrLWJhci1kZWZhdWx0LW9wdGlvbnMnLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6IGJhb0ZhY3RvcnlcbiAgfSk7XG5cbi8qKlxuICogU2VydmljZSB0byBkaXNwYXRjaCBNYXRlcmlhbCBEZXNpZ24gc25hY2sgYmFyIG1lc3NhZ2VzLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEJhb1NuYWNrQmFyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBUaGUgY29tcG9uZW50IHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIHRoZSBzbmFjayBiYXIncyBzaW1wbGUgY29tcG9uZW50LiAqL1xuICBwcm90ZWN0ZWQgc2ltcGxlU25hY2tCYXJDb21wb25lbnQ6IFR5cGU8SVRleHRPbmx5U25hY2tCYXI+ID1cbiAgICBCYW9TaW1wbGVTbmFja0JhckNvbXBvbmVudDtcblxuICAvKiogVGhlIGNvbnRhaW5lciBjb21wb25lbnQgdGhhdCBhdHRhY2hlcyB0aGUgcHJvdmlkZWQgdGVtcGxhdGUgb3IgY29tcG9uZW50LiAqL1xuICBwcm90ZWN0ZWQgc25hY2tCYXJDb250YWluZXJDb21wb25lbnQ6IFR5cGU8SUJhb1NuYWNrQmFyQ29udGFpbmVyPiA9XG4gICAgQmFvU25hY2tCYXJDb250YWluZXJDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBzbmFjayBiYXIgaW4gdGhlIHZpZXcgKmF0IHRoaXMgbGV2ZWwqIChpbiB0aGUgQW5ndWxhciBpbmplY3RvciB0cmVlKS5cbiAgICogSWYgdGhlcmUgaXMgYSBwYXJlbnQgc25hY2stYmFyIHNlcnZpY2UsIGFsbCBvcGVyYXRpb25zIHNob3VsZCBkZWxlZ2F0ZSB0byB0aGF0IHBhcmVudFxuICAgKiB2aWEgYF9vcGVuZWRTbmFja0JhclJlZmAuXG4gICAqL1xuICBwcml2YXRlIF9zbmFja0JhclJlZkF0VGhpc0xldmVsOiBCYW9TbmFja0JhclJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9saXZlOiBMaXZlQW5ub3VuY2VyLFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIF9wYXJlbnRTbmFja0JhcjogQmFvU25hY2tCYXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoQkFPX1NOQUNLX0JBUl9ERUZBVUxUX09QVElPTlMpXG4gICAgcHJpdmF0ZSBfZGVmYXVsdENvbmZpZzogQmFvU25hY2tCYXJDb25maWdcbiAgKSB7fVxuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnRseSBvcGVuZWQgc25hY2tiYXIgYXQgKmFueSogbGV2ZWwuICovXG4gIGdldCBfb3BlbmVkU25hY2tCYXJSZWYoKTogQmFvU25hY2tCYXJSZWY8YW55PiB8IG51bGwge1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudFNuYWNrQmFyO1xuICAgIHJldHVybiBwYXJlbnQgPyBwYXJlbnQuX29wZW5lZFNuYWNrQmFyUmVmIDogdGhpcy5fc25hY2tCYXJSZWZBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIHNldCBfb3BlbmVkU25hY2tCYXJSZWYodmFsdWU6IEJhb1NuYWNrQmFyUmVmPGFueT4gfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX3BhcmVudFNuYWNrQmFyKSB7XG4gICAgICB0aGlzLl9wYXJlbnRTbmFja0Jhci5fb3BlbmVkU25hY2tCYXJSZWYgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc25hY2tCYXJSZWZBdFRoaXNMZXZlbCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuZCBkaXNwYXRjaGVzIGEgc25hY2sgYmFyIHdpdGggYSBjdXN0b20gY29tcG9uZW50IGZvciB0aGUgY29udGVudCwgcmVtb3ZpbmcgYW55XG4gICAqIGN1cnJlbnRseSBvcGVuZWQgc25hY2sgYmFycy5cbiAgICpcbiAgICogQHBhcmFtIGNvbXBvbmVudCBDb21wb25lbnQgdG8gYmUgaW5zdGFudGlhdGVkLlxuICAgKiBAcGFyYW0gY29uZmlnIEV4dHJhIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzbmFjayBiYXIuXG4gICAqL1xuICBwdWJsaWMgb3BlbkZyb21Db21wb25lbnQ8VD4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZz86IEJhb1NuYWNrQmFyQ29uZmlnXG4gICk6IEJhb1NuYWNrQmFyUmVmPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hdHRhY2goY29tcG9uZW50LCBjb25maWcpIGFzIEJhb1NuYWNrQmFyUmVmPFQ+O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW5kIGRpc3BhdGNoZXMgYSBzbmFjayBiYXIgd2l0aCBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQsIHJlbW92aW5nIGFueVxuICAgKiBjdXJyZW50bHkgb3BlbmVkIHNuYWNrIGJhcnMuXG4gICAqXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZSB0byBiZSBpbnN0YW50aWF0ZWQuXG4gICAqIEBwYXJhbSBjb25maWcgRXh0cmEgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNuYWNrIGJhci5cbiAgICovXG4gIHB1YmxpYyBvcGVuRnJvbVRlbXBsYXRlKFxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNvbmZpZz86IEJhb1NuYWNrQmFyQ29uZmlnXG4gICk6IEJhb1NuYWNrQmFyUmVmPEVtYmVkZGVkVmlld1JlZjxhbnk+PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgcmV0dXJuIHRoaXMuYXR0YWNoKHRlbXBsYXRlLCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgc25hY2tiYXIgd2l0aCBhIG1lc3NhZ2UgYW5kIGFuIG9wdGlvbmFsIGFjdGlvbi5cbiAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIG1lc3NhZ2UgdG8gc2hvdyBpbiB0aGUgc25hY2tiYXIuXG4gICAqIEBwYXJhbSB0b2FzdFR5cGUgVGhlIHR5cGUgb2Ygb2YgdG9hc3QgdG8gZGlzcGxheSB0aGUgc25hY2tiYXIuXG4gICAqIEBwYXJhbSBhY3Rpb25MYWJlbE9ySWNvbiBUaGUgbGFiZWwgb3IgaWNvbiBmb3IgdGhlIHNuYWNrYmFyIGFjdGlvbi5cbiAgICogQHBhcmFtIHNob3dDbG9zZSBJZiB0cnVlLCB0aGUgc25hY2tiYXIgd2lsbCByZXF1aXJlIHVzZXIgaW50ZXJhY3Rpb24gdG8gY2xvc2UuXG4gICAqIEBwYXJhbSBjb25maWcgQWRkaXRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzbmFja2Jhci5cbiAgICovXG4gIHB1YmxpYyBvcGVuKGNvbmZpZzogQmFvU25hY2tCYXJDb25maWcpOiBCYW9TbmFja0JhclJlZjxJVGV4dE9ubHlTbmFja0Jhcj4ge1xuICAgIGNvbnN0IF9jb25maWcgPSB7IC4uLnRoaXMuX2RlZmF1bHRDb25maWcsIC4uLmNvbmZpZyB9O1xuXG4gICAgLy8gU2luY2UgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFjY2VzcyB0byB0aGUgY29tcG9uZW50LCB3ZSBjYW5cbiAgICAvLyBvdmVycmlkZSB0aGUgZGF0YSB0byBwYXNzIGluIG91ciBvd24gbWVzc2FnZSwgYWN0aW9uIGFuZCB0eXBlLlxuICAgIF9jb25maWcuZGF0YSA9IHtcbiAgICAgIG1lc3NhZ2U6IF9jb25maWcubWVzc2FnZSxcbiAgICAgIHRvYXN0VHlwZTogX2NvbmZpZy50b2FzdFR5cGUsXG4gICAgICBhY3Rpb25MYWJlbE9ySWNvbjogX2NvbmZpZy5hY3Rpb25MYWJlbE9ySWNvbixcbiAgICAgIHNob3dDbG9zZTogX2NvbmZpZy5zaG93Q2xvc2VcbiAgICB9O1xuXG4gICAgaWYgKF9jb25maWcuc2hvd0Nsb3NlKSBfY29uZmlnLmR1cmF0aW9uID0gMDtcblxuICAgIGlmICghX2NvbmZpZy5hbm5vdW5jZW1lbnRNZXNzYWdlKSB7XG4gICAgICBfY29uZmlnLmFubm91bmNlbWVudE1lc3NhZ2UgPSBfY29uZmlnLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3BlbkZyb21Db21wb25lbnQodGhpcy5zaW1wbGVTbmFja0JhckNvbXBvbmVudCwgX2NvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBjdXJyZW50bHktdmlzaWJsZSBzbmFjayBiYXIuXG4gICAqL1xuICBwdWJsaWMgZGlzbWlzcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3BlbmVkU25hY2tCYXJSZWYpIHtcbiAgICAgIHRoaXMuX29wZW5lZFNuYWNrQmFyUmVmLmRpc21pc3MoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gT25seSBkaXNtaXNzIHRoZSBzbmFjayBiYXIgYXQgdGhlIGN1cnJlbnQgbGV2ZWwgb24gZGVzdHJveS5cbiAgICBpZiAodGhpcy5fc25hY2tCYXJSZWZBdFRoaXNMZXZlbCkge1xuICAgICAgdGhpcy5fc25hY2tCYXJSZWZBdFRoaXNMZXZlbC5kaXNtaXNzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSBzbmFjayBiYXIgY29udGFpbmVyIGNvbXBvbmVudCB0byB0aGUgb3ZlcmxheS5cbiAgICovXG4gIHByaXZhdGUgYXR0YWNoU25hY2tCYXJDb250YWluZXIoXG4gICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBjb25maWc6IEJhb1NuYWNrQmFyQ29uZmlnXG4gICk6IElCYW9TbmFja0JhckNvbnRhaW5lciB7XG4gICAgY29uc3QgdXNlckluamVjdG9yID1cbiAgICAgIGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcbiAgICBjb25zdCBpbmplY3RvciA9IG5ldyBQb3J0YWxJbmplY3RvcihcbiAgICAgIHVzZXJJbmplY3RvciB8fCB0aGlzLl9pbmplY3RvcixcbiAgICAgIG5ldyBXZWFrTWFwKFtbQmFvU25hY2tCYXJDb25maWcsIGNvbmZpZ11dKVxuICAgICk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgdGhpcy5zbmFja0JhckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPElCYW9TbmFja0JhckNvbnRhaW5lcj4gPVxuICAgICAgb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2Uuc25hY2tCYXJDb25maWcgPSBjb25maWc7XG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZXMgYSBuZXcgY29tcG9uZW50IG9yIGEgdGVtcGxhdGUgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHNuYWNrIGJhciBjb250YWluZXIuXG4gICAqL1xuICBwcml2YXRlIGF0dGFjaDxUPihcbiAgICBjb250ZW50OiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgdXNlckNvbmZpZz86IEJhb1NuYWNrQmFyQ29uZmlnXG4gICk6IEJhb1NuYWNrQmFyUmVmPFQgfCBFbWJlZGRlZFZpZXdSZWY8YW55Pj4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIC4uLm5ldyBCYW9TbmFja0JhckNvbmZpZygpLFxuICAgICAgLi4udGhpcy5fZGVmYXVsdENvbmZpZyxcbiAgICAgIC4uLnVzZXJDb25maWdcbiAgICB9O1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoY29uZmlnKTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmF0dGFjaFNuYWNrQmFyQ29udGFpbmVyKG92ZXJsYXlSZWYsIGNvbmZpZyk7XG4gICAgY29uc3Qgc25hY2tCYXJSZWYgPSBuZXcgQmFvU25hY2tCYXJSZWY8VCB8IEVtYmVkZGVkVmlld1JlZjxhbnk+PihcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlSZWZcbiAgICApO1xuXG4gICAgaWYgKGNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChjb250ZW50LCBudWxsISwge1xuICAgICAgICAkaW1wbGljaXQ6IGNvbmZpZy5kYXRhLFxuICAgICAgICBzbmFja0JhclJlZlxuICAgICAgfSBhcyBhbnkpO1xuXG4gICAgICBzbmFja0JhclJlZi5pbnN0YW5jZSA9IGNvbnRhaW5lci5hdHRhY2hUZW1wbGF0ZVBvcnRhbChwb3J0YWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3IoY29uZmlnLCBzbmFja0JhclJlZik7XG4gICAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbnRlbnQsIHVuZGVmaW5lZCwgaW5qZWN0b3IpO1xuICAgICAgY29uc3QgY29udGVudFJlZiA9IGNvbnRhaW5lci5hdHRhY2hDb21wb25lbnRQb3J0YWw8VD4ocG9ydGFsKTtcblxuICAgICAgLy8gV2UgY2FuJ3QgcGFzcyB0aGlzIHZpYSB0aGUgaW5qZWN0b3IsIGJlY2F1c2UgdGhlIGluamVjdG9yIGlzIGNyZWF0ZWQgZWFybGllci5cbiAgICAgIHNuYWNrQmFyUmVmLmluc3RhbmNlID0gY29udGVudFJlZi5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICB0aGlzLmFuaW1hdGVTbmFja0JhcihzbmFja0JhclJlZiwgY29uZmlnKTtcbiAgICB0aGlzLl9vcGVuZWRTbmFja0JhclJlZiA9IHNuYWNrQmFyUmVmO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLXJldHVyblxuICAgIHJldHVybiB0aGlzLl9vcGVuZWRTbmFja0JhclJlZjtcbiAgfVxuXG4gIC8qKiBBbmltYXRlcyB0aGUgb2xkIHNuYWNrIGJhciBvdXQgYW5kIHRoZSBuZXcgb25lIGluLiAqL1xuICBwcml2YXRlIGFuaW1hdGVTbmFja0JhcihcbiAgICBzbmFja0JhclJlZjogQmFvU25hY2tCYXJSZWY8YW55PixcbiAgICBjb25maWc6IEJhb1NuYWNrQmFyQ29uZmlnXG4gICkge1xuICAgIC8vIFdoZW4gdGhlIHNuYWNrYmFyIGlzIGRpc21pc3NlZCwgY2xlYXIgdGhlIHJlZmVyZW5jZSB0byBpdC5cbiAgICBzbmFja0JhclJlZi5hZnRlckRpc21pc3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBDbGVhciB0aGUgc25hY2tiYXIgcmVmIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gcmVwbGFjZWQgYnkgYSBuZXdlciBzbmFja2Jhci5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgIGlmICh0aGlzLl9vcGVuZWRTbmFja0JhclJlZiA9PSBzbmFja0JhclJlZikge1xuICAgICAgICB0aGlzLl9vcGVuZWRTbmFja0JhclJlZiA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb25maWcuYW5ub3VuY2VtZW50TWVzc2FnZSkge1xuICAgICAgICB0aGlzLl9saXZlLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5fb3BlbmVkU25hY2tCYXJSZWYpIHtcbiAgICAgIC8vIElmIGEgc25hY2sgYmFyIGlzIGFscmVhZHkgaW4gdmlldywgZGlzbWlzcyBpdCBhbmQgZW50ZXIgdGhlXG4gICAgICAvLyBuZXcgc25hY2sgYmFyIGFmdGVyIGV4aXQgYW5pbWF0aW9uIGlzIGNvbXBsZXRlLlxuICAgICAgdGhpcy5fb3BlbmVkU25hY2tCYXJSZWYuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBzbmFja0JhclJlZi5jb250YWluZXJJbnN0YW5jZS5lbnRlcigpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9vcGVuZWRTbmFja0JhclJlZi5kaXNtaXNzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vIHNuYWNrIGJhciBpcyBpbiB2aWV3LCBlbnRlciB0aGUgbmV3IHNuYWNrIGJhci5cbiAgICAgIHNuYWNrQmFyUmVmLmNvbnRhaW5lckluc3RhbmNlLmVudGVyKCk7XG4gICAgfVxuXG4gICAgLy8gSWYgYSBkaXNtaXNzIHRpbWVvdXQgaXMgcHJvdmlkZWQsIHNldCB1cCBkaXNtaXNzIGJhc2VkIG9uIGFmdGVyIHRoZSBzbmFja2JhciBpcyBvcGVuZWQuXG4gICAgaWYgKGNvbmZpZy5kdXJhdGlvbiAmJiBjb25maWcuZHVyYXRpb24gPiAwKSB7XG4gICAgICBzbmFja0JhclJlZlxuICAgICAgICAuYWZ0ZXJPcGVuZWQoKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHNuYWNrQmFyUmVmLmRpc21pc3NBZnRlcihjb25maWcuZHVyYXRpb24pKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmFubm91bmNlbWVudE1lc3NhZ2UpIHtcbiAgICAgIHZvaWQgdGhpcy5fbGl2ZS5hbm5vdW5jZShjb25maWcuYW5ub3VuY2VtZW50TWVzc2FnZSwgY29uZmlnLnBvbGl0ZW5lc3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IG92ZXJsYXkgYW5kIHBsYWNlcyBpdCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbi5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgdXNlci1zcGVjaWZpZWQgc25hY2sgYmFyIGNvbmZpZy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheShjb25maWc6IEJhb1NuYWNrQmFyQ29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKCk7XG4gICAgb3ZlcmxheUNvbmZpZy5kaXJlY3Rpb24gPSBjb25maWcuZGlyZWN0aW9uO1xuXG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKTtcbiAgICAvLyBTZXQgaG9yaXpvbnRhbCBwb3NpdGlvbi5cbiAgICBjb25zdCBpc1J0bCA9IGNvbmZpZy5kaXJlY3Rpb24gPT09ICdydGwnO1xuICAgIGNvbnN0IGlzTGVmdCA9XG4gICAgICBjb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnbGVmdCcgfHxcbiAgICAgIChjb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnc3RhcnQnICYmICFpc1J0bCkgfHxcbiAgICAgIChjb25maWcuaG9yaXpvbnRhbFBvc2l0aW9uID09PSAnZW5kJyAmJiBpc1J0bCk7XG4gICAgY29uc3QgaXNSaWdodCA9ICFpc0xlZnQgJiYgY29uZmlnLmhvcml6b250YWxQb3NpdGlvbiAhPT0gJ2NlbnRlcic7XG4gICAgaWYgKGlzTGVmdCkge1xuICAgICAgcG9zaXRpb25TdHJhdGVneS5sZWZ0KCcwJyk7XG4gICAgfSBlbHNlIGlmIChpc1JpZ2h0KSB7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LnJpZ2h0KCcwJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgfVxuICAgIC8vIFNldCBob3Jpem9udGFsIHBvc2l0aW9uLlxuICAgIGlmIChjb25maWcudmVydGljYWxQb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kudG9wKCcwJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kuYm90dG9tKCcwJyk7XG4gICAgfVxuXG4gICAgb3ZlcmxheUNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5ID0gcG9zaXRpb25TdHJhdGVneTtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbmplY3RvciB0byBiZSB1c2VkIGluc2lkZSBvZiBhIHNuYWNrIGJhciBjb21wb25lbnQuXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIHRoYXQgd2FzIHVzZWQgdG8gY3JlYXRlIHRoZSBzbmFjayBiYXIuXG4gICAqIEBwYXJhbSBzbmFja0JhclJlZiBSZWZlcmVuY2UgdG8gdGhlIHNuYWNrIGJhci5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgY29uZmlnOiBCYW9TbmFja0JhckNvbmZpZyxcbiAgICBzbmFja0JhclJlZjogQmFvU25hY2tCYXJSZWY8VD5cbiAgKTogUG9ydGFsSW5qZWN0b3Ige1xuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9XG4gICAgICBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3I7XG5cbiAgICByZXR1cm4gbmV3IFBvcnRhbEluamVjdG9yKFxuICAgICAgdXNlckluamVjdG9yIHx8IHRoaXMuX2luamVjdG9yLFxuICAgICAgbmV3IFdlYWtNYXA8YW55LCBhbnk+KFtcbiAgICAgICAgW0Jhb1NuYWNrQmFyUmVmLCBzbmFja0JhclJlZl0sXG4gICAgICAgIFtCQU9fU05BQ0tfQkFSX0RBVEEsIGNvbmZpZy5kYXRhXVxuICAgICAgXSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
export * from './module';
|
|
7
|
-
export * from './summary.component';
|
|
8
|
-
export * from './list-summary.component';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvc3VtbWFyeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3N1bW1hcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC1zdW1tYXJ5LmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class BaoListSummaryItem {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoListSummaryItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoListSummaryItem, selector: "bao-list-summary-item, [bao-list-summary-item], [baoListSummaryItem]", host: { attributes: { "role": "listitem" }, classAttribute: "bao-list-summary-item" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: ["@charset \"UTF-8\";.bao-list-summary-item{font-weight:600;color:#000}.bao-list-summary-item:before{content:\"\\2022\";color:#d3310a;font-weight:700;display:inline-block;width:1em;margin-left:-1em}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoListSummaryItem, decorators: [{
|
|
13
|
-
type: Component,
|
|
14
|
-
args: [{ selector: 'bao-list-summary-item, [bao-list-summary-item], [baoListSummaryItem]', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
15
|
-
class: 'bao-list-summary-item',
|
|
16
|
-
role: 'listitem'
|
|
17
|
-
}, styles: ["@charset \"UTF-8\";.bao-list-summary-item{font-weight:600;color:#000}.bao-list-summary-item:before{content:\"\\2022\";color:#d3310a;font-weight:700;display:inline-block;width:1em;margin-left:-1em}\n"] }]
|
|
18
|
-
}] });
|
|
19
|
-
export class BaoListSummary {
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoListSummary, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoListSummary, selector: "bao-list-summary, [bao-list-summary], [baoListSummary]", host: { attributes: { "role": "list" }, classAttribute: "bao-list-summary" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".bao-list-summary{padding-left:2rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoListSummary, decorators: [{
|
|
24
|
-
type: Component,
|
|
25
|
-
args: [{ selector: 'bao-list-summary, [bao-list-summary], [baoListSummary]', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
26
|
-
class: 'bao-list-summary',
|
|
27
|
-
role: 'list'
|
|
28
|
-
}, styles: [".bao-list-summary{padding-left:2rem}\n"] }]
|
|
29
|
-
}] });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9zdW1tYXJ5L2xpc3Qtc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUFjdkIsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO21HQUFsQixrQkFBa0IsbU1BVG5CLDJCQUEyQjs7NEZBUzFCLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFFTixzRUFBc0UsWUFDOUQsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSx1QkFBdUI7d0JBQzlCLElBQUksRUFBRSxVQUFVO3FCQUNqQjs7QUFlSCxNQUFNLE9BQU8sY0FBYzsrR0FBZCxjQUFjO21HQUFkLGNBQWMsNEtBVGYsMkJBQTJCOzs0RkFTMUIsY0FBYztrQkFYMUIsU0FBUzsrQkFDRSx3REFBd0QsWUFDeEQsMkJBQTJCLGlCQUV0QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLElBQUksRUFBRSxNQUFNO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOlxuICAgICdiYW8tbGlzdC1zdW1tYXJ5LWl0ZW0sIFtiYW8tbGlzdC1zdW1tYXJ5LWl0ZW1dLCBbYmFvTGlzdFN1bW1hcnlJdGVtXScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIHN0eWxlVXJsczogWycuL2xpc3Qtc3VtbWFyeS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYmFvLWxpc3Qtc3VtbWFyeS1pdGVtJyxcbiAgICByb2xlOiAnbGlzdGl0ZW0nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvTGlzdFN1bW1hcnlJdGVtIHt9XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhby1saXN0LXN1bW1hcnksIFtiYW8tbGlzdC1zdW1tYXJ5XSwgW2Jhb0xpc3RTdW1tYXJ5XScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIHN0eWxlczogWycuYmFvLWxpc3Qtc3VtbWFyeSB7IHBhZGRpbmctbGVmdDoycmVtIH0nXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2Jhby1saXN0LXN1bW1hcnknLFxuICAgIHJvbGU6ICdsaXN0J1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEJhb0xpc3RTdW1tYXJ5IHt9XG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { BaoCommonComponentsModule } from '../common-components';
|
|
9
|
-
import { BaoSummaryComponent, BaoSummaryDescription } from './summary.component';
|
|
10
|
-
import { BaoListSummary, BaoListSummaryItem } from './list-summary.component';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
const SUMMARY_DIRECTIVES = [
|
|
13
|
-
BaoSummaryComponent,
|
|
14
|
-
BaoSummaryDescription,
|
|
15
|
-
BaoListSummary,
|
|
16
|
-
BaoListSummaryItem
|
|
17
|
-
];
|
|
18
|
-
export class BaoSummaryModule {
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryModule, declarations: [BaoSummaryComponent,
|
|
21
|
-
BaoSummaryDescription,
|
|
22
|
-
BaoListSummary,
|
|
23
|
-
BaoListSummaryItem], imports: [CommonModule, BaoCommonComponentsModule], exports: [BaoSummaryComponent,
|
|
24
|
-
BaoSummaryDescription,
|
|
25
|
-
BaoListSummary,
|
|
26
|
-
BaoListSummaryItem] }); }
|
|
27
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryModule, imports: [CommonModule, BaoCommonComponentsModule] }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryModule, decorators: [{
|
|
30
|
-
type: NgModule,
|
|
31
|
-
args: [{
|
|
32
|
-
imports: [CommonModule, BaoCommonComponentsModule],
|
|
33
|
-
declarations: SUMMARY_DIRECTIVES,
|
|
34
|
-
exports: SUMMARY_DIRECTIVES
|
|
35
|
-
}]
|
|
36
|
-
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3N1bW1hcnkvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUN0QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFOUUsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixtQkFBbUI7SUFDbkIscUJBQXFCO0lBQ3JCLGNBQWM7SUFDZCxrQkFBa0I7Q0FDbkIsQ0FBQztBQU9GLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLGlCQVgzQixtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLGNBQWM7WUFDZCxrQkFBa0IsYUFJUixZQUFZLEVBQUUseUJBQXlCLGFBUGpELG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGtCQUFrQjtnSEFRUCxnQkFBZ0IsWUFKakIsWUFBWSxFQUFFLHlCQUF5Qjs7NEZBSXRDLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUseUJBQXlCLENBQUM7b0JBQ2xELFlBQVksRUFBRSxrQkFBa0I7b0JBQ2hDLE9BQU8sRUFBRSxrQkFBa0I7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhb0NvbW1vbkNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuLi9jb21tb24tY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBCYW9TdW1tYXJ5Q29tcG9uZW50LFxuICBCYW9TdW1tYXJ5RGVzY3JpcHRpb25cbn0gZnJvbSAnLi9zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW9MaXN0U3VtbWFyeSwgQmFvTGlzdFN1bW1hcnlJdGVtIH0gZnJvbSAnLi9saXN0LXN1bW1hcnkuY29tcG9uZW50JztcblxuY29uc3QgU1VNTUFSWV9ESVJFQ1RJVkVTID0gW1xuICBCYW9TdW1tYXJ5Q29tcG9uZW50LFxuICBCYW9TdW1tYXJ5RGVzY3JpcHRpb24sXG4gIEJhb0xpc3RTdW1tYXJ5LFxuICBCYW9MaXN0U3VtbWFyeUl0ZW1cbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhb0NvbW1vbkNvbXBvbmVudHNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFNVTU1BUllfRElSRUNUSVZFUyxcbiAgZXhwb3J0czogU1VNTUFSWV9ESVJFQ1RJVkVTXG59KVxuZXhwb3J0IGNsYXNzIEJhb1N1bW1hcnlNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
import { ChangeDetectionStrategy, Component, Directive, Input, ViewEncapsulation } from '@angular/core';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
let summaryUniqueId = 0;
|
|
9
|
-
export class BaoSummaryComponent {
|
|
10
|
-
constructor(elementRef) {
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
/**
|
|
13
|
-
* Set display mode
|
|
14
|
-
* RESPONSIVE (viewport width <=> is 576px)
|
|
15
|
-
* COMPACT (viewport width < 576px)
|
|
16
|
-
*/
|
|
17
|
-
this.displayMode = "responsive" /* EDisplayMode.RESPONSIVE */;
|
|
18
|
-
/**
|
|
19
|
-
* Initialize the ID for summary
|
|
20
|
-
*/
|
|
21
|
-
this._uniqueId = `bao-summary-${++summaryUniqueId}`;
|
|
22
|
-
if (!this.id) {
|
|
23
|
-
this.id = this._uniqueId;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
get nativeElement() {
|
|
27
|
-
return this.elementRef.nativeElement;
|
|
28
|
-
}
|
|
29
|
-
ngOnInit() {
|
|
30
|
-
this.ariaDescribedbyError = `${this.id}-ariadescribedby-error`;
|
|
31
|
-
this.ariaDescribedbyGuidingText = `${this.id}-ariadescribedby-guiding-text`;
|
|
32
|
-
this.ariaLabelledby = `${this.id}-arialabelledby`;
|
|
33
|
-
}
|
|
34
|
-
ngAfterViewInit() {
|
|
35
|
-
this.setAriaDescribedByToDescription();
|
|
36
|
-
}
|
|
37
|
-
setAriaDescribedByToDescription() {
|
|
38
|
-
const baoLabel = this.elementNode('BAO-LABEL');
|
|
39
|
-
const baoError = this.elementNode('BAO-ERROR');
|
|
40
|
-
const baoGuidingText = this.elementNode('BAO-GUIDING-TEXT');
|
|
41
|
-
const summaryDiv = this.elementNode('DIV');
|
|
42
|
-
if (summaryDiv) {
|
|
43
|
-
const summaryText = this.elementNode('DIV', summaryDiv);
|
|
44
|
-
if (summaryText && baoLabel) {
|
|
45
|
-
baoLabel.setAttribute('id', this.ariaLabelledby);
|
|
46
|
-
summaryText.setAttribute('aria-labelledby', this.ariaLabelledby);
|
|
47
|
-
}
|
|
48
|
-
if (summaryText && baoGuidingText) {
|
|
49
|
-
baoGuidingText.setAttribute('id', this.ariaDescribedbyGuidingText);
|
|
50
|
-
summaryText.setAttribute('aria-describedby', this.ariaDescribedbyGuidingText);
|
|
51
|
-
}
|
|
52
|
-
if (summaryText && baoError) {
|
|
53
|
-
baoError.setAttribute('id', this.ariaDescribedbyError);
|
|
54
|
-
this.attribues = baoGuidingText
|
|
55
|
-
? `${this.ariaDescribedbyError}, ${this.ariaDescribedbyGuidingText}`
|
|
56
|
-
: this.ariaDescribedbyError;
|
|
57
|
-
summaryText.setAttribute('aria-describedby', this.attribues);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
elementNode(name, nativeElt) {
|
|
62
|
-
const childNodes = nativeElt
|
|
63
|
-
? Array.from(nativeElt.childNodes)
|
|
64
|
-
: Array.from(this.nativeElement.childNodes);
|
|
65
|
-
const element = childNodes.find(x => x.nodeName === name);
|
|
66
|
-
return element;
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoSummaryComponent, selector: "bao-summary, [bao-summary], [baoSummary]", inputs: { displayMode: "displayMode", id: "id" }, host: { properties: { "class.bao-displaymode-compact": "displayMode === \"compact\"" }, classAttribute: "bao-summary" }, ngImport: i0, template: "<ng-content select=\"bao-label\"></ng-content>\n<ng-content select=\"bao-guiding-text, [bao-guiding-text]\"></ng-content>\n\n<div class=\"bao-summary-content\">\n <div class=\"bao-summary-text\">\n <ng-content select=\"bao-title-text, [bao-title-text]\"></ng-content>\n <ng-content select=\"bao-summary-description\"></ng-content>\n <ng-content\n select=\"bao-list-summary, [bao-list-summary], [baoListSummary]\"\n ></ng-content>\n </div>\n <ng-content select=\"button[bao-button]\"></ng-content>\n</div>\n<ng-content select=\"bao-error, [bao-error]\"></ng-content>\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%}}.bao-summary .bao-label,.bao-summary .bao-guiding-text{margin:0 0 .5rem}.bao-summary .bao-summary-content{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;border:.063rem solid #ced4da;box-sizing:border-box;border-radius:.25rem;padding:.5rem .5rem 1rem 1rem}.bao-summary .bao-summary-content .bao-summary-text{display:flex;flex-direction:column;padding:.5rem .5rem 0 0}.bao-summary .bao-summary-content .bao-summary-text .bao-summary-description{font-weight:400;font-size:1rem;line-height:1.5rem}.bao-summary .bao-summary-content .bao-summary-text .bao-summary-description p{margin-bottom:0}.bao-summary .bao-summary-content button.buttonText{display:none}.bao-summary .bao-summary-content button.buttonIcon{margin-left:.5rem}@media (min-width: 576px){.bao-summary:not(.bao-displaymode-compact) .bao-summary-content{padding:1.5rem 1.5rem 2rem 2rem}.bao-summary:not(.bao-displaymode-compact) .bao-summary-content button.buttonText{display:block;margin-left:.5rem}.bao-summary:not(.bao-displaymode-compact) .bao-summary-content button.buttonIcon{display:none}}.bao-summary .bao-error{margin-top:.5rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryComponent, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{ selector: 'bao-summary, [bao-summary], [baoSummary]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
74
|
-
class: 'bao-summary',
|
|
75
|
-
'[class.bao-displaymode-compact]': 'displayMode === "compact"'
|
|
76
|
-
}, template: "<ng-content select=\"bao-label\"></ng-content>\n<ng-content select=\"bao-guiding-text, [bao-guiding-text]\"></ng-content>\n\n<div class=\"bao-summary-content\">\n <div class=\"bao-summary-text\">\n <ng-content select=\"bao-title-text, [bao-title-text]\"></ng-content>\n <ng-content select=\"bao-summary-description\"></ng-content>\n <ng-content\n select=\"bao-list-summary, [bao-list-summary], [baoListSummary]\"\n ></ng-content>\n </div>\n <ng-content select=\"button[bao-button]\"></ng-content>\n</div>\n<ng-content select=\"bao-error, [bao-error]\"></ng-content>\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%}}.bao-summary .bao-label,.bao-summary .bao-guiding-text{margin:0 0 .5rem}.bao-summary .bao-summary-content{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;border:.063rem solid #ced4da;box-sizing:border-box;border-radius:.25rem;padding:.5rem .5rem 1rem 1rem}.bao-summary .bao-summary-content .bao-summary-text{display:flex;flex-direction:column;padding:.5rem .5rem 0 0}.bao-summary .bao-summary-content .bao-summary-text .bao-summary-description{font-weight:400;font-size:1rem;line-height:1.5rem}.bao-summary .bao-summary-content .bao-summary-text .bao-summary-description p{margin-bottom:0}.bao-summary .bao-summary-content button.buttonText{display:none}.bao-summary .bao-summary-content button.buttonIcon{margin-left:.5rem}@media (min-width: 576px){.bao-summary:not(.bao-displaymode-compact) .bao-summary-content{padding:1.5rem 1.5rem 2rem 2rem}.bao-summary:not(.bao-displaymode-compact) .bao-summary-content button.buttonText{display:block;margin-left:.5rem}.bao-summary:not(.bao-displaymode-compact) .bao-summary-content button.buttonIcon{display:none}}.bao-summary .bao-error{margin-top:.5rem}\n"] }]
|
|
77
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { displayMode: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], id: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}] } });
|
|
82
|
-
export class BaoSummaryDescription {
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
84
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: BaoSummaryDescription, selector: "bao-summary-description, [bao-summary-description], [baoSummaryDescription]", host: { classAttribute: "bao-summary-description" }, ngImport: i0 }); }
|
|
85
|
-
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSummaryDescription, decorators: [{
|
|
87
|
-
type: Directive,
|
|
88
|
-
args: [{
|
|
89
|
-
selector: 'bao-summary-description, [bao-summary-description], [baoSummaryDescription]',
|
|
90
|
-
host: { class: 'bao-summary-description' }
|
|
91
|
-
}]
|
|
92
|
-
}] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvc3VtbWFyeS9zdW1tYXJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9zdW1tYXJ5L3N1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFFVCxLQUFLLEVBQ0wsaUJBQWlCLEVBR2xCLE1BQU0sZUFBZSxDQUFDOztBQUd2QixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7QUFZeEIsTUFBTSxPQUFPLG1CQUFtQjtJQXFDOUIsWUFBb0IsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFwQ3ZEOzs7O1dBSUc7UUFDYSxnQkFBVyw4Q0FBMkI7UUF3QnREOztXQUVHO1FBQ0ssY0FBUyxHQUFHLGVBQWUsRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUtyRCxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLHdCQUF3QixDQUFDO1FBQy9ELElBQUksQ0FBQywwQkFBMEIsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLCtCQUErQixDQUFDO1FBRTVFLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUNwRCxDQUFD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OlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRURpc3BsYXlNb2RlIH0gZnJvbSAnLi4vc2hhcmVkJztcblxubGV0IHN1bW1hcnlVbmlxdWVJZCA9IDA7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tc3VtbWFyeSwgW2Jhby1zdW1tYXJ5XSwgW2Jhb1N1bW1hcnldJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tc3VtbWFyeScsXG4gICAgJ1tjbGFzcy5iYW8tZGlzcGxheW1vZGUtY29tcGFjdF0nOiAnZGlzcGxheU1vZGUgPT09IFwiY29tcGFjdFwiJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEJhb1N1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAvKipcbiAgICogU2V0IGRpc3BsYXkgbW9kZVxuICAgKiBSRVNQT05TSVZFICh2aWV3cG9ydCB3aWR0aCA8PT4gaXMgNTc2cHgpXG4gICAqIENPTVBBQ1QgKHZpZXdwb3J0IHdpZHRoIDwgNTc2cHgpXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheU1vZGUgPSBFRGlzcGxheU1vZGUuUkVTUE9OU0lWRTtcblxuICAvKipcbiAgICogU2V0IHZhbHVlIG9mIHVuaXF1ZSBJRCBmb3IgYmFvLWxhYmVsXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFyaWEtZGVzY3JpYmViZHktZXJyb3IgaWQgZm9yIHdlYiBhY2Nlc3NpYmlsaXR5XG4gICAqIG9ubHkgd2hlbiBlcnJvciBzZWN0aW9uIGFwcGVhcnNcbiAgICovXG4gIHB1YmxpYyBhcmlhRGVzY3JpYmVkYnlFcnJvcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFyaWEtZGVzY3JpYmViZHktdGV4dCBpZCBmb3Igd2ViIGFjY2Vzc2liaWxpdHlcbiAgICogb25seSB3aGVuIHdlIGhhdmUgZGUgZ3VpZGFuY2UgdGV4dFxuICAgKi9cbiAgcHVibGljIGFyaWFEZXNjcmliZWRieUd1aWRpbmdUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJpYS1sYWJlbGxlZGJ5IGlkIGZvciB3ZWIgYWNjZXNzaWJpbGl0eVxuICAgKi9cbiAgcHVibGljIGFyaWFMYWJlbGxlZGJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBJRCBmb3Igc3VtbWFyeVxuICAgKi9cbiAgcHJpdmF0ZSBfdW5pcXVlSWQgPSBgYmFvLXN1bW1hcnktJHsrK3N1bW1hcnlVbmlxdWVJZH1gO1xuXG4gIHByaXZhdGUgYXR0cmlidWVzOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIGlmICghdGhpcy5pZCkge1xuICAgICAgdGhpcy5pZCA9IHRoaXMuX3VuaXF1ZUlkO1xuICAgIH1cbiAgfVxuXG4gIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlFcnJvciA9IGAke3RoaXMuaWR9LWFyaWFkZXNjcmliZWRieS1lcnJvcmA7XG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkYnlHdWlkaW5nVGV4dCA9IGAke3RoaXMuaWR9LWFyaWFkZXNjcmliZWRieS1ndWlkaW5nLXRleHRgO1xuXG4gICAgdGhpcy5hcmlhTGFiZWxsZWRieSA9IGAke3RoaXMuaWR9LWFyaWFsYWJlbGxlZGJ5YDtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXRBcmlhRGVzY3JpYmVkQnlUb0Rlc2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QXJpYURlc2NyaWJlZEJ5VG9EZXNjcmlwdGlvbigpIHtcbiAgICBjb25zdCBiYW9MYWJlbCA9IHRoaXMuZWxlbWVudE5vZGUoJ0JBTy1MQUJFTCcpO1xuICAgIGNvbnN0IGJhb0Vycm9yID0gdGhpcy5lbGVtZW50Tm9kZSgnQkFPLUVSUk9SJyk7XG4gICAgY29uc3QgYmFvR3VpZGluZ1RleHQgPSB0aGlzLmVsZW1lbnROb2RlKCdCQU8tR1VJRElORy1URVhUJyk7XG4gICAgY29uc3Qgc3VtbWFyeURpdiA9IHRoaXMuZWxlbWVudE5vZGUoJ0RJVicpO1xuXG4gICAgaWYgKHN1bW1hcnlEaXYpIHtcbiAgICAgIGNvbnN0IHN1bW1hcnlUZXh0ID0gdGhpcy5lbGVtZW50Tm9kZSgnRElWJywgc3VtbWFyeURpdik7XG5cbiAgICAgIGlmIChzdW1tYXJ5VGV4dCAmJiBiYW9MYWJlbCkge1xuICAgICAgICAoYmFvTGFiZWwgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmFyaWFMYWJlbGxlZGJ5KTtcbiAgICAgICAgKHN1bW1hcnlUZXh0IGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieScsXG4gICAgICAgICAgdGhpcy5hcmlhTGFiZWxsZWRieVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3VtbWFyeVRleHQgJiYgYmFvR3VpZGluZ1RleHQpIHtcbiAgICAgICAgKGJhb0d1aWRpbmdUZXh0IGFzIEhUTUxFbGVtZW50KS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ2lkJyxcbiAgICAgICAgICB0aGlzLmFyaWFEZXNjcmliZWRieUd1aWRpbmdUZXh0XG4gICAgICAgICk7XG4gICAgICAgIChzdW1tYXJ5VGV4dCBhcyBIVE1MRWxlbWVudCkuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JyxcbiAgICAgICAgICB0aGlzLmFyaWFEZXNjcmliZWRieUd1aWRpbmdUZXh0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdW1tYXJ5VGV4dCAmJiBiYW9FcnJvcikge1xuICAgICAgICAoYmFvRXJyb3IgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmFyaWFEZXNjcmliZWRieUVycm9yKTtcbiAgICAgICAgdGhpcy5hdHRyaWJ1ZXMgPSBiYW9HdWlkaW5nVGV4dFxuICAgICAgICAgID8gYCR7dGhpcy5hcmlhRGVzY3JpYmVkYnlFcnJvcn0sICR7dGhpcy5hcmlhRGVzY3JpYmVkYnlHdWlkaW5nVGV4dH1gXG4gICAgICAgICAgOiB0aGlzLmFyaWFEZXNjcmliZWRieUVycm9yO1xuICAgICAgICAoc3VtbWFyeVRleHQgYXMgSFRNTEVsZW1lbnQpLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAnYXJpYS1kZXNjcmliZWRieScsXG4gICAgICAgICAgdGhpcy5hdHRyaWJ1ZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVsZW1lbnROb2RlKG5hbWU6IHN0cmluZywgbmF0aXZlRWx0PzogTm9kZSk6IE5vZGUge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBuYXRpdmVFbHRcbiAgICAgID8gQXJyYXkuZnJvbShuYXRpdmVFbHQuY2hpbGROb2RlcylcbiAgICAgIDogQXJyYXkuZnJvbSh0aGlzLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgY29uc3QgZWxlbWVudCA9IGNoaWxkTm9kZXMuZmluZCh4ID0+IHgubm9kZU5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOlxuICAgICdiYW8tc3VtbWFyeS1kZXNjcmlwdGlvbiwgW2Jhby1zdW1tYXJ5LWRlc2NyaXB0aW9uXSwgW2Jhb1N1bW1hcnlEZXNjcmlwdGlvbl0nLFxuICBob3N0OiB7IGNsYXNzOiAnYmFvLXN1bW1hcnktZGVzY3JpcHRpb24nIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvU3VtbWFyeURlc2NyaXB0aW9uIHt9XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJiYW8tbGFiZWxcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJiYW8tZ3VpZGluZy10ZXh0LCBbYmFvLWd1aWRpbmctdGV4dF1cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJiYW8tc3VtbWFyeS1jb250ZW50XCI+XG4gIDxkaXYgY2xhc3M9XCJiYW8tc3VtbWFyeS10ZXh0XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvLXRpdGxlLXRleHQsIFtiYW8tdGl0bGUtdGV4dF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvLXN1bW1hcnktZGVzY3JpcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cImJhby1saXN0LXN1bW1hcnksIFtiYW8tbGlzdC1zdW1tYXJ5XSwgW2Jhb0xpc3RTdW1tYXJ5XVwiXG4gICAgPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImJ1dHRvbltiYW8tYnV0dG9uXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvLWVycm9yLCBbYmFvLWVycm9yXVwiPjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
export * from './module';
|
|
7
|
-
export * from './system-header.component';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvc3lzdGVtLWhlYWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zeXN0ZW0taGVhZGVyLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2026 Ville de Montreal. All rights reserved.
|
|
3
|
-
* Licensed under the MIT license.
|
|
4
|
-
* See LICENSE file in the project root for full license information.
|
|
5
|
-
*/
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { BaoBackNavigationInsert, BaoSystemHeaderComponent, BaoBackNavigationComponent } from './system-header.component';
|
|
9
|
-
import { BaoIconModule } from '../icon';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
const SYSTEM_HEADER_DIRECTIVES = [
|
|
12
|
-
BaoSystemHeaderComponent,
|
|
13
|
-
BaoBackNavigationInsert,
|
|
14
|
-
BaoBackNavigationComponent
|
|
15
|
-
];
|
|
16
|
-
export class BaoSystemHeaderModule {
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderModule, declarations: [BaoSystemHeaderComponent,
|
|
19
|
-
BaoBackNavigationInsert,
|
|
20
|
-
BaoBackNavigationComponent], imports: [CommonModule, BaoIconModule], exports: [BaoSystemHeaderComponent,
|
|
21
|
-
BaoBackNavigationInsert,
|
|
22
|
-
BaoBackNavigationComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderModule, imports: [CommonModule, BaoIconModule] }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderModule, decorators: [{
|
|
26
|
-
type: NgModule,
|
|
27
|
-
args: [{
|
|
28
|
-
imports: [CommonModule, BaoIconModule],
|
|
29
|
-
declarations: [SYSTEM_HEADER_DIRECTIVES],
|
|
30
|
-
exports: [SYSTEM_HEADER_DIRECTIVES]
|
|
31
|
-
}]
|
|
32
|
-
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3N5c3RlbS1oZWFkZXIvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QiwwQkFBMEIsRUFDM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV4QyxNQUFNLHdCQUF3QixHQUFHO0lBQy9CLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsMEJBQTBCO0NBQzNCLENBQUM7QUFPRixNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7Z0hBQXJCLHFCQUFxQixpQkFWaEMsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2QiwwQkFBMEIsYUFJaEIsWUFBWSxFQUFFLGFBQWEsYUFOckMsd0JBQXdCO1lBQ3hCLHVCQUF1QjtZQUN2QiwwQkFBMEI7Z0hBUWYscUJBQXFCLFlBSnRCLFlBQVksRUFBRSxhQUFhOzs0RkFJMUIscUJBQXFCO2tCQUxqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI2IFZpbGxlIGRlIE1vbnRyZWFsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFvQmFja05hdmlnYXRpb25JbnNlcnQsXG4gIEJhb1N5c3RlbUhlYWRlckNvbXBvbmVudCxcbiAgQmFvQmFja05hdmlnYXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9zeXN0ZW0taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYW9JY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbic7XG5cbmNvbnN0IFNZU1RFTV9IRUFERVJfRElSRUNUSVZFUyA9IFtcbiAgQmFvU3lzdGVtSGVhZGVyQ29tcG9uZW50LFxuICBCYW9CYWNrTmF2aWdhdGlvbkluc2VydCxcbiAgQmFvQmFja05hdmlnYXRpb25Db21wb25lbnRcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhb0ljb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtTWVNURU1fSEVBREVSX0RJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbU1lTVEVNX0hFQURFUl9ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBCYW9TeXN0ZW1IZWFkZXJNb2R1bGUge31cbiJdfQ==
|