@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.
Files changed (102) hide show
  1. package/fesm2022/villedemontreal-angular-ui.mjs +421 -372
  2. package/fesm2022/villedemontreal-angular-ui.mjs.map +1 -1
  3. package/lib/dropdown-menu/dropdown-menu.component.d.ts +16 -9
  4. package/lib/modal/modal-container.d.ts +1 -1
  5. package/lib/modal/modal.d.ts +1 -1
  6. package/package.json +5 -7
  7. package/esm2022/lib/alert/alert.component.mjs +0 -169
  8. package/esm2022/lib/alert/index.mjs +0 -8
  9. package/esm2022/lib/alert/module.mjs +0 -41
  10. package/esm2022/lib/avatar/avatar.component.mjs +0 -102
  11. package/esm2022/lib/avatar/index.mjs +0 -8
  12. package/esm2022/lib/avatar/module.mjs +0 -24
  13. package/esm2022/lib/badge/badge.component.mjs +0 -27
  14. package/esm2022/lib/badge/index.mjs +0 -8
  15. package/esm2022/lib/badge/module.mjs +0 -24
  16. package/esm2022/lib/bao.module.mjs +0 -124
  17. package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +0 -36
  18. package/esm2022/lib/breadcrumb/index.mjs +0 -8
  19. package/esm2022/lib/breadcrumb/module.mjs +0 -25
  20. package/esm2022/lib/button/button.component.mjs +0 -100
  21. package/esm2022/lib/button/index.mjs +0 -8
  22. package/esm2022/lib/button/module.mjs +0 -25
  23. package/esm2022/lib/card/card.component.mjs +0 -94
  24. package/esm2022/lib/card/index.mjs +0 -8
  25. package/esm2022/lib/card/module.mjs +0 -38
  26. package/esm2022/lib/checkbox/checkbox-group.component.mjs +0 -58
  27. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -304
  28. package/esm2022/lib/checkbox/index.mjs +0 -9
  29. package/esm2022/lib/checkbox/module.mjs +0 -35
  30. package/esm2022/lib/common-components/error-text/errorText.component.mjs +0 -16
  31. package/esm2022/lib/common-components/guiding-text/guidingText.component.mjs +0 -16
  32. package/esm2022/lib/common-components/index.mjs +0 -11
  33. package/esm2022/lib/common-components/label-text/labelText.component.mjs +0 -22
  34. package/esm2022/lib/common-components/module.mjs +0 -38
  35. package/esm2022/lib/common-components/title-text/titleText.component.mjs +0 -16
  36. package/esm2022/lib/core/breakpoints.mjs +0 -13
  37. package/esm2022/lib/core/colors.mjs +0 -25
  38. package/esm2022/lib/core/index.mjs +0 -8
  39. package/esm2022/lib/dropdown-menu/dropdown-menu.component.mjs +0 -573
  40. package/esm2022/lib/dropdown-menu/index.mjs +0 -8
  41. package/esm2022/lib/dropdown-menu/module.mjs +0 -47
  42. package/esm2022/lib/file/file-input.component.mjs +0 -320
  43. package/esm2022/lib/file/file-intl.mjs +0 -65
  44. package/esm2022/lib/file/file-preview.component.mjs +0 -96
  45. package/esm2022/lib/file/index.mjs +0 -10
  46. package/esm2022/lib/file/module.mjs +0 -56
  47. package/esm2022/lib/header-info/header-info.component.mjs +0 -104
  48. package/esm2022/lib/header-info/index.mjs +0 -8
  49. package/esm2022/lib/header-info/module.mjs +0 -41
  50. package/esm2022/lib/hyperlink/hyperlink.component.mjs +0 -84
  51. package/esm2022/lib/hyperlink/index.mjs +0 -8
  52. package/esm2022/lib/hyperlink/module.mjs +0 -24
  53. package/esm2022/lib/icon/bao-icon-registry.mjs +0 -47
  54. package/esm2022/lib/icon/icon.component.mjs +0 -158
  55. package/esm2022/lib/icon/icons-dictionary.mjs +0 -129
  56. package/esm2022/lib/icon/index.mjs +0 -8
  57. package/esm2022/lib/icon/module.mjs +0 -24
  58. package/esm2022/lib/list/index.mjs +0 -8
  59. package/esm2022/lib/list/list.component.mjs +0 -73
  60. package/esm2022/lib/list/module.mjs +0 -38
  61. package/esm2022/lib/message-bar/index.mjs +0 -8
  62. package/esm2022/lib/message-bar/message-bar.component.mjs +0 -87
  63. package/esm2022/lib/message-bar/module.mjs +0 -26
  64. package/esm2022/lib/modal/index.mjs +0 -12
  65. package/esm2022/lib/modal/modal-config.mjs +0 -73
  66. package/esm2022/lib/modal/modal-container.mjs +0 -240
  67. package/esm2022/lib/modal/modal-directives.mjs +0 -84
  68. package/esm2022/lib/modal/modal-ref.mjs +0 -226
  69. package/esm2022/lib/modal/modal.mjs +0 -344
  70. package/esm2022/lib/modal/module.mjs +0 -29
  71. package/esm2022/lib/pagination/index.mjs +0 -8
  72. package/esm2022/lib/pagination/module.mjs +0 -25
  73. package/esm2022/lib/pagination/pagination.component.mjs +0 -217
  74. package/esm2022/lib/radio/index.mjs +0 -9
  75. package/esm2022/lib/radio/module.mjs +0 -54
  76. package/esm2022/lib/radio/radio-group.component.mjs +0 -247
  77. package/esm2022/lib/radio/radio.component.mjs +0 -291
  78. package/esm2022/lib/shared/enum/display-mode.mjs +0 -2
  79. package/esm2022/lib/shared/index.mjs +0 -7
  80. package/esm2022/lib/snack-bar/index.mjs +0 -12
  81. package/esm2022/lib/snack-bar/module.mjs +0 -51
  82. package/esm2022/lib/snack-bar/simple-snack-bar.component.mjs +0 -92
  83. package/esm2022/lib/snack-bar/snack-bar-animations.mjs +0 -28
  84. package/esm2022/lib/snack-bar/snack-bar-config.mjs +0 -37
  85. package/esm2022/lib/snack-bar/snack-bar-container.mjs +0 -277
  86. package/esm2022/lib/snack-bar/snack-bar-ref.mjs +0 -75
  87. package/esm2022/lib/snack-bar/snack-bar.mjs +0 -251
  88. package/esm2022/lib/summary/index.mjs +0 -9
  89. package/esm2022/lib/summary/list-summary.component.mjs +0 -30
  90. package/esm2022/lib/summary/module.mjs +0 -37
  91. package/esm2022/lib/summary/summary.component.mjs +0 -93
  92. package/esm2022/lib/system-header/index.mjs +0 -8
  93. package/esm2022/lib/system-header/module.mjs +0 -33
  94. package/esm2022/lib/system-header/system-header.component.mjs +0 -130
  95. package/esm2022/lib/tabs/index.mjs +0 -8
  96. package/esm2022/lib/tabs/module.mjs +0 -35
  97. package/esm2022/lib/tabs/tabs.component.mjs +0 -295
  98. package/esm2022/lib/tag/index.mjs +0 -8
  99. package/esm2022/lib/tag/module.mjs +0 -24
  100. package/esm2022/lib/tag/tag.component.mjs +0 -75
  101. package/esm2022/public-api.mjs +0 -31
  102. package/esm2022/villedemontreal-angular-ui.mjs +0 -5
