@elxjs/ui 0.0.197 → 0.0.199

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.
@@ -0,0 +1,16 @@
1
+ // Breakpoints
2
+ $mobile-max: 991px;
3
+ $desktop-min: 992px;
4
+
5
+ // Mixins para Media Queries
6
+ @mixin mobile {
7
+ @media (max-width: $mobile-max) {
8
+ @content;
9
+ }
10
+ }
11
+
12
+ @mixin desktop {
13
+ @media (min-width: $desktop-min) {
14
+ @content;
15
+ }
16
+ }
@@ -1,12 +1,12 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { RouterModule } from '@angular/router';
3
3
  import { Component, Input } from '@angular/core';
4
- import { EluxArrowLink } from '../arrow-link';
4
+ import { EluxIcon } from '../icon';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/router";
7
7
  export class EluxCardArticle {
8
8
  constructor() {
9
- this.BREAK_VALUE = 60;
9
+ this.BREAK_VALUE = 49;
10
10
  }
11
11
  truncateTitle(title) {
12
12
  if (!title)
@@ -14,11 +14,11 @@ export class EluxCardArticle {
14
14
  return title.length > this.BREAK_VALUE ? `${title.substring(0, this.BREAK_VALUE)}...` : title;
15
15
  }
16
16
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCardArticle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCardArticle, isStandalone: true, selector: "lib-elux-card-article", inputs: { title: "title", routerLink: "routerLink", image: "image", imageAlt: "imageAlt" }, ngImport: i0, template: "<div class=\"card\">\n <img class=\"image\" [srcset]=\"image\" [alt]=\"imageAlt\" loading=\"lazy\" />\n <div class=\"content\">\n <span class=\"title\">{{ truncateTitle(title) }}</span>\n <a [routerLink]=\"routerLink\">\n <lib-elux-arrow-link [title]=\"'Ler artigo'\"></lib-elux-arrow-link>\n </a>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host .card{width:250px;height:320px;border-radius:4px;box-shadow:3px 3px 10px #00000029;overflow:hidden;margin-bottom:10px;display:flex;flex-direction:column;justify-content:space-between}:host .image{width:100%;height:160px;object-fit:cover;object-position:center;display:block}:host .content{height:100%;padding:16px 16px 0;display:flex;flex-direction:column;justify-content:space-between}:host .title{color:#011e41;font-size:16px;font-style:normal;font-weight:600;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: EluxArrowLink, selector: "lib-elux-arrow-link", inputs: ["title", "reverse", "icon_name", "icon_size"] }] }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCardArticle, isStandalone: true, selector: "lib-elux-card-article", inputs: { title: "title", routerLink: "routerLink", image: "image", imageAlt: "imageAlt" }, ngImport: i0, template: "<a [routerLink]=\"routerLink\" class=\"card-article\">\n <div class=\"card-article__image-wrapper\">\n <img [src]=\"image\" [alt]=\"imageAlt\" class=\"card-article__image\" />\n </div>\n <div class=\"card-article__content\">\n <h3 class=\"card-article__title\">{{ truncateTitle(title) }}</h3>\n <span class=\"card-article__link\">\n <lib-elux-icon [icon]=\"'Link.svg'\" size=\"18\"/>\n Acessar\n </span>\n </div>\n</a>", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.card-article{display:flex;flex-direction:column;background-color:#f5f5f0;border-radius:4px;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease;height:100%;width:160px}.card-article:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.card-article__image-wrapper{width:100%;height:120px;overflow:hidden}.card-article__image{width:100%;height:100%;object-fit:cover;display:block}.card-article__content{height:150px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.card-article__title{color:#2b3227;font-size:16px;font-weight:600;line-height:19px}.card-article__link{display:inline-flex;align-items:center;gap:6px;color:#2b3227;font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer}@media (min-width: 992px){.card-article{width:270px}.card-article__image-wrapper{width:100%;height:200px;overflow:hidden}.card-article__title{color:#2b3227;font-size:20px;font-weight:600;line-height:24px}}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
18
18
  }
19
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCardArticle, decorators: [{
20
20
  type: Component,
21
- args: [{ standalone: true, imports: [RouterModule, CommonModule, EluxArrowLink], selector: 'lib-elux-card-article', template: "<div class=\"card\">\n <img class=\"image\" [srcset]=\"image\" [alt]=\"imageAlt\" loading=\"lazy\" />\n <div class=\"content\">\n <span class=\"title\">{{ truncateTitle(title) }}</span>\n <a [routerLink]=\"routerLink\">\n <lib-elux-arrow-link [title]=\"'Ler artigo'\"></lib-elux-arrow-link>\n </a>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host .card{width:250px;height:320px;border-radius:4px;box-shadow:3px 3px 10px #00000029;overflow:hidden;margin-bottom:10px;display:flex;flex-direction:column;justify-content:space-between}:host .image{width:100%;height:160px;object-fit:cover;object-position:center;display:block}:host .content{height:100%;padding:16px 16px 0;display:flex;flex-direction:column;justify-content:space-between}:host .title{color:#011e41;font-size:16px;font-style:normal;font-weight:600;line-height:20px}\n"] }]
21
+ args: [{ standalone: true, imports: [RouterModule, CommonModule, EluxIcon], selector: 'lib-elux-card-article', template: "<a [routerLink]=\"routerLink\" class=\"card-article\">\n <div class=\"card-article__image-wrapper\">\n <img [src]=\"image\" [alt]=\"imageAlt\" class=\"card-article__image\" />\n </div>\n <div class=\"card-article__content\">\n <h3 class=\"card-article__title\">{{ truncateTitle(title) }}</h3>\n <span class=\"card-article__link\">\n <lib-elux-icon [icon]=\"'Link.svg'\" size=\"18\"/>\n Acessar\n </span>\n </div>\n</a>", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.card-article{display:flex;flex-direction:column;background-color:#f5f5f0;border-radius:4px;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease;height:100%;width:160px}.card-article:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.card-article__image-wrapper{width:100%;height:120px;overflow:hidden}.card-article__image{width:100%;height:100%;object-fit:cover;display:block}.card-article__content{height:150px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.card-article__title{color:#2b3227;font-size:16px;font-weight:600;line-height:19px}.card-article__link{display:inline-flex;align-items:center;gap:6px;color:#2b3227;font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer}@media (min-width: 992px){.card-article{width:270px}.card-article__image-wrapper{width:100%;height:200px;overflow:hidden}.card-article__title{color:#2b3227;font-size:20px;font-weight:600;line-height:24px}}\n"] }]
22
22
  }], propDecorators: { title: [{
23
23
  type: Input
24
24
  }], routerLink: [{
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
28
28
  }], imageAlt: [{
29
29
  type: Input
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hcnRpY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3VpL2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtYXJ0aWNsZS9jYXJkLWFydGljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1hcnRpY2xlL2NhcmQtYXJ0aWNsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVM5QyxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQWFtQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztLQU0zQztJQUpDLGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRyxDQUFDOytHQVhVLGVBQWU7bUdBQWYsZUFBZSw2S0NaNUIsK1VBU0EsbytEREZZLFlBQVksK1FBQUUsWUFBWSwrQkFBRSxhQUFhOzs0RkFLeEMsZUFBZTtrQkFQM0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxZQUMxQyx1QkFBdUI7OEJBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbHV4QXJyb3dMaW5rIH0gZnJvbSAnLi4vYXJyb3ctbGluayc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLCBDb21tb25Nb2R1bGUsIEVsdXhBcnJvd0xpbmtdLFxuICBzZWxlY3RvcjogJ2xpYi1lbHV4LWNhcmQtYXJ0aWNsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWFydGljbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJkLWFydGljbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRWx1eENhcmRBcnRpY2xlIHtcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlckxpbmshOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGltYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSBpbWFnZUFsdCE6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IEJSRUFLX1ZBTFVFOiBudW1iZXIgPSA2MDtcblxuICB0cnVuY2F0ZVRpdGxlKHRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGl0bGUpIHJldHVybiAnJztcbiAgICByZXR1cm4gdGl0bGUubGVuZ3RoID4gdGhpcy5CUkVBS19WQUxVRSA/IGAke3RpdGxlLnN1YnN0cmluZygwLCB0aGlzLkJSRUFLX1ZBTFVFKX0uLi5gIDogdGl0bGU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gIDxpbWcgY2xhc3M9XCJpbWFnZVwiIFtzcmNzZXRdPVwiaW1hZ2VcIiBbYWx0XT1cImltYWdlQWx0XCIgbG9hZGluZz1cImxhenlcIiAvPlxuICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57eyB0cnVuY2F0ZVRpdGxlKHRpdGxlKSB9fTwvc3Bhbj5cbiAgICA8YSBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCI+XG4gICAgICA8bGliLWVsdXgtYXJyb3ctbGluayBbdGl0bGVdPVwiJ0xlciBhcnRpZ28nXCI+PC9saWItZWx1eC1hcnJvdy1saW5rPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hcnRpY2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3VpL2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtYXJ0aWNsZS9jYXJkLWFydGljbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1hcnRpY2xlL2NhcmQtYXJ0aWNsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQVNuQyxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQWFtQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztLQU0zQztJQUpDLGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRyxDQUFDOytHQVhVLGVBQWU7bUdBQWYsZUFBZSw2S0NaNUIsOGJBV0ksbzlFREpRLFlBQVksK1FBQUUsWUFBWSwrQkFBRSxRQUFROzs0RkFLbkMsZUFBZTtrQkFQM0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUNyQyx1QkFBdUI7OEJBS3hCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbHV4SWNvbiB9IGZyb20gJy4uL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZSwgQ29tbW9uTW9kdWxlLCBFbHV4SWNvbl0sXG4gIHNlbGVjdG9yOiAnbGliLWVsdXgtY2FyZC1hcnRpY2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtYXJ0aWNsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtYXJ0aWNsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbHV4Q2FyZEFydGljbGUge1xuICBASW5wdXQoKSB0aXRsZSE6IHN0cmluZztcbiAgQElucHV0KCkgcm91dGVyTGluayE6IHN0cmluZztcbiAgQElucHV0KCkgaW1hZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGltYWdlQWx0ITogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgQlJFQUtfVkFMVUU6IG51bWJlciA9IDQ5O1xuXG4gIHRydW5jYXRlVGl0bGUodGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aXRsZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB0aXRsZS5sZW5ndGggPiB0aGlzLkJSRUFLX1ZBTFVFID8gYCR7dGl0bGUuc3Vic3RyaW5nKDAsIHRoaXMuQlJFQUtfVkFMVUUpfS4uLmAgOiB0aXRsZTtcbiAgfVxufVxuIiwiPGEgW3JvdXRlckxpbmtdPVwicm91dGVyTGlua1wiIGNsYXNzPVwiY2FyZC1hcnRpY2xlXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWFydGljbGVfX2ltYWdlLXdyYXBwZXJcIj5cbiAgICA8aW1nIFtzcmNdPVwiaW1hZ2VcIiBbYWx0XT1cImltYWdlQWx0XCIgY2xhc3M9XCJjYXJkLWFydGljbGVfX2ltYWdlXCIgLz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWFydGljbGVfX2NvbnRlbnRcIj5cbiAgICA8aDMgY2xhc3M9XCJjYXJkLWFydGljbGVfX3RpdGxlXCI+e3sgdHJ1bmNhdGVUaXRsZSh0aXRsZSkgfX08L2gzPlxuICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1hcnRpY2xlX19saW5rXCI+XG4gICAgICA8bGliLWVsdXgtaWNvbiBbaWNvbl09XCInTGluay5zdmcnXCIgc2l6ZT1cIjE4XCIvPlxuICAgICAgQWNlc3NhclxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2E+Il19
@@ -1,12 +1,14 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, forwardRef, HostListener, Input, Output } from '@angular/core';
3
- import { FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';
2
+ import { Component, EventEmitter, forwardRef, HostListener, Input, Output, } from '@angular/core';
3
+ import { FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule, } from '@angular/forms';
4
4
  import { EluxIcon } from '../icon';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
6
+ import * as i1 from "./dropdown.service";
7
+ import * as i2 from "@angular/common";
7
8
  export class EluxDropdown {
8
- constructor(injector) {
9
+ constructor(injector, dropdownService) {
9
10
  this.injector = injector;
11
+ this.dropdownService = dropdownService;
10
12
  this.placeholder = 'Selecione';
11
13
  this.options = [];
12
14
  this.selectedOption = '';
@@ -27,6 +29,11 @@ export class EluxDropdown {
27
29
  if (!this.idInput) {
28
30
  this.idInput = `dropdown-${Math.random().toString(36).substring(2, 11)}`;
29
31
  }
32
+ this.dropdownService.closeAll$.subscribe((exceptId) => {
33
+ if (this.idInput !== exceptId) {
34
+ this.isOpen = false;
35
+ }
36
+ });
30
37
  this.optionsFiltered = this.options;
31
38
  }
32
39
  ngOnChanges(changes) {
@@ -50,10 +57,14 @@ export class EluxDropdown {
50
57
  }
51
58
  updateSelectedOption() {
52
59
  const selectedOption = this.options.find((option) => option.value === this.selectedOption);
53
- this.selectedOptionText = selectedOption ? selectedOption.text : this.showSearch ? '' : this.placeholder;
60
+ this.selectedOptionText = selectedOption
61
+ ? selectedOption.text
62
+ : this.showSearch
63
+ ? ''
64
+ : this.placeholder;
54
65
  }
55
66
  updatePlaceholderOption() {
56
- const placeholderOptionIndex = this.options.findIndex(option => option.value === null);
67
+ const placeholderOptionIndex = this.options.findIndex((option) => option.value === null);
57
68
  if (placeholderOptionIndex !== -1) {
58
69
  this.options[placeholderOptionIndex].text = this.placeholder;
59
70
  }
@@ -68,6 +79,9 @@ export class EluxDropdown {
68
79
  if (!this.disabled) {
69
80
  this.isOpen = !this.isOpen;
70
81
  }
82
+ if (this.isOpen) {
83
+ this.dropdownService.requestClose(this.idInput);
84
+ }
71
85
  }
72
86
  onDocumentClick(event) {
73
87
  const target = event.target;
@@ -98,7 +112,8 @@ export class EluxDropdown {
98
112
  }
99
113
  onChangeFilter(event) {
100
114
  const term = event?.target?.value?.toLowerCase() || '';
101
- this.optionsFiltered = this.options.filter(option => option.text.toLowerCase().includes(term));
115
+ this.optionsFiltered = this.options.filter((option) => option.text.toLowerCase().includes(term));
116
+ this.optionsFiltered = this.options.filter((option) => option.text.toLowerCase().includes(term));
102
117
  }
103
118
  get isTouched() {
104
119
  return this.parentFormControl?.touched || this.parentFormControl?.dirty;
@@ -106,14 +121,14 @@ export class EluxDropdown {
106
121
  get isInvalid() {
107
122
  return this.parentFormControl?.invalid;
108
123
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxDropdown, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxDropdown, deps: [{ token: i0.Injector }, { token: i1.DropdownService }], target: i0.ɵɵFactoryTarget.Component }); }
110
125
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxDropdown, isStandalone: true, selector: "lib-elux-dropdown", inputs: { placeholder: "placeholder", options: "options", selectedOption: "selectedOption", disabled: "disabled", idInput: "idInput", showSearch: "showSearch" }, outputs: { optionSelected: "optionSelected" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
111
126
  {
112
127
  provide: NG_VALUE_ACCESSOR,
113
128
  useExisting: forwardRef(() => EluxDropdown),
114
129
  multi: true,
115
130
  },
116
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host{color:\"darkest-grey\"}:host .noClick{pointer-events:none}:host .custom-dropdown{position:relative;width:100%}:host .selected-option{padding:10px 16px;cursor:pointer}:host .selected-option-border{border:1px solid #7A8A9B}:host .dropdown-list{list-style-type:none;padding:0;margin:0;border:1px solid #EAEBED;position:absolute;top:100%;width:100%;left:0;background-color:#fff;display:block;max-height:256px;overflow:auto;z-index:10}:host .dropdown-list::-webkit-scrollbar{width:4px}:host .dropdown-list::-webkit-scrollbar-track{background:#f4f5f7}:host .dropdown-list::-webkit-scrollbar-thumb{background:#adb9c3}:host .dropdown-list li{padding:13px 16px;cursor:pointer}:host .dropdown-list li:hover{background-color:#eaebed}:host .arrow-icon{display:flex;position:absolute;top:calc(50% - 8px);right:10px;cursor:pointer;transition:all .3s ease-in-out}:host .arrow-rotate{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
131
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host{color:\"darkest-grey\"}:host .noClick{pointer-events:none}:host .custom-dropdown{position:relative;width:100%}:host .selected-option{padding:10px 16px;cursor:pointer}:host .selected-option-border{border:1px solid #7A8A9B}:host .dropdown-list{list-style-type:none;padding:0;margin:0;border:1px solid #EAEBED;position:absolute;top:100%;width:100%;left:0;background-color:#fff;display:block;max-height:256px;overflow:auto;z-index:10}:host .dropdown-list::-webkit-scrollbar{width:4px}:host .dropdown-list::-webkit-scrollbar-track{background:#f4f5f7}:host .dropdown-list::-webkit-scrollbar-thumb{background:#adb9c3}:host .dropdown-list li{padding:13px 16px;cursor:pointer}:host .dropdown-list li:hover{background-color:#eaebed}:host .arrow-icon{display:flex;position:absolute;top:calc(50% - 8px);right:10px;cursor:pointer;transition:all .3s ease-in-out}:host .arrow-rotate{transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
117
132
  }
118
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxDropdown, decorators: [{
119
134
  type: Component,
@@ -124,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
124
139
  multi: true,
125
140
  },
126
141
  ], template: "<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host{color:\"darkest-grey\"}:host .noClick{pointer-events:none}:host .custom-dropdown{position:relative;width:100%}:host .selected-option{padding:10px 16px;cursor:pointer}:host .selected-option-border{border:1px solid #7A8A9B}:host .dropdown-list{list-style-type:none;padding:0;margin:0;border:1px solid #EAEBED;position:absolute;top:100%;width:100%;left:0;background-color:#fff;display:block;max-height:256px;overflow:auto;z-index:10}:host .dropdown-list::-webkit-scrollbar{width:4px}:host .dropdown-list::-webkit-scrollbar-track{background:#f4f5f7}:host .dropdown-list::-webkit-scrollbar-thumb{background:#adb9c3}:host .dropdown-list li{padding:13px 16px;cursor:pointer}:host .dropdown-list li:hover{background-color:#eaebed}:host .arrow-icon{display:flex;position:absolute;top:calc(50% - 8px);right:10px;cursor:pointer;transition:all .3s ease-in-out}:host .arrow-rotate{transform:rotate(180deg)}\n"] }]
127
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { placeholder: [{
142
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.DropdownService }], propDecorators: { placeholder: [{
128
143
  type: Input
129
144
  }], options: [{
130
145
  type: Input
@@ -142,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
157
  type: HostListener,
143
158
  args: ['document:click', ['$event']]
144
159
  }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVksS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBcUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25JLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQXFCbkMsTUFBTSxPQUFPLFlBQVk7SUFvQnZCLFlBQTZCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFsQnRDLGdCQUFXLEdBQVcsV0FBVyxDQUFDO1FBQ2xDLFlBQU8sR0FBcUIsRUFBRSxDQUFDO1FBQy9CLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTNCLG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdEUsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBRS9CLGFBQVEsR0FBYSxHQUFHLEVBQUUsQ0FBQyxT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QUk7eUJBQ1o7cUJBQ0Y7NkVBTVEsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBd0VQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFbHV4SWNvbiB9IGZyb20gJy4uL2ljb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9uIHtcbiAgdmFsdWU6IGFueTtcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZWx1eC1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFbHV4SWNvbl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWx1eERyb3Bkb3duKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEVsdXhEcm9wZG93biBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY2lvbmUnO1xuICBASW5wdXQoKSBvcHRpb25zOiBEcm9wZG93bk9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkT3B0aW9uOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaWRJbnB1dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb3B0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkT3B0aW9uVGV4dCA9ICcnO1xuXG4gIG9wdGlvbnNGaWx0ZXJlZDogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4gdW5kZWZpbmVkO1xuICBwcml2YXRlIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcGFyZW50Rm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluamVjdFBhcmVudEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5hZGRQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuaWRJbnB1dCkge1xuICAgICAgdGhpcy5pZElucHV0ID0gYGRyb3Bkb3duLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDExKX1gO1xuICAgIH1cblxuICAgIHRoaXMub3B0aW9uc0ZpbHRlcmVkID0gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZE9wdGlvbiddICYmICFjaGFuZ2VzWydzZWxlY3RlZE9wdGlvbiddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWydwbGFjZWhvbGRlciddICYmICFjaGFuZ2VzWydwbGFjZWhvbGRlciddLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGluamVjdFBhcmVudEZvcm1Db250cm9sKCkge1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5wYXJlbnRGb3JtQ29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xuICAgIH1cbiAgfVxuXG4gIGFkZFBsYWNlaG9sZGVyT3B0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgdGhpcy5vcHRpb25zLnVuc2hpZnQoeyB2YWx1ZTogbnVsbCwgdGV4dDogdGhpcy5wbGFjZWhvbGRlciB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbik7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSBzZWxlY3RlZE9wdGlvbiA/IHNlbGVjdGVkT3B0aW9uLnRleHQgOiB0aGlzLnNob3dTZWFyY2ggPyAnJyA6IHRoaXMucGxhY2Vob2xkZXI7XG4gIH1cblxuICB1cGRhdGVQbGFjZWhvbGRlck9wdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBwbGFjZWhvbGRlck9wdGlvbkluZGV4ID0gdGhpcy5vcHRpb25zLmZpbmRJbmRleChvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSBudWxsKTtcbiAgICBpZiAocGxhY2Vob2xkZXJPcHRpb25JbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMub3B0aW9uc1twbGFjZWhvbGRlck9wdGlvbkluZGV4XS50ZXh0ID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93U2VhcmNoICYmICF0aGlzLnNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KGAjJHt0aGlzLmlkSW5wdXR9YCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogRHJvcGRvd25PcHRpb24pIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IG9wdGlvbi50ZXh0O1xuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChvcHRpb24udmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLm9wdGlvbnNGaWx0ZXJlZCA9IHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbkNoYW5nZUZpbHRlcihldmVudDogYW55KSB7XG4gICAgY29uc3QgdGVybSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuICAgIHRoaXMub3B0aW9uc0ZpbHRlcmVkID0gdGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT5cbiAgICAgIG9wdGlvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSlcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzVG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtQ29udHJvbD8udG91Y2hlZCB8fCB0aGlzLnBhcmVudEZvcm1Db250cm9sPy5kaXJ0eTtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybUNvbnRyb2w/LmludmFsaWQ7XG4gIH1cbn0iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tLWRyb3Bkb3duXCI+XG4gIDxpbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzcz1cInNlbGVjdGVkLW9wdGlvblwiXG4gICAgW2lkXT1cImlkSW5wdXRcIlxuICAgIFtyZWFkb25seV09XCJzaG93U2VhcmNoID8gZmFsc2UgOiB0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3ZhbHVlXT1cInNlbGVjdGVkT3B0aW9uVGV4dCA/IHNlbGVjdGVkT3B0aW9uVGV4dCA6ICcnXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnbmctaW52YWxpZCc6IGlzSW52YWxpZCxcbiAgICAgICduZy10b3VjaGVkJzogaXNUb3VjaGVkLFxuICAgICAgJ3NlbGVjdGVkLW9wdGlvbi1ib3JkZXInOiAhaXNJbnZhbGlkIHx8ICFpc1RvdWNoZWQsXG4gICAgfVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKClcIlxuICAgIChpbnB1dCk9XCJvbkNoYW5nZUZpbHRlcigkZXZlbnQpXCJcbiAgLz5cbiAgPGxpYi1lbHV4LWljb25cbiAgICBjbGFzcz1cImFycm93LWljb24gbm9DbGlja1wiXG4gICAgW2NvbG9yXT1cIicjN0E4QTlCJ1wiXG4gICAgW2ljb25dPVwiJ0NoZXZyb25fRG93bi5zdmcnXCJcbiAgICBbbmdDbGFzc109XCJ7ICdhcnJvdy1yb3RhdGUnOiBpc09wZW4gfVwiXG4gICAgW3NpemVdPVwiJzE2J1wiXG4gICAgW3NpemVUeXBlXT1cIidweCdcIlxuICA+PC9saWItZWx1eC1pY29uPlxuICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCIgKm5nSWY9XCJpc09wZW5cIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzaG93U2VhcmNoID8gb3B0aW9uc0ZpbHRlcmVkIDogb3B0aW9uc1wiIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiPlxuICAgICAge3sgb3B0aW9uLnRleHQgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBRVosS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztBQXFCbkMsTUFBTSxPQUFPLFlBQVk7SUFtQnZCLFlBQ21CLFFBQWtCLEVBQzNCLGVBQWdDO1FBRHZCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBcEJqQyxnQkFBVyxHQUFXLFdBQVcsQ0FBQztRQUNsQyxZQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUMvQixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUUzQixtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXRFLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBRXhCLG9CQUFlLEdBQXFCLEVB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QztJQUMxRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0lBQ3pDLENBQUM7K0dBakpVLFlBQVk7bUdBQVosWUFBWSx1VkFWWjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsK0NDdENILDQ3QkErQkEsODRFREFZLFlBQVksNlZBQUUsV0FBVyw4QkFBRSxtQkFBbUIsK0JBQUUsUUFBUTs7NEZBV3ZELFlBQVk7a0JBZHhCLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLGFBQ3hEO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQzs0QkFDM0MsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7MkdBS1EsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU07Z0JBdUZQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1Db250cm9sLFxuICBGb3Jtc01vZHVsZSxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWx1eEljb24gfSBmcm9tICcuLi9pY29uJztcbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZHJvcGRvd24uc2VydmljZSc7XG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9uIHtcbiAgdmFsdWU6IGFueTtcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZWx1eC1kcm9wZG93bicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBFbHV4SWNvbl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWx1eERyb3Bkb3duKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kcm9wZG93bi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEVsdXhEcm9wZG93biBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWNpb25lJztcbiAgQElucHV0KCkgb3B0aW9uczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RlZE9wdGlvbjogYW55ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlkSW5wdXQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzaG93U2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9wdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZE9wdGlvblRleHQgPSAnJztcblxuICBvcHRpb25zRmlsdGVyZWQ6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4gdW5kZWZpbmVkO1xuICBwcml2YXRlIHBhcmVudEZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBkcm9wZG93blNlcnZpY2U6IERyb3Bkb3duU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0UGFyZW50Rm9ybUNvbnRyb2woKTtcbiAgICB0aGlzLmFkZFBsYWNlaG9sZGVyT3B0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgIGlmICghdGhpcy5pZElucHV0KSB7XG4gICAgICB0aGlzLmlkSW5wdXQgPSBgZHJvcGRvd24tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgMTEpfWA7XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsJC5zdWJzY3JpYmUoKGV4Y2VwdElkKSA9PiB7XG4gICAgICBpZiAodGhpcy5pZElucHV0ICE9PSBleGNlcHRJZCkge1xuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb25zRmlsdGVyZWQgPSB0aGlzLm9wdGlvbnM7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkT3B0aW9uJ10gJiYgIWNoYW5nZXNbJ3NlbGVjdGVkT3B0aW9uJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10gJiYgIWNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10uaXNGaXJzdENoYW5nZSgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyT3B0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgaW5qZWN0UGFyZW50Rm9ybUNvbnRyb2woKSB7XG4gICAgY29uc3QgbmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcbiAgICBpZiAobmdDb250cm9sKSB7XG4gICAgICB0aGlzLnBhcmVudEZvcm1Db250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuICB9XG5cbiAgYWRkUGxhY2Vob2xkZXJPcHRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IG51bGwpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMudW5zaGlmdCh7IHZhbHVlOiBudWxsLCB0ZXh0OiB0aGlzLnBsYWNlaG9sZGVyIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkT3B0aW9uKTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IHNlbGVjdGVkT3B0aW9uXG4gICAgICA/IHNlbGVjdGVkT3B0aW9uLnRleHRcbiAgICAgIDogdGhpcy5zaG93U2VhcmNoXG4gICAgICAgID8gJydcbiAgICAgICAgOiB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgdXBkYXRlUGxhY2Vob2xkZXJPcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgcGxhY2Vob2xkZXJPcHRpb25JbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBudWxsKTtcbiAgICBpZiAocGxhY2Vob2xkZXJPcHRpb25JbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMub3B0aW9uc1twbGFjZWhvbGRlck9wdGlvbkluZGV4XS50ZXh0ID0gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5zaG93U2VhcmNoICYmICF0aGlzLnNlbGVjdGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5yZXF1ZXN0Q2xvc2UodGhpcy5pZElucHV0KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KGAjJHt0aGlzLmlkSW5wdXR9YCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogRHJvcGRvd25PcHRpb24pIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IG9wdGlvbi50ZXh0O1xuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChvcHRpb24udmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2Uob3B0aW9uLnZhbHVlKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG5cbiAgICB0aGlzLm9wdGlvbnNGaWx0ZXJlZCA9IHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbkNoYW5nZUZpbHRlcihldmVudDogYW55KSB7XG4gICAgY29uc3QgdGVybSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlPy50b0xvd2VyQ2FzZSgpIHx8ICcnO1xuICAgIHRoaXMub3B0aW9uc0ZpbHRlcmVkID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgb3B0aW9uLnRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSxcbiAgICApO1xuICAgIHRoaXMub3B0aW9uc0ZpbHRlcmVkID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PlxuICAgICAgb3B0aW9uLnRleHQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzVG91Y2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtQ29udHJvbD8udG91Y2hlZCB8fCB0aGlzLnBhcmVudEZvcm1Db250cm9sPy5kaXJ0eTtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Rm9ybUNvbnRyb2w/LmludmFsaWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjdXN0b20tZHJvcGRvd25cIj5cbiAgPGlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwic2VsZWN0ZWQtb3B0aW9uXCJcbiAgICBbaWRdPVwiaWRJbnB1dFwiXG4gICAgW3JlYWRvbmx5XT1cInNob3dTZWFyY2ggPyBmYWxzZSA6IHRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWRPcHRpb25UZXh0ID8gc2VsZWN0ZWRPcHRpb25UZXh0IDogJydcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICduZy1pbnZhbGlkJzogaXNJbnZhbGlkLFxuICAgICAgJ25nLXRvdWNoZWQnOiBpc1RvdWNoZWQsXG4gICAgICAnc2VsZWN0ZWQtb3B0aW9uLWJvcmRlcic6ICFpc0ludmFsaWQgfHwgIWlzVG91Y2hlZCxcbiAgICB9XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oKVwiXG4gICAgKGlucHV0KT1cIm9uQ2hhbmdlRmlsdGVyKCRldmVudClcIlxuICAvPlxuICA8bGliLWVsdXgtaWNvblxuICAgIGNsYXNzPVwiYXJyb3ctaWNvbiBub0NsaWNrXCJcbiAgICBbY29sb3JdPVwiJyM3QThBOUInXCJcbiAgICBbaWNvbl09XCInQ2hldnJvbl9Eb3duLnN2ZydcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2Fycm93LXJvdGF0ZSc6IGlzT3BlbiB9XCJcbiAgICBbc2l6ZV09XCInMTYnXCJcbiAgICBbc2l6ZVR5cGVdPVwiJ3B4J1wiXG4gID48L2xpYi1lbHV4LWljb24+XG4gIDx1bCBjbGFzcz1cImRyb3Bkb3duLWxpc3RcIiAqbmdJZj1cImlzT3BlblwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNob3dTZWFyY2ggPyBvcHRpb25zRmlsdGVyZWQgOiBvcHRpb25zXCIgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24pXCI+XG4gICAgICB7eyBvcHRpb24udGV4dCB9fVxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class DropdownService {
5
+ constructor() {
6
+ this.closeAllSubject = new Subject();
7
+ this.closeAll$ = this.closeAllSubject.asObservable();
8
+ }
9
+ requestClose(exceptId) {
10
+ this.closeAllSubject.next(exceptId);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, providedIn: 'root' }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, decorators: [{
16
+ type: Injectable,
17
+ args: [{ providedIn: 'root' }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3VpL2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQixNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQUVVLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNoRCxjQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUtqRDtJQUhDLFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOytHQU5VLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blNlcnZpY2Uge1xuICBwcml2YXRlIGNsb3NlQWxsU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgY2xvc2VBbGwkID0gdGhpcy5jbG9zZUFsbFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVxdWVzdENsb3NlKGV4Y2VwdElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsb3NlQWxsU3ViamVjdC5uZXh0KGV4Y2VwdElkKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ViewChild, Input, EventEmitter, Output, forwardRef, HostListener, Injectable, booleanAttribute, ElementRef, ContentChildren, NgModule } from '@angular/core';
2
+ import { Component, ViewChild, Input, EventEmitter, Output, Injectable, forwardRef, HostListener, booleanAttribute, ElementRef, ContentChildren, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { ReactiveFormsModule, NgControl, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
@@ -201,9 +201,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
201
201
  type: Output
202
202
  }] } });
203
203
 
204
+ class DropdownService {
205
+ constructor() {
206
+ this.closeAllSubject = new Subject();
207
+ this.closeAll$ = this.closeAllSubject.asObservable();
208
+ }
209
+ requestClose(exceptId) {
210
+ this.closeAllSubject.next(exceptId);
211
+ }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
213
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, providedIn: 'root' }); }
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownService, decorators: [{
216
+ type: Injectable,
217
+ args: [{ providedIn: 'root' }]
218
+ }] });
219
+
204
220
  class EluxDropdown {
205
- constructor(injector) {
221
+ constructor(injector, dropdownService) {
206
222
  this.injector = injector;
223
+ this.dropdownService = dropdownService;
207
224
  this.placeholder = 'Selecione';
208
225
  this.options = [];
209
226
  this.selectedOption = '';
@@ -224,6 +241,11 @@ class EluxDropdown {
224
241
  if (!this.idInput) {
225
242
  this.idInput = `dropdown-${Math.random().toString(36).substring(2, 11)}`;
226
243
  }
244
+ this.dropdownService.closeAll$.subscribe((exceptId) => {
245
+ if (this.idInput !== exceptId) {
246
+ this.isOpen = false;
247
+ }
248
+ });
227
249
  this.optionsFiltered = this.options;
228
250
  }
229
251
  ngOnChanges(changes) {
@@ -247,10 +269,14 @@ class EluxDropdown {
247
269
  }
248
270
  updateSelectedOption() {
249
271
  const selectedOption = this.options.find((option) => option.value === this.selectedOption);
250
- this.selectedOptionText = selectedOption ? selectedOption.text : this.showSearch ? '' : this.placeholder;
272
+ this.selectedOptionText = selectedOption
273
+ ? selectedOption.text
274
+ : this.showSearch
275
+ ? ''
276
+ : this.placeholder;
251
277
  }
252
278
  updatePlaceholderOption() {
253
- const placeholderOptionIndex = this.options.findIndex(option => option.value === null);
279
+ const placeholderOptionIndex = this.options.findIndex((option) => option.value === null);
254
280
  if (placeholderOptionIndex !== -1) {
255
281
  this.options[placeholderOptionIndex].text = this.placeholder;
256
282
  }
@@ -265,6 +291,9 @@ class EluxDropdown {
265
291
  if (!this.disabled) {
266
292
  this.isOpen = !this.isOpen;
267
293
  }
294
+ if (this.isOpen) {
295
+ this.dropdownService.requestClose(this.idInput);
296
+ }
268
297
  }
269
298
  onDocumentClick(event) {
270
299
  const target = event.target;
@@ -295,7 +324,8 @@ class EluxDropdown {
295
324
  }
296
325
  onChangeFilter(event) {
297
326
  const term = event?.target?.value?.toLowerCase() || '';
298
- this.optionsFiltered = this.options.filter(option => option.text.toLowerCase().includes(term));
327
+ this.optionsFiltered = this.options.filter((option) => option.text.toLowerCase().includes(term));
328
+ this.optionsFiltered = this.options.filter((option) => option.text.toLowerCase().includes(term));
299
329
  }
300
330
  get isTouched() {
301
331
  return this.parentFormControl?.touched || this.parentFormControl?.dirty;
@@ -303,7 +333,7 @@ class EluxDropdown {
303
333
  get isInvalid() {
304
334
  return this.parentFormControl?.invalid;
305
335
  }
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxDropdown, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
336
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxDropdown, deps: [{ token: i0.Injector }, { token: DropdownService }], target: i0.ɵɵFactoryTarget.Component }); }
307
337
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxDropdown, isStandalone: true, selector: "lib-elux-dropdown", inputs: { placeholder: "placeholder", options: "options", selectedOption: "selectedOption", disabled: "disabled", idInput: "idInput", showSearch: "showSearch" }, outputs: { optionSelected: "optionSelected" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, providers: [
308
338
  {
309
339
  provide: NG_VALUE_ACCESSOR,
@@ -321,7 +351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
321
351
  multi: true,
322
352
  },
323
353
  ], template: "<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body,:host{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host{color:\"darkest-grey\"}:host .noClick{pointer-events:none}:host .custom-dropdown{position:relative;width:100%}:host .selected-option{padding:10px 16px;cursor:pointer}:host .selected-option-border{border:1px solid #7A8A9B}:host .dropdown-list{list-style-type:none;padding:0;margin:0;border:1px solid #EAEBED;position:absolute;top:100%;width:100%;left:0;background-color:#fff;display:block;max-height:256px;overflow:auto;z-index:10}:host .dropdown-list::-webkit-scrollbar{width:4px}:host .dropdown-list::-webkit-scrollbar-track{background:#f4f5f7}:host .dropdown-list::-webkit-scrollbar-thumb{background:#adb9c3}:host .dropdown-list li{padding:13px 16px;cursor:pointer}:host .dropdown-list li:hover{background-color:#eaebed}:host .arrow-icon{display:flex;position:absolute;top:calc(50% - 8px);right:10px;cursor:pointer;transition:all .3s ease-in-out}:host .arrow-rotate{transform:rotate(180deg)}\n"] }]
324
- }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { placeholder: [{
354
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: DropdownService }], propDecorators: { placeholder: [{
325
355
  type: Input
326
356
  }], options: [{
327
357
  type: Input
@@ -2392,7 +2422,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2392
2422
 
2393
2423
  class EluxCardArticle {
2394
2424
  constructor() {
2395
- this.BREAK_VALUE = 60;
2425
+ this.BREAK_VALUE = 49;
2396
2426
  }
2397
2427
  truncateTitle(title) {
2398
2428
  if (!title)
@@ -2400,11 +2430,11 @@ class EluxCardArticle {
2400
2430
  return title.length > this.BREAK_VALUE ? `${title.substring(0, this.BREAK_VALUE)}...` : title;
2401
2431
  }
2402
2432
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCardArticle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2403
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCardArticle, isStandalone: true, selector: "lib-elux-card-article", inputs: { title: "title", routerLink: "routerLink", image: "image", imageAlt: "imageAlt" }, ngImport: i0, template: "<div class=\"card\">\n <img class=\"image\" [srcset]=\"image\" [alt]=\"imageAlt\" loading=\"lazy\" />\n <div class=\"content\">\n <span class=\"title\">{{ truncateTitle(title) }}</span>\n <a [routerLink]=\"routerLink\">\n <lib-elux-arrow-link [title]=\"'Ler artigo'\"></lib-elux-arrow-link>\n </a>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host .card{width:250px;height:320px;border-radius:4px;box-shadow:3px 3px 10px #00000029;overflow:hidden;margin-bottom:10px;display:flex;flex-direction:column;justify-content:space-between}:host .image{width:100%;height:160px;object-fit:cover;object-position:center;display:block}:host .content{height:100%;padding:16px 16px 0;display:flex;flex-direction:column;justify-content:space-between}:host .title{color:#011e41;font-size:16px;font-style:normal;font-weight:600;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: EluxArrowLink, selector: "lib-elux-arrow-link", inputs: ["title", "reverse", "icon_name", "icon_size"] }] }); }
2433
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCardArticle, isStandalone: true, selector: "lib-elux-card-article", inputs: { title: "title", routerLink: "routerLink", image: "image", imageAlt: "imageAlt" }, ngImport: i0, template: "<a [routerLink]=\"routerLink\" class=\"card-article\">\n <div class=\"card-article__image-wrapper\">\n <img [src]=\"image\" [alt]=\"imageAlt\" class=\"card-article__image\" />\n </div>\n <div class=\"card-article__content\">\n <h3 class=\"card-article__title\">{{ truncateTitle(title) }}</h3>\n <span class=\"card-article__link\">\n <lib-elux-icon [icon]=\"'Link.svg'\" size=\"18\"/>\n Acessar\n </span>\n </div>\n</a>", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.card-article{display:flex;flex-direction:column;background-color:#f5f5f0;border-radius:4px;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease;height:100%;width:160px}.card-article:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.card-article__image-wrapper{width:100%;height:120px;overflow:hidden}.card-article__image{width:100%;height:100%;object-fit:cover;display:block}.card-article__content{height:150px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.card-article__title{color:#2b3227;font-size:16px;font-weight:600;line-height:19px}.card-article__link{display:inline-flex;align-items:center;gap:6px;color:#2b3227;font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer}@media (min-width: 992px){.card-article{width:270px}.card-article__image-wrapper{width:100%;height:200px;overflow:hidden}.card-article__title{color:#2b3227;font-size:20px;font-weight:600;line-height:24px}}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
2404
2434
  }
2405
2435
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCardArticle, decorators: [{
2406
2436
  type: Component,
2407
- args: [{ standalone: true, imports: [RouterModule, CommonModule, EluxArrowLink], selector: 'lib-elux-card-article', template: "<div class=\"card\">\n <img class=\"image\" [srcset]=\"image\" [alt]=\"imageAlt\" loading=\"lazy\" />\n <div class=\"content\">\n <span class=\"title\">{{ truncateTitle(title) }}</span>\n <a [routerLink]=\"routerLink\">\n <lib-elux-arrow-link [title]=\"'Ler artigo'\"></lib-elux-arrow-link>\n </a>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}:host .card{width:250px;height:320px;border-radius:4px;box-shadow:3px 3px 10px #00000029;overflow:hidden;margin-bottom:10px;display:flex;flex-direction:column;justify-content:space-between}:host .image{width:100%;height:160px;object-fit:cover;object-position:center;display:block}:host .content{height:100%;padding:16px 16px 0;display:flex;flex-direction:column;justify-content:space-between}:host .title{color:#011e41;font-size:16px;font-style:normal;font-weight:600;line-height:20px}\n"] }]
2437
+ args: [{ standalone: true, imports: [RouterModule, CommonModule, EluxIcon], selector: 'lib-elux-card-article', template: "<a [routerLink]=\"routerLink\" class=\"card-article\">\n <div class=\"card-article__image-wrapper\">\n <img [src]=\"image\" [alt]=\"imageAlt\" class=\"card-article__image\" />\n </div>\n <div class=\"card-article__content\">\n <h3 class=\"card-article__title\">{{ truncateTitle(title) }}</h3>\n <span class=\"card-article__link\">\n <lib-elux-icon [icon]=\"'Link.svg'\" size=\"18\"/>\n Acessar\n </span>\n </div>\n</a>", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.card-article{display:flex;flex-direction:column;background-color:#f5f5f0;border-radius:4px;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease;height:100%;width:160px}.card-article:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.card-article__image-wrapper{width:100%;height:120px;overflow:hidden}.card-article__image{width:100%;height:100%;object-fit:cover;display:block}.card-article__content{height:150px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.card-article__title{color:#2b3227;font-size:16px;font-weight:600;line-height:19px}.card-article__link{display:inline-flex;align-items:center;gap:6px;color:#2b3227;font-size:14px;font-weight:500;text-decoration:underline;cursor:pointer}@media (min-width: 992px){.card-article{width:270px}.card-article__image-wrapper{width:100%;height:200px;overflow:hidden}.card-article__title{color:#2b3227;font-size:20px;font-weight:600;line-height:24px}}\n"] }]
2408
2438
  }], propDecorators: { title: [{
2409
2439
  type: Input
2410
2440
  }], routerLink: [{