mapa-library-ui 1.6.3 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +322 -168
  2. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  3. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +318 -166
  4. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  5. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs +80 -6
  6. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs.map +1 -1
  7. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +80 -6
  8. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
  9. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +318 -166
  10. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  11. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +320 -168
  12. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  13. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +320 -163
  14. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
  15. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +332 -176
  16. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
  17. package/fesm2022/mapa-library-ui-src-lib-components-group-report.mjs +2 -2
  18. package/fesm2022/mapa-library-ui-src-lib-components-group-report.mjs.map +1 -1
  19. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +78 -4
  20. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
  21. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs +78 -4
  22. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs.map +1 -1
  23. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs +76 -2
  24. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs.map +1 -1
  25. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +79 -4
  26. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
  27. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +78 -4
  28. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
  29. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs +76 -2
  30. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs.map +1 -1
  31. package/fesm2022/mapa-library-ui.mjs +391 -412
  32. package/fesm2022/mapa-library-ui.mjs.map +1 -1
  33. package/index.d.ts +50 -73
  34. package/mapa-library-ui-1.7.0.tgz +0 -0
  35. package/package.json +1 -9
  36. package/src/lib/components/capability/index.d.ts +71 -55
  37. package/src/lib/components/dropdown/index.d.ts +51 -55
  38. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-v2.mjs +0 -303
  39. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-v2.mjs.map +0 -1
  40. package/mapa-library-ui-1.6.3.tgz +0 -0
  41. package/src/lib/components/dropdown-v2/index.d.ts +0 -165
@@ -1,22 +1,13 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Output, Input, Component, InjectionToken, inject, Injector, signal, Optional, Inject, Injectable, SecurityContext, Pipe, DestroyRef, forwardRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
5
- import * as i3 from '@angular/forms';
6
- import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { EventEmitter, Output, Input, Component, InjectionToken, inject, Injector, signal, Optional, Inject, Injectable, SecurityContext, Pipe, ChangeDetectorRef, DestroyRef, forwardRef, HostListener, ViewChild, ChangeDetectionStrategy } from '@angular/core';
5
+ import * as i1$1 from '@angular/forms';
6
+ import { ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
7
8
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import * as i4 from '@angular/material/checkbox';
9
- import { MatCheckboxModule } from '@angular/material/checkbox';
10
- import * as i5 from '@angular/material/form-field';
11
- import { MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
12
- import * as i6 from '@angular/material/icon';
13
- import { MatIconModule } from '@angular/material/icon';
14
- import * as i7 from '@angular/material/select';
15
- import { MatSelectModule, MAT_SELECT_CONFIG } from '@angular/material/select';
16
- import * as i8 from 'ngx-mat-select-search';
17
- import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
18
- import { ReplaySubject } from 'rxjs';
19
- import { getMapaUiTexts } from 'mapa-frontend-i18n';
9
+ import { merge } from 'rxjs';
10
+ import { MatFormFieldModule } from '@angular/material/form-field';
20
11
  import * as i1 from '@angular/platform-browser';
21
12
 
22
13
  class ElementBase {
@@ -98,8 +89,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
98
89
  */
99
90
 
100
91
  const MAPA_UI_TEXTS = new InjectionToken("MAPA_UI_TEXTS");
92
+ function formatPaginatorRange(page, pageSize, length) {
93
+ if (length === 0 || pageSize === 0) {
94
+ return `0 de ${length}`;
95
+ }
96
+ const safeLength = Math.max(length, 0);
97
+ const startIndex = page * pageSize;
98
+ const endIndex = startIndex < safeLength
99
+ ? Math.min(startIndex + pageSize, safeLength)
100
+ : startIndex + pageSize;
101
+ return `${startIndex + 1} - ${endIndex} de ${safeLength}`;
102
+ }
103
+ function formatPaginatorShowingRange(page, pageSize, length) {
104
+ if (length === 0 || pageSize === 0) {
105
+ return "Mostrando 0 - 0 de 0 item";
106
+ }
107
+ const safeLength = Math.max(length, 0);
108
+ const startIndex = page * pageSize;
109
+ const endIndex = startIndex < safeLength
110
+ ? Math.min(startIndex + pageSize, safeLength)
111
+ : startIndex + pageSize;
112
+ const itemLabel = safeLength === 1 ? "item" : "itens";
113
+ return `Mostrando ${startIndex + 1} - ${endIndex} de ${safeLength} ${itemLabel}`;
114
+ }
115
+ const DEFAULT_MAPA_UI_TEXTS = {
116
+ common: {
117
+ selectAll: "Selecionar todos",
118
+ },
119
+ filters: {
120
+ clear: "Limpar filtros",
121
+ submit: "Filtrar",
122
+ },
123
+ datepicker: {
124
+ startDatePlaceholder: "Data inicial",
125
+ endDatePlaceholder: "Data final",
126
+ },
127
+ capability: {
128
+ groupAverageTitle: "Média geral do grupo",
129
+ individualAverageTitle: "Média geral do indivíduo",
130
+ conceptTitle: "Conceito",
131
+ resultTitle: "Resultado",
132
+ positiveIndicatorsTitle: "Indicadores positivos",
133
+ negativeIndicatorsTitle: "Indicadores negativos",
134
+ riskIndicatorsTitle: "Indicadores de risco",
135
+ precipitationRiskTitle: "Risco de acidente por precipitação",
136
+ negligenceRiskTitle: "Risco de acidente por negligência",
137
+ negativeDirectionLabel: "Direção Negativa |",
138
+ positiveDirectionLabel: "Direção Positiva |",
139
+ },
140
+ paginator: {
141
+ itemsPerPage: "Itens por página",
142
+ nextPage: "Próxima página",
143
+ previousPage: "Página anterior",
144
+ rangeLabel: formatPaginatorRange,
145
+ showingRangeLabel: formatPaginatorShowingRange,
146
+ },
147
+ warning: {
148
+ lowReliabilityTitle: "Nível baixo de confiabilidade no(s) teste(s):",
149
+ expirationLimitTitle: "O prazo de validade do(s) teste(s) está no limite:",
150
+ },
151
+ table: {
152
+ emptyTitle: "Não foram encontrados resultados",
153
+ emptySubtitle: "",
154
+ },
155
+ validation: {
156
+ cnpj: "CNPJ inválido",
157
+ cpf: "CPF inválido",
158
+ email: "E-mail inválido",
159
+ max: (context) => `O valor máximo permitido é ${context?.max ?? ""}`.trim(),
160
+ maxLength: (context) => `O máximo permitido é ${context?.requiredLength ?? ""} caracteres`.trim(),
161
+ min: (context) => `O valor mínimo permitido é ${context?.min ?? ""}`.trim(),
162
+ minLength: (context) => `O mínimo permitido é ${context?.requiredLength ?? ""} caracteres`.trim(),
163
+ pattern: "Formato inválido",
164
+ required: "Campo obrigatório",
165
+ },
166
+ };
101
167
  function getDefaultTexts() {
102
- return getMapaUiTexts("pt-BR");
168
+ return DEFAULT_MAPA_UI_TEXTS;
103
169
  }
104
170
  function mergeMapaUiTexts(customTexts) {
105
171
  const defaults = getDefaultTexts();
@@ -285,221 +351,307 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
285
351
  }], ctorParameters: () => [{ type: HtmlSanitizerService }] });