@@ -1,130 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Directive, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { Breakpoints } from '../core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../icon/icon.component";
5
- import * as i2 from "@angular/cdk/layout";
6
- /**
7
- * This component is dynamically added to replace breadcrumb when System Header is viewed on tablet or mobile screens.
8
- * Used internally by BaoSystemHeaderComponent only, not to be used by host application.
9
- */
10
- export class BaoBackNavigationComponent {
11
- constructor(renderer, elementRef) {
12
- this.renderer = renderer;
13
- this.elementRef = elementRef;
14
- }
15
- ngOnChanges(changes) {
16
- if (changes['link'] && changes['link'].currentValue) {
17
- this.renderer.setAttribute(this.elementRef.nativeElement.children[0], 'href', changes['link'].currentValue);
18
- }
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoBackNavigationComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoBackNavigationComponent, selector: "bao-back-navigation-component", inputs: { link: "link" }, host: { classAttribute: "bao-system-header-back-button" }, usesOnChanges: true, ngImport: i0, template: ` <a>
22
- <bao-icon
23
- color="action"
24
- title="arrow-left"
25
- svgIcon="icon-arrow-left"
26
- size="x-small"
27
- ></bao-icon>
28
- </a>`, isInline: true, dependencies: [{ kind: "component", type: i1.BaoIconComponent, selector: "bao-icon", inputs: ["color", "size", "svgIcon", "title"], exportAs: ["baoIcon"] }] }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoBackNavigationComponent, decorators: [{
31
- type: Component,
32
- args: [{
33
- selector: 'bao-back-navigation-component',
34
- template: ` <a>
35
- <bao-icon
36
- color="action"
37
- title="arrow-left"
38
- svgIcon="icon-arrow-left"
39
- size="x-small"
40
- ></bao-icon>
41
- </a>`,
42
- host: {
43
- class: 'bao-system-header-back-button'
44
- }
45
- }]
46
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { link: [{
47
- type: Input
48
- }] } });
49
- /**
50
- * This directive is to mark the template where the BaoBackNavigationComponent should be dynamically inserted,
51
- * when a Breadcrumb component needs to be replaced
52
- */
53
- export class BaoBackNavigationInsert {
54
- constructor(viewContainerRef) {
55
- this.viewContainerRef = viewContainerRef;
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoBackNavigationInsert, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
58
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: BaoBackNavigationInsert, selector: "[backNavigationInsert]", ngImport: i0 }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoBackNavigationInsert, decorators: [{
61
- type: Directive,
62
- args: [{
63
- selector: '[backNavigationInsert]'
64
- }]
65
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
66
- export class BaoSystemHeaderComponent {
67
- constructor(cd, breakpointObserver, renderer) {
68
- this.cd = cd;
69
- this.breakpointObserver = breakpointObserver;
70
- this.renderer = renderer;
71
- this.screenType = 'desktop';
72
- }
73
- get textContainerChildren() {
74
- return Array.from(this.textContainer.nativeElement.children);
75
- }
76
- ngOnInit() {
77
- if ([Breakpoints.XSmall, Breakpoints.Small].some(size => this.breakpointObserver.isMatched(size))) {
78
- this.screenType = 'mobile';
79
- }
80
- else if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {
81
- this.screenType = 'tablet';
82
- }
83
- else if ([Breakpoints.Large, Breakpoints.XLarge].some(size => this.breakpointObserver.isMatched(size))) {
84
- this.screenType = 'desktop';
85
- }
86
- }
87
- ngAfterViewInit() {
88
- this.formatNavigation();
89
- this.applySizeClass();
90
- this.cd.detectChanges();
91
- }
92
- formatNavigation() {
93
- // If view is rendered on a mobile/tablet screen
94
- if (this.screenType == 'mobile' || this.screenType == 'tablet') {
95
- if (this.textContainerChildren[0].className == 'bao-breadcrumb') {
96
- // Retrieve link of parent page
97
- const breadcrumbElementsList = this.textContainerChildren[0].children[0];
98
- const breadcrumbLength = breadcrumbElementsList.children.length;
99
- const parentLink = breadcrumbElementsList.children[breadcrumbLength - 2].attributes['href'].value;
100
- // Remove Breadcrumb component and replace it with back button
101
- this.renderer.removeChild(this.textContainer.nativeElement, this.textContainerChildren[0]);
102
- const viewContainerRef = this.backButtonInsert.viewContainerRef;
103
- viewContainerRef.clear();
104
- const componentRef = viewContainerRef.createComponent(BaoBackNavigationComponent);
105
- componentRef.setInput('link', parentLink);
106
- }
107
- }
108
- }
109
- applySizeClass() {
110
- const tagInfoContainer = this.textContainer.nativeElement.childNodes[this.textContainerChildren.length - 1];
111
- if (this.screenType === 'mobile') {
112
- this.renderer.addClass(tagInfoContainer, 'mobile');
113
- }
114
- }
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoSystemHeaderComponent, selector: "bao-system-header", host: { classAttribute: "bao-system-header" }, viewQueries: [{ propertyName: "textContainer", first: true, predicate: ["textContainer"], descendants: true }, { propertyName: "backButtonInsert", first: true, predicate: BaoBackNavigationInsert, descendants: true, static: true }], ngImport: i0, template: "<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-system-header{display:flex;justify-content:flex-start}.bao-system-header .left-side-content{display:inline-flex;width:75%}.bao-system-header .left-side-content .back-navigation-container a{margin-right:1.25rem;border-bottom:none}.bao-system-header .left-side-content .back-navigation-container a:hover{cursor:pointer}.bao-system-header .left-side-content .text-content{width:100%}.bao-system-header .left-side-content .text-content h1{font-weight:700;color:#212529;font-size:1.5rem;line-height:2rem;margin-bottom:.5rem}.bao-system-header .left-side-content .text-content .tag-info-container{width:100%;display:block}.bao-system-header .left-side-content .text-content .tag-info-container>span:nth-child(2):before{content:\"\\b7\";margin:0 .5rem}.bao-system-header .left-side-content .text-content .tag-info-container .additional-info>*{font-weight:400;font-size:.875rem;line-height:1.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .bao-tag{margin-bottom:.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info{display:block}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info:before{content:none}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag{max-width:100%}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag>span{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bao-system-header .button-container{flex-shrink:0;margin-left:auto}.bao-system-header .button-container .bao-button{margin-left:1rem}\n"], dependencies: [{ kind: "directive", type: BaoBackNavigationInsert, selector: "[backNavigationInsert]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoSystemHeaderComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: 'bao-system-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
121
- class: 'bao-system-header'
122
- }, template: "<div class=\"left-side-content\">\n <div class=\"back-navigation-container\">\n <ng-content select=\"a\"></ng-content>\n <ng-template backNavigationInsert></ng-template>\n </div>\n <div #textContainer class=\"text-content\">\n <ng-content select=\"bao-breadcrumb\"></ng-content>\n <ng-content select=\"h1\"></ng-content>\n <div class=\"tag-info-container\">\n <ng-content select=\"bao-tag\"></ng-content>\n <span class=\"additional-info\">\n <ng-content select=\"span\"></ng-content>\n </span>\n </div>\n </div>\n</div>\n<div class=\"button-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.bao-container{padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto;width:100%}@media (min-width: 576px){.bao-container{max-width:576px}}@media (min-width: 768px){.bao-container{max-width:768px}}@media (min-width: 992px){.bao-container{max-width:992px}}@media (min-width: 1200px){.bao-container{max-width:1200px}}.bao-row{display:flex;flex-wrap:wrap;margin-right:-16px;margin-left:-16px}.bao-col-12,.bao-col-lg-7{position:relative;width:100%;padding-right:1rem;padding-left:1rem}@media (min-width: 992px){.bao-col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}}.bao-system-header{display:flex;justify-content:flex-start}.bao-system-header .left-side-content{display:inline-flex;width:75%}.bao-system-header .left-side-content .back-navigation-container a{margin-right:1.25rem;border-bottom:none}.bao-system-header .left-side-content .back-navigation-container a:hover{cursor:pointer}.bao-system-header .left-side-content .text-content{width:100%}.bao-system-header .left-side-content .text-content h1{font-weight:700;color:#212529;font-size:1.5rem;line-height:2rem;margin-bottom:.5rem}.bao-system-header .left-side-content .text-content .tag-info-container{width:100%;display:block}.bao-system-header .left-side-content .text-content .tag-info-container>span:nth-child(2):before{content:\"\\b7\";margin:0 .5rem}.bao-system-header .left-side-content .text-content .tag-info-container .additional-info>*{font-weight:400;font-size:.875rem;line-height:1.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .bao-tag{margin-bottom:.25rem}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info{display:block}.bao-system-header .left-side-content .text-content .tag-info-container.mobile .additional-info:before{content:none}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag{max-width:100%}.bao-system-header .left-side-content .text-content .tag-info-container>.bao-tag>span{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bao-system-header .button-container{flex-shrink:0;margin-left:auto}.bao-system-header .button-container .bao-button{margin-left:1rem}\n"] }]
123
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i2.BreakpointObserver }, { type: i0.Renderer2 }], propDecorators: { textContainer: [{
124
- type: ViewChild,
125
- args: ['textContainer', { static: false }]
126
- }], backButtonInsert: [{
127
- type: ViewChild,
128
- args: [BaoBackNavigationInsert, { static: true }]
129
- }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvc3lzdGVtLWhlYWRlci9zeXN0ZW0taGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi9zeXN0ZW0taGVhZGVyL3N5c3RlbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsU0FBUyxFQUVULEtBQUssRUFLTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7QUFFdEM7OztHQUdHO0FBZUgsTUFBTSxPQUFPLDBCQUEwQjtJQUVyQyxZQUNVLFFBQW1CLEVBQ25CLFVBQW1DO1FBRG5DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7SUFDMUMsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDekMsTUFBTSxFQUNOLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLENBQzdCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQzsrR0FmVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiwrS0FaM0I7Ozs7Ozs7T0FPTDs7NEZBS00sMEJBQTBCO2tCQWR0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFB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QUFDO2dCQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO2dCQUNoRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUNuRCwwQkFBMEIsQ0FDM0IsQ0FBQztnQkFDRixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3RDLENBQUM7UUFDSixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7K0dBN0VVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDJQQUd4Qix1QkFBdUIsOERDcEZwQyw4bkJBbUJBLGd1RURnRGEsdUJBQXVCOzs0RkFjdkIsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLG1CQUFtQixpQkFHZCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxtQkFBbUI7cUJBQzNCOytJQUlPLGFBQWE7c0JBRHBCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHckMsZ0JBQWdCO3NCQUR2QixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSAnLi4vY29yZSc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgZHluYW1pY2FsbHkgYWRkZWQgdG8gcmVwbGFjZSBicmVhZGNydW1iIHdoZW4gU3lzdGVtIEhlYWRlciBpcyB2aWV3ZWQgb24gdGFibGV0IG9yIG1vYmlsZSBzY3JlZW5zLlxuICogVXNlZCBpbnRlcm5hbGx5IGJ5IEJhb1N5c3RlbUhlYWRlckNvbXBvbmVudCBvbmx5LCBub3QgdG8gYmUgdXNlZCBieSBob3N0IGFwcGxpY2F0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tYmFjay1uYXZpZ2F0aW9uLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlOiBgIDxhPlxuICAgIDxiYW8taWNvblxuICAgICAgY29sb3I9XCJhY3Rpb25cIlxuICAgICAgdGl0bGU9XCJhcnJvdy1sZWZ0XCJcbiAgICAgIHN2Z0ljb249XCJpY29uLWFycm93LWxlZnRcIlxuICAgICAgc2l6ZT1cIngtc21hbGxcIlxuICAgID48L2Jhby1pY29uPlxuICA8L2E+YCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYmFvLXN5c3RlbS1oZWFkZXItYmFjay1idXR0b24nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvQmFja05hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsaW5rOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2xpbmsnXSAmJiBjaGFuZ2VzWydsaW5rJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0sXG4gICAgICAgICdocmVmJyxcbiAgICAgICAgY2hhbmdlc1snbGluayddLmN1cnJlbnRWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyB0byBtYXJrIHRoZSB0ZW1wbGF0ZSB3aGVyZSB0aGUgQmFvQmFja05hdmlnYXRpb25Db21wb25lbnQgc2hvdWxkIGJlIGR5bmFtaWNhbGx5IGluc2VydGVkLFxuICogd2hlbiBhIEJyZWFkY3J1bWIgY29tcG9uZW50IG5lZWRzIHRvIGJlIHJlcGxhY2VkXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tiYWNrTmF2aWdhdGlvbkluc2VydF0nXG59KVxuZXhwb3J0IGNsYXNzIEJhb0JhY2tOYXZpZ2F0aW9uSW5zZXJ0IHtcbiAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhby1zeXN0ZW0taGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N5c3RlbS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zeXN0ZW0taGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tc3lzdGVtLWhlYWRlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYW9TeXN0ZW1IZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuICBAVmlld0NoaWxkKCd0ZXh0Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHByaXZhdGUgdGV4dENvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoQmFvQmFja05hdmlnYXRpb25JbnNlcnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgYmFja0J1dHRvbkluc2VydDogQmFvQmFja05hdmlnYXRpb25JbnNlcnQ7XG5cbiAgcHVibGljIHNjcmVlblR5cGU6ICdtb2JpbGUnIHwgJ3RhYmxldCcgfCAnZGVza3RvcCcgPSAnZGVza3RvcCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7fVxuXG4gIGdldCB0ZXh0Q29udGFpbmVyQ2hpbGRyZW4oKTogRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRleHRDb250YWluZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbik7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoXG4gICAgICBbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0uc29tZShzaXplID0+XG4gICAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChzaXplKVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhpcy5zY3JlZW5UeXBlID0gJ21vYmlsZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoQnJlYWtwb2ludHMuTWVkaXVtKSkge1xuICAgICAgdGhpcy5zY3JlZW5UeXBlID0gJ3RhYmxldCc7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIFtCcmVha3BvaW50cy5MYXJnZSwgQnJlYWtwb2ludHMuWExhcmdlXS5zb21lKHNpemUgPT5cbiAgICAgICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHNpemUpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aGlzLnNjcmVlblR5cGUgPSAnZGVza3RvcCc7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZm9ybWF0TmF2aWdhdGlvbigpO1xuICAgIHRoaXMuYXBwbHlTaXplQ2xhc3MoKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0TmF2aWdhdGlvbigpIHtcbiAgICAvLyBJZiB2aWV3IGlzIHJlbmRlcmVkIG9uIGEgbW9iaWxlL3RhYmxldCBzY3JlZW5cbiAgICBpZiAodGhpcy5zY3JlZW5UeXBlID09ICdtb2JpbGUnIHx8IHRoaXMuc2NyZWVuVHlwZSA9PSAndGFibGV0Jykge1xuICAgICAgaWYgKHRoaXMudGV4dENvbnRhaW5lckNoaWxkcmVuWzBdLmNsYXNzTmFtZSA9PSAnYmFvLWJyZWFkY3J1bWInKSB7XG4gICAgICAgIC8vIFJldHJpZXZlIGxpbmsgb2YgcGFyZW50IHBhZ2VcbiAgICAgICAgY29uc3QgYnJlYWRjcnVtYkVsZW1lbnRzTGlzdCA9XG4gICAgICAgICAgdGhpcy50ZXh0Q29udGFpbmVyQ2hpbGRyZW5bMF0uY2hpbGRyZW5bMF07XG4gICAgICAgIGNvbnN0IGJyZWFkY3J1bWJMZW5ndGggPSBicmVhZGNydW1iRWxlbWVudHNMaXN0LmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcGFyZW50TGluayA9XG4gICAgICAgICAgYnJlYWRjcnVtYkVsZW1lbnRzTGlzdC5jaGlsZHJlblticmVhZGNydW1iTGVuZ3RoIC0gMl0uYXR0cmlidXRlc1tcbiAgICAgICAgICAgICdocmVmJ1xuICAgICAgICAgIF0udmFsdWU7XG4gICAgICAgIC8vIFJlbW92ZSBCcmVhZGNydW1iIGNvbXBvbmVudCBhbmQgcmVwbGFjZSBpdCB3aXRoIGJhY2sgYnV0dG9uXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQoXG4gICAgICAgICAgdGhpcy50ZXh0Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgdGhpcy50ZXh0Q29udGFpbmVyQ2hpbGRyZW5bMF1cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuYmFja0J1dHRvbkluc2VydC52aWV3Q29udGFpbmVyUmVmO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICAgIEJhb0JhY2tOYXZpZ2F0aW9uQ29tcG9uZW50XG4gICAgICAgICk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dCgnbGluaycsIHBhcmVudExpbmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaXplQ2xhc3MoKSB7XG4gICAgY29uc3QgdGFnSW5mb0NvbnRhaW5lciA9XG4gICAgICB0aGlzLnRleHRDb250YWluZXIubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzW1xuICAgICAgICB0aGlzLnRleHRDb250YWluZXJDaGlsZHJlbi5sZW5ndGggLSAxXG4gICAgICBdO1xuICAgIGlmICh0aGlzLnNjcmVlblR5cGUgPT09ICdtb2JpbGUnKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRhZ0luZm9Db250YWluZXIsICdtb2JpbGUnKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsZWZ0LXNpZGUtY29udGVudFwiPlxuICA8ZGl2IGNsYXNzPVwiYmFjay1uYXZpZ2F0aW9uLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlIGJhY2tOYXZpZ2F0aW9uSW5zZXJ0PjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2ICN0ZXh0Q29udGFpbmVyIGNsYXNzPVwidGV4dC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvLWJyZWFkY3J1bWJcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaDFcIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cInRhZy1pbmZvLWNvbnRhaW5lclwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYmFvLXRhZ1wiPjwvbmctY29udGVudD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYWRkaXRpb25hbC1pbmZvXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwYW5cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -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 './tabs.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvdGFicy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,35 +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 { BaoTablistComponent, BaoTabHeader, BaoTabPanel, BaoTabsContainer } from './tabs.component';
9
- import * as i0 from "@angular/core";
10
- const TABS_DIRECTIVES = [
11
- BaoTabsContainer,
12
- BaoTablistComponent,
13
- BaoTabHeader,
14
- BaoTabPanel
15
- ];
16
- export class BaoTabsModule {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsModule, declarations: [BaoTabsContainer,
19
- BaoTablistComponent,
20
- BaoTabHeader,
21
- BaoTabPanel], imports: [CommonModule], exports: [BaoTabsContainer,
22
- BaoTablistComponent,
23
- BaoTabHeader,
24
- BaoTabPanel] }); }
25
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsModule, imports: [CommonModule] }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsModule, decorators: [{
28
- type: NgModule,
29
- args: [{
30
- imports: [CommonModule],
31
- declarations: [TABS_DIRECTIVES],
32
- exports: [TABS_DIRECTIVES]
33
- }]
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3RhYnMvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7O0FBRTFCLE1BQU0sZUFBZSxHQUFHO0lBQ3RCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLFdBQVc7Q0FDWixDQUFDO0FBT0YsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLGlCQVh4QixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixXQUFXLGFBSUQsWUFBWSxhQVB0QixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixXQUFXO2dIQVFBLGFBQWEsWUFKZCxZQUFZOzs0RkFJWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMvQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhb1RhYmxpc3RDb21wb25lbnQsXG4gIEJhb1RhYkhlYWRlcixcbiAgQmFvVGFiUGFuZWwsXG4gIEJhb1RhYnNDb250YWluZXJcbn0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XG5cbmNvbnN0IFRBQlNfRElSRUNUSVZFUyA9IFtcbiAgQmFvVGFic0NvbnRhaW5lcixcbiAgQmFvVGFibGlzdENvbXBvbmVudCxcbiAgQmFvVGFiSGVhZGVyLFxuICBCYW9UYWJQYW5lbFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RBQlNfRElSRUNUSVZFU10sXG4gIGV4cG9ydHM6IFtUQUJTX0RJUkVDVElWRVNdXG59KVxuZXhwb3J0IGNsYXNzIEJhb1RhYnNNb2R1bGUge31cbiJdfQ==
@@ -1,295 +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 { Component, ContentChild, ContentChildren, Directive, EventEmitter, HostListener, Input, Output, ViewEncapsulation } from '@angular/core';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * Unique number to generate a unique ID
10
- */
11
- let tabsNextUniqueId = 0;
12
- export class BaoTabHeader {
13
- constructor(renderer, elementRef) {
14
- this.renderer = renderer;
15
- this.elementRef = elementRef;
16
- /**
17
- * Emits its index when tab is clicked
18
- */
19
- this.onTabClick = new EventEmitter();
20
- }
21
- get nativeElement() {
22
- return this.elementRef.nativeElement;
23
- }
24
- onClick(el) {
25
- const tabIndex = el.id.split('-')[el.id.split('-').length - 1];
26
- this.onTabClick.emit(tabIndex);
27
- }
28
- ngAfterViewInit() {
29
- this.renderer.setAttribute(this.nativeElement, 'role', 'tab');
30
- this.renderer.setAttribute(this.nativeElement, 'aria-selected', 'false');
31
- this.renderer.setAttribute(this.nativeElement, 'tabindex', '-1');
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabHeader, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: BaoTabHeader, selector: "bao-tab-header, [bao-tab-header]", outputs: { onTabClick: "onTabClick" }, host: { listeners: { "click": "onClick($event.target)" }, classAttribute: "bao-tab-header" }, exportAs: ["baoTabHeader"], ngImport: i0 }); }
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabHeader, decorators: [{
37
- type: Directive,
38
- args: [{
39
- selector: 'bao-tab-header, [bao-tab-header]',
40
- exportAs: 'baoTabHeader',
41
- host: {
42
- class: 'bao-tab-header'
43
- }
44
- }]
45
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { onTabClick: [{
46
- type: Output
47
- }], onClick: [{
48
- type: HostListener,
49
- args: ['click', ['$event.target']]
50
- }] } });
51
- export class BaoTabPanel {
52
- constructor(renderer, elementRef) {
53
- this.renderer = renderer;
54
- this.elementRef = elementRef;
55
- }
56
- get nativeElement() {
57
- return this.elementRef.nativeElement;
58
- }
59
- ngAfterViewInit() {
60
- this.renderer.setAttribute(this.nativeElement, 'role', 'tabpanel');
61
- this.renderer.setAttribute(this.nativeElement, 'hidden', 'true');
62
- this.renderer.setAttribute(this.nativeElement, 'tabindex', '0');
63
- this.renderer.setAttribute(this.nativeElement, 'aria-expanded', 'false');
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabPanel, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: BaoTabPanel, selector: "bao-panel, [bao-panel]", host: { classAttribute: "bao-panel" }, exportAs: ["baoPanel"], ngImport: i0 }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabPanel, decorators: [{
69
- type: Directive,
70
- args: [{
71
- selector: 'bao-panel, [bao-panel]',
72
- exportAs: 'baoPanel',
73
- host: {
74
- class: 'bao-panel'
75
- }
76
- }]
77
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }] });
78
- export class BaoTablistComponent {
79
- constructor(renderer, elementRef) {
80
- this.renderer = renderer;
81
- this.elementRef = elementRef;
82
- /**
83
- * Size of the tabs displayed
84
- */
85
- this.size = 'large';
86
- /**
87
- * Optionnal value to be used as aria-label property on tablist component
88
- */
89
- this.ariaLabel = 'onglets';
90
- /**
91
- * Emits the index of the new active tab
92
- */
93
- this.activeTabChange = new EventEmitter();
94
- this.uniqueId = `bao-tablist-${tabsNextUniqueId++}`;
95
- }
96
- get nativeElement() {
97
- return this.elementRef.nativeElement;
98
- }
99
- get tabs() {
100
- return this.elementRef.nativeElement.children;
101
- }
102
- leftKeyEvent() {
103
- if (document.activeElement.parentElement.id === this.uniqueId) {
104
- this.activeTabIndex = this.getNextActivableTabIndex(parseInt(this.activeTabIndex), false);
105
- this.changeActiveTab(this.activeTabIndex, true);
106
- this.activeTabChange.emit(this.activeTabIndex);
107
- }
108
- }
109
- rightKeyEvent() {
110
- if (document.activeElement.parentElement.id === this.uniqueId) {
111
- this.activeTabIndex = this.getNextActivableTabIndex(parseInt(this.activeTabIndex), true);
112
- this.changeActiveTab(this.activeTabIndex, true);
113
- this.activeTabChange.emit(this.activeTabIndex);
114
- }
115
- }
116
- /**
117
- * Makes the focus visible on tab header when changing from mouse to keyboard navigation
118
- */
119
- tabKeyEvent() {
120
- if (document.activeElement.parentElement.id === this.uniqueId) {
121
- this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');
122
- }
123
- }
124
- /**
125
- * Makes the focus visible on tab header when changing from mouse to keyboard navigation
126
- */
127
- tabShiftKeyEvent() {
128
- if (document.activeElement.parentElement.id === this.uniqueId) {
129
- this.renderer.addClass(this.tabs[this.activeTabIndex], 'focus-visible');
130
- }
131
- }
132
- ngAfterViewInit() {
133
- this.setTablistAttributes();
134
- if (this.nativeElement.childElementCount) {
135
- this.setInitialActiveTab();
136
- }
137
- }
138
- ngAfterContentInit() {
139
- this.tabHeaders.forEach((tab) => {
140
- tab.onTabClick.subscribe((index) => {
141
- this.renderer.removeClass(this.tabs[index], 'focus-visible');
142
- this.activeTabIndex = index;
143
- this.changeActiveTab(index, false);
144
- this.activeTabChange.emit(index);
145
- });
146
- });
147
- }
148
- ngOnDestroy() {
149
- this.tabHeaders.forEach((tab) => {
150
- tab.onTabClick.unsubscribe();
151
- });
152
- }
153
- setTablistAttributes() {
154
- this.renderer.setAttribute(this.nativeElement, 'role', 'tablist');
155
- this.renderer.setAttribute(this.nativeElement, 'aria-label', this.ariaLabel);
156
- this.renderer.setProperty(this.nativeElement, 'id', this.uniqueId);
157
- }
158
- setInitialActiveTab() {
159
- const firstTabIndex = Array.from(this.tabs).findIndex((tab) => !tab.attributes['disabled']);
160
- this.activeTabIndex = firstTabIndex.toString();
161
- this.renderer.setAttribute(this.tabs[firstTabIndex], 'aria-selected', 'true');
162
- this.renderer.addClass(this.tabs[firstTabIndex], 'active');
163
- this.renderer.addClass(this.tabs[firstTabIndex], 'focus-visible');
164
- this.renderer.removeAttribute(this.tabs[firstTabIndex], 'tabindex');
165
- }
166
- changeActiveTab(newActiveTabIndex, isFocusVisible) {
167
- Array.from(this.tabs).forEach((tab) => {
168
- if (tab.id === `bao-tab-${newActiveTabIndex}`) {
169
- if (isFocusVisible) {
170
- this.renderer.addClass(tab, 'focus-visible');
171
- }
172
- this.renderer.setAttribute(tab, 'aria-selected', 'true');
173
- this.renderer.addClass(tab, 'active');
174
- this.renderer.removeAttribute(tab, 'tabindex');
175
- tab.focus();
176
- }
177
- else {
178
- this.renderer.setAttribute(tab, 'aria-selected', 'false');
179
- this.renderer.removeClass(tab, 'active');
180
- this.renderer.setAttribute(tab, 'tabindex', '-1');
181
- this.renderer.removeClass(tab, 'focus-visible');
182
- }
183
- });
184
- }
185
- /**
186
- * Finds the next activable tab index when navigating with left and right arrow keys
187
- * @param currentIndex Tab index which currently has focus
188
- * @param isRight Whether the tab navigation is going in the right direction or not
189
- * @returns Index of the new tab that will receive focus
190
- */
191
- getNextActivableTabIndex(currentIndex, isRight) {
192
- const nextIndex = isRight ? currentIndex + 1 : currentIndex - 1;
193
- const nextIndexInTablist = ((nextIndex % this.tabs.length) + this.tabs.length) % this.tabs.length;
194
- if (this.tabs[nextIndexInTablist].attributes['disabled']) {
195
- return this.getNextActivableTabIndex(nextIndexInTablist, isRight);
196
- }
197
- return nextIndexInTablist.toString();
198
- }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTablistComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
200
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BaoTablistComponent, selector: "bao-tablist, [bao-tablist]", inputs: { size: "size", ariaLabel: "ariaLabel" }, outputs: { activeTabChange: "activeTabChange" }, host: { listeners: { "window:keydown.arrowleft": "leftKeyEvent()", "window:keydown.arrowright": "rightKeyEvent()", "window:keydown.tab": "tabKeyEvent()", "window:keydown.shift.tab": "tabShiftKeyEvent()" }, properties: { "class.bao-tablist-small": "size === \"small\"", "class.bao-tablist-medium": "size === \"medium\"", "class.bao-tablist-large": "size === \"large\"" }, classAttribute: "bao-tablist" }, queries: [{ propertyName: "tabHeaders", predicate: BaoTabHeader }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bao-tablist{color:#637381;display:block;overflow:auto;white-space:nowrap;box-shadow:inset 0 -.125rem #ced4da}.bao-tablist.bao-tablist-small{font-weight:700;font-size:.75rem;line-height:1rem}.bao-tablist.bao-tablist-small>.bao-tab-header{padding:.5rem}.bao-tablist.bao-tablist-medium{font-weight:700;font-size:.875rem;line-height:1.25rem}.bao-tablist.bao-tablist-medium>.bao-tab-header{padding:.625rem 1rem}.bao-tablist.bao-tablist-large{font-weight:700;font-size:1rem;line-height:1.5rem}.bao-tablist.bao-tablist-large>.bao-tab-header{padding:1rem}.bao-tablist button{all:unset}.bao-tablist>.bao-tab-header:hover:not(:disabled){color:#097d6c;cursor:pointer;box-shadow:inset 0 -.125rem #097d6c}.bao-tablist>.bao-tab-header.active{color:#097d6c;box-shadow:inset 0 -.125rem #097d6c}.bao-tablist>.bao-tab-header:focus.focus-visible{box-shadow:inset 0 0 0 .1875rem #98bcde;color:#637381}.bao-tablist>.bao-tab-header:disabled{color:#adb2bd}\n"], encapsulation: i0.ViewEncapsulation.None }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTablistComponent, decorators: [{
203
- type: Component,
204
- args: [{ selector: 'bao-tablist, [bao-tablist]', encapsulation: ViewEncapsulation.None, host: {
205
- class: 'bao-tablist',
206
- '[class.bao-tablist-small]': 'size === "small"',
207
- '[class.bao-tablist-medium]': 'size === "medium"',
208
- '[class.bao-tablist-large]': 'size === "large"'
209
- }, template: "<ng-content></ng-content>\n", styles: [".bao-tablist{color:#637381;display:block;overflow:auto;white-space:nowrap;box-shadow:inset 0 -.125rem #ced4da}.bao-tablist.bao-tablist-small{font-weight:700;font-size:.75rem;line-height:1rem}.bao-tablist.bao-tablist-small>.bao-tab-header{padding:.5rem}.bao-tablist.bao-tablist-medium{font-weight:700;font-size:.875rem;line-height:1.25rem}.bao-tablist.bao-tablist-medium>.bao-tab-header{padding:.625rem 1rem}.bao-tablist.bao-tablist-large{font-weight:700;font-size:1rem;line-height:1.5rem}.bao-tablist.bao-tablist-large>.bao-tab-header{padding:1rem}.bao-tablist button{all:unset}.bao-tablist>.bao-tab-header:hover:not(:disabled){color:#097d6c;cursor:pointer;box-shadow:inset 0 -.125rem #097d6c}.bao-tablist>.bao-tab-header.active{color:#097d6c;box-shadow:inset 0 -.125rem #097d6c}.bao-tablist>.bao-tab-header:focus.focus-visible{box-shadow:inset 0 0 0 .1875rem #98bcde;color:#637381}.bao-tablist>.bao-tab-header:disabled{color:#adb2bd}\n"] }]
210
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tabHeaders: [{
211
- type: ContentChildren,
212
- args: [BaoTabHeader]
213
- }], size: [{
214
- type: Input
215
- }], ariaLabel: [{
216
- type: Input
217
- }], activeTabChange: [{
218
- type: Output
219
- }], leftKeyEvent: [{
220
- type: HostListener,
221
- args: ['window:keydown.arrowleft']
222
- }], rightKeyEvent: [{
223
- type: HostListener,
224
- args: ['window:keydown.arrowright']
225
- }], tabKeyEvent: [{
226
- type: HostListener,
227
- args: ['window:keydown.tab']
228
- }], tabShiftKeyEvent: [{
229
- type: HostListener,
230
- args: ['window:keydown.shift.tab']
231
- }] } });
232
- export class BaoTabsContainer {
233
- constructor(renderer, elementRef) {
234
- this.renderer = renderer;
235
- this.elementRef = elementRef;
236
- this.panelIdPrefix = 'bao-panel-';
237
- this.tabIdPrefix = 'bao-tab-';
238
- }
239
- get tabs() {
240
- return this.elementRef.nativeElement.querySelector('.bao-tablist').children;
241
- }
242
- get panels() {
243
- return this.elementRef.nativeElement.querySelectorAll('.bao-panel');
244
- }
245
- ngAfterViewInit() {
246
- this.setInitialActivePanel();
247
- Array.from(this.tabs).forEach((tab, idx) => {
248
- const tabId = `${this.tabIdPrefix}${idx}`;
249
- const panelId = `${this.panelIdPrefix}${idx}`;
250
- this.renderer.setProperty(tab, 'id', tabId);
251
- this.renderer.setProperty(this.panels[idx], 'id', panelId);
252
- this.renderer.setAttribute(tab, 'aria-controls', panelId);
253
- this.renderer.setAttribute(this.panels[idx], 'aria-labelledby', tabId);
254
- });
255
- }
256
- ngAfterContentInit() {
257
- this.tablist.activeTabChange.subscribe((index) => this.changeActivePanel(index));
258
- }
259
- ngOnDestroy() {
260
- this.tablist.activeTabChange.unsubscribe();
261
- }
262
- setInitialActivePanel() {
263
- const firstTabIndex = Array.from(this.tabs).findIndex((tab) => !tab.attributes['disabled']);
264
- this.renderer.removeAttribute(this.panels[firstTabIndex], 'hidden');
265
- this.renderer.setAttribute(this.panels[firstTabIndex], 'aria-expanded', 'true');
266
- }
267
- changeActivePanel(newActiveId) {
268
- this.panels.forEach((panel) => {
269
- if (panel.id === `${this.panelIdPrefix}${newActiveId}`) {
270
- this.renderer.removeAttribute(panel, 'hidden');
271
- this.renderer.setAttribute(panel, 'aria-expanded', 'true');
272
- }
273
- else {
274
- this.renderer.setAttribute(panel, 'hidden', 'true');
275
- this.renderer.setAttribute(panel, 'aria-expanded', 'false');
276
- }
277
- });
278
- }
279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsContainer, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
280
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: BaoTabsContainer, selector: "bao-tabs, [bao-tabs]", host: { classAttribute: "bao-tabs" }, queries: [{ propertyName: "tablist", first: true, predicate: BaoTablistComponent, descendants: true }], exportAs: ["baoTabs"], ngImport: i0 }); }
281
- }
282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTabsContainer, decorators: [{
283
- type: Directive,
284
- args: [{
285
- selector: 'bao-tabs, [bao-tabs]',
286
- exportAs: 'baoTabs',
287
- host: {
288
- class: 'bao-tabs'
289
- }
290
- }]
291
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { tablist: [{
292
- type: ContentChild,
293
- args: [BaoTablistComponent]
294
- }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdWkvc3JjL2xpYi90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7O0dBRUc7QUFDSCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQVF6QixNQUFNLE9BQU8sWUFBWTtJQU92QixZQUNVLFFBQW1CLEVBQ25CLFVBQW1DO1FBRG5DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFSN0M7O1dBRUc7UUFDYyxlQUFVLEdBQ3pCLElBQUksWUFBWSxFQUFVLENBQUM7SUFLMUIsQ0FBQztJQUVKLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUdELE9BQU8sQ0FBQyxFQUFlO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFD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O21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxTQUFTO29CQUNuQixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFVBQVU7cUJBQ2xCO2lCQUNGO3VHQUlvQyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYgVmlsbGUgZGUgTW9udHJlYWwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKiBTZWUgTElDRU5TRSBmaWxlIGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbi5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBVbmlxdWUgbnVtYmVyIHRvIGdlbmVyYXRlIGEgdW5pcXVlIElEXG4gKi9cbmxldCB0YWJzTmV4dFVuaXF1ZUlkID0gMDtcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Jhby10YWItaGVhZGVyLCBbYmFvLXRhYi1oZWFkZXJdJyxcbiAgZXhwb3J0QXM6ICdiYW9UYWJIZWFkZXInLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tdGFiLWhlYWRlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBCYW9UYWJIZWFkZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIEVtaXRzIGl0cyBpbmRleCB3aGVuIHRhYiBpcyBjbGlja2VkXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIG9uVGFiQ2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIG9uQ2xpY2soZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgdGFiSW5kZXggPSBlbC5pZC5zcGxpdCgnLScpW2VsLmlkLnNwbGl0KCctJykubGVuZ3RoIC0gMV07XG4gICAgdGhpcy5vblRhYkNsaWNrLmVtaXQodGFiSW5kZXgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ3JvbGUnLCAndGFiJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAnYXJpYS1zZWxlY3RlZCcsICdmYWxzZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgJy0xJyk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYmFvLXBhbmVsLCBbYmFvLXBhbmVsXScsXG4gIGV4cG9ydEFzOiAnYmFvUGFuZWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tcGFuZWwnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvVGFiUGFuZWwgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7fVxuXG4gIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAncm9sZScsICd0YWJwYW5lbCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2hpZGRlbicsICd0cnVlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYW8tdGFibGlzdCwgW2Jhby10YWJsaXN0XScsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdiYW8tdGFibGlzdCcsXG4gICAgJ1tjbGFzcy5iYW8tdGFibGlzdC1zbWFsbF0nOiAnc2l6ZSA9PT0gXCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLmJhby10YWJsaXN0LW1lZGl1bV0nOiAnc2l6ZSA9PT0gXCJtZWRpdW1cIicsXG4gICAgJ1tjbGFzcy5iYW8tdGFibGlzdC1sYXJnZV0nOiAnc2l6ZSA9PT0gXCJsYXJnZVwiJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEJhb1RhYmxpc3RDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3lcbntcbiAgQENvbnRlbnRDaGlsZHJlbihCYW9UYWJIZWFkZXIpIHRhYkhlYWRlcnM6IFF1ZXJ5TGlzdDxCYW9UYWJIZWFkZXI+O1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSB0YWJzIGRpc3BsYXllZFxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbGFyZ2UnO1xuXG4gIC8qKlxuICAgKiBPcHRpb25uYWwgdmFsdWUgdG8gYmUgdXNlZCBhcyBhcmlhLWxhYmVsIHByb3BlcnR5IG9uIHRhYmxpc3QgY29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsID0gJ29uZ2xldHMnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgaW5kZXggb2YgdGhlIG5ldyBhY3RpdmUgdGFiXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIGFjdGl2ZVRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgdGFiIHRoYXQgaXMgY3VycmVudGx5IGFjdGl2ZVxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmVUYWJJbmRleDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgSUQgZm9yIGV2ZXJ5IGluc3RhbmNlIG9mIEJhb1RhYmxpc3QgY29tcG9uZW50XG4gICAqL1xuICBwcml2YXRlIHVuaXF1ZUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgKSB7XG4gICAgdGhpcy51bmlxdWVJZCA9IGBiYW8tdGFibGlzdC0ke3RhYnNOZXh0VW5pcXVlSWQrK31gO1xuICB9XG5cbiAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGdldCB0YWJzKCk6IEhUTUxDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5hcnJvd2xlZnQnKVxuICBsZWZ0S2V5RXZlbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5pZCA9PT0gdGhpcy51bmlxdWVJZCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuZ2V0TmV4dEFjdGl2YWJsZVRhYkluZGV4KFxuICAgICAgICBwYXJzZUludCh0aGlzLmFjdGl2ZVRhYkluZGV4KSxcbiAgICAgICAgZmFsc2VcbiAgICAgICk7XG4gICAgICB0aGlzLmNoYW5nZUFjdGl2ZVRhYih0aGlzLmFjdGl2ZVRhYkluZGV4LCB0cnVlKTtcbiAgICAgIHRoaXMuYWN0aXZlVGFiQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVUYWJJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uYXJyb3dyaWdodCcpXG4gIHJpZ2h0S2V5RXZlbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5pZCA9PT0gdGhpcy51bmlxdWVJZCkge1xuICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMuZ2V0TmV4dEFjdGl2YWJsZVRhYkluZGV4KFxuICAgICAgICBwYXJzZUludCh0aGlzLmFjdGl2ZVRhYkluZGV4KSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKTtcbiAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVGFiKHRoaXMuYWN0aXZlVGFiSW5kZXgsIHRydWUpO1xuICAgICAgdGhpcy5hY3RpdmVUYWJDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVRhYkluZGV4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWFrZXMgdGhlIGZvY3VzIHZpc2libGUgb24gdGFiIGhlYWRlciB3aGVuIGNoYW5naW5nIGZyb20gbW91c2UgdG8ga2V5Ym9hcmQgbmF2aWdhdGlvblxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24udGFiJylcbiAgdGFiS2V5RXZlbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5pZCA9PT0gdGhpcy51bmlxdWVJZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0sICdmb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBmb2N1cyB2aXNpYmxlIG9uIHRhYiBoZWFkZXIgd2hlbiBjaGFuZ2luZyBmcm9tIG1vdXNlIHRvIGtleWJvYXJkIG5hdmlnYXRpb25cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLnNoaWZ0LnRhYicpXG4gIHRhYlNoaWZ0S2V5RXZlbnQoKSB7XG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5pZCA9PT0gdGhpcy51bmlxdWVJZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0sICdmb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VGFibGlzdEF0dHJpYnV0ZXMoKTtcbiAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkRWxlbWVudENvdW50KSB7XG4gICAgICB0aGlzLnNldEluaXRpYWxBY3RpdmVUYWIoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJIZWFkZXJzLmZvckVhY2goKHRhYjogQmFvVGFiSGVhZGVyKSA9PiB7XG4gICAgICB0YWIub25UYWJDbGljay5zdWJzY3JpYmUoKGluZGV4OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYnNbaW5kZXhdLCAnZm9jdXMtdmlzaWJsZScpO1xuICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVGFiKGluZGV4LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlVGFiQ2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkhlYWRlcnMuZm9yRWFjaCgodGFiOiBCYW9UYWJIZWFkZXIpID0+IHtcbiAgICAgIHRhYi5vblRhYkNsaWNrLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRhYmxpc3RBdHRyaWJ1dGVzKCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubmF0aXZlRWxlbWVudCwgJ3JvbGUnLCAndGFibGlzdCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2FyaWEtbGFiZWwnLFxuICAgICAgdGhpcy5hcmlhTGFiZWxcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVFbGVtZW50LCAnaWQnLCB0aGlzLnVuaXF1ZUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEFjdGl2ZVRhYigpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdFRhYkluZGV4ID0gQXJyYXkuZnJvbSh0aGlzLnRhYnMpLmZpbmRJbmRleChcbiAgICAgICh0YWI6IEhUTUxFbGVtZW50KSA9PiAhdGFiLmF0dHJpYnV0ZXNbJ2Rpc2FibGVkJ11cbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBmaXJzdFRhYkluZGV4LnRvU3RyaW5nKCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICB0aGlzLnRhYnNbZmlyc3RUYWJJbmRleF0sXG4gICAgICAnYXJpYS1zZWxlY3RlZCcsXG4gICAgICAndHJ1ZSdcbiAgICApO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YWJzW2ZpcnN0VGFiSW5kZXhdLCAnYWN0aXZlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRhYnNbZmlyc3RUYWJJbmRleF0sICdmb2N1cy12aXNpYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy50YWJzW2ZpcnN0VGFiSW5kZXhdLCAndGFiaW5kZXgnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlQWN0aXZlVGFiKFxuICAgIG5ld0FjdGl2ZVRhYkluZGV4OiBzdHJpbmcsXG4gICAgaXNGb2N1c1Zpc2libGU6IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLnRhYnMpLmZvckVhY2goKHRhYjogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgIGlmICh0YWIuaWQgPT09IGBiYW8tdGFiLSR7bmV3QWN0aXZlVGFiSW5kZXh9YCkge1xuICAgICAgICBpZiAoaXNGb2N1c1Zpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRhYiwgJ2ZvY3VzLXZpc2libGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWIsICdhcmlhLXNlbGVjdGVkJywgJ3RydWUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0YWIsICdhY3RpdmUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGFiLCAndGFiaW5kZXgnKTtcbiAgICAgICAgdGFiLmZvY3VzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWIsICdhcmlhLXNlbGVjdGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGFiLCAnYWN0aXZlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRhYiwgJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGFiLCAnZm9jdXMtdmlzaWJsZScpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBuZXh0IGFjdGl2YWJsZSB0YWIgaW5kZXggd2hlbiBuYXZpZ2F0aW5nIHdpdGggbGVmdCBhbmQgcmlnaHQgYXJyb3cga2V5c1xuICAgKiBAcGFyYW0gY3VycmVudEluZGV4IFRhYiBpbmRleCB3aGljaCBjdXJyZW50bHkgaGFzIGZvY3VzXG4gICAqIEBwYXJhbSBpc1JpZ2h0IFdoZXRoZXIgdGhlIHRhYiBuYXZpZ2F0aW9uIGlzIGdvaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gb3Igbm90XG4gICAqIEByZXR1cm5zIEluZGV4IG9mIHRoZSBuZXcgdGFiIHRoYXQgd2lsbCByZWNlaXZlIGZvY3VzXG4gICAqL1xuICBwcml2YXRlIGdldE5leHRBY3RpdmFibGVUYWJJbmRleChcbiAgICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgICBpc1JpZ2h0OiBib29sZWFuXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gaXNSaWdodCA/IGN1cnJlbnRJbmRleCArIDEgOiBjdXJyZW50SW5kZXggLSAxO1xuICAgIGNvbnN0IG5leHRJbmRleEluVGFibGlzdCA9XG4gICAgICAoKG5leHRJbmRleCAlIHRoaXMudGFicy5sZW5ndGgpICsgdGhpcy50YWJzLmxlbmd0aCkgJSB0aGlzLnRhYnMubGVuZ3RoO1xuICAgIGlmICh0aGlzLnRhYnNbbmV4dEluZGV4SW5UYWJsaXN0XS5hdHRyaWJ1dGVzWydkaXNhYmxlZCddKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXROZXh0QWN0aXZhYmxlVGFiSW5kZXgobmV4dEluZGV4SW5UYWJsaXN0LCBpc1JpZ2h0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHRJbmRleEluVGFibGlzdC50b1N0cmluZygpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Jhby10YWJzLCBbYmFvLXRhYnNdJyxcbiAgZXhwb3J0QXM6ICdiYW9UYWJzJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYmFvLXRhYnMnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQmFvVGFic0NvbnRhaW5lclxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveVxue1xuICBAQ29udGVudENoaWxkKEJhb1RhYmxpc3RDb21wb25lbnQpIHRhYmxpc3Q6IEJhb1RhYmxpc3RDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBwYW5lbElkUHJlZml4ID0gJ2Jhby1wYW5lbC0nO1xuICBwcml2YXRlIHRhYklkUHJlZml4ID0gJ2Jhby10YWItJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICApIHt9XG5cbiAgZ2V0IHRhYnMoKTogSFRNTENvbGxlY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuYmFvLXRhYmxpc3QnKS5jaGlsZHJlbjtcbiAgfVxuXG4gIGdldCBwYW5lbHMoKTogTm9kZUxpc3RPZjxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYW8tcGFuZWwnKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEluaXRpYWxBY3RpdmVQYW5lbCgpO1xuICAgIEFycmF5LmZyb20odGhpcy50YWJzKS5mb3JFYWNoKCh0YWI6IEhUTUxFbGVtZW50LCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IHRhYklkID0gYCR7dGhpcy50YWJJZFByZWZpeH0ke2lkeH1gO1xuICAgICAgY29uc3QgcGFuZWxJZCA9IGAke3RoaXMucGFuZWxJZFByZWZpeH0ke2lkeH1gO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0YWIsICdpZCcsIHRhYklkKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5wYW5lbHNbaWR4XSwgJ2lkJywgcGFuZWxJZCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWIsICdhcmlhLWNvbnRyb2xzJywgcGFuZWxJZCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnBhbmVsc1tpZHhdLCAnYXJpYS1sYWJlbGxlZGJ5JywgdGFiSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFibGlzdC5hY3RpdmVUYWJDaGFuZ2Uuc3Vic2NyaWJlKChpbmRleDogc3RyaW5nKSA9PlxuICAgICAgdGhpcy5jaGFuZ2VBY3RpdmVQYW5lbChpbmRleClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50YWJsaXN0LmFjdGl2ZVRhYkNoYW5nZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbml0aWFsQWN0aXZlUGFuZWwoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RUYWJJbmRleCA9IEFycmF5LmZyb20odGhpcy50YWJzKS5maW5kSW5kZXgoXG4gICAgICAodGFiOiBIVE1MRWxlbWVudCkgPT4gIXRhYi5hdHRyaWJ1dGVzWydkaXNhYmxlZCddXG4gICAgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLnBhbmVsc1tmaXJzdFRhYkluZGV4XSwgJ2hpZGRlbicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy5wYW5lbHNbZmlyc3RUYWJJbmRleF0sXG4gICAgICAnYXJpYS1leHBhbmRlZCcsXG4gICAgICAndHJ1ZSdcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VBY3RpdmVQYW5lbChuZXdBY3RpdmVJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgocGFuZWw6IEVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChwYW5lbC5pZCA9PT0gYCR7dGhpcy5wYW5lbElkUHJlZml4fSR7bmV3QWN0aXZlSWR9YCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShwYW5lbCwgJ2hpZGRlbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShwYW5lbCwgJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUocGFuZWwsICdoaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShwYW5lbCwgJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -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 './tag.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXVpL3NyYy9saWIvdGFnL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyNiBWaWxsZSBkZSBNb250cmVhbC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqIFNlZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHByb2plY3Qgcm9vdCBmb3IgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RhZy5jb21wb25lbnQnO1xuIl19
@@ -1,24 +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 { BaoTagComponent } from './tag.component';
9
- import * as i0 from "@angular/core";
10
- const TAG_DIRECTIVES = [BaoTagComponent];
11
- export class BaoTagModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BaoTagModule, declarations: [BaoTagComponent], imports: [CommonModule], exports: [BaoTagComponent] }); }
14
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTagModule, imports: [CommonModule] }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaoTagModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- imports: [CommonModule],
20
- declarations: [TAG_DIRECTIVES],
21
- exports: [TAG_DIRECTIVES]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11aS9zcmMvbGliL3RhZy9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQU96QyxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksaUJBUEQsZUFBZSxhQUczQixZQUFZLGFBSEEsZUFBZTtnSEFPMUIsWUFBWSxZQUpiLFlBQVk7OzRGQUlYLFlBQVk7a0JBTHhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDI2IFZpbGxlIGRlIE1vbnRyZWFsLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLlxuICogU2VlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcHJvamVjdCByb290IGZvciBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24uXG4gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFvVGFnQ29tcG9uZW50IH0gZnJvbSAnLi90YWcuY29tcG9uZW50JztcblxuY29uc3QgVEFHX0RJUkVDVElWRVMgPSBbQmFvVGFnQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1RBR19ESVJFQ1RJVkVTXSxcbiAgZXhwb3J0czogW1RBR19ESVJFQ1RJVkVTXVxufSlcbmV4cG9ydCBjbGFzcyBCYW9UYWdNb2R1bGUge31cbiJdfQ==