286
352
 
287
353
  class MapaDropdownComponent {
288
- constructor(i18n, cdr) {
289
- this.i18n = i18n;
290
- this.cdr = cdr;
291
- this.openedChange = new EventEmitter();
292
- this.filteredOptions = new ReplaySubject(1);
293
- this.filteredGroups = new ReplaySubject(1);
294
- this.filteredOptionsCache = [];
295
- this.filteredGroupCache = [];
354
+ constructor() {
355
+ this.i18n = inject(MapaI18nService);
356
+ this.cdr = inject(ChangeDetectorRef);
296
357
  this.destroyRef = inject(DestroyRef);
297
- this.isIndeterminate = false;
298
- this.isChecked = false;
299
- this.isOptionsGroup = false;
358
+ this.isOpenState = signal(false, ...(ngDevMode ? [{ debugName: "isOpenState" }] : []));
359
+ this.overlayWidthState = signal(0, ...(ngDevMode ? [{ debugName: "overlayWidthState" }] : []));
360
+ this.openedChange = new EventEmitter();
361
+ this.overlayPositions = [
362
+ {
363
+ originX: "start",
364
+ originY: "bottom",
365
+ overlayX: "start",
366
+ overlayY: "top",
367
+ offsetY: 8,
368
+ },
369
+ {
370
+ originX: "start",
371
+ originY: "top",
372
+ overlayX: "start",
373
+ overlayY: "bottom",
374
+ offsetY: -8,
375
+ },
376
+ ];
377
+ }
378
+ set formControl(control) {
379
+ this.formControlChanges?.unsubscribe();
380
+ this.formControlValue = control;
381
+ this.formControlChanges = merge(control.valueChanges, control.statusChanges)
382
+ .pipe(takeUntilDestroyed(this.destroyRef))
383
+ .subscribe(() => this.cdr.markForCheck());
384
+ }
385
+ get formControl() {
386
+ return this.formControlValue;
300
387
  }
301
388
  writeValue(_value) {
302
- // No-op: inner <mat-select [formControl]="formControl"> handles binding.
389
+ // The inner control is bound directly through the formControl input.
303
390
  }
304
391
  registerOnChange(_fn) {
305
- // No-op.
392
+ // Changes are propagated by the supplied formControl.
306
393
  }
307
394
  registerOnTouched(_fn) {
308
- // No-op.
395
+ // Touch state is propagated by the supplied formControl.
309
396
  }
310
397
  setDisabledState(_isDisabled) {
311
- // No-op.
398
+ // Disabled state is propagated by the supplied formControl.
312
399
  }
313
- get texts() {
314
- return this.i18n.textsSignal();
400
+ isOpen() {
401
+ return this.isOpenState();
315
402
  }
316
- get selectAllLabel() {
317
- return this.texts.common.selectAll;
403
+ overlayWidth() {
404
+ return this.overlayWidthState();
405
+ }
406
+ isMultiple() {
407
+ return !!this.element.multiple;
408
+ }
409
+ isDisabled() {
410
+ return !!this.formControl?.disabled;
411
+ }
412
+ hasGroups() {
413
+ return this.isElementGroup(this.element.options?.[0]);
318
414
  }
319
- get selectedOptions() {
415
+ selectedOptions() {
320
416
  const value = this.formControl?.value;
321
417
  if (Array.isArray(value)) {
322
418
  return value.filter((option) => this.isElementOption(option));
323
419
  }
324
420
  return this.isElementOption(value) ? [value] : [];
325
421
  }
326
- ngOnInit() {
327
- this.setOptions();
328
- this.element.search?.formControl?.valueChanges
329
- .pipe(takeUntilDestroyed(this.destroyRef))
330
- .subscribe(() => {
331
- this.filterOptions();
332
- this.setToggleAllCheckboxState();
333
- this.cdr.markForCheck();
334
- });
422
+ selectedLabel() {
423
+ const selected = this.selectedOptions();
424
+ if (!selected.length) {
425
+ return this.element.placeholder || "";
426
+ }
427
+ return selected.map((option) => option.value).join(", ");
335
428
  }
336
- ngAfterViewInit() {
337
- Promise.resolve().then(() => this.cdr.detectChanges());
429
+ isOptionSelected(option) {
430
+ return this.selectedOptions().some((selected) => selected.key === option.key);
338
431
  }
339
- ngOnChanges(changes) {
340
- if (changes["element"]?.previousValue !== undefined &&
341
- changes["element"].previousValue?.controlType === "dropdown" &&
342
- changes["element"].previousValue?.options !==
343
- changes["element"].currentValue?.options) {
344
- this.element.options = changes["element"].currentValue.options;
345
- this.setOptions();
346
- this.cdr.markForCheck();
432
+ hasValue() {
433
+ return this.selectedOptions().length > 0;
434
+ }
435
+ get selectAllLabel() {
436
+ return this.i18n.textsSignal().common.selectAll;
437
+ }
438
+ isAllSelected() {
439
+ const options = this.visibleOptions();
440
+ return (options.length > 0 &&
441
+ options.every((option) => this.isOptionSelected(option)));
442
+ }
443
+ isIndeterminate() {
444
+ const options = this.visibleOptions();
445
+ const selectedCount = options.filter((option) => this.isOptionSelected(option)).length;
446
+ return selectedCount > 0 && selectedCount < options.length;
447
+ }
448
+ toggleSelectAll() {
449
+ if (this.isDisabled()) {
450
+ return;
451
+ }
452
+ const options = this.visibleOptions();
453
+ const next = this.isAllSelected() ? [] : options.slice();
454
+ this.formControl.setValue(next);
455
+ this.markControlAsChanged();
456
+ }
457
+ options() {
458
+ if (this.hasGroups()) {
459
+ return this.element.options.flatMap((group) => group.options);
347
460
  }
461
+ return this.element.options ?? [];
348
462
  }
349
- setOptions() {
350
- this.isOptionsGroup = this.isElementGroup(this.element.options[0]);
351
- if (this.isOptionsGroup) {
352
- this.filteredGroupCache = this.element.options.slice();
353
- this.filteredGroups.next(this.filteredGroupCache);
354
- this.cdr.markForCheck();
463
+ filteredOptions() {
464
+ const options = this.hasGroups() ? [] : this.options();
465
+ const searchTerm = this.normalizedSearchTerm();
466
+ if (!searchTerm) {
467
+ return options;
468
+ }
469
+ return options.filter((option) => this.normalizeValue(option.value).includes(searchTerm));
470
+ }
471
+ filteredGroups() {
472
+ if (!this.hasGroups()) {
473
+ return [];
474
+ }
475
+ const groups = this.element.options;
476
+ const searchTerm = this.normalizedSearchTerm();
477
+ if (!searchTerm) {
478
+ return groups;
479
+ }
480
+ return groups
481
+ .map((group) => ({
482
+ label: group.label,
483
+ options: this.normalizeValue(group.label).includes(searchTerm)
484
+ ? group.options
485
+ : group.options.filter((option) => this.normalizeValue(option.value).includes(searchTerm)),
486
+ }))
487
+ .filter((group) => group.options.length > 0);
488
+ }
489
+ visibleOptions() {
490
+ return this.hasGroups()
491
+ ? this.filteredGroups().flatMap((group) => group.options)
492
+ : this.filteredOptions();
493
+ }
494
+ hasSearch() {
495
+ return !!this.searchControl;
496
+ }
497
+ searchPlaceholder() {
498
+ return this.element.search?.placeholder ?? "";
499
+ }
500
+ emptyStateLabel() {
501
+ return this.element.search?.noEntriesFoundLabel ?? "";
502
+ }
503
+ shouldShowError() {
504
+ return (this.formControl.invalid &&
505
+ (this.formControl.dirty || this.formControl.touched));
506
+ }
507
+ optionPadding(option) {
508
+ const level = Math.max(0, option.childrenLevel ?? 0);
509
+ return level === 0 ? 16 : 10 + level * 20;
510
+ }
511
+ toggleDropdown() {
512
+ if (this.isDisabled()) {
355
513
  return;
356
514
  }
357
- this.filteredOptionsCache = this.element.options.slice();
358
- this.filteredOptions.next(this.filteredOptionsCache);
359
- this.cdr.markForCheck();
360
- }
361
- filterOptionsFromGroup(group, value) {
362
- const filterValue = this.normalizeValue(value);
363
- return this.normalizeValue(group.label).includes(filterValue)
364
- ? group.options
365
- : group.options.filter((item) => this.normalizeValue(item.value).includes(filterValue));
366
- }
367
- filterOptions() {
368
- if (!this.element.options) {
515
+ const isOpening = !this.isOpenState();
516
+ this.setOpenState(isOpening);
517
+ if (isOpening) {
518
+ this.overlayWidthState.set(this.triggerButton?.nativeElement.offsetWidth ?? 0);
519
+ this.searchControl?.setValue("", { emitEvent: true });
520
+ setTimeout(() => {
521
+ this.triggerButton?.nativeElement.blur();
522
+ this.searchInput?.nativeElement.focus();
523
+ this.searchInput?.nativeElement.select();
524
+ });
369
525
  return;
370
526
  }
371
- const search = this.normalizeValue(this.element.search?.formControl?.value);
372
- if (this.isOptionsGroup) {
373
- const groups = this.element.options;
374
- this.filteredGroupCache = groups
375
- .map((group) => ({
376
- label: group.label,
377
- options: this.filterOptionsFromGroup(group, search),
378
- }))
379
- .filter((group) => group.options.length > 0);
380
- this.filteredGroups.next(this.filteredGroupCache);
527
+ this.markAsTouchedIfEmpty();
528
+ }
529
+ selectOption(option) {
530
+ if (this.isDisabled()) {
381
531
  return;
382
532
  }
383
- const options = this.element.options;
384
- if (!search) {
385
- this.filteredOptionsCache = options.slice();
386
- this.filteredOptions.next(this.filteredOptionsCache);
533
+ if (this.isMultiple()) {
534
+ this.toggleOption(option);
387
535
  return;
388
536
  }
389
- this.filteredOptionsCache = options.filter((option) => this.normalizeValue(option.value).includes(search));
390
- this.filteredOptions.next(this.filteredOptionsCache);
537
+ this.formControl.setValue(option);
538
+ this.markControlAsChanged();
539
+ this.closeDropdown();
391
540
  }
392
- normalizeValue(value) {
393
- return (value ?? "")
394
- .normalize("NFD")
395
- .replace(/[\u0300-\u036f]/g, "")
396
- .toLowerCase();
541
+ clearValue(event) {
542
+ event.stopPropagation();
543
+ if (this.isDisabled()) {
544
+ return;
545
+ }
546
+ this.formControl.setValue(this.isMultiple() ? [] : null);
547
+ this.markControlAsChanged();
397
548
  }
398
- triggerOpenedChange(event) {
399
- this.openedChange.emit(event);
549
+ closeDropdown() {
550
+ if (this.isOpenState()) {
551
+ this.setOpenState(false);
552
+ }
553
+ this.searchControl?.setValue("", { emitEvent: true });
554
+ this.markAsTouchedIfEmpty();
400
555
  }
401
- setToggleAllCheckboxState() {
402
- const search = this.normalizeValue(this.element.search?.formControl?.value);
403
- if (!search) {
404
- this.isIndeterminate = false;
405
- this.isChecked = false;
556
+ handleOverlayOutsideClick(event) {
557
+ if (this.triggerButton?.nativeElement.contains(event.target)) {
406
558
  return;
407
559
  }
408
- const filteredLength = this.filteredOptionsCache.filter((option) => this.normalizeValue(option.value).includes(search)).length;
409
- this.isIndeterminate =
410
- filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;
411
- this.isChecked =
412
- filteredLength > 0 && filteredLength === this.filteredOptionsCache.length;
413
- this.cdr.markForCheck();
414
- }
415
- toggleSelectAll(event) {
416
- if (this.isOptionsGroup) {
417
- const groupOptions = this.filteredGroupCache.reduce((accumulator, group) => accumulator.concat(group.options), []);
418
- this.formControl?.patchValue(event.checked ? groupOptions : []);
419
- return;
560
+ this.closeDropdown();
561
+ }
562
+ handleWindowResize() {
563
+ if (this.isOpenState()) {
564
+ this.overlayWidthState.set(this.triggerButton?.nativeElement.offsetWidth ?? 0);
420
565
  }
421
- this.formControl?.patchValue(event.checked ? this.filteredOptionsCache : []);
422
566
  }
423
- isElementGroup(object) {
424
- return !!object && "label" in object && "options" in object;
567
+ get searchControl() {
568
+ return (this.element.search?.formControl ?? this.formControlSearch);
425
569
  }
426
- isElementOption(object) {
427
- return (!!object &&
428
- typeof object === "object" &&
429
- "key" in object &&
430
- "value" in object);
570
+ toggleOption(option) {
571
+ const current = this.selectedOptions();
572
+ const next = this.isOptionSelected(option)
573
+ ? current.filter((selected) => selected.key !== option.key)
574
+ : [...current, option];
575
+ this.formControl.setValue(next);
576
+ this.markControlAsChanged();
431
577
  }
432
- compareFn(c1, c2) {
433
- return c1 && c2 ? c1.key === c2.key : c1 === c2;
578
+ normalizedSearchTerm() {
579
+ return this.normalizeValue(this.searchControl?.value?.trim());
434
580
  }
435
- hasValue() {
436
- const value = this.formControl?.value;
437
- return Array.isArray(value) ? value.length > 0 : this.isElementOption(value);
581
+ normalizeValue(value) {
582
+ return (value ?? "")
583
+ .normalize("NFD")
584
+ .replace(/[\u0300-\u036f]/g, "")
585
+ .toLocaleLowerCase();
438
586
  }
439
- clearValue(event) {
440
- event.stopPropagation();
441
- this.formControl.setValue(null);
442
- this.cdr.markForCheck();
587
+ isElementGroup(value) {
588
+ return !!value && "label" in value && "options" in value;
443
589
  }
444
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownComponent, deps: [{ token: MapaI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
445
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaDropdownComponent, isStandalone: true, selector: "mapa-dropdown", inputs: { formControl: "formControl", formControlSearch: "formControlSearch", element: "element", border: "border" }, outputs: { openedChange: "openedChange" }, providers: [
446
- {
447
- provide: MAT_SELECT_CONFIG,
448
- useValue: { overlayPanelClass: "mapa-overlay-dropdown" },
449
- },
450
- {
451
- provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
452
- useValue: { appearance: "outline" },
453
- },
590
+ isElementOption(value) {
591
+ return (!!value &&
592
+ typeof value === "object" &&
593
+ "key" in value &&
594
+ "value" in value);
595
+ }
596
+ markControlAsChanged() {
597
+ this.formControl.markAsDirty();
598
+ this.formControl.markAsTouched();
599
+ }
600
+ markAsTouchedIfEmpty() {
601
+ if (!this.hasValue()) {
602
+ this.formControl.markAsTouched();
603
+ }
604
+ }
605
+ setOpenState(isOpen) {
606
+ this.isOpenState.set(isOpen);
607
+ this.openedChange.emit(isOpen);
608
+ }
609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
610
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaDropdownComponent, isStandalone: true, selector: "mapa-dropdown", inputs: { element: "element", formControl: "formControl", formControlSearch: "formControlSearch", border: "border" }, outputs: { openedChange: "openedChange" }, host: { listeners: { "window:resize": "handleWindowResize()" } }, providers: [
454
611
  {
455
612
  provide: NG_VALUE_ACCESSOR,
456
613
  useExisting: forwardRef(() => MapaDropdownComponent),
457
614
  multi: true,
458
615
  },
459
- ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n", styles: [":host ::ng-deep .mapa-dropdown{max-width:min-content;min-width:235px}:host ::ng-deep .mapa-dropdown .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center;position:absolute;right:28px!important;top:18px!important;z-index:1}:host ::ng-deep .mapa-dropdown__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}:host ::ng-deep .mapa-dropdown--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown .mdc-notched-outline{background-color:transparent;border-radius:8px;pointer-events:none;z-index:0}:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px;position:relative}:host ::ng-deep .mapa-dropdown .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-]{height:auto!important;align-items:start!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mat-pseudo-checkbox{margin:7px 7px 7px 0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mdc-list-item__primary-text{height:auto!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mapa-dropdown__option-value{text-wrap:auto}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-1{padding-left:30px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-2{padding-left:50px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-3{padding-left:70px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-4{padding-left:90px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-5{padding-left:100px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-6{padding-left:120px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all{padding-left:5px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox{display:none!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{align-items:flex-start;background:#f6f7f7;height:auto!important;min-height:80px;padding:16px 8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner{background:transparent!important;background-color:transparent!important;border:unset;border-radius:0;box-shadow:none!important;inset:0 auto auto 0;overflow:visible;position:relative;width:100%!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner-row{align-items:center;background:transparent;display:flex;position:relative}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-hidden{background:transparent!important;background-color:transparent!important;border:unset!important;height:0!important;line-height:0!important;padding:0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input{background-color:#fff!important;border:2px solid #a7aaad!important;border-radius:8px!important;height:28px!important;line-height:24px!important;padding:0 48px 0 12px!important;width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-clear{top:50%;transform:translateY(-50%)}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-divider{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search.mat-mdc-option-active,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search:hover{background:#f6f7f7}::ng-deep .mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mdc-checkbox__background{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i8.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
616
+ ], viewQueries: [{ propertyName: "triggerButton", first: true, predicate: ["triggerButton"], descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--open]=\"isOpen()\"\n [class.mapa-dropdown--invalid]=\"shouldShowError()\"\n [class.mapa-dropdown--disabled]=\"isDisabled()\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n>\n @if (element.label) {\n <label class=\"mapa-dropdown__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <div class=\"mapa-dropdown__field-row\">\n <button\n #triggerButton\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"mapa-dropdown__trigger\"\n [class.mapa-dropdown__trigger--clearable]=\"hasValue() && element.clearValue\"\n [id]=\"element.key || null\"\n type=\"button\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleDropdown()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"listbox\"\n >\n <span\n class=\"mapa-dropdown__trigger-text\"\n [class.mapa-dropdown__trigger-text--placeholder]=\"!hasValue()\"\n [innerHTML]=\"selectedLabel() | safeHtml\"\n ></span>\n @if (hasValue() && !isDisabled() && element.clearValue) {\n <span\n class=\"mapa-dropdown__clear\"\n role=\"button\"\n aria-label=\"Limpar\"\n (click)=\"clearValue($event)\"\n >\n &times;\n </span>\n }\n </button>\n\n @if (element.actionButton) {\n <mapa-button\n class=\"mapa-dropdown__action\"\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n cdkConnectedOverlayPanelClass=\"mapa-dropdown__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-dropdown__panel\">\n @if (hasSearch()) {\n <input\n #searchInput\n class=\"mapa-dropdown__search-input\"\n type=\"text\"\n [formControl]=\"searchControl!\"\n [placeholder]=\"searchPlaceholder()\"\n />\n }\n\n <div class=\"mapa-dropdown__options\" role=\"listbox\">\n @if (isMultiple() && visibleOptions().length) {\n <button\n class=\"mapa-dropdown__option mapa-dropdown__option--select-all\"\n type=\"button\"\n (click)=\"toggleSelectAll()\"\n >\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isIndeterminate()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n />\n {{ selectAllLabel }}\n </button>\n }\n\n @if (hasGroups()) {\n @for (group of filteredGroups(); track group.label) {\n <div class=\"mapa-dropdown__group\" role=\"group\">\n <p class=\"mapa-dropdown__group-label\">{{ group.label }}</p>\n @for (option of group.options; track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n </div>\n }\n } @else {\n @for (option of filteredOptions(); track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n }\n\n @if (!visibleOptions().length) {\n <p class=\"mapa-dropdown__empty-state\">\n {{ emptyStateLabel() }}\n </p>\n }\n </div>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-dropdown__error\">\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-dropdown__hint\">{{ element.hint }}</p>\n }\n</div>\n", styles: [":host{position:relative;display:inline-block;max-width:min-content;min-width:310px;box-sizing:border-box}.mapa-dropdown{width:100%}.mapa-dropdown__label{display:inline-block;margin-bottom:8px;color:var(--mapa-color-ink, #1a1a1a);font-family:var(--mapa-font-heading, \"Asap\", sans-serif);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mapa-dropdown__field-row{display:flex;align-items:center;gap:24px;min-width:0}.mapa-dropdown__trigger,.mapa-dropdown__search-input,.mapa-dropdown__option{width:100%;min-height:48px;padding:12px 16px;border:0;background:var(--mapa-color-surface, #ffffff);color:var(--mapa-color-ink, #1a1a1a);font-family:var(--mapa-font-body, \"Asap\", sans-serif);font-size:16px;line-height:24px}.mapa-dropdown__trigger:focus,.mapa-dropdown__search-input:focus,.mapa-dropdown__option:focus{outline:none}.mapa-dropdown__trigger::placeholder,.mapa-dropdown__search-input::placeholder,.mapa-dropdown__option::placeholder{color:var(--mapa-color-muted, #555555)}.mapa-dropdown__trigger{position:relative;display:flex;flex:1 1 auto;align-items:center;min-width:0;padding-right:46px;border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.mapa-dropdown__trigger--clearable{padding-right:70px}.mapa-dropdown__trigger:after{content:\"\";position:absolute;top:50%;right:18px;width:9px;height:9px;border-right:2px solid var(--mapa-color-ink, #1a1a1a);border-bottom:2px solid var(--mapa-color-ink, #1a1a1a);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;pointer-events:none}.mapa-dropdown__trigger:disabled{background:var(--mapa-color-disabled-surface, #f6f7f7);color:var(--mapa-color-muted, #555555);cursor:not-allowed}.mapa-dropdown__trigger:disabled:after{opacity:.5}.mapa-dropdown--open .mapa-dropdown__trigger,.mapa-dropdown__trigger:focus{border-color:var(--mapa-color-accent, #ff560b);box-shadow:0 0 0 3px #ff560b1f}.mapa-dropdown--open .mapa-dropdown__trigger:after{transform:translateY(-20%) rotate(-135deg)}.mapa-dropdown--highlight .mapa-dropdown__trigger{border:2px solid #eedb2a;border-radius:16px}.mapa-dropdown--tag .mapa-dropdown__trigger{border-radius:16px}.mapa-dropdown__trigger-text{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--mapa-color-ink, #1a1a1a)}.mapa-dropdown__trigger-text--placeholder{color:var(--mapa-color-muted, #CFC4C7)}.mapa-dropdown__clear{position:absolute;top:50%;right:40px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:var(--mapa-color-muted, #555555);font-size:16px;line-height:1;cursor:pointer}.mapa-dropdown__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}.mapa-dropdown__action{flex:none}.mapa-dropdown__checkbox{flex:none;width:16px;height:16px;margin-right:12px;accent-color:var(--mapa-color-accent, #ff560b)}.mapa-dropdown__panel{width:100%;overflow:hidden;border:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));border-radius:var(--mapa-radius-md, 16px);background:var(--mapa-color-surface, #ffffff);box-shadow:var(--mapa-shadow-panel, 0 18px 40px rgba(26, 26, 26, .08))}.mapa-dropdown__search-input{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08))}.mapa-dropdown__options{max-height:240px;overflow-y:auto;background:var(--mapa-color-surface, #ffffff)}.mapa-dropdown__group-label{margin:0;padding:10px 16px 6px;color:var(--mapa-color-muted, #555555);font-family:var(--mapa-font-body, \"Asap\", sans-serif);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.mapa-dropdown__option{display:flex;align-items:center;min-height:44px;text-align:left;cursor:pointer;transition:background-color .2s ease,color .2s ease}.mapa-dropdown__option:hover{background:#ff560b14}.mapa-dropdown__option--selected{background:#ff560b1f;color:var(--mapa-color-accent, #ff560b)}.mapa-dropdown__option--select-all{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));font-weight:600}.mapa-dropdown__empty-state{margin:0;padding:14px 16px;color:var(--mapa-color-muted, #555555);font-size:14px;line-height:20px}.mapa-dropdown--invalid .mapa-dropdown__trigger{border-color:#b54242;box-shadow:0 0 0 3px #b542421f}.mapa-dropdown__hint,.mapa-dropdown__error{display:block;margin:8px 0 0;padding-left:4px;font-size:13px;line-height:18px}.mapa-dropdown__hint{color:var(--mapa-color-muted, #555555)}.mapa-dropdown__error{color:#b54242}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
460
617
  }
461
618
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownComponent, decorators: [{
462
619
  type: Component,
463
- args: [{ selector: "mapa-dropdown", changeDetection: ChangeDetectionStrategy.OnPush, imports: [
464
- CommonModule,
465
- FormsModule,
620
+ args: [{ selector: "mapa-dropdown", standalone: true, imports: [
466
621
  ReactiveFormsModule,
467
- MatCheckboxModule,
468
- MatFormFieldModule,
469
- MatIconModule,
470
- MatSelectModule,
471
- NgxMatSelectSearchModule,
622
+ CdkConnectedOverlay,
623
+ CdkOverlayOrigin,
472
624
  ButtonComponent,
473
625
  MapaFormErrorsComponent,
474
626
  SafeHtmlPipe,
475
627
  ], providers: [
476
- {
477
- provide: MAT_SELECT_CONFIG,
478
- useValue: { overlayPanelClass: "mapa-overlay-dropdown" },
479
- },
480
- {
481
- provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
482
- useValue: { appearance: "outline" },
483
- },
484
628
  {
485
629
  provide: NG_VALUE_ACCESSOR,
486
630
  useExisting: forwardRef(() => MapaDropdownComponent),
487
631
  multi: true,
488
632
  },
489
- ], standalone: true, template: "@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n", styles: [":host ::ng-deep .mapa-dropdown{max-width:min-content;min-width:235px}:host ::ng-deep .mapa-dropdown .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center;position:absolute;right:28px!important;top:18px!important;z-index:1}:host ::ng-deep .mapa-dropdown__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}:host ::ng-deep .mapa-dropdown--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown .mdc-notched-outline{background-color:transparent;border-radius:8px;pointer-events:none;z-index:0}:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px;position:relative}:host ::ng-deep .mapa-dropdown .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-]{height:auto!important;align-items:start!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mat-pseudo-checkbox{margin:7px 7px 7px 0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mdc-list-item__primary-text{height:auto!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mapa-dropdown__option-value{text-wrap:auto}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-1{padding-left:30px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-2{padding-left:50px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-3{padding-left:70px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-4{padding-left:90px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-5{padding-left:100px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-6{padding-left:120px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all{padding-left:5px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox{display:none!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{align-items:flex-start;background:#f6f7f7;height:auto!important;min-height:80px;padding:16px 8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner{background:transparent!important;background-color:transparent!important;border:unset;border-radius:0;box-shadow:none!important;inset:0 auto auto 0;overflow:visible;position:relative;width:100%!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner-row{align-items:center;background:transparent;display:flex;position:relative}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-hidden{background:transparent!important;background-color:transparent!important;border:unset!important;height:0!important;line-height:0!important;padding:0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input{background-color:#fff!important;border:2px solid #a7aaad!important;border-radius:8px!important;height:28px!important;line-height:24px!important;padding:0 48px 0 12px!important;width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-clear{top:50%;transform:translateY(-50%)}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-divider{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search.mat-mdc-option-active,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search:hover{background:#f6f7f7}::ng-deep .mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mdc-checkbox__background{border-color:#c3c4c7!important}\n"] }]
490
- }], ctorParameters: () => [{ type: MapaI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formControl: [{
491
- type: Input
633
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--open]=\"isOpen()\"\n [class.mapa-dropdown--invalid]=\"shouldShowError()\"\n [class.mapa-dropdown--disabled]=\"isDisabled()\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n>\n @if (element.label) {\n <label class=\"mapa-dropdown__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <div class=\"mapa-dropdown__field-row\">\n <button\n #triggerButton\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"mapa-dropdown__trigger\"\n [class.mapa-dropdown__trigger--clearable]=\"hasValue() && element.clearValue\"\n [id]=\"element.key || null\"\n type=\"button\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleDropdown()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"listbox\"\n >\n <span\n class=\"mapa-dropdown__trigger-text\"\n [class.mapa-dropdown__trigger-text--placeholder]=\"!hasValue()\"\n [innerHTML]=\"selectedLabel() | safeHtml\"\n ></span>\n @if (hasValue() && !isDisabled() && element.clearValue) {\n <span\n class=\"mapa-dropdown__clear\"\n role=\"button\"\n aria-label=\"Limpar\"\n (click)=\"clearValue($event)\"\n >\n &times;\n </span>\n }\n </button>\n\n @if (element.actionButton) {\n <mapa-button\n class=\"mapa-dropdown__action\"\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n cdkConnectedOverlayPanelClass=\"mapa-dropdown__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-dropdown__panel\">\n @if (hasSearch()) {\n <input\n #searchInput\n class=\"mapa-dropdown__search-input\"\n type=\"text\"\n [formControl]=\"searchControl!\"\n [placeholder]=\"searchPlaceholder()\"\n />\n }\n\n <div class=\"mapa-dropdown__options\" role=\"listbox\">\n @if (isMultiple() && visibleOptions().length) {\n <button\n class=\"mapa-dropdown__option mapa-dropdown__option--select-all\"\n type=\"button\"\n (click)=\"toggleSelectAll()\"\n >\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isIndeterminate()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n />\n {{ selectAllLabel }}\n </button>\n }\n\n @if (hasGroups()) {\n @for (group of filteredGroups(); track group.label) {\n <div class=\"mapa-dropdown__group\" role=\"group\">\n <p class=\"mapa-dropdown__group-label\">{{ group.label }}</p>\n @for (option of group.options; track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n </div>\n }\n } @else {\n @for (option of filteredOptions(); track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n }\n\n @if (!visibleOptions().length) {\n <p class=\"mapa-dropdown__empty-state\">\n {{ emptyStateLabel() }}\n </p>\n }\n </div>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-dropdown__error\">\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-dropdown__hint\">{{ element.hint }}</p>\n }\n</div>\n", styles: [":host{position:relative;display:inline-block;max-width:min-content;min-width:310px;box-sizing:border-box}.mapa-dropdown{width:100%}.mapa-dropdown__label{display:inline-block;margin-bottom:8px;color:var(--mapa-color-ink, #1a1a1a);font-family:var(--mapa-font-heading, \"Asap\", sans-serif);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.mapa-dropdown__field-row{display:flex;align-items:center;gap:24px;min-width:0}.mapa-dropdown__trigger,.mapa-dropdown__search-input,.mapa-dropdown__option{width:100%;min-height:48px;padding:12px 16px;border:0;background:var(--mapa-color-surface, #ffffff);color:var(--mapa-color-ink, #1a1a1a);font-family:var(--mapa-font-body, \"Asap\", sans-serif);font-size:16px;line-height:24px}.mapa-dropdown__trigger:focus,.mapa-dropdown__search-input:focus,.mapa-dropdown__option:focus{outline:none}.mapa-dropdown__trigger::placeholder,.mapa-dropdown__search-input::placeholder,.mapa-dropdown__option::placeholder{color:var(--mapa-color-muted, #555555)}.mapa-dropdown__trigger{position:relative;display:flex;flex:1 1 auto;align-items:center;min-width:0;padding-right:46px;border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.mapa-dropdown__trigger--clearable{padding-right:70px}.mapa-dropdown__trigger:after{content:\"\";position:absolute;top:50%;right:18px;width:9px;height:9px;border-right:2px solid var(--mapa-color-ink, #1a1a1a);border-bottom:2px solid var(--mapa-color-ink, #1a1a1a);transform:translateY(-70%) rotate(45deg);transition:transform .2s ease;pointer-events:none}.mapa-dropdown__trigger:disabled{background:var(--mapa-color-disabled-surface, #f6f7f7);color:var(--mapa-color-muted, #555555);cursor:not-allowed}.mapa-dropdown__trigger:disabled:after{opacity:.5}.mapa-dropdown--open .mapa-dropdown__trigger,.mapa-dropdown__trigger:focus{border-color:var(--mapa-color-accent, #ff560b);box-shadow:0 0 0 3px #ff560b1f}.mapa-dropdown--open .mapa-dropdown__trigger:after{transform:translateY(-20%) rotate(-135deg)}.mapa-dropdown--highlight .mapa-dropdown__trigger{border:2px solid #eedb2a;border-radius:16px}.mapa-dropdown--tag .mapa-dropdown__trigger{border-radius:16px}.mapa-dropdown__trigger-text{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--mapa-color-ink, #1a1a1a)}.mapa-dropdown__trigger-text--placeholder{color:var(--mapa-color-muted, #CFC4C7)}.mapa-dropdown__clear{position:absolute;top:50%;right:40px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:var(--mapa-color-muted, #555555);font-size:16px;line-height:1;cursor:pointer}.mapa-dropdown__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}.mapa-dropdown__action{flex:none}.mapa-dropdown__checkbox{flex:none;width:16px;height:16px;margin-right:12px;accent-color:var(--mapa-color-accent, #ff560b)}.mapa-dropdown__panel{width:100%;overflow:hidden;border:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));border-radius:var(--mapa-radius-md, 16px);background:var(--mapa-color-surface, #ffffff);box-shadow:var(--mapa-shadow-panel, 0 18px 40px rgba(26, 26, 26, .08))}.mapa-dropdown__search-input{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08))}.mapa-dropdown__options{max-height:240px;overflow-y:auto;background:var(--mapa-color-surface, #ffffff)}.mapa-dropdown__group-label{margin:0;padding:10px 16px 6px;color:var(--mapa-color-muted, #555555);font-family:var(--mapa-font-body, \"Asap\", sans-serif);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.mapa-dropdown__option{display:flex;align-items:center;min-height:44px;text-align:left;cursor:pointer;transition:background-color .2s ease,color .2s ease}.mapa-dropdown__option:hover{background:#ff560b14}.mapa-dropdown__option--selected{background:#ff560b1f;color:var(--mapa-color-accent, #ff560b)}.mapa-dropdown__option--select-all{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));font-weight:600}.mapa-dropdown__empty-state{margin:0;padding:14px 16px;color:var(--mapa-color-muted, #555555);font-size:14px;line-height:20px}.mapa-dropdown--invalid .mapa-dropdown__trigger{border-color:#b54242;box-shadow:0 0 0 3px #b542421f}.mapa-dropdown__hint,.mapa-dropdown__error{display:block;margin:8px 0 0;padding-left:4px;font-size:13px;line-height:18px}.mapa-dropdown__hint{color:var(--mapa-color-muted, #555555)}.mapa-dropdown__error{color:#b54242}\n"] }]
634
+ }], propDecorators: { element: [{
635
+ type: Input,
636
+ args: [{ required: true }]
637
+ }], formControl: [{
638
+ type: Input,
639
+ args: [{ required: true }]
492
640
  }], formControlSearch: [{
493
641
  type: Input
494
- }], element: [{
495
- type: Input
496
642
  }], border: [{
497
643
  type: Input
498
644
  }], openedChange: [{
499
645
  type: Output
500
- }], dropdown: [{
646
+ }], triggerButton: [{
647
+ type: ViewChild,
648
+ args: ["triggerButton"]
649
+ }], searchInput: [{
501
650
  type: ViewChild,
502
- args: ["dropdown", { static: true }]
651
+ args: ["searchInput"]
652
+ }], handleWindowResize: [{
653
+ type: HostListener,
654
+ args: ["window:resize"]
503
655
  }] } });
504
656
 
505
657
  /*
@@ -566,11 +718,11 @@ class MapaDropdownTreeComponent {
566
718
  this.openedChange.emit(event);
567
719
  }
568
720
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
569
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaDropdownTreeComponent, isStandalone: true, selector: "mapa-dropdown-tree", inputs: { formGroup: "formGroup", element: "element" }, outputs: { openedChange: "openedChange" }, usesOnChanges: true, ngImport: i0, template: "<section *ngIf=\"elementOption && formControl\">\n <mapa-dropdown\n [formControl]=\"formControl\"\n [element]=\"elementOption\"\n (openedChange)=\"triggerOpenedChange($event)\"\n ></mapa-dropdown>\n</section>\n", styles: [":host ::ng-deep .mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important;margin-bottom:24px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown-tree__hint{font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#77838f;margin-bottom:16px}:host ::ng-deep .mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}:host ::ng-deep .mapa-dropdown-tree__label,:host ::ng-deep .mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}:host ::ng-deep .mapa-dropdown-tree__label div,:host ::ng-deep .mapa-dropdown-tree__checkbox div{width:100%}:host ::ng-deep .mapa-dropdown-tree__label--checked,:host ::ng-deep .mapa-dropdown-tree__checkbox--checked{background:#0000001f}:host ::ng-deep .mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}:host ::ng-deep .mapa-dropdown-tree__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}:host ::ng-deep .mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:8px}:host ::ng-deep .mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}:host ::ng-deep .mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}:host ::ng-deep .mapa-dropdown-tree__button .mdc-button__label{color:#ea561d!important;padding:4px 8px}:host ::ng-deep .mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-input-element{padding:4px 0}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field{width:94%}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-text-field-wrapper{background:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field-infix{border-top:unset!important;min-height:unset!important;padding:.7em 0 .5em}:host ::ng-deep .mapa-dropdown-tree__clean{background:#fff;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}:host ::ng-deep .mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}:host ::ng-deep .mapa-dropdown-tree--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown-tree--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown-tree--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline{background-color:transparent;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-infix{border-top:unset!important;padding:unset!important;min-height:unset!important;position:relative}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown-tree [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown-tree .mdc-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-menu-panel{width:100%;max-width:none!important;overflow:hidden}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-menu-content{padding-bottom:unset!important;padding-top:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}::ng-deep .mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}::ng-deep .mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}::ng-deep .mapa-overlay-dropdown-tree .tree-toggle{display:none}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:#0000000a}::ng-deep .mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-autocomplete-panel .mat-mdc-option{padding:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-clear{top:-3px!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown-tree .mdc-checkbox__background{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["formControl", "formControlSearch", "element", "border"], outputs: ["openedChange"] }] }); }
721
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaDropdownTreeComponent, isStandalone: true, selector: "mapa-dropdown-tree", inputs: { formGroup: "formGroup", element: "element" }, outputs: { openedChange: "openedChange" }, usesOnChanges: true, ngImport: i0, template: "<section *ngIf=\"elementOption && formControl\">\n <mapa-dropdown\n [formControl]=\"formControl\"\n [element]=\"elementOption\"\n (openedChange)=\"triggerOpenedChange($event)\"\n ></mapa-dropdown>\n</section>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }] }); }
570
722
  }
571
723
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownTreeComponent, decorators: [{
572
724
  type: Component,
573
- args: [{ selector: 'mapa-dropdown-tree', imports: [CommonModule, ReactiveFormsModule, MapaDropdownComponent], standalone: true, template: "<section *ngIf=\"elementOption && formControl\">\n <mapa-dropdown\n [formControl]=\"formControl\"\n [element]=\"elementOption\"\n (openedChange)=\"triggerOpenedChange($event)\"\n ></mapa-dropdown>\n</section>\n", styles: [":host ::ng-deep .mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important;margin-bottom:24px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown-tree__hint{font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#77838f;margin-bottom:16px}:host ::ng-deep .mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}:host ::ng-deep .mapa-dropdown-tree__label,:host ::ng-deep .mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}:host ::ng-deep .mapa-dropdown-tree__label div,:host ::ng-deep .mapa-dropdown-tree__checkbox div{width:100%}:host ::ng-deep .mapa-dropdown-tree__label--checked,:host ::ng-deep .mapa-dropdown-tree__checkbox--checked{background:#0000001f}:host ::ng-deep .mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}:host ::ng-deep .mapa-dropdown-tree__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}:host ::ng-deep .mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:8px}:host ::ng-deep .mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}:host ::ng-deep .mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}:host ::ng-deep .mapa-dropdown-tree__button .mdc-button__label{color:#ea561d!important;padding:4px 8px}:host ::ng-deep .mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-input-element{padding:4px 0}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field{width:94%}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-text-field-wrapper{background:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree__search .mat-mdc-form-field-infix{border-top:unset!important;min-height:unset!important;padding:.7em 0 .5em}:host ::ng-deep .mapa-dropdown-tree__clean{background:#fff;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}:host ::ng-deep .mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}:host ::ng-deep .mapa-dropdown-tree--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown-tree--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown-tree--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown-tree--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown-tree--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline{background-color:transparent;border-radius:8px}:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown-tree .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-form-field-infix{border-top:unset!important;padding:unset!important;min-height:unset!important;position:relative}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown-tree .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown-tree [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown-tree .mdc-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-menu-panel{width:100%;max-width:none!important;overflow:hidden}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-menu-content{padding-bottom:unset!important;padding-top:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}::ng-deep .mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}::ng-deep .mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}::ng-deep .mapa-overlay-dropdown-tree .tree-toggle{display:none}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:#0000000a}::ng-deep .mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-autocomplete-panel .mat-mdc-option{padding:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown-tree .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-clear{top:-3px!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-mdc-option .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown-tree .mapa-dropdown__search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown-tree .mdc-checkbox__background{border-color:#c3c4c7!important}\n"] }]
725
+ args: [{ selector: 'mapa-dropdown-tree', imports: [CommonModule, ReactiveFormsModule, MapaDropdownComponent], standalone: true, template: "<section *ngIf=\"elementOption && formControl\">\n <mapa-dropdown\n [formControl]=\"formControl\"\n [element]=\"elementOption\"\n (openedChange)=\"triggerOpenedChange($event)\"\n ></mapa-dropdown>\n</section>\n" }]
574
726
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { formGroup: [{
575
727
  type: Input
576
728
  }], element: [{