mapa-library-ui 1.7.3 → 2.0.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 (44) hide show
  1. package/README.md +2 -3
  2. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +42 -35
  3. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  4. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +42 -35
  5. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  6. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +648 -125
  7. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
  8. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +42 -35
  9. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  10. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +42 -35
  11. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  12. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +42 -35
  13. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
  14. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +569 -322
  15. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
  16. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +42 -35
  17. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
  18. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs +42 -35
  19. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs.map +1 -1
  20. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs +42 -35
  21. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs.map +1 -1
  22. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +522 -581
  23. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
  24. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +42 -35
  25. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
  26. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs +42 -35
  27. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs.map +1 -1
  28. package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs +1 -4
  29. package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs.map +1 -1
  30. package/fesm2022/mapa-library-ui.mjs +1272 -1018
  31. package/fesm2022/mapa-library-ui.mjs.map +1 -1
  32. package/index.d.ts +350 -187
  33. package/mapa-library-ui-2.0.0.tgz +0 -0
  34. package/package.json +3 -10
  35. package/src/lib/components/datepicker/index.d.ts +165 -27
  36. package/src/lib/components/group-report/index.d.ts +6 -1
  37. package/src/lib/components/menu/index.d.ts +3 -1
  38. package/src/lib/components/report-item/index.d.ts +3 -1
  39. package/src/lib/components/table/index.d.ts +153 -100
  40. package/src/lib/core/utils/index.d.ts +1 -2
  41. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs +0 -733
  42. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs.map +0 -1
  43. package/mapa-library-ui-1.7.3.tgz +0 -0
  44. package/src/lib/components/datepicker-range/index.d.ts +0 -207
@@ -1,26 +1,26 @@
1
- import * as i5$1 from '@angular/cdk/text-field';
1
+ import * as i5 from '@angular/cdk/text-field';
2
2
  import { AutofillMonitor } from '@angular/cdk/text-field';
3
3
  import * as i0 from '@angular/core';
4
- import { inject, ElementRef, DestroyRef, booleanAttribute, Input, Directive, Self, Optional, EventEmitter, Output, InjectionToken, Injector, signal, Inject, Injectable, Component, SecurityContext, Pipe, ChangeDetectionStrategy, EnvironmentInjector, createComponent, HostListener, ViewChild, ChangeDetectorRef, forwardRef, effect } from '@angular/core';
4
+ import { inject, ElementRef, DestroyRef, booleanAttribute, Input, Directive, Self, Optional, EventEmitter, Output, InjectionToken, Injector, signal, Inject, Injectable, Component, SecurityContext, Pipe, effect, ChangeDetectionStrategy, EnvironmentInjector, createComponent, HostListener, ViewChild, ChangeDetectorRef, forwardRef, TemplateRef, contentChildren } from '@angular/core';
5
5
  import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
6
6
  import * as i2 from '@angular/forms';
7
7
  import { NgControl, ReactiveFormsModule, NG_VALUE_ACCESSOR, FormGroup, FormControl, FormsModule } from '@angular/forms';
8
8
  import { NgxMaskDirective, NgxMaskService, provideNgxMask } from 'ngx-mask';
9
9
  import { filter, map, startWith } from 'rxjs/operators';
10
10
  import { fromEvent, merge } from 'rxjs';
11
- import * as i5 from '@angular/material/input';
11
+ import * as i1 from '@angular/material/input';
12
12
  import { MatInputModule } from '@angular/material/input';
13
- import * as i1 from '@angular/material/paginator';
14
- import { MatPaginatorIntl, MatPaginatorModule, MatPaginator } from '@angular/material/paginator';
15
- import * as i1$1 from '@angular/common';
16
- import { CommonModule } from '@angular/common';
17
- import * as i3$2 from '@angular/material/form-field';
13
+ import * as i1$1 from '@angular/material/paginator';
14
+ import { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator';
15
+ import * as i1$2 from '@angular/common';
16
+ import { CommonModule, NgTemplateOutlet, NgClass, DatePipe } from '@angular/common';
17
+ import * as i3$1 from '@angular/material/form-field';
18
18
  import { MatFormFieldModule } from '@angular/material/form-field';
19
- import * as i1$2 from '@angular/platform-browser';
19
+ import * as i1$3 from '@angular/platform-browser';
20
20
  import { getStoredAppLanguage, getIntlLocale } from 'mapa-frontend-i18n';
21
21
  import { parseISO, parse, isValid, format, addMonths, set, getYear, getDate, isAfter } from 'date-fns';
22
22
  import * as i2$1 from '@angular/router';
23
- import { RouterModule } from '@angular/router';
23
+ import { RouterModule, RouterLink } from '@angular/router';
24
24
  import { Md5 } from 'ts-md5';
25
25
  import * as i2$2 from '@angular/material/expansion';
26
26
  import { MatExpansionModule } from '@angular/material/expansion';
@@ -29,26 +29,22 @@ import { NgApexchartsModule } from 'ng-apexcharts';
29
29
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
30
30
  import * as i2$3 from '@angular/material/checkbox';
31
31
  import { MatCheckboxModule } from '@angular/material/checkbox';
32
- import { provideNativeDateAdapter, DateAdapter } from '@angular/material/core';
33
- import * as i3$1 from '@angular/material/datepicker';
34
- import { MatDatepickerModule } from '@angular/material/datepicker';
35
- import * as i1$4 from '@angular/material/icon';
36
- import { MatIconModule } from '@angular/material/icon';
37
- import * as i1$3 from '@angular/material/dialog';
32
+ import { NgxsmkDatepickerComponent } from 'ngxsmk-datepicker';
33
+ import * as i1$4 from '@angular/material/dialog';
38
34
  import { MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material/dialog';
39
- import * as i3$3 from '@angular/material/radio';
35
+ import * as i2$4 from '@angular/material/icon';
36
+ import { MatIconModule } from '@angular/material/icon';
37
+ import * as i3$2 from '@angular/material/radio';
40
38
  import { MatRadioModule } from '@angular/material/radio';
41
- import * as i3$4 from '@angular/material/slide-toggle';
39
+ import * as i3$3 from '@angular/material/slide-toggle';
42
40
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
43
41
  import * as i4 from '@angular/material/sort';
44
42
  import { MatSortModule, MatSort } from '@angular/material/sort';
45
- import * as i3$5 from '@angular/material/table';
46
- import { MatTableDataSource, MatTableModule, MatTable } from '@angular/material/table';
47
- import * as i3$6 from '@angular/material/menu';
43
+ import * as i3$4 from '@angular/material/table';
44
+ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
45
+ import * as i3$5 from '@angular/material/menu';
48
46
  import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu';
49
47
  import * as i1$5 from '@angular/common/http';
50
- import * as i4$1 from '@angular/material/button';
51
- import { MatButtonModule } from '@angular/material/button';
52
48
 
53
49
  class ElementBase {
54
50
  constructor(options = {}) {
@@ -104,15 +100,27 @@ class DropdownTree extends ElementBase {
104
100
  }
105
101
 
106
102
  class Datepicker extends ElementBase {
107
- constructor() {
108
- super(...arguments);
103
+ constructor(options = {}) {
104
+ super(options);
109
105
  this.controlType = 'datepicker';
106
+ this.mode = options.mode || 'single';
107
+ this.disabledDates = options.disabledDates || undefined;
108
+ this.isInvalidDate = options.isInvalidDate || undefined;
109
+ this.presets = options.presets || undefined;
110
+ this.presetsLabel = options.presetsLabel || undefined;
111
+ this.calendars = options.calendars || undefined;
112
+ this.weekStart = options.weekStart ?? null;
113
+ this.closeOnSelect =
114
+ options.closeOnSelect !== undefined ? options.closeOnSelect : true;
110
115
  }
111
116
  }
112
-
113
- class DatepickerRange extends ElementBase {
114
- constructor() {
115
- super(...arguments);
117
+ /**
118
+ * @deprecated Use `Datepicker` with `mode: "range"`.
119
+ * Kept as a compatibility bridge for 2.x consumers.
120
+ */
121
+ class DatepickerRange extends Datepicker {
122
+ constructor(options = {}) {
123
+ super({ ...options, mode: 'range' });
116
124
  this.controlType = 'datepicker-range';
117
125
  }
118
126
  }
@@ -346,7 +354,7 @@ class MatInputAutosizeDirective {
346
354
  .pipe(takeUntilDestroyed(this.destroyRef))
347
355
  .subscribe(() => this.changeHiddenText(this.inputElement.value));
348
356
  }
349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MatInputAutosizeDirective, deps: [{ token: i0.ElementRef }, { token: i5.MatInput, self: true }, { token: i2.NgModel, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MatInputAutosizeDirective, deps: [{ token: i0.ElementRef }, { token: i1.MatInput, self: true }, { token: i2.NgModel, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
350
358
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.21", type: MatInputAutosizeDirective, isStandalone: true, selector: "[matInputAutosize]", inputs: { matInputAutosizeMaxWidth: "matInputAutosizeMaxWidth", matInputAutosizeMinWidth: "matInputAutosizeMinWidth", matInputAutosizeFontStyle: "matInputAutosizeFontStyle" }, ngImport: i0 }); }
351
359
  }
352
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MatInputAutosizeDirective, decorators: [{
@@ -355,7 +363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
355
363
  selector: '[matInputAutosize]',
356
364
  standalone: true,
357
365
  }]
358
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i5.MatInput, decorators: [{
366
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatInput, decorators: [{
359
367
  type: Self
360
368
  }] }, { type: i2.NgModel, decorators: [{
361
369
  type: Optional
@@ -393,9 +401,11 @@ class BubblePaginationDirective {
393
401
  if (!this.bubbleContainerRef) {
394
402
  return;
395
403
  }
396
- if ((!changes?.["appCustomLength"]?.firstChange && changes?.["appCustomLength"]) ||
397
- (!changes?.["bubblePageIndex"]?.firstChange && changes?.["bubblePageIndex"]) ||
398
- (!changes?.["bubblePageSize"]?.firstChange && changes?.["bubblePageSize"])) {
404
+ if ((!changes?.['appCustomLength']?.firstChange &&
405
+ changes?.['appCustomLength']) ||
406
+ (!changes?.['bubblePageIndex']?.firstChange &&
407
+ changes?.['bubblePageIndex']) ||
408
+ (!changes?.['bubblePageSize']?.firstChange && changes?.['bubblePageSize'])) {
399
409
  this.scheduleRebuildButtons();
400
410
  }
401
411
  }
@@ -405,7 +415,10 @@ class BubblePaginationDirective {
405
415
  renderButtons() {
406
416
  this.rebuildButtons();
407
417
  this.matPag.page
408
- .pipe(map((e) => [e.previousPageIndex ?? 0, e.pageIndex]), startWith([this.getActivePageIndex(), this.getActivePageIndex()]), takeUntilDestroyed(this.destroyRef))
418
+ .pipe(map((e) => [e.previousPageIndex ?? 0, e.pageIndex]), startWith([
419
+ this.getActivePageIndex(),
420
+ this.getActivePageIndex(),
421
+ ]), takeUntilDestroyed(this.destroyRef))
409
422
  .subscribe(([prev, curr]) => {
410
423
  this.updateButtonsOnPageEvent(prev, curr);
411
424
  });
@@ -417,11 +430,11 @@ class BubblePaginationDirective {
417
430
  const previouslyActive = this.buttonsRef[previousIndex];
418
431
  const currentActive = this.buttonsRef[newIndex];
419
432
  try {
420
- this.ren.removeClass(previouslyActive, "g-bubble__active");
421
- this.ren.addClass(currentActive, "g-bubble__active");
433
+ this.ren.removeClass(previouslyActive, 'g-bubble__active');
434
+ this.ren.addClass(currentActive, 'g-bubble__active');
422
435
  }
423
436
  catch { }
424
- this.buttonsRef.forEach((button) => this.ren.setStyle(button, "display", "none"));
437
+ this.buttonsRef.forEach((button) => this.ren.setStyle(button, 'display', 'none'));
425
438
  const renderElements = this.renderButtonsNumber;
426
439
  const endDots = newIndex < this.buttonsRef.length - renderElements - 1;
427
440
  const startDots = newIndex - renderElements > 0;
@@ -429,15 +442,15 @@ class BubblePaginationDirective {
429
442
  const lastButton = this.buttonsRef[this.buttonsRef.length - 1];
430
443
  try {
431
444
  if (this.showLastButton) {
432
- this.ren.setStyle(this.dotsEndRef, "display", endDots ? "block" : "none");
433
- this.ren.setStyle(lastButton, "display", endDots ? "flex" : "none");
445
+ this.ren.setStyle(this.dotsEndRef, 'display', endDots ? 'block' : 'none');
446
+ this.ren.setStyle(lastButton, 'display', endDots ? 'flex' : 'none');
434
447
  }
435
448
  }
436
449
  catch { }
437
450
  try {
438
451
  if (this.showFirstButton) {
439
- this.ren.setStyle(this.dotsStartRef, "display", startDots ? "block" : "none");
440
- this.ren.setStyle(firstButton, "display", startDots ? "flex" : "none");
452
+ this.ren.setStyle(this.dotsStartRef, 'display', startDots ? 'block' : 'none');
453
+ this.ren.setStyle(firstButton, 'display', startDots ? 'flex' : 'none');
441
454
  }
442
455
  }
443
456
  catch { }
@@ -447,29 +460,29 @@ class BubblePaginationDirective {
447
460
  : this.buttonsRef.length - 1;
448
461
  for (let i = startingIndex; i <= endingIndex; i++) {
449
462
  const button = this.buttonsRef[i];
450
- this.ren.setStyle(button, "display", "flex");
463
+ this.ren.setStyle(button, 'display', 'flex');
451
464
  }
452
465
  }
453
466
  styleDefaultPagination() {
454
467
  const nativeElement = this.elementRef.nativeElement;
455
- const previousButton = nativeElement.querySelector(".mat-mdc-paginator-navigation-previous");
456
- const nextButtonDefault = nativeElement.querySelector(".mat-mdc-paginator-navigation-next");
468
+ const previousButton = nativeElement.querySelector('.mat-mdc-paginator-navigation-previous');
469
+ const nextButtonDefault = nativeElement.querySelector('.mat-mdc-paginator-navigation-next');
457
470
  if (this.hideDefaultArrows) {
458
- this.ren.setStyle(previousButton, "display", "none");
459
- this.ren.setStyle(nextButtonDefault, "display", "none");
471
+ this.ren.setStyle(previousButton, 'display', 'none');
472
+ this.ren.setStyle(nextButtonDefault, 'display', 'none');
460
473
  }
461
474
  }
462
475
  createBubbleDivRef() {
463
- const actionContainer = this.elementRef.nativeElement.querySelector("div.mat-mdc-paginator-range-actions");
464
- const nextButtonDefault = this.elementRef.nativeElement.querySelector("button.mat-mdc-paginator-navigation-next");
465
- const pageRange = this.elementRef.nativeElement.querySelector("div.mat-mdc-paginator-range-label");
466
- this.bubbleContainerRef = this.ren.createElement("div");
467
- this.ren.addClass(this.bubbleContainerRef, "g-bubble-container");
476
+ const actionContainer = this.elementRef.nativeElement.querySelector('div.mat-mdc-paginator-range-actions');
477
+ const nextButtonDefault = this.elementRef.nativeElement.querySelector('button.mat-mdc-paginator-navigation-next');
478
+ const pageRange = this.elementRef.nativeElement.querySelector('div.mat-mdc-paginator-range-label');
479
+ this.bubbleContainerRef = this.ren.createElement('div');
480
+ this.ren.addClass(this.bubbleContainerRef, 'g-bubble-container');
468
481
  if (actionContainer) {
469
- this.ren.addClass(actionContainer, "custom-paginator-container");
482
+ this.ren.addClass(actionContainer, 'custom-paginator-container');
470
483
  }
471
484
  if (pageRange) {
472
- this.ren.addClass(pageRange, "custom-paginator-counter");
485
+ this.ren.addClass(pageRange, 'custom-paginator-counter');
473
486
  }
474
487
  if (actionContainer) {
475
488
  this.ren.insertBefore(actionContainer, this.bubbleContainerRef, nextButtonDefault);
@@ -501,29 +514,30 @@ class BubblePaginationDirective {
501
514
  this.buttonsRef = [];
502
515
  }
503
516
  createButton(i) {
504
- const bubbleButton = this.ren.createElement("div");
517
+ const bubbleButton = this.ren.createElement('button');
505
518
  const text = this.ren.createText(String(i + 1));
506
- this.ren.addClass(bubbleButton, "g-bubble");
507
- this.ren.setStyle(bubbleButton, "margin-right", "8px");
519
+ this.ren.addClass(bubbleButton, 'g-bubble');
520
+ this.ren.setAttribute(bubbleButton, 'type', 'button');
521
+ this.ren.setStyle(bubbleButton, 'margin-right', '8px');
508
522
  this.ren.appendChild(bubbleButton, text);
509
- const removeClickListener = this.ren.listen(bubbleButton, "click", () => {
523
+ const removeClickListener = this.ren.listen(bubbleButton, 'click', () => {
510
524
  this.switchPage(i);
511
525
  });
512
526
  this.removeButtonListeners.push(removeClickListener);
513
527
  this.ren.appendChild(this.bubbleContainerRef, bubbleButton);
514
- this.ren.setStyle(bubbleButton, "display", "none");
528
+ this.ren.setStyle(bubbleButton, 'display', 'none');
515
529
  return bubbleButton;
516
530
  }
517
531
  createDotsElement() {
518
- const dotsEl = this.ren.createElement("span");
519
- const dotsText = this.ren.createText("...");
520
- this.ren.setStyle(dotsEl, "font-size", "18px");
521
- this.ren.setStyle(dotsEl, "margin-right", "8px");
522
- this.ren.setStyle(dotsEl, "padding-top", "6px");
523
- this.ren.setStyle(dotsEl, "color", "#919191");
532
+ const dotsEl = this.ren.createElement('span');
533
+ const dotsText = this.ren.createText('...');
534
+ this.ren.setStyle(dotsEl, 'font-size', '18px');
535
+ this.ren.setStyle(dotsEl, 'margin-right', '8px');
536
+ this.ren.setStyle(dotsEl, 'padding-top', '6px');
537
+ this.ren.setStyle(dotsEl, 'color', '#919191');
524
538
  this.ren.appendChild(dotsEl, dotsText);
525
539
  this.ren.appendChild(this.bubbleContainerRef, dotsEl);
526
- this.ren.setStyle(dotsEl, "display", "none");
540
+ this.ren.setStyle(dotsEl, 'display', 'none');
527
541
  return dotsEl;
528
542
  }
529
543
  switchPage(i) {
@@ -589,16 +603,16 @@ class BubblePaginationDirective {
589
603
  this.removeButtonListeners.forEach((removeListener) => removeListener());
590
604
  this.removeButtonListeners = [];
591
605
  }
592
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: BubblePaginationDirective, deps: [{ token: i1.MatPaginator }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
606
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: BubblePaginationDirective, deps: [{ token: i1$1.MatPaginator }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
593
607
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.21", type: BubblePaginationDirective, isStandalone: true, selector: "[appBubblePagination], [appStylePaginatorMv]", inputs: { showFirstButton: "showFirstButton", showLastButton: "showLastButton", renderButtonsNumber: "renderButtonsNumber", appCustomLength: "appCustomLength", hideDefaultArrows: "hideDefaultArrows", bubblePageIndex: "bubblePageIndex", bubblePageSize: "bubblePageSize" }, outputs: { pageIndexChangeEmitter: "pageIndexChangeEmitter" }, usesOnChanges: true, ngImport: i0 }); }
594
608
  }
595
609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: BubblePaginationDirective, decorators: [{
596
610
  type: Directive,
597
611
  args: [{
598
- selector: "[appBubblePagination], [appStylePaginatorMv]",
612
+ selector: '[appBubblePagination], [appStylePaginatorMv]',
599
613
  standalone: true,
600
614
  }]
601
- }], ctorParameters: () => [{ type: i1.MatPaginator }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { pageIndexChangeEmitter: [{
615
+ }], ctorParameters: () => [{ type: i1$1.MatPaginator }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { pageIndexChangeEmitter: [{
602
616
  type: Output
603
617
  }], showFirstButton: [{
604
618
  type: Input
@@ -616,7 +630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
616
630
  type: Input
617
631
  }] } });
618
632
 
619
- const MAPA_UI_TEXTS = new InjectionToken("MAPA_UI_TEXTS");
633
+ const MAPA_UI_TEXTS = new InjectionToken('MAPA_UI_TEXTS');
620
634
  function formatPaginatorRange(page, pageSize, length) {
621
635
  if (length === 0 || pageSize === 0) {
622
636
  return `0 de ${length}`;
@@ -630,66 +644,73 @@ function formatPaginatorRange(page, pageSize, length) {
630
644
  }
631
645
  function formatPaginatorShowingRange(page, pageSize, length) {
632
646
  if (length === 0 || pageSize === 0) {
633
- return "Mostrando 0 - 0 de 0 item";
647
+ return 'Mostrando 0 - 0 de 0 item';
634
648
  }
635
649
  const safeLength = Math.max(length, 0);
636
650
  const startIndex = page * pageSize;
637
651
  const endIndex = startIndex < safeLength
638
652
  ? Math.min(startIndex + pageSize, safeLength)
639
653
  : startIndex + pageSize;
640
- const itemLabel = safeLength === 1 ? "item" : "itens";
654
+ const itemLabel = safeLength === 1 ? 'item' : 'itens';
641
655
  return `Mostrando ${startIndex + 1} - ${endIndex} de ${safeLength} ${itemLabel}`;
642
656
  }
643
657
  const DEFAULT_MAPA_UI_TEXTS = {
644
658
  common: {
645
- selectAll: "Selecionar todos",
659
+ selectAll: 'Selecionar todos',
660
+ retry: 'Tentar novamente',
646
661
  },
647
662
  filters: {
648
- clear: "Limpar filtros",
649
- submit: "Filtrar",
663
+ clear: 'Limpar filtros',
664
+ submit: 'Filtrar',
650
665
  },
651
666
  datepicker: {
652
- startDatePlaceholder: "Data inicial",
653
- endDatePlaceholder: "Data final",
667
+ startDatePlaceholder: 'Data inicial',
668
+ endDatePlaceholder: 'Data final',
654
669
  },
655
670
  capability: {
656
- groupAverageTitle: "Média geral do grupo",
657
- individualAverageTitle: "Média geral do indivíduo",
658
- conceptTitle: "Conceito",
659
- resultTitle: "Resultado",
660
- positiveIndicatorsTitle: "Indicadores positivos",
661
- negativeIndicatorsTitle: "Indicadores negativos",
662
- riskIndicatorsTitle: "Indicadores de risco",
663
- precipitationRiskTitle: "Risco de acidente por precipitação",
664
- negligenceRiskTitle: "Risco de acidente por negligência",
665
- negativeDirectionLabel: "Direção Negativa |",
666
- positiveDirectionLabel: "Direção Positiva |",
671
+ groupAverageTitle: 'Média geral do grupo',
672
+ individualAverageTitle: 'Média geral do indivíduo',
673
+ conceptTitle: 'Conceito',
674
+ resultTitle: 'Resultado',
675
+ positiveIndicatorsTitle: 'Indicadores positivos',
676
+ negativeIndicatorsTitle: 'Indicadores negativos',
677
+ riskIndicatorsTitle: 'Indicadores de risco',
678
+ precipitationRiskTitle: 'Risco de acidente por precipitação',
679
+ negligenceRiskTitle: 'Risco de acidente por negligência',
680
+ negativeDirectionLabel: 'Direção Negativa |',
681
+ positiveDirectionLabel: 'Direção Positiva |',
667
682
  },
668
683
  paginator: {
669
- itemsPerPage: "Itens por página",
670
- nextPage: "Próxima página",
671
- previousPage: "Página anterior",
684
+ itemsPerPage: 'Itens por página',
685
+ nextPage: 'Próxima página',
686
+ previousPage: 'Página anterior',
672
687
  rangeLabel: formatPaginatorRange,
673
688
  showingRangeLabel: formatPaginatorShowingRange,
674
689
  },
675
690
  warning: {
676
- lowReliabilityTitle: "Nível baixo de confiabilidade no(s) teste(s):",
677
- expirationLimitTitle: "O prazo de validade do(s) teste(s) está no limite:",
691
+ lowReliabilityTitle: 'Nível baixo de confiabilidade no(s) teste(s):',
692
+ expirationLimitTitle: 'O prazo de validade do(s) teste(s) está no limite:',
678
693
  },
679
694
  table: {
680
- emptyTitle: "Não foram encontrados resultados",
681
- emptySubtitle: "",
695
+ emptyTitle: 'Não foram encontrados resultados',
696
+ emptySubtitle: '',
697
+ loading: 'Carregando resultados',
698
+ errorTitle: 'Não foi possível carregar os resultados.',
699
+ selectAllVisible: 'Selecionar todos os itens desta página',
700
+ selectionColumn: 'Seleção',
701
+ selectRow: 'Selecionar item',
702
+ selectNamedRow: (item) => `Selecionar ${item}`,
682
703
  },
683
704
  validation: {
684
- cnpj: "CNPJ inválido",
685
- cpf: "CPF inválido",
686
- email: "E-mail inválido",
687
- max: (context) => `O valor máximo permitido é ${context?.max ?? ""}`.trim(),
688
- maxLength: (context) => `O máximo permitido é ${context?.requiredLength ?? ""} caracteres`.trim(),
689
- min: (context) => `O valor mínimo permitido é ${context?.min ?? ""}`.trim(),
690
- minLength: (context) => `O mínimo permitido é ${context?.requiredLength ?? ""} caracteres`.trim(),
691
- pattern: "Formato inválido",
692
- required: "Campo obrigatório",
705
+ cnpj: 'CNPJ inválido',
706
+ cpf: 'CPF inválido',
707
+ email: 'E-mail inválido',
708
+ max: (context) => `O valor máximo permitido é ${context?.max ?? ''}`.trim(),
709
+ maxLength: (context) => `O máximo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),
710
+ min: (context) => `O valor mínimo permitido é ${context?.min ?? ''}`.trim(),
711
+ minLength: (context) => `O mínimo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),
712
+ pattern: 'Formato inválido',
713
+ required: 'Campo obrigatório',
693
714
  },
694
715
  };
695
716
  function getDefaultTexts() {
@@ -829,7 +850,7 @@ class MapaFormErrorsComponent {
829
850
  return this.validationMessageResolver.resolveFirstError(this.control, this.errors);
830
851
  }
831
852
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaFormErrorsComponent, deps: [{ token: ValidationMessageResolverService }], target: i0.ɵɵFactoryTarget.Component }); }
832
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaFormErrorsComponent, isStandalone: true, selector: "mapa-form-errors", inputs: { control: "control", errors: "errors" }, ngImport: i0, template: "<span *ngIf=\"message\">\n {{ message }}\n</span>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }] }); }
853
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaFormErrorsComponent, isStandalone: true, selector: "mapa-form-errors", inputs: { control: "control", errors: "errors" }, ngImport: i0, template: "<span *ngIf=\"message\">\n {{ message }}\n</span>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatFormFieldModule }] }); }
833
854
  }
834
855
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaFormErrorsComponent, decorators: [{
835
856
  type: Component,
@@ -850,7 +871,7 @@ class HtmlSanitizerService {
850
871
  sanitize(value) {
851
872
  return sanitizeHtmlContent(this.sanitizer, value);
852
873
  }
853
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: HtmlSanitizerService, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
874
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: HtmlSanitizerService, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable }); }
854
875
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: HtmlSanitizerService, providedIn: "root" }); }
855
876
  }
856
877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: HtmlSanitizerService, decorators: [{
@@ -858,7 +879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
858
879
  args: [{
859
880
  providedIn: "root",
860
881
  }]
861
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }] });
882
+ }], ctorParameters: () => [{ type: i1$3.DomSanitizer }] });
862
883
 
863
884
  class SafeHtmlPipe {
864
885
  constructor(htmlSanitizer) {
@@ -878,6 +899,269 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
878
899
  }]
879
900
  }], ctorParameters: () => [{ type: HtmlSanitizerService }] });
880
901
 
902
+ const DAY_MONTH_YEAR_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
903
+ const MONTH_DAY_YEAR_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
904
+ const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}([T ].*)?$/;
905
+ const DOCS_LANGUAGE_STORAGE_KEY = "mapa-library-ui-docs-language";
906
+ function isValidDate(date) {
907
+ return !Number.isNaN(date.getTime());
908
+ }
909
+ function buildUtcDate(date, dayOffset, hours, minutes, seconds, milliseconds) {
910
+ return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate() + dayOffset, hours, minutes, seconds, milliseconds));
911
+ }
912
+ function formatDateAsDayMonthYear(date) {
913
+ const day = `${date.getDate()}`.padStart(2, "0");
914
+ const month = `${date.getMonth() + 1}`.padStart(2, "0");
915
+ const year = `${date.getFullYear()}`;
916
+ return `${day}/${month}/${year}`;
917
+ }
918
+ function formatDateAsMonthDayYear(date) {
919
+ const day = `${date.getDate()}`.padStart(2, "0");
920
+ const month = `${date.getMonth() + 1}`.padStart(2, "0");
921
+ const year = `${date.getFullYear()}`;
922
+ return `${month}/${day}/${year}`;
923
+ }
924
+ function normalizeDateLocale(value) {
925
+ if (typeof value !== "string") {
926
+ return "pt-BR";
927
+ }
928
+ const normalizedValue = value.trim().toLowerCase();
929
+ if (normalizedValue.startsWith("en")) {
930
+ return "en";
931
+ }
932
+ if (normalizedValue.startsWith("es")) {
933
+ return "es";
934
+ }
935
+ return "pt-BR";
936
+ }
937
+ function getDocsStoredLanguage() {
938
+ if (typeof window === "undefined") {
939
+ return null;
940
+ }
941
+ try {
942
+ return window.localStorage.getItem(DOCS_LANGUAGE_STORAGE_KEY);
943
+ }
944
+ catch {
945
+ return null;
946
+ }
947
+ }
948
+ function getActiveDateLocale() {
949
+ return normalizeDateLocale(getDocsStoredLanguage() ?? getStoredAppLanguage());
950
+ }
951
+ function isMonthFirstDateLocale(locale = getActiveDateLocale()) {
952
+ return normalizeDateLocale(locale) === "en";
953
+ }
954
+ function getActiveDateFormat(locale = getActiveDateLocale()) {
955
+ return isMonthFirstDateLocale(locale) ? "MM/DD/YYYY" : "DD/MM/YYYY";
956
+ }
957
+ function getDateInputMask(_locale = getActiveDateLocale()) {
958
+ return "00/00/0000";
959
+ }
960
+ function formatDateForLocale(date, locale = getActiveDateLocale()) {
961
+ return isMonthFirstDateLocale(locale)
962
+ ? formatDateAsMonthDayYear(date)
963
+ : formatDateAsDayMonthYear(date);
964
+ }
965
+ function parseOrderedDate(value, pattern, order) {
966
+ const match = pattern.exec(value.trim());
967
+ if (!match) {
968
+ return null;
969
+ }
970
+ const [, firstValue, secondValue, yearValue] = match;
971
+ const year = Number(yearValue);
972
+ const month = Number(order === "month-first" ? firstValue : secondValue);
973
+ const day = Number(order === "month-first" ? secondValue : firstValue);
974
+ const parsedDate = new Date(year, month - 1, day);
975
+ if (parsedDate.getFullYear() !== year ||
976
+ parsedDate.getMonth() !== month - 1 ||
977
+ parsedDate.getDate() !== day) {
978
+ return null;
979
+ }
980
+ return parsedDate;
981
+ }
982
+ function parseLocaleDateValue(value, locale = getActiveDateLocale()) {
983
+ const normalizedLocale = normalizeDateLocale(locale);
984
+ const parsers = normalizedLocale === "en"
985
+ ? [
986
+ () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, "month-first"),
987
+ () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first"),
988
+ ]
989
+ : [
990
+ () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first"),
991
+ () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, "month-first"),
992
+ ];
993
+ for (const parse of parsers) {
994
+ const parsedDate = parse();
995
+ if (parsedDate) {
996
+ return parsedDate;
997
+ }
998
+ }
999
+ return null;
1000
+ }
1001
+ function parseDateValue(value, locale = getActiveDateLocale()) {
1002
+ if (value instanceof Date) {
1003
+ return isValidDate(value) ? new Date(value.getTime()) : null;
1004
+ }
1005
+ if (typeof value === "number") {
1006
+ const parsedDate = new Date(value);
1007
+ return isValidDate(parsedDate) ? parsedDate : null;
1008
+ }
1009
+ if (typeof value !== "string") {
1010
+ return null;
1011
+ }
1012
+ const trimmedValue = value.trim();
1013
+ if (!trimmedValue) {
1014
+ return null;
1015
+ }
1016
+ const localeDate = parseLocaleDateValue(trimmedValue, locale);
1017
+ if (localeDate) {
1018
+ return localeDate;
1019
+ }
1020
+ if (DAY_MONTH_YEAR_PATTERN.test(trimmedValue) || MONTH_DAY_YEAR_PATTERN.test(trimmedValue)) {
1021
+ return null;
1022
+ }
1023
+ const parsedDate = new Date(trimmedValue);
1024
+ return isValidDate(parsedDate) ? parsedDate : null;
1025
+ }
1026
+ /**
1027
+ * Parse estrito para o texto de um campo de data mascarado.
1028
+ *
1029
+ * Diferente de `parseDateValue`, não cai em `new Date(string)` para qualquer
1030
+ * entrada. O motor de datas do V8 aceita fragmentos numéricos e devolve datas
1031
+ * inventadas — `"2"` vira 01/02/2001 e `"251220"` vira o ano 251220 —, o que
1032
+ * fazia os datepickers moverem o calendário a cada tecla enquanto o usuário
1033
+ * ainda estava digitando.
1034
+ *
1035
+ * Aceita apenas uma data completa no formato do locale ativo (com validação de
1036
+ * faixa de dia/mês) ou uma data ISO-8601, para não quebrar valores vindos de
1037
+ * API que o consumidor grave direto no controle.
1038
+ */
1039
+ function parseDateFieldValue(value, locale = getActiveDateLocale()) {
1040
+ if (value instanceof Date || typeof value === "number") {
1041
+ return parseDateValue(value, locale);
1042
+ }
1043
+ if (typeof value !== "string") {
1044
+ return null;
1045
+ }
1046
+ const trimmedValue = value.trim();
1047
+ if (!trimmedValue) {
1048
+ return null;
1049
+ }
1050
+ const localeDate = parseLocaleDateValue(trimmedValue, locale);
1051
+ if (localeDate) {
1052
+ return localeDate;
1053
+ }
1054
+ return ISO_DATE_PATTERN.test(trimmedValue)
1055
+ ? parseDateValue(trimmedValue, locale)
1056
+ : null;
1057
+ }
1058
+ function isDateValue(value) {
1059
+ return parseDateValue(value) !== null;
1060
+ }
1061
+ function parseBrazilianDate(value) {
1062
+ return parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first");
1063
+ }
1064
+ function normalizeDateInput(value) {
1065
+ return parseDateValue(value);
1066
+ }
1067
+ function formatBrazilianDate(value) {
1068
+ const date = normalizeDateInput(value);
1069
+ return date ? formatDateAsDayMonthYear(date) : "";
1070
+ }
1071
+ function addDays(date, days) {
1072
+ const nextDate = new Date(date);
1073
+ nextDate.setDate(nextDate.getDate() + days);
1074
+ return nextDate;
1075
+ }
1076
+ function formatLocaleDate(value, dateStyle = "short") {
1077
+ const date = normalizeDateInput(value);
1078
+ if (!date) {
1079
+ return "";
1080
+ }
1081
+ return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {
1082
+ dateStyle,
1083
+ }).format(date);
1084
+ }
1085
+ function formatLocaleDateTime(value, options = {}) {
1086
+ const date = normalizeDateInput(value);
1087
+ if (!date) {
1088
+ return "";
1089
+ }
1090
+ const { dateStyle = "short", timeStyle = "short" } = options;
1091
+ return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {
1092
+ dateStyle,
1093
+ timeStyle,
1094
+ }).format(date);
1095
+ }
1096
+ function getDefaultDateRange(days = 60) {
1097
+ const today = new Date();
1098
+ return {
1099
+ startDate: formatBrazilianDate(addDays(today, -days)),
1100
+ endDate: formatBrazilianDate(today),
1101
+ };
1102
+ }
1103
+ function getRelativeDateRange(daysBack) {
1104
+ const endDate = new Date();
1105
+ endDate.setHours(23, 59, 59, 999);
1106
+ const startDate = new Date();
1107
+ startDate.setHours(0, 0, 0, 0);
1108
+ startDate.setDate(startDate.getDate() - daysBack);
1109
+ return { startDate, endDate };
1110
+ }
1111
+ function toUtcRangeStartIso(value) {
1112
+ const date = normalizeDateInput(value);
1113
+ return date ? buildUtcDate(date, 0, 3, 0, 0, 0).toISOString() : undefined;
1114
+ }
1115
+ function toUtcRangeEndIso(value) {
1116
+ const date = normalizeDateInput(value);
1117
+ return date ? buildUtcDate(date, 1, 2, 59, 59, 999).toISOString() : undefined;
1118
+ }
1119
+ function toUtcDayExclusiveEndIso(value) {
1120
+ const date = normalizeDateInput(value);
1121
+ return date ? buildUtcDate(date, 1, 3, 0, 0, 0).toISOString() : undefined;
1122
+ }
1123
+
1124
+ /**
1125
+ * Locale de data ativo exposto como sinal.
1126
+ *
1127
+ * `getActiveDateLocale()` lê do localStorage, que não é reativo. Em vez de
1128
+ * consultar o valor a cada ciclo de change detection, observamos o
1129
+ * `textsSignal` do `MapaI18nService`: toda troca de idioma do ecossistema
1130
+ * passa por `setTexts()`. Como effects do Angular são agendados e não
1131
+ * síncronos, quando o corpo do effect roda a gravação no localStorage feita
1132
+ * logo após o `setTexts()` já aconteceu.
1133
+ *
1134
+ * Root-provided de propósito: um effect para toda a aplicação em vez de um por
1135
+ * instância de datepicker.
1136
+ */
1137
+ class MapaDateLocaleService {
1138
+ constructor() {
1139
+ this.i18n = inject(MapaI18nService);
1140
+ this.localeState = signal(getActiveDateLocale(), ...(ngDevMode ? [{ debugName: "localeState" }] : []));
1141
+ this.localeSignal = this.localeState.asReadonly();
1142
+ effect(() => {
1143
+ this.i18n.textsSignal();
1144
+ this.refresh();
1145
+ });
1146
+ }
1147
+ /**
1148
+ * Relê o locale do storage. Cinto de segurança para consumidores que trocam
1149
+ * o idioma sem passar por `setTexts()`.
1150
+ */
1151
+ refresh() {
1152
+ const nextLocale = getActiveDateLocale();
1153
+ if (this.localeState() !== nextLocale) {
1154
+ this.localeState.set(nextLocale);
1155
+ }
1156
+ }
1157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDateLocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1158
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDateLocaleService, providedIn: "root" }); }
1159
+ }
1160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDateLocaleService, decorators: [{
1161
+ type: Injectable,
1162
+ args: [{ providedIn: "root" }]
1163
+ }], ctorParameters: () => [] });
1164
+
881
1165
  const ESTADOS_SIGLA = ['ac', 'al', 'am', 'ap', 'ba', 'ce', 'df', 'es', 'go', 'ma',
882
1166
  'mg', 'ms', 'mt', 'pa', 'pb', 'pe', 'pi', 'pr', 'rj', 'rn', 'ro', 'rr', 'rs',
883
1167
  'sc', 'se', 'sp', 'to'
@@ -4559,231 +4843,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
4559
4843
  }]
4560
4844
  }] });
4561
4845
 
4562
- const DAY_MONTH_YEAR_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
4563
- const MONTH_DAY_YEAR_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
4564
- const ISO_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}([T ].*)?$/;
4565
- const DOCS_LANGUAGE_STORAGE_KEY = "mapa-library-ui-docs-language";
4566
- function isValidDate(date) {
4567
- return !Number.isNaN(date.getTime());
4568
- }
4569
- function buildUtcDate(date, dayOffset, hours, minutes, seconds, milliseconds) {
4570
- return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate() + dayOffset, hours, minutes, seconds, milliseconds));
4571
- }
4572
- function formatDateAsDayMonthYear(date) {
4573
- const day = `${date.getDate()}`.padStart(2, "0");
4574
- const month = `${date.getMonth() + 1}`.padStart(2, "0");
4575
- const year = `${date.getFullYear()}`;
4576
- return `${day}/${month}/${year}`;
4577
- }
4578
- function formatDateAsMonthDayYear(date) {
4579
- const day = `${date.getDate()}`.padStart(2, "0");
4580
- const month = `${date.getMonth() + 1}`.padStart(2, "0");
4581
- const year = `${date.getFullYear()}`;
4582
- return `${month}/${day}/${year}`;
4583
- }
4584
- function normalizeDateLocale(value) {
4585
- if (typeof value !== "string") {
4586
- return "pt-BR";
4587
- }
4588
- const normalizedValue = value.trim().toLowerCase();
4589
- if (normalizedValue.startsWith("en")) {
4590
- return "en";
4591
- }
4592
- if (normalizedValue.startsWith("es")) {
4593
- return "es";
4594
- }
4595
- return "pt-BR";
4596
- }
4597
- function getDocsStoredLanguage() {
4598
- if (typeof window === "undefined") {
4599
- return null;
4600
- }
4601
- try {
4602
- return window.localStorage.getItem(DOCS_LANGUAGE_STORAGE_KEY);
4603
- }
4604
- catch {
4605
- return null;
4606
- }
4607
- }
4608
- function getActiveDateLocale() {
4609
- return normalizeDateLocale(getDocsStoredLanguage() ?? getStoredAppLanguage());
4610
- }
4611
- function isMonthFirstDateLocale(locale = getActiveDateLocale()) {
4612
- return normalizeDateLocale(locale) === "en";
4613
- }
4614
- function getActiveDateFormat(locale = getActiveDateLocale()) {
4615
- return isMonthFirstDateLocale(locale) ? "MM/DD/YYYY" : "DD/MM/YYYY";
4616
- }
4617
- function getActiveMaterialDateFormat(locale = getActiveDateLocale()) {
4618
- return isMonthFirstDateLocale(locale) ? "MM/dd/yyyy" : "dd/MM/yyyy";
4619
- }
4620
- function getDateInputMask(_locale = getActiveDateLocale()) {
4621
- return "00/00/0000";
4622
- }
4623
- function formatDateForLocale(date, locale = getActiveDateLocale()) {
4624
- return isMonthFirstDateLocale(locale)
4625
- ? formatDateAsMonthDayYear(date)
4626
- : formatDateAsDayMonthYear(date);
4627
- }
4628
- function parseOrderedDate(value, pattern, order) {
4629
- const match = pattern.exec(value.trim());
4630
- if (!match) {
4631
- return null;
4632
- }
4633
- const [, firstValue, secondValue, yearValue] = match;
4634
- const year = Number(yearValue);
4635
- const month = Number(order === "month-first" ? firstValue : secondValue);
4636
- const day = Number(order === "month-first" ? secondValue : firstValue);
4637
- const parsedDate = new Date(year, month - 1, day);
4638
- if (parsedDate.getFullYear() !== year ||
4639
- parsedDate.getMonth() !== month - 1 ||
4640
- parsedDate.getDate() !== day) {
4641
- return null;
4642
- }
4643
- return parsedDate;
4644
- }
4645
- function parseLocaleDateValue(value, locale = getActiveDateLocale()) {
4646
- const normalizedLocale = normalizeDateLocale(locale);
4647
- const parsers = normalizedLocale === "en"
4648
- ? [
4649
- () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, "month-first"),
4650
- () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first"),
4651
- ]
4652
- : [
4653
- () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first"),
4654
- () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, "month-first"),
4655
- ];
4656
- for (const parse of parsers) {
4657
- const parsedDate = parse();
4658
- if (parsedDate) {
4659
- return parsedDate;
4660
- }
4661
- }
4662
- return null;
4663
- }
4664
- function parseDateValue(value, locale = getActiveDateLocale()) {
4665
- if (value instanceof Date) {
4666
- return isValidDate(value) ? new Date(value.getTime()) : null;
4667
- }
4668
- if (typeof value === "number") {
4669
- const parsedDate = new Date(value);
4670
- return isValidDate(parsedDate) ? parsedDate : null;
4671
- }
4672
- if (typeof value !== "string") {
4673
- return null;
4674
- }
4675
- const trimmedValue = value.trim();
4676
- if (!trimmedValue) {
4677
- return null;
4678
- }
4679
- const localeDate = parseLocaleDateValue(trimmedValue, locale);
4680
- if (localeDate) {
4681
- return localeDate;
4682
- }
4683
- if (DAY_MONTH_YEAR_PATTERN.test(trimmedValue) || MONTH_DAY_YEAR_PATTERN.test(trimmedValue)) {
4684
- return null;
4685
- }
4686
- const parsedDate = new Date(trimmedValue);
4687
- return isValidDate(parsedDate) ? parsedDate : null;
4688
- }
4689
- /**
4690
- * Parse estrito para o texto de um campo de data mascarado.
4691
- *
4692
- * Diferente de `parseDateValue`, não cai em `new Date(string)` para qualquer
4693
- * entrada. O motor de datas do V8 aceita fragmentos numéricos e devolve datas
4694
- * inventadas — `"2"` vira 01/02/2001 e `"251220"` vira o ano 251220 —, o que
4695
- * fazia os datepickers moverem o calendário a cada tecla enquanto o usuário
4696
- * ainda estava digitando.
4697
- *
4698
- * Aceita apenas uma data completa no formato do locale ativo (com validação de
4699
- * faixa de dia/mês) ou uma data ISO-8601, para não quebrar valores vindos de
4700
- * API que o consumidor grave direto no controle.
4701
- */
4702
- function parseDateFieldValue(value, locale = getActiveDateLocale()) {
4703
- if (value instanceof Date || typeof value === "number") {
4704
- return parseDateValue(value, locale);
4705
- }
4706
- if (typeof value !== "string") {
4707
- return null;
4708
- }
4709
- const trimmedValue = value.trim();
4710
- if (!trimmedValue) {
4711
- return null;
4712
- }
4713
- const localeDate = parseLocaleDateValue(trimmedValue, locale);
4714
- if (localeDate) {
4715
- return localeDate;
4716
- }
4717
- return ISO_DATE_PATTERN.test(trimmedValue)
4718
- ? parseDateValue(trimmedValue, locale)
4719
- : null;
4720
- }
4721
- function isDateValue(value) {
4722
- return parseDateValue(value) !== null;
4723
- }
4724
- function parseBrazilianDate(value) {
4725
- return parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, "day-first");
4726
- }
4727
- function normalizeDateInput(value) {
4728
- return parseDateValue(value);
4729
- }
4730
- function formatBrazilianDate(value) {
4731
- const date = normalizeDateInput(value);
4732
- return date ? formatDateAsDayMonthYear(date) : "";
4733
- }
4734
- function addDays(date, days) {
4735
- const nextDate = new Date(date);
4736
- nextDate.setDate(nextDate.getDate() + days);
4737
- return nextDate;
4738
- }
4739
- function formatLocaleDate(value, dateStyle = "short") {
4740
- const date = normalizeDateInput(value);
4741
- if (!date) {
4742
- return "";
4743
- }
4744
- return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {
4745
- dateStyle,
4746
- }).format(date);
4747
- }
4748
- function formatLocaleDateTime(value, options = {}) {
4749
- const date = normalizeDateInput(value);
4750
- if (!date) {
4751
- return "";
4752
- }
4753
- const { dateStyle = "short", timeStyle = "short" } = options;
4754
- return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {
4755
- dateStyle,
4756
- timeStyle,
4757
- }).format(date);
4758
- }
4759
- function getDefaultDateRange(days = 60) {
4760
- const today = new Date();
4761
- return {
4762
- startDate: formatBrazilianDate(addDays(today, -days)),
4763
- endDate: formatBrazilianDate(today),
4764
- };
4765
- }
4766
- function getRelativeDateRange(daysBack) {
4767
- const endDate = new Date();
4768
- endDate.setHours(23, 59, 59, 999);
4769
- const startDate = new Date();
4770
- startDate.setHours(0, 0, 0, 0);
4771
- startDate.setDate(startDate.getDate() - daysBack);
4772
- return { startDate, endDate };
4773
- }
4774
- function toUtcRangeStartIso(value) {
4775
- const date = normalizeDateInput(value);
4776
- return date ? buildUtcDate(date, 0, 3, 0, 0, 0).toISOString() : undefined;
4777
- }
4778
- function toUtcRangeEndIso(value) {
4779
- const date = normalizeDateInput(value);
4780
- return date ? buildUtcDate(date, 1, 2, 59, 59, 999).toISOString() : undefined;
4781
- }
4782
- function toUtcDayExclusiveEndIso(value) {
4783
- const date = normalizeDateInput(value);
4784
- return date ? buildUtcDate(date, 1, 3, 0, 0, 0).toISOString() : undefined;
4785
- }
4786
-
4787
4846
  class LocaleDatePipe {
4788
4847
  transform(value, dateStyle = "short") {
4789
4848
  return formatLocaleDate(value, dateStyle);
@@ -4915,7 +4974,7 @@ function reformatDateStringForLanguage(value, fromLanguage, toLanguage) {
4915
4974
 
4916
4975
  class MapaBenchmarkIndicatorComponent {
4917
4976
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaBenchmarkIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4918
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaBenchmarkIndicatorComponent, isStandalone: true, selector: "mapa-benchmark-indicator", inputs: { item: "item" }, ngImport: i0, template: "<div\n class=\"indicator\"\n [style.backgroundColor]=\"item.classificationColor\"\n>\n <div class=\"indicator__markers\">\n @for (mark of item.marks ?? []; track mark.name + '-' + mark.value) {\n <div\n class=\"indicator__marker--arrow\"\n [ngStyle]=\"{\n left: mark.value + '%',\n borderTopColor: mark.color\n }\"\n [title]=\"mark.name + ' (' + mark.value + '%)'\"\n ></div>\n }\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;justify-content:flex-end}.indicator{min-height:23px}.indicator__classification{background-color:#fff;border-radius:16px;color:#000;padding:4px 8px;margin-right:4px;font-size:12px!important}.indicator__markers{position:absolute;inset:0;z-index:10}.indicator__marker--arrow{position:absolute;top:10px;width:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid;transform:translate(-80%)}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4977
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaBenchmarkIndicatorComponent, isStandalone: true, selector: "mapa-benchmark-indicator", inputs: { item: "item" }, ngImport: i0, template: "<div\n class=\"indicator\"\n [style.backgroundColor]=\"item.classificationColor\"\n>\n <div class=\"indicator__markers\">\n @for (mark of item.marks ?? []; track mark.name + '-' + mark.value) {\n <div\n class=\"indicator__marker--arrow\"\n [ngStyle]=\"{\n left: mark.value + '%',\n borderTopColor: mark.color\n }\"\n [title]=\"mark.name + ' (' + mark.value + '%)'\"\n ></div>\n }\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;justify-content:flex-end}.indicator{min-height:23px}.indicator__classification{background-color:#fff;border-radius:16px;color:#000;padding:4px 8px;margin-right:4px;font-size:12px!important}.indicator__markers{position:absolute;inset:0;z-index:10}.indicator__marker--arrow{position:absolute;top:10px;width:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:12px solid;transform:translate(-80%)}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4919
4978
  }
4920
4979
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaBenchmarkIndicatorComponent, decorators: [{
4921
4980
  type: Component,
@@ -4955,7 +5014,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
4955
5014
 
4956
5015
  class MapaBreadcrumbComponent {
4957
5016
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4958
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaBreadcrumbComponent, isStandalone: true, selector: "mapa-breadcrumb", inputs: { items: "items" }, ngImport: i0, template: "<section class=\"mapa-breadcrumb\" *ngIf=\"items && items.length > 0\">\n <span class=\"mapa-breadcrumb__item\" *ngFor=\"let item of items; let i = index\">\n <a *ngIf=\"item.url; else common\" [href]=\"item.url\" [routerLink]=\"item.url\"\n >{{ item.title }}</a\n >\n <ng-template #common>\n <span\n class=\"mapa-breadcrumb__item\"\n [class.mapa-breadcrumb__item--highlight]=\"items.length === i + 1\"\n >\n {{ item.title }}</span\n >\n </ng-template>\n <span class=\"mapa-breadcrumb__item--next\" *ngIf=\"i < items.length - 1\"\n >></span\n >\n </span>\n</section>\n", styles: [".mapa-breadcrumb{display:flex;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);flex-direction:row;margin-bottom:32px}.mapa-breadcrumb__item{font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#50575e}.mapa-breadcrumb__item a{text-decoration:none;color:#50575e}.mapa-breadcrumb__item--next{margin:0 6px}.mapa-breadcrumb__item--highlight{color:#ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
5017
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaBreadcrumbComponent, isStandalone: true, selector: "mapa-breadcrumb", inputs: { items: "items" }, ngImport: i0, template: "<section class=\"mapa-breadcrumb\" *ngIf=\"items && items.length > 0\">\n <span class=\"mapa-breadcrumb__item\" *ngFor=\"let item of items; let i = index\">\n <a *ngIf=\"item.url; else common\" [href]=\"item.url\" [routerLink]=\"item.url\"\n >{{ item.title }}</a\n >\n <ng-template #common>\n <span\n class=\"mapa-breadcrumb__item\"\n [class.mapa-breadcrumb__item--highlight]=\"items.length === i + 1\"\n >\n {{ item.title }}</span\n >\n </ng-template>\n <span class=\"mapa-breadcrumb__item--next\" *ngIf=\"i < items.length - 1\"\n >></span\n >\n </span>\n</section>\n", styles: [".mapa-breadcrumb{display:flex;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);flex-direction:row;margin-bottom:32px}.mapa-breadcrumb__item{font-size:12px;font-style:normal;font-weight:400;line-height:16px;color:#50575e}.mapa-breadcrumb__item a{text-decoration:none;color:#50575e}.mapa-breadcrumb__item--next{margin:0 6px}.mapa-breadcrumb__item--highlight{color:#ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
4959
5018
  }
4960
5019
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaBreadcrumbComponent, decorators: [{
4961
5020
  type: Component,
@@ -5014,13 +5073,13 @@ class ButtonIconComponent {
5014
5073
  this.imgBase64 = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/svg+xml;base64,${this.data.icon}`);
5015
5074
  }
5016
5075
  }
5017
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ButtonIconComponent, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
5018
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: ButtonIconComponent, isStandalone: true, selector: "mapa-button-icon", inputs: { data: "data" }, outputs: { clicked: "clicked" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"button-icon\" id=\"componentes\" *ngIf=\"data\">\n <div class=\"button-icon__icon\">\n <img *ngIf=\"imgBase64\" [src]=\"imgBase64\" />\n </div>\n <div class=\"button-icon__title\">\n {{ data.description }}\n </div>\n <div class=\"button-icon__preview\" (click)=\"onClick(data)\">\n Preview\n </div>\n</div>\n", styles: [".button-icon{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);display:inline-flex;justify-content:space-between;margin:10px;height:60px;background:#fff;border:solid 1px #ccc;color:#000000de;cursor:move;font-size:16px;font-weight:400;border-radius:8px;width:100%}.button-icon__icon{margin-right:10px;border-radius:8px 0 0 8px;background-color:#fdefea}.button-icon__icon img{width:40px;height:40px;padding:10px}.button-icon__title{display:flex;align-items:center;overflow:hidden;width:100%;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif)}.button-icon__preview{display:flex;align-items:center;cursor:pointer;padding-left:10px;font-weight:400;margin:12px;border-left:1px solid #cdcdcd}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5076
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ButtonIconComponent, deps: [{ token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
5077
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: ButtonIconComponent, isStandalone: true, selector: "mapa-button-icon", inputs: { data: "data" }, outputs: { clicked: "clicked" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"button-icon\" id=\"componentes\" *ngIf=\"data\">\n <div class=\"button-icon__icon\">\n <img *ngIf=\"imgBase64\" [src]=\"imgBase64\" />\n </div>\n <div class=\"button-icon__title\">\n {{ data.description }}\n </div>\n <div class=\"button-icon__preview\" (click)=\"onClick(data)\">\n Preview\n </div>\n</div>\n", styles: [".button-icon{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);display:inline-flex;justify-content:space-between;margin:10px;height:60px;background:#fff;border:solid 1px #ccc;color:#000000de;cursor:move;font-size:16px;font-weight:400;border-radius:8px;width:100%}.button-icon__icon{margin-right:10px;border-radius:8px 0 0 8px;background-color:#fdefea}.button-icon__icon img{width:40px;height:40px;padding:10px}.button-icon__title{display:flex;align-items:center;overflow:hidden;width:100%;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif)}.button-icon__preview{display:flex;align-items:center;cursor:pointer;padding-left:10px;font-weight:400;margin:12px;border-left:1px solid #cdcdcd}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5019
5078
  }
5020
5079
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ButtonIconComponent, decorators: [{
5021
5080
  type: Component,
5022
5081
  args: [{ selector: "mapa-button-icon", imports: [CommonModule], standalone: true, template: "<div class=\"button-icon\" id=\"componentes\" *ngIf=\"data\">\n <div class=\"button-icon__icon\">\n <img *ngIf=\"imgBase64\" [src]=\"imgBase64\" />\n </div>\n <div class=\"button-icon__title\">\n {{ data.description }}\n </div>\n <div class=\"button-icon__preview\" (click)=\"onClick(data)\">\n Preview\n </div>\n</div>\n", styles: [".button-icon{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);display:inline-flex;justify-content:space-between;margin:10px;height:60px;background:#fff;border:solid 1px #ccc;color:#000000de;cursor:move;font-size:16px;font-weight:400;border-radius:8px;width:100%}.button-icon__icon{margin-right:10px;border-radius:8px 0 0 8px;background-color:#fdefea}.button-icon__icon img{width:40px;height:40px;padding:10px}.button-icon__title{display:flex;align-items:center;overflow:hidden;width:100%;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif)}.button-icon__preview{display:flex;align-items:center;cursor:pointer;padding-left:10px;font-weight:400;margin:12px;border-left:1px solid #cdcdcd}\n"] }]
5023
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }], propDecorators: { data: [{
5082
+ }], ctorParameters: () => [{ type: i1$3.DomSanitizer }], propDecorators: { data: [{
5024
5083
  type: Input
5025
5084
  }], clicked: [{
5026
5085
  type: Output
@@ -5192,7 +5251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
5192
5251
 
5193
5252
  class TagComponent {
5194
5253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: TagComponent, isStandalone: true, selector: "mapa-tag", inputs: { tag: "tag" }, ngImport: i0, template: "<div\n *ngIf=\"tag\"\n class=\"mapa-tag\"\n [class.mapa-tag--small]=\"tag.size === 'small' && !tag.fontSize\"\n [class.mapa-tag--highlight]=\"tag.color === 'highlight'\"\n [class.mapa-tag--selected]=\"tag.color === 'selected'\"\n [class.mapa-tag--default-bg]=\"!tag.bgColor\"\n [class.mapa-tag--bg]=\"tag.bgColor\"\n [style.backgroundColor]=\"tag.bgColor\"\n [style.padding-left]=\"tag.fontSize\"\n [style.border-radius]=\"tag.fontSize\"\n [style.fontSize]=\"tag.fontSize\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".mapa-tag{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:flex;align-items:center;border-radius:16px;padding:8px 12px;margin:0 4px;white-space:nowrap}.mapa-tag--default-bg{border:1px solid #cdcdcd;background:#fff;font-weight:300}.mapa-tag--bg{font-weight:500!important;text-transform:uppercase;padding:4px 8px!important;height:24px!important;color:#181818;font-size:12px}.mapa-tag--highlight{border:2px solid #eedb2a!important}.mapa-tag--small{gap:8px;padding:2px 8px!important;font-size:12px}.mapa-tag--selected{padding:8px 16px!important;gap:16px;border-radius:8px!important;border:1px solid #d9d9d9!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5254
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: TagComponent, isStandalone: true, selector: "mapa-tag", inputs: { tag: "tag" }, ngImport: i0, template: "<div\n *ngIf=\"tag\"\n class=\"mapa-tag\"\n [class.mapa-tag--small]=\"tag.size === 'small' && !tag.fontSize\"\n [class.mapa-tag--highlight]=\"tag.color === 'highlight'\"\n [class.mapa-tag--selected]=\"tag.color === 'selected'\"\n [class.mapa-tag--default-bg]=\"!tag.bgColor\"\n [class.mapa-tag--bg]=\"tag.bgColor\"\n [style.backgroundColor]=\"tag.bgColor\"\n [style.padding-left]=\"tag.fontSize\"\n [style.border-radius]=\"tag.fontSize\"\n [style.fontSize]=\"tag.fontSize\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".mapa-tag{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:flex;align-items:center;border-radius:16px;padding:8px 12px;margin:0 4px;white-space:nowrap}.mapa-tag--default-bg{border:1px solid #cdcdcd;background:#fff;font-weight:300}.mapa-tag--bg{font-weight:500!important;text-transform:uppercase;padding:4px 8px!important;height:24px!important;color:#181818;font-size:12px}.mapa-tag--highlight{border:2px solid #eedb2a!important}.mapa-tag--small{gap:8px;padding:2px 8px!important;font-size:12px}.mapa-tag--selected{padding:8px 16px!important;gap:16px;border-radius:8px!important;border:1px solid #d9d9d9!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5196
5255
  }
5197
5256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: TagComponent, decorators: [{
5198
5257
  type: Component,
@@ -5230,7 +5289,7 @@ class MapaTooltipComponent {
5230
5289
  this.top = 0;
5231
5290
  }
5232
5291
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaTooltipComponent, isStandalone: true, selector: "lib-tooltip", ngImport: i0, template: "<div\n class=\"tooltip\"\n [ngClass]=\"['tooltip--'+position, 'tooltip--'+theme]\"\n [class.tooltip--visible]=\"visible\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n>\n <ng-template [ngTemplateOutlet]=\"tooltip\"></ng-template>\n</div>\n", styles: [".tooltip{position:fixed;background-color:#000;border-radius:8px;color:#fff;font-family:Arial;padding:3px 6px;font-size:13px;opacity:0;z-index:999;box-shadow:#0000000d 0 6px 24px,#00000014 0 0 0 1px}.tooltip :before,.tooltip :after{content:\"\";display:block;position:absolute;bottom:100%;width:1px;height:0}.tooltip :before{left:49%;border:8px solid transparent;border-bottom-color:#ddd}.tooltip :after{left:49.6%;border:7px solid transparent;border-bottom-color:#fff}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip--light{background-color:#fff;color:#000}.tooltip--dark{background-color:#000;color:#fff}.tooltip--below{transform:translate(-50%);margin-top:7px}.tooltip--below:before{border-left-color:transparent;border-right-color:transparent;border-top:none;left:calc(50% - 5px);top:-5px}.tooltip--above{transform:translate(-50%,-100%);margin-bottom:7px}.tooltip--above:before{border-left-color:transparent;border-right-color:transparent;border-bottom:none;left:calc(50% - 5px);bottom:-5px}.tooltip--left{transform:translate(calc(-100% - 7px),-50%)}.tooltip--left:before{border-top-color:transparent;border-bottom-color:transparent;border-right:none;right:-5px;top:calc(50% - 5px)}.tooltip--right{transform:translateY(-50%);margin-left:7px}.tooltip--right:before{border-top-color:transparent;border-bottom-color:transparent;border-left:none;left:-5px;top:calc(50% - 5px)}.tooltip--dynamic{margin-left:20px}.tooltip--dynamic:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
5292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaTooltipComponent, isStandalone: true, selector: "lib-tooltip", ngImport: i0, template: "<div\n class=\"tooltip\"\n [ngClass]=\"['tooltip--'+position, 'tooltip--'+theme]\"\n [class.tooltip--visible]=\"visible\"\n [style.left]=\"left + 'px'\"\n [style.top]=\"top + 'px'\"\n>\n <ng-template [ngTemplateOutlet]=\"tooltip\"></ng-template>\n</div>\n", styles: [".tooltip{position:fixed;background-color:#000;border-radius:8px;color:#fff;font-family:Arial;padding:3px 6px;font-size:13px;opacity:0;z-index:999;box-shadow:#0000000d 0 6px 24px,#00000014 0 0 0 1px}.tooltip :before,.tooltip :after{content:\"\";display:block;position:absolute;bottom:100%;width:1px;height:0}.tooltip :before{left:49%;border:8px solid transparent;border-bottom-color:#ddd}.tooltip :after{left:49.6%;border:7px solid transparent;border-bottom-color:#fff}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip--light{background-color:#fff;color:#000}.tooltip--dark{background-color:#000;color:#fff}.tooltip--below{transform:translate(-50%);margin-top:7px}.tooltip--below:before{border-left-color:transparent;border-right-color:transparent;border-top:none;left:calc(50% - 5px);top:-5px}.tooltip--above{transform:translate(-50%,-100%);margin-bottom:7px}.tooltip--above:before{border-left-color:transparent;border-right-color:transparent;border-bottom:none;left:calc(50% - 5px);bottom:-5px}.tooltip--left{transform:translate(calc(-100% - 7px),-50%)}.tooltip--left:before{border-top-color:transparent;border-bottom-color:transparent;border-right:none;right:-5px;top:calc(50% - 5px)}.tooltip--right{transform:translateY(-50%);margin-left:7px}.tooltip--right:before{border-top-color:transparent;border-bottom-color:transparent;border-left:none;left:-5px;top:calc(50% - 5px)}.tooltip--dynamic{margin-left:20px}.tooltip--dynamic:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
5234
5293
  }
5235
5294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTooltipComponent, decorators: [{
5236
5295
  type: Component,
@@ -5386,7 +5445,7 @@ class MapaCapabilityDotComponent {
5386
5445
  };
5387
5446
  }
5388
5447
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityDotComponent, deps: [{ token: CapabilityClassificationService }], target: i0.ɵɵFactoryTarget.Component }); }
5389
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityDotComponent, isStandalone: true, selector: "mapa-capability-dot", inputs: { type: "type", item: "item", tooltip: "tooltip", capability: "capability" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<p\n *ngIf=\"!tooltip\"\n [class.dot]=\"type !== 'small'\"\n [class.small-dot]=\"type === 'small'\"\n [style.backgroundColor]=\"item.classificationColor\"\n></p>\n<div *ngIf=\"tooltip\" [tooltip]=\"tooltipTemplate\" class=\"tooltip-dot\">\n <p\n [class.dot]=\"type !== 'small'\"\n [class.small-dot]=\"type === 'small'\"\n [style.backgroundColor]=\"item.classificationColor\"\n ></p>\n</div>\n<ng-template #tooltipTemplate>\n <div class=\"tooltip-info\">\n <strong\n class=\"tooltip-info--direction\"\n *ngIf=\"!item.direction\"\n >\u2198\uFE0E</strong\n >\n <strong\n class=\"tooltip-info--direction\"\n *ngIf=\"item.direction\"\n >\u2197</strong\n >\n\n <h5>{{ item.name }}</h5>\n\n <mapa-tag [tag]=\"createTag()\">\n <p\n class=\"small-dot\"\n [style.backgroundColor]=\"item.classificationColor\"\n ></p>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n</ng-template>\n", styles: [".tooltip-info{display:flex;align-items:center}.tooltip-info strong{margin-right:2px}.tooltip-info h5{margin:0 5px 0 0;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:600}.tooltip-info--title{color:#50575e;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:600}.tooltip-info--direction{padding-right:6px;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:600}.tooltip-info mapa-tag{color:#000}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "directive", type: MapaTooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "position", "theme", "showDelay", "hideDelay"] }] }); }
5448
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityDotComponent, isStandalone: true, selector: "mapa-capability-dot", inputs: { type: "type", item: "item", tooltip: "tooltip", capability: "capability" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<p\n *ngIf=\"!tooltip\"\n [class.dot]=\"type !== 'small'\"\n [class.small-dot]=\"type === 'small'\"\n [style.backgroundColor]=\"item.classificationColor\"\n></p>\n<div *ngIf=\"tooltip\" [tooltip]=\"tooltipTemplate\" class=\"tooltip-dot\">\n <p\n [class.dot]=\"type !== 'small'\"\n [class.small-dot]=\"type === 'small'\"\n [style.backgroundColor]=\"item.classificationColor\"\n ></p>\n</div>\n<ng-template #tooltipTemplate>\n <div class=\"tooltip-info\">\n <strong\n class=\"tooltip-info--direction\"\n *ngIf=\"!item.direction\"\n >\u2198\uFE0E</strong\n >\n <strong\n class=\"tooltip-info--direction\"\n *ngIf=\"item.direction\"\n >\u2197</strong\n >\n\n <h5>{{ item.name }}</h5>\n\n <mapa-tag [tag]=\"createTag()\">\n <p\n class=\"small-dot\"\n [style.backgroundColor]=\"item.classificationColor\"\n ></p>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n</ng-template>\n", styles: [".tooltip-info{display:flex;align-items:center}.tooltip-info strong{margin-right:2px}.tooltip-info h5{margin:0 5px 0 0;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:600}.tooltip-info--title{color:#50575e;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:600}.tooltip-info--direction{padding-right:6px;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:600}.tooltip-info mapa-tag{color:#000}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "directive", type: MapaTooltipDirective, selector: "[tooltip]", inputs: ["tooltip", "position", "theme", "showDelay", "hideDelay"] }] }); }
5390
5449
  }
5391
5450
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityDotComponent, decorators: [{
5392
5451
  type: Component,
@@ -5429,7 +5488,7 @@ class MapaCapabilityExpandComponent {
5429
5488
  };
5430
5489
  }
5431
5490
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityExpandComponent, deps: [{ token: CapabilityClassificationService }, { token: MapaI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
5432
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityExpandComponent, isStandalone: true, selector: "mapa-capability-expand", inputs: { data: "data" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">{{ conceptTitle }}</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">{{ resultTitle }}</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">&searr; </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">&nearr; </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >{{ negativeDirectionLabel }}</strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >{{ positiveDirectionLabel }}</strong>\n <span [innerHTML]=\"item.description | safeHtml\"></span>\n </p>\n </div>\n</div>\n\n\n\n", styles: [":host ::ng-deep .capability__concept{display:flex;flex-direction:row;flex-wrap:wrap;width:100%;gap:42px;margin:24px 0 60px}:host ::ng-deep .capability__concept--content{display:flex;flex-direction:column;flex-basis:100%;flex:1}:host ::ng-deep .capability__concept--title{color:#000;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}:host ::ng-deep .capability__concept--text{color:#676767;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media(min-width:800px)and (max-width:1250px){:host ::ng-deep .capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media(min-width:1251px){:host ::ng-deep .capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}:host ::ng-deep .capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}:host ::ng-deep .capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px;font-style:normal;font-weight:400;height:18px}:host ::ng-deep .capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "component", type: MapaCapabilityDotComponent, selector: "mapa-capability-dot", inputs: ["type", "item", "tooltip", "capability"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
5491
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityExpandComponent, isStandalone: true, selector: "mapa-capability-expand", inputs: { data: "data" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<div\n class=\"capability__concept\"\n *ngIf=\"data.capabilityConcept?.concept || data.capabilityConcept?.result\"\n>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.concept\"\n >\n <div class=\"capability__concept--title\">{{ conceptTitle }}</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.concept! }}\n </div>\n </div>\n <div\n class=\"capability__concept--content\"\n *ngIf=\"data.capabilityConcept?.result\"\n >\n <div class=\"capability__concept--title\">{{ resultTitle }}</div>\n <div class=\"capability__concept--text\">\n {{ data.capabilityConcept?.result! }}\n </div>\n </div>\n</div>\n<div class=\"capability__expanded\">\n <div *ngFor=\"let item of data.items\" class=\"capability__expanded--item\">\n <div class=\"name\">\n <div class=\"capability__expanded--name\">\n <span *ngIf=\"item.classificationColor\">\n <strong *ngIf=\"!classification.getByItem(item).positive\">&searr; </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">&nearr; </strong>\n </span>\n {{ item.name }}\n </div>\n <mapa-tag\n [tag]=\"createTag(item)\"\n class=\"capability__expanded--tag\"\n *ngIf=\"item.classificationId\"\n >\n <mapa-capability-dot\n [item]=\"item\"\n *ngIf=\"item.classificationColor\"\n ></mapa-capability-dot>\n {{ item.classificationName }}\n </mapa-tag>\n </div>\n\n <p class=\"capability__expanded--description\" *ngIf=\"item.description\">\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && !classification.getByItem(item).positive\"\n >{{ negativeDirectionLabel }}</strong>\n <strong\n *ngIf=\"item.classificationId && !item.classificationBg && classification.getByItem(item).positive\"\n >{{ positiveDirectionLabel }}</strong>\n <span [innerHTML]=\"item.description | safeHtml\"></span>\n </p>\n </div>\n</div>\n\n\n\n", styles: [":host ::ng-deep .capability__concept{display:flex;flex-direction:row;flex-wrap:wrap;width:100%;gap:42px;margin:24px 0 60px}:host ::ng-deep .capability__concept--content{display:flex;flex-direction:column;flex-basis:100%;flex:1}:host ::ng-deep .capability__concept--title{color:#000;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:600;line-height:24px;margin-bottom:8px}:host ::ng-deep .capability__concept--text{color:#676767;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .capability__expanded{border-top:1px solid #cdcdcd;padding:36px 0 16px 16px;gap:30px}@media(min-width:800px)and (max-width:1250px){:host ::ng-deep .capability__expanded{display:grid;grid-template-columns:1fr 1fr}}@media(min-width:1251px){:host ::ng-deep .capability__expanded{display:grid;grid-template-columns:1fr 1fr 1fr}}:host ::ng-deep .capability__expanded--description{color:#8c8f94;font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .capability__expanded--item .name{display:flex;justify-content:space-between;margin-bottom:16px}:host ::ng-deep .capability__expanded--item mapa-tag .mapa-tag--small{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 3px;font-size:14px;font-style:normal;font-weight:400;height:18px}:host ::ng-deep .capability__expanded--name{color:#181818;font-size:20px;font-style:normal;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TagComponent, selector: "mapa-tag", inputs: ["tag"] }, { kind: "component", type: MapaCapabilityDotComponent, selector: "mapa-capability-dot", inputs: ["type", "item", "tooltip", "capability"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
5433
5492
  }
5434
5493
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityExpandComponent, decorators: [{
5435
5494
  type: Component,
@@ -5440,7 +5499,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
5440
5499
 
5441
5500
  class MapaCapabilityIndicatorComponent {
5442
5501
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5443
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorComponent, isStandalone: true, selector: "mapa-capability-indicator", inputs: { item: "item" }, ngImport: i0, template: "<div\n class=\"indicator\"\n [style.backgroundColor]=\"item.classificationColor\"\n>\n <span *ngIf=\"item.name\">{{ item.name }}</span>\n <div class=\"indicator__classification\">\n {{ item.interval }}%\n </div>\n</div>\n", styles: [".indicator{margin:3px 0}.indicator__classification{background-color:#fff;border-radius:16px;color:#000;padding:4px 8px;margin-right:4px;font-size:12px!important}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorComponent, isStandalone: true, selector: "mapa-capability-indicator", inputs: { item: "item" }, ngImport: i0, template: "<div\n class=\"indicator\"\n [style.backgroundColor]=\"item.classificationColor\"\n>\n <span *ngIf=\"item.name\">{{ item.name }}</span>\n <div class=\"indicator__classification\">\n {{ item.interval }}%\n </div>\n</div>\n", styles: [".indicator{margin:3px 0}.indicator__classification{background-color:#fff;border-radius:16px;color:#000;padding:4px 8px;margin-right:4px;font-size:12px!important}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5444
5503
  }
5445
5504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorComponent, decorators: [{
5446
5505
  type: Component,
@@ -5515,7 +5574,7 @@ class MapaCapabilityIntervalComponent {
5515
5574
  return !!this.data.classificationBg && this.data.classificationBg === "SVG";
5516
5575
  }
5517
5576
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIntervalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5518
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIntervalComponent, isStandalone: true, selector: "mapa-capability-interval", inputs: { data: "data", showInterval: "showInterval" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"capability__interval\" *ngIf=\"isSVG(); else progressBar\">\n <li\n class=\"capability__interval--item\"\n *ngFor=\"let block of SVG; let i = index\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"30\"\n fill=\"none\"\n [class]=\"'svg_' + i + '_' + getWidth(i)\"\n >\n <defs *ngIf=\"hasTransform && i === indexTransform\">\n <linearGradient [attr.id]=\"paintLinear\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.offset]=\"getStartOffset()\" stop-color=\"#8C8F94\" />\n <stop [attr.offset]=\"getStopOffset()\" stop-color=\"#D9D9D9\" />\n </linearGradient>\n </defs>\n <rect\n rx=\"6\"\n x=\"0\"\n y=\"0.710938\"\n [attr.width]=\"SVG[i].width\"\n [attr.height]=\"SVG[i].height\"\n [attr.fill]=\"getFill(i)\"\n />\n <rect\n *ngIf=\"hasTransform && i === indexTransform\"\n rx=\"6\"\n x=\"0\"\n y=\"0.710938\"\n [attr.width]=\"SVG[i].width\"\n [attr.height]=\"SVG[i].height\"\n [attr.fill]=\"getFillGradient()\"\n />\n </svg>\n </li>\n <li class=\"capability__interval--interval\" *ngIf=\"showInterval\">\n {{ data.interval }}%\n </li>\n</ul>\n<ng-template #progressBar>\n <div class=\"capability__progress-bar\">\n <div class=\"capability__progress-bar--bg\">\n <div\n class=\"capability__progress-bar--filled\"\n [style.width.%]=\"data.interval\"\n ></div>\n </div>\n <div class=\"capability__interval--result\" *ngIf=\"showInterval\">\n {{data.interval}}%\n </div>\n </div>\n</ng-template>\n", styles: [".capability__interval{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:38px;font-style:normal;font-weight:500;display:flex;align-items:center;list-style-type:none;margin-block-start:0px;margin-block-end:0px;padding-inline-start:0px}.capability__interval--interval{display:flex;align-items:flex-start;justify-content:flex-end;text-align:right;font-size:24px;font-style:normal;font-weight:500;height:36px;padding-left:16px;width:68px}.capability__interval--item{border-radius:6px;margin-right:2px;width:18px;height:34px;position:relative}.capability__interval--item:last-of-type{margin-right:0}.capability__interval--percentage{background-color:#d9d9d9;height:34.57px}.capability__progress-bar{display:flex;align-items:center;justify-content:space-between;color:#2e2a2a;font-size:18px;font-style:normal;font-weight:400;width:310px}.capability__progress-bar--bg{position:relative;background-color:#eee;border-radius:6px;height:8px;width:247px}.capability__progress-bar--filled{position:absolute;top:0;left:0;background-color:#ea561d;border-radius:6px;height:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5577
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIntervalComponent, isStandalone: true, selector: "mapa-capability-interval", inputs: { data: "data", showInterval: "showInterval" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"capability__interval\" *ngIf=\"isSVG(); else progressBar\">\n <li\n class=\"capability__interval--item\"\n *ngFor=\"let block of SVG; let i = index\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"30\"\n fill=\"none\"\n [class]=\"'svg_' + i + '_' + getWidth(i)\"\n >\n <defs *ngIf=\"hasTransform && i === indexTransform\">\n <linearGradient [attr.id]=\"paintLinear\" gradientUnits=\"userSpaceOnUse\">\n <stop [attr.offset]=\"getStartOffset()\" stop-color=\"#8C8F94\" />\n <stop [attr.offset]=\"getStopOffset()\" stop-color=\"#D9D9D9\" />\n </linearGradient>\n </defs>\n <rect\n rx=\"6\"\n x=\"0\"\n y=\"0.710938\"\n [attr.width]=\"SVG[i].width\"\n [attr.height]=\"SVG[i].height\"\n [attr.fill]=\"getFill(i)\"\n />\n <rect\n *ngIf=\"hasTransform && i === indexTransform\"\n rx=\"6\"\n x=\"0\"\n y=\"0.710938\"\n [attr.width]=\"SVG[i].width\"\n [attr.height]=\"SVG[i].height\"\n [attr.fill]=\"getFillGradient()\"\n />\n </svg>\n </li>\n <li class=\"capability__interval--interval\" *ngIf=\"showInterval\">\n {{ data.interval }}%\n </li>\n</ul>\n<ng-template #progressBar>\n <div class=\"capability__progress-bar\">\n <div class=\"capability__progress-bar--bg\">\n <div\n class=\"capability__progress-bar--filled\"\n [style.width.%]=\"data.interval\"\n ></div>\n </div>\n <div class=\"capability__interval--result\" *ngIf=\"showInterval\">\n {{data.interval}}%\n </div>\n </div>\n</ng-template>\n", styles: [".capability__interval{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:38px;font-style:normal;font-weight:500;display:flex;align-items:center;list-style-type:none;margin-block-start:0px;margin-block-end:0px;padding-inline-start:0px}.capability__interval--interval{display:flex;align-items:flex-start;justify-content:flex-end;text-align:right;font-size:24px;font-style:normal;font-weight:500;height:36px;padding-left:16px;width:68px}.capability__interval--item{border-radius:6px;margin-right:2px;width:18px;height:34px;position:relative}.capability__interval--item:last-of-type{margin-right:0}.capability__interval--percentage{background-color:#d9d9d9;height:34.57px}.capability__progress-bar{display:flex;align-items:center;justify-content:space-between;color:#2e2a2a;font-size:18px;font-style:normal;font-weight:400;width:310px}.capability__progress-bar--bg{position:relative;background-color:#eee;border-radius:6px;height:8px;width:247px}.capability__progress-bar--filled{position:absolute;top:0;left:0;background-color:#ea561d;border-radius:6px;height:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5519
5578
  }
5520
5579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIntervalComponent, decorators: [{
5521
5580
  type: Component,
@@ -5556,7 +5615,7 @@ class MapaCapabilityComparativeIndicatorComponent {
5556
5615
  return 32 + (item.interval || 0) * 2 + "px";
5557
5616
  }
5558
5617
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityComparativeIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5559
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityComparativeIndicatorComponent, isStandalone: true, selector: "mapa-capability-comparative-indicator", inputs: { item: "item", fullWidth: "fullWidth" }, ngImport: i0, template: "<div\n class=\"comparative-indicator\"\n [style.width]=\"fullWidth ? '100%' : getWidth(item)\"\n>\n <div class=\"comparative-indicator__interval\">\n {{ item.interval }}%\n <span\n *ngIf=\"item.isIndividually\"\n class=\"comparative-indicator__individually\"\n >\u25BC</span\n >\n </div>\n <div\n class=\"comparative-indicator__classification\"\n [style.backgroundColor]=\"item.classificationColor\"\n *ngIf=\"item.classificationColor\"\n ></div>\n</div>\n", styles: [".comparative-indicator{display:flex;flex-direction:column}.comparative-indicator__interval{font-size:12px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);text-align:center;width:100%;display:flex;justify-content:center;align-items:center;min-width:40px}.comparative-indicator__classification{border-radius:16px;padding:2px 4px;height:24px}.comparative-indicator__individually{color:#ea561d;margin:0 4px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5618
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityComparativeIndicatorComponent, isStandalone: true, selector: "mapa-capability-comparative-indicator", inputs: { item: "item", fullWidth: "fullWidth" }, ngImport: i0, template: "<div\n class=\"comparative-indicator\"\n [style.width]=\"fullWidth ? '100%' : getWidth(item)\"\n>\n <div class=\"comparative-indicator__interval\">\n {{ item.interval }}%\n <span\n *ngIf=\"item.isIndividually\"\n class=\"comparative-indicator__individually\"\n >\u25BC</span\n >\n </div>\n <div\n class=\"comparative-indicator__classification\"\n [style.backgroundColor]=\"item.classificationColor\"\n *ngIf=\"item.classificationColor\"\n ></div>\n</div>\n", styles: [".comparative-indicator{display:flex;flex-direction:column}.comparative-indicator__interval{font-size:12px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);text-align:center;width:100%;display:flex;justify-content:center;align-items:center;min-width:40px}.comparative-indicator__classification{border-radius:16px;padding:2px 4px;height:24px}.comparative-indicator__individually{color:#ea561d;margin:0 4px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
5560
5619
  }
5561
5620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityComparativeIndicatorComponent, decorators: [{
5562
5621
  type: Component,
@@ -5578,7 +5637,7 @@ class MapaCapabilityComparativeChartComponent {
5578
5637
  };
5579
5638
  }
5580
5639
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityComparativeChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5581
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityComparativeChartComponent, isStandalone: true, selector: "mapa-capability-comparative-chart", inputs: { data: "data" }, ngImport: i0, template: "<table class=\"capability-comparative__chart\">\n <tr *ngFor=\"let indicator of data.indicators\">\n <th>\n <p>{{ indicator.name }}</p>\n </th>\n <td class=\"capability-comparative__chart--indicators\">\n <mapa-capability-comparative-indicator\n *ngFor=\"let item of indicator.items\"\n [item]=\"setCleanItem(item)\"\n [fullWidth]=\"true\"\n [style.width.%]=\"item.interval\"\n ></mapa-capability-comparative-indicator>\n </td>\n </tr>\n</table>\n", styles: [".capability-comparative{background-color:#fff}.capability-comparative__chart{width:100%}.capability-comparative__chart tr{border-bottom:1px solid #DCDCDE;display:flex;padding:16px 0;justify-content:space-between;align-items:center}.capability-comparative__chart th{vertical-align:bottom;text-align:left;padding-right:36px;width:20%}.capability-comparative__chart th p{font-size:14px;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);margin:6px 0!important;font-weight:500}.capability-comparative__chart--indicators{display:flex;justify-content:center;align-items:center;height:40px;position:relative;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MapaCapabilityComparativeIndicatorComponent, selector: "mapa-capability-comparative-indicator", inputs: ["item", "fullWidth"] }] }); }
5640
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityComparativeChartComponent, isStandalone: true, selector: "mapa-capability-comparative-chart", inputs: { data: "data" }, ngImport: i0, template: "<table class=\"capability-comparative__chart\">\n <tr *ngFor=\"let indicator of data.indicators\">\n <th>\n <p>{{ indicator.name }}</p>\n </th>\n <td class=\"capability-comparative__chart--indicators\">\n <mapa-capability-comparative-indicator\n *ngFor=\"let item of indicator.items\"\n [item]=\"setCleanItem(item)\"\n [fullWidth]=\"true\"\n [style.width.%]=\"item.interval\"\n ></mapa-capability-comparative-indicator>\n </td>\n </tr>\n</table>\n", styles: [".capability-comparative{background-color:#fff}.capability-comparative__chart{width:100%}.capability-comparative__chart tr{border-bottom:1px solid #DCDCDE;display:flex;padding:16px 0;justify-content:space-between;align-items:center}.capability-comparative__chart th{vertical-align:bottom;text-align:left;padding-right:36px;width:20%}.capability-comparative__chart th p{font-size:14px;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);margin:6px 0!important;font-weight:500}.capability-comparative__chart--indicators{display:flex;justify-content:center;align-items:center;height:40px;position:relative;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MapaCapabilityComparativeIndicatorComponent, selector: "mapa-capability-comparative-indicator", inputs: ["item", "fullWidth"] }] }); }
5582
5641
  }
5583
5642
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityComparativeChartComponent, decorators: [{
5584
5643
  type: Component,
@@ -5756,7 +5815,7 @@ class MapaCapabilityIndicatorListComponent {
5756
5815
  this.dataRiskNegligence = this.data.filter((item) => item.risk === true && item.negligence === true);
5757
5816
  }
5758
5817
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorListComponent, deps: [{ token: MapaI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
5759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorListComponent, isStandalone: true, selector: "mapa-capability-indicator-list", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"indicator-list\">\n <article class=\"indicator-list__column\">\n <h2>{{ positiveIndicatorsTitle }}</h2>\n <mapa-capability-indicator *ngFor=\"let item of dataPositive\" [item]=\"item\">\n </mapa-capability-indicator>\n </article>\n <article class=\"indicator-list__column\">\n <h2>{{ negativeIndicatorsTitle }}</h2>\n <mapa-capability-indicator *ngFor=\"let item of dataNegative\" [item]=\"item\">\n </mapa-capability-indicator>\n </article>\n <article\n class=\"indicator-list__column\"\n *ngIf=\"dataRiskPrecipitation.length > 0 || dataRiskNegligence.length > 0\"\n >\n <h2>{{ riskIndicatorsTitle }}</h2>\n <div *ngIf=\"dataRiskPrecipitation.length > 0\">\n <h3>{{ precipitationRiskTitle }}</h3>\n <mapa-capability-indicator\n *ngFor=\"let item of dataRiskPrecipitation\"\n [item]=\"item\"\n >\n </mapa-capability-indicator>\n </div>\n <div *ngIf=\"dataRiskNegligence.length > 0\">\n <h3>{{ negligenceRiskTitle }}</h3>\n <mapa-capability-indicator\n *ngFor=\"let item of dataRiskNegligence\"\n [item]=\"item\"\n >\n </mapa-capability-indicator>\n </div>\n </article>\n</section>\n\n", styles: [".indicator-list{display:flex;gap:42px;justify-content:space-between;margin-bottom:42px}.indicator-list__column{width:33%}.indicator-list__column h2{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:24px;font-style:normal;font-weight:400;line-height:32px;margin-bottom:24px}.indicator-list__column h3{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:32px;margin-bottom:24px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapaCapabilityIndicatorComponent, selector: "mapa-capability-indicator", inputs: ["item"] }] }); }
5818
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorListComponent, isStandalone: true, selector: "mapa-capability-indicator-list", inputs: { data: "data" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"indicator-list\">\n <article class=\"indicator-list__column\">\n <h2>{{ positiveIndicatorsTitle }}</h2>\n <mapa-capability-indicator *ngFor=\"let item of dataPositive\" [item]=\"item\">\n </mapa-capability-indicator>\n </article>\n <article class=\"indicator-list__column\">\n <h2>{{ negativeIndicatorsTitle }}</h2>\n <mapa-capability-indicator *ngFor=\"let item of dataNegative\" [item]=\"item\">\n </mapa-capability-indicator>\n </article>\n <article\n class=\"indicator-list__column\"\n *ngIf=\"dataRiskPrecipitation.length > 0 || dataRiskNegligence.length > 0\"\n >\n <h2>{{ riskIndicatorsTitle }}</h2>\n <div *ngIf=\"dataRiskPrecipitation.length > 0\">\n <h3>{{ precipitationRiskTitle }}</h3>\n <mapa-capability-indicator\n *ngFor=\"let item of dataRiskPrecipitation\"\n [item]=\"item\"\n >\n </mapa-capability-indicator>\n </div>\n <div *ngIf=\"dataRiskNegligence.length > 0\">\n <h3>{{ negligenceRiskTitle }}</h3>\n <mapa-capability-indicator\n *ngFor=\"let item of dataRiskNegligence\"\n [item]=\"item\"\n >\n </mapa-capability-indicator>\n </div>\n </article>\n</section>\n\n", styles: [".indicator-list{display:flex;gap:42px;justify-content:space-between;margin-bottom:42px}.indicator-list__column{width:33%}.indicator-list__column h2{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:24px;font-style:normal;font-weight:400;line-height:32px;margin-bottom:24px}.indicator-list__column h3{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:32px;margin-bottom:24px}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapaCapabilityIndicatorComponent, selector: "mapa-capability-indicator", inputs: ["item"] }] }); }
5760
5819
  }
5761
5820
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorListComponent, decorators: [{
5762
5821
  type: Component,
@@ -5784,7 +5843,7 @@ class MapaCapabilityIndicatorChartComponent {
5784
5843
  return interval + '%';
5785
5844
  }
5786
5845
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorChartComponent, deps: [{ token: CapabilityClassificationService }], target: i0.ɵɵFactoryTarget.Component }); }
5787
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorChartComponent, isStandalone: true, selector: "mapa-capability-indicator-chart", inputs: { data: "data" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<table class=\"indicator-chart\">\n <tr *ngFor=\"let item of data\">\n <td class=\"indicator-chart__column--description\">{{ item.name }}</td>\n <td class=\"indicator-chart__column indicator-chart__column--left\">\n <div\n class=\"indicator-chart__column--negative\"\n *ngIf=\"item.direction === 'Negativa'\"\n >\n <mapa-capability-indicator\n [item]=\"setUnlabeledItem(item)\"\n [style.width]=\"getWidth(item)\"\n ></mapa-capability-indicator>\n </div>\n </td>\n <td class=\"indicator-chart__column indicator-chart__column--right\">\n <div\n class=\"indicator-chart__column--positive\"\n *ngIf=\"item.direction === 'Positiva'\"\n >\n <mapa-capability-indicator\n [item]=\"setUnlabeledItem(item)\"\n [style.width]=\"getWidth(item)\"\n ></mapa-capability-indicator>\n </div>\n </td>\n </tr>\n</table>\n", styles: [":host ::ng-deep .indicator-chart{width:100%;border-collapse:collapse}:host ::ng-deep .indicator-chart tr:first-child{border-top:unset!important}:host ::ng-deep .indicator-chart tr:last-child{border-bottom:unset!important}:host ::ng-deep .indicator-chart__column{padding:0;font-size:14px!important}:host ::ng-deep .indicator-chart__column--description{padding-right:24px;width:20%!important}:host ::ng-deep .indicator-chart__column--positive{display:flex;border-spacing:0px;padding:8px 0!important}:host ::ng-deep .indicator-chart__column--positive .indicator{border-radius:0 18px 18px 0!important;padding:2px!important;justify-content:flex-end!important}:host ::ng-deep .indicator-chart__column--positive .indicator__classification{margin-right:1px!important}:host ::ng-deep .indicator-chart__column--negative{display:flex;justify-content:flex-end;border-spacing:0px;padding:8px 0!important}:host ::ng-deep .indicator-chart__column--negative .indicator{border-radius:18px 0 0 18px!important;justify-content:flex-start!important;padding:2px!important}:host ::ng-deep .indicator-chart__column--negative .indicator__classification{margin-left:1px!important}:host ::ng-deep .indicator-chart__column--left{width:40%;border-bottom:1px solid #dcdcde}:host ::ng-deep .indicator-chart__column--right{border-bottom:1px solid #dcdcde;border-left:1px solid #dcdcde;width:40%}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapaCapabilityIndicatorComponent, selector: "mapa-capability-indicator", inputs: ["item"] }] }); }
5846
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaCapabilityIndicatorChartComponent, isStandalone: true, selector: "mapa-capability-indicator-chart", inputs: { data: "data" }, providers: [CapabilityClassificationService], ngImport: i0, template: "<table class=\"indicator-chart\">\n <tr *ngFor=\"let item of data\">\n <td class=\"indicator-chart__column--description\">{{ item.name }}</td>\n <td class=\"indicator-chart__column indicator-chart__column--left\">\n <div\n class=\"indicator-chart__column--negative\"\n *ngIf=\"item.direction === 'Negativa'\"\n >\n <mapa-capability-indicator\n [item]=\"setUnlabeledItem(item)\"\n [style.width]=\"getWidth(item)\"\n ></mapa-capability-indicator>\n </div>\n </td>\n <td class=\"indicator-chart__column indicator-chart__column--right\">\n <div\n class=\"indicator-chart__column--positive\"\n *ngIf=\"item.direction === 'Positiva'\"\n >\n <mapa-capability-indicator\n [item]=\"setUnlabeledItem(item)\"\n [style.width]=\"getWidth(item)\"\n ></mapa-capability-indicator>\n </div>\n </td>\n </tr>\n</table>\n", styles: [":host ::ng-deep .indicator-chart{width:100%;border-collapse:collapse}:host ::ng-deep .indicator-chart tr:first-child{border-top:unset!important}:host ::ng-deep .indicator-chart tr:last-child{border-bottom:unset!important}:host ::ng-deep .indicator-chart__column{padding:0;font-size:14px!important}:host ::ng-deep .indicator-chart__column--description{padding-right:24px;width:20%!important}:host ::ng-deep .indicator-chart__column--positive{display:flex;border-spacing:0px;padding:8px 0!important}:host ::ng-deep .indicator-chart__column--positive .indicator{border-radius:0 18px 18px 0!important;padding:2px!important;justify-content:flex-end!important}:host ::ng-deep .indicator-chart__column--positive .indicator__classification{margin-right:1px!important}:host ::ng-deep .indicator-chart__column--negative{display:flex;justify-content:flex-end;border-spacing:0px;padding:8px 0!important}:host ::ng-deep .indicator-chart__column--negative .indicator{border-radius:18px 0 0 18px!important;justify-content:flex-start!important;padding:2px!important}:host ::ng-deep .indicator-chart__column--negative .indicator__classification{margin-left:1px!important}:host ::ng-deep .indicator-chart__column--left{width:40%;border-bottom:1px solid #dcdcde}:host ::ng-deep .indicator-chart__column--right{border-bottom:1px solid #dcdcde;border-left:1px solid #dcdcde;width:40%}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MapaCapabilityIndicatorComponent, selector: "mapa-capability-indicator", inputs: ["item"] }] }); }
5788
5847
  }
5789
5848
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaCapabilityIndicatorChartComponent, decorators: [{
5790
5849
  type: Component,
@@ -6201,7 +6260,7 @@ class MapaChartComponent {
6201
6260
  }
6202
6261
  }
6203
6262
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaChartComponent, isStandalone: true, selector: "mapa-chart", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<section>\n <div class=\"chart\" *ngIf=\"chartOptions\">\n <div class=\"chart__dropdown\" *ngIf=\"options.dropdown\">\n <mapa-dropdown\n [formControl]=\"options.dropdown.formControl\"\n [element]=\"options.dropdown.element\"\n ></mapa-dropdown>\n </div>\n <apx-chart\n [series]=\"chartOptions.series!\"\n [chart]=\"chartOptions.chart!\"\n [xaxis]=\"chartOptions.xaxis!\"\n [yaxis]=\"chartOptions.yaxis!\"\n [stroke]=\"chartOptions.stroke!\"\n [markers]=\"chartOptions.markers!\"\n [fill]=\"chartOptions.fill!\"\n [title]=\"chartOptions.title!\"\n [legend]=\"chartOptions.legend!\"\n [responsive]=\"chartOptions.responsive!\"width\n ></apx-chart>\n </div>\n</section>\n", styles: [".chart{margin:35px auto}.chart__dropdown{position:absolute;z-index:999}:host ::ng-deep .chart .apexcharts-legend.apx-legend-position-right{justify-content:center!important}:host ::ng-deep .chart apx-chart .apexcharts-canvas{display:flex;align-items:center;justify-content:center;width:100%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgApexchartsModule }, { kind: "component", type: i3.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "parsing", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"], outputs: ["chartReady"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }] }); }
6263
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaChartComponent, isStandalone: true, selector: "mapa-chart", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<section>\n <div class=\"chart\" *ngIf=\"chartOptions\">\n <div class=\"chart__dropdown\" *ngIf=\"options.dropdown\">\n <mapa-dropdown\n [formControl]=\"options.dropdown.formControl\"\n [element]=\"options.dropdown.element\"\n ></mapa-dropdown>\n </div>\n <apx-chart\n [series]=\"chartOptions.series!\"\n [chart]=\"chartOptions.chart!\"\n [xaxis]=\"chartOptions.xaxis!\"\n [yaxis]=\"chartOptions.yaxis!\"\n [stroke]=\"chartOptions.stroke!\"\n [markers]=\"chartOptions.markers!\"\n [fill]=\"chartOptions.fill!\"\n [title]=\"chartOptions.title!\"\n [legend]=\"chartOptions.legend!\"\n [responsive]=\"chartOptions.responsive!\"width\n ></apx-chart>\n </div>\n</section>\n", styles: [".chart{margin:35px auto}.chart__dropdown{position:absolute;z-index:999}:host ::ng-deep .chart .apexcharts-legend.apx-legend-position-right{justify-content:center!important}:host ::ng-deep .chart apx-chart .apexcharts-canvas{display:flex;align-items:center;justify-content:center;width:100%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgApexchartsModule }, { kind: "component", type: i3.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "parsing", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"], outputs: ["chartReady"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }] }); }
6205
6264
  }
6206
6265
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaChartComponent, decorators: [{
6207
6266
  type: Component,
@@ -6231,335 +6290,540 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
6231
6290
  * Public API Surface of mapa-library-ui icon
6232
6291
  */
6233
6292
 
6234
- const MAPA_DATEPICKER_FORMATS = {
6235
- parse: {
6236
- dateInput: "DD/MM/YYYY",
6237
- },
6238
- display: {
6239
- dateInput: "DD/MM/YYYY",
6240
- monthYearLabel: "MMM YYYY",
6241
- dateA11yLabel: "LL",
6242
- monthYearA11yLabel: "MMMM YYYY",
6243
- },
6293
+ /**
6294
+ * Fallback do gatilho de presets. Literal como o `aria-label="Limpar"` que o
6295
+ * v1 e o `mapa-dropdown` já embarcam — `MapaUiTextGroups["datepicker"]` vem do
6296
+ * pacote externo `mapa-frontend-i18n`, então uma chave nova exigiria publicar
6297
+ * aquele pacote antes. Consumidores sobrescrevem via `element.presetsLabel`.
6298
+ */
6299
+ const DEFAULT_PRESETS_LABEL = 'Período';
6300
+ /**
6301
+ * O `Intl` interno do ngxsmk trabalha melhor com tags BCP47 completas — `en`
6302
+ * sozinho deixa a ordem dia/mês ambígua para ele.
6303
+ */
6304
+ const NGXSMK_LOCALE_BY_MAPA_LOCALE = {
6305
+ 'pt-BR': 'pt-BR',
6306
+ en: 'en-US',
6307
+ es: 'es-ES',
6244
6308
  };
6245
6309
  class MapaDatepicker {
6246
- constructor(cdr) {
6247
- this.cdr = cdr;
6310
+ constructor() {
6311
+ this.cdr = inject(ChangeDetectorRef);
6248
6312
  this.destroyRef = inject(DestroyRef);
6249
- this.formDatepicker = new FormGroup({
6250
- date: new FormControl(null),
6313
+ this.i18n = inject(MapaI18nService);
6314
+ this.dateLocale = inject(MapaDateLocaleService);
6315
+ this.openedChange = new EventEmitter();
6316
+ /** Camada visível: strings mascaradas. `single` usa apenas `startDate`. */
6317
+ this.formDisplay = new FormGroup({
6318
+ startDate: new FormControl(null),
6319
+ endDate: new FormControl(null),
6251
6320
  });
6321
+ /** Camada do calendário: `Date`, no formato que o ngxsmk consome. */
6322
+ this.pickerValue = signal(null, ...(ngDevMode ? [{ debugName: "pickerValue" }] : []));
6323
+ this.isOpenState = signal(false, ...(ngDevMode ? [{ debugName: "isOpenState" }] : []));
6324
+ this.isPresetsOpenState = signal(false, ...(ngDevMode ? [{ debugName: "isPresetsOpenState" }] : []));
6325
+ this.localeState = null;
6326
+ this.syncing = false;
6327
+ this.overlayPositions = [
6328
+ {
6329
+ originX: 'start',
6330
+ originY: 'bottom',
6331
+ overlayX: 'start',
6332
+ overlayY: 'top',
6333
+ offsetY: 8,
6334
+ },
6335
+ {
6336
+ originX: 'start',
6337
+ originY: 'top',
6338
+ overlayX: 'start',
6339
+ overlayY: 'bottom',
6340
+ offsetY: -8,
6341
+ },
6342
+ {
6343
+ originX: 'end',
6344
+ originY: 'bottom',
6345
+ overlayX: 'end',
6346
+ overlayY: 'top',
6347
+ offsetY: 8,
6348
+ },
6349
+ {
6350
+ originX: 'end',
6351
+ originY: 'top',
6352
+ overlayX: 'end',
6353
+ overlayY: 'bottom',
6354
+ offsetY: -8,
6355
+ },
6356
+ ];
6357
+ /**
6358
+ * Referências estáveis: com OnPush, devolver um literal novo a cada ciclo
6359
+ * marcaria o input do ngxsmk como alterado em toda change detection.
6360
+ */
6361
+ this.ngxsmkClasses = { inputGroup: 'mapa-datepicker__ngxsmk-group' };
6362
+ this.emptyDisabledDates = [];
6363
+ this.neverInvalid = () => false;
6364
+ this.localeSync = effect(() => {
6365
+ this.handleLocaleChange(this.dateLocale.localeSignal());
6366
+ }, ...(ngDevMode ? [{ debugName: "localeSync" }] : []));
6252
6367
  }
6253
6368
  ngOnInit() {
6254
- this.formControl = this.formGroup.get(this.element.key);
6255
- this.syncDatepickerControl(this.formControl.value);
6256
- this.formControl.valueChanges
6369
+ if (!this.element?.key) {
6370
+ throw new Error('mapa-datepicker: element.key é obrigatório.');
6371
+ }
6372
+ const control = this.formGroup?.get(this.element.key);
6373
+ if (!control) {
6374
+ throw new Error(`mapa-datepicker: controle "${this.element.key}" não encontrado no formGroup.`);
6375
+ }
6376
+ this.control = control;
6377
+ this.applyExternal(this.control.value);
6378
+ this.control.valueChanges
6257
6379
  .pipe(takeUntilDestroyed(this.destroyRef))
6258
- .subscribe((value) => {
6259
- this.syncDatepickerControl(value);
6260
- });
6261
- this.formDatepicker.controls.date.valueChanges
6380
+ .subscribe((value) => this.applyExternal(value));
6381
+ this.control.statusChanges
6262
6382
  .pipe(takeUntilDestroyed(this.destroyRef))
6263
- .subscribe((value) => {
6264
- this.updateExternalControl(value);
6265
- });
6383
+ .subscribe(() => this.cdr.markForCheck());
6384
+ this.formDisplay.valueChanges
6385
+ .pipe(takeUntilDestroyed(this.destroyRef))
6386
+ .subscribe(() => this.handleDisplayChange());
6266
6387
  }
6267
- get minDate() {
6388
+ // --- estado exposto ao template -----------------------------------------
6389
+ mode() {
6390
+ return this.element?.mode ?? 'single';
6391
+ }
6392
+ isOpen() {
6393
+ return this.isOpenState();
6394
+ }
6395
+ isDisabled() {
6396
+ return !!this.control?.disabled;
6397
+ }
6398
+ isReadonly() {
6399
+ return !!this.element?.readonly;
6400
+ }
6401
+ hasValue() {
6402
+ return this.serializeExternal(this.control?.value) !== '';
6403
+ }
6404
+ showClear() {
6405
+ return this.hasValue() && !this.isDisabled() && !!this.element.clearValue;
6406
+ }
6407
+ shouldShowError() {
6408
+ return (!!this.control &&
6409
+ this.control.invalid &&
6410
+ (this.control.dirty || this.control.touched));
6411
+ }
6412
+ /** Texto somente leitura do modo `multiple` — evita chaves novas de i18n. */
6413
+ selectedLabel() {
6414
+ const value = this.control?.value;
6415
+ return Array.isArray(value) ? value.join(', ') : '';
6416
+ }
6417
+ mask() {
6418
+ return this.element.mask ?? getDateInputMask(this.locale());
6419
+ }
6420
+ singlePlaceholder() {
6421
+ return this.element.placeholder || this.element.label || '';
6422
+ }
6423
+ get startDatePlaceholder() {
6424
+ return this.i18n.textsSignal().datepicker.startDatePlaceholder;
6425
+ }
6426
+ get endDatePlaceholder() {
6427
+ return this.i18n.textsSignal().datepicker.endDatePlaceholder;
6428
+ }
6429
+ // --- entradas repassadas ao ngxsmk --------------------------------------
6430
+ ngxsmkLocale() {
6431
+ return NGXSMK_LOCALE_BY_MAPA_LOCALE[this.locale()];
6432
+ }
6433
+ displayFormat() {
6434
+ return getActiveDateFormat(this.locale());
6435
+ }
6436
+ minDate() {
6268
6437
  return parseDateValue(this.element.minDate);
6269
6438
  }
6270
- get maxDate() {
6439
+ maxDate() {
6271
6440
  return parseDateValue(this.element.maxDate);
6272
6441
  }
6273
- hasValue() {
6274
- return !!this.formControl?.value;
6442
+ disabledDates() {
6443
+ return this.element.disabledDates ?? this.emptyDisabledDates;
6275
6444
  }
6276
- cleanDatepicker() {
6277
- this.formDatepicker.patchValue({ date: null }, { emitEvent: false });
6278
- if (this.formControl.value === "") {
6279
- return;
6280
- }
6281
- this.formControl.patchValue("");
6282
- this.cdr.markForCheck();
6445
+ isInvalidDate() {
6446
+ return this.element.isInvalidDate ?? this.neverInvalid;
6283
6447
  }
6284
- syncDatepickerControl(value) {
6285
- // Parse estrito e sempre day-first: este componente formata a saída com
6286
- // formatDateAsDayMonthYear e usa MAPA_DATEPICKER_FORMATS (DD/MM/YYYY),
6287
- // independentemente do idioma ativo — a leitura precisa casar com a escrita.
6288
- const nextDate = parseDateFieldValue(value, "pt-BR");
6289
- const currentDate = this.formDatepicker.controls.date.value;
6290
- if (this.areDatesEqual(currentDate, nextDate)) {
6291
- return;
6448
+ /**
6449
+ * Um mês por padrão em todos os modos, para o painel ficar na largura do
6450
+ * campo. Dois meses são opt-in via `element.calendars`.
6451
+ */
6452
+ calendars() {
6453
+ return this.element.calendars ?? 1;
6454
+ }
6455
+ weekStart() {
6456
+ return this.element.weekStart;
6457
+ }
6458
+ /**
6459
+ * Presets já resolvidos em datas. Memoizado pela referência de
6460
+ * `element.presets` para não reconstruir `Date`s a cada change detection.
6461
+ *
6462
+ * Alimenta o nosso dropdown, não o painel nativo do ngxsmk: o layout dele é
6463
+ * ditado por media queries duplicadas que nenhum input ou variável controla
6464
+ * (coluna lateral acima de 992px, cards de 45px acima de 1024px), e o input
6465
+ * `classes` do componente de presets é morto — o template dele nunca o lê.
6466
+ */
6467
+ presetList() {
6468
+ const presets = this.element.presets;
6469
+ const cache = this.presetsCache;
6470
+ if (cache && cache.source === presets) {
6471
+ return cache.entries;
6472
+ }
6473
+ const entries = this.buildPresetEntries(presets);
6474
+ this.presetsCache = { source: presets, entries };
6475
+ return entries;
6476
+ }
6477
+ hasPresets() {
6478
+ return this.presetList().length > 0;
6479
+ }
6480
+ isPresetsOpen() {
6481
+ return this.isPresetsOpenState();
6482
+ }
6483
+ isPresetActive(entry) {
6484
+ const locale = this.locale();
6485
+ return (this.serializeExternal({
6486
+ startDate: formatDateForLocale(entry.range[0], locale),
6487
+ endDate: formatDateForLocale(entry.range[1], locale),
6488
+ }) === this.serializeExternal(this.control?.value));
6489
+ }
6490
+ presetsTriggerLabel() {
6491
+ const active = this.presetList().find((entry) => this.isPresetActive(entry));
6492
+ return active?.label ?? this.element.presetsLabel ?? DEFAULT_PRESETS_LABEL;
6493
+ }
6494
+ togglePresets() {
6495
+ this.isPresetsOpenState.update((isOpen) => !isOpen);
6496
+ }
6497
+ closePresets() {
6498
+ if (this.isPresetsOpenState()) {
6499
+ this.isPresetsOpenState.set(false);
6500
+ this.cdr.markForCheck();
6292
6501
  }
6293
- this.formDatepicker.patchValue({ date: nextDate }, { emitEvent: false });
6294
- this.cdr.markForCheck();
6295
6502
  }
6296
- updateExternalControl(value) {
6297
- if (!value) {
6298
- if (this.formControl.value !== "") {
6299
- this.formControl.patchValue("");
6300
- this.cdr.markForCheck();
6301
- }
6503
+ applyPreset(entry) {
6504
+ this.closePresets();
6505
+ if (this.isDisabled()) {
6302
6506
  return;
6303
6507
  }
6304
- const formattedDate = formatDateAsDayMonthYear(value);
6305
- if (this.formControl.value === formattedDate) {
6508
+ // `selectRange` reposiciona o mês visível para o início da faixa e emite
6509
+ // `valueChange` uma única vez, caindo no `handlePickerValue`. Em modo
6510
+ // inline ele não fecha nada — quem fecha continua sendo o nosso overlay.
6511
+ if (this.picker) {
6512
+ this.picker.selectRange([entry.range[0], entry.range[1]]);
6306
6513
  return;
6307
6514
  }
6308
- this.formControl.patchValue(formattedDate);
6309
- this.cdr.markForCheck();
6310
- }
6311
- closePicker(picker) {
6312
- picker.close();
6515
+ this.handlePickerValue({ start: entry.range[0], end: entry.range[1] });
6313
6516
  }
6314
- areDatesEqual(first, second) {
6315
- if (first === second) {
6316
- return true;
6517
+ // --- interação ------------------------------------------------------------
6518
+ toggleCalendar() {
6519
+ if (this.isDisabled() || this.isReadonly()) {
6520
+ return;
6317
6521
  }
6318
- if (!first || !second) {
6319
- return false;
6522
+ const isOpening = !this.isOpenState();
6523
+ if (isOpening) {
6524
+ this.dateLocale.refresh();
6525
+ }
6526
+ this.setOpenState(isOpening);
6527
+ if (!isOpening) {
6528
+ this.control.markAsTouched();
6320
6529
  }
6321
- return first.getTime() === second.getTime();
6322
- }
6323
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepicker, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
6324
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaDatepicker, isStandalone: true, selector: "mapa-datepicker", inputs: { formGroup: "formGroup", element: "element" }, providers: [
6325
- provideNgxMask(),
6326
- provideNativeDateAdapter(MAPA_DATEPICKER_FORMATS),
6327
- ], ngImport: i0, template: "@if (element && formGroup) {\n <section class=\"mapa-datepicker\" [formGroup]=\"formGroup\">\n @if (element.label) {\n <label class=\"mapa-datepicker__label\">\n {{ element.label }}\n </label>\n }\n\n <section class=\"mapa-datepicker__field\" [formGroup]=\"formGroup\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input\n matInput\n [formControlName]=\"element.key\"\n [placeholder]=\"element.placeholder || element.label || ''\"\n [mask]=\"element.mask\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue()\"\n type=\"button\"\n matSuffix\n aria-label=\"Limpar\"\n class=\"mapa-datepicker__clear\"\n (click)=\"cleanDatepicker()\"\n tabindex=\"-1\"\n >\n &times;\n </button>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker touchUi=\"true\" #picker></mat-datepicker>\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 </mat-form-field>\n </section>\n\n <section class=\"mapa-datepicker--hidden\">\n <mat-form-field [formGroup]=\"formDatepicker\">\n <input\n matInput\n formControlName=\"date\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepicker]=\"picker\"\n (dateChange)=\"closePicker(picker)\"\n />\n </mat-form-field>\n </section>\n </section>\n}\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mapa-datepicker{display:flex;flex-direction:column;gap:8px}:host ::ng-deep .mapa-datepicker__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-datepicker .mdc-text-field{padding:0}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-text-field-wrapper{height:48px;border-radius:var(--mapa-radius-sm, 12px);background-color:var(--mapa-color-surface, #ffffff)}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-icon-suffix{display:flex;align-items:center}:host ::ng-deep .mapa-datepicker__field .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-infix{padding-bottom:12px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline{border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__leading,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__notch,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-subscript-wrapper{min-height:22px}:host ::ng-deep .mapa-datepicker__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker--hidden{display:none}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: MapaMaskAutofillSyncDirective, selector: "input[mask], textarea[mask]", inputs: ["mapaMaskAutofillSync"], exportAs: ["mapaMaskAutofillSync"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6328
- }
6329
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepicker, decorators: [{
6330
- type: Component,
6331
- args: [{ selector: "mapa-datepicker", changeDetection: ChangeDetectionStrategy.OnPush, imports: [
6332
- CommonModule,
6333
- ReactiveFormsModule,
6334
- NgxMaskDirective,
6335
- MapaMaskAutofillSyncDirective,
6336
- MatDatepickerModule,
6337
- MatFormFieldModule,
6338
- MatIconModule,
6339
- MatInputModule,
6340
- MapaFormErrorsComponent,
6341
- ], providers: [
6342
- provideNgxMask(),
6343
- provideNativeDateAdapter(MAPA_DATEPICKER_FORMATS),
6344
- ], standalone: true, template: "@if (element && formGroup) {\n <section class=\"mapa-datepicker\" [formGroup]=\"formGroup\">\n @if (element.label) {\n <label class=\"mapa-datepicker__label\">\n {{ element.label }}\n </label>\n }\n\n <section class=\"mapa-datepicker__field\" [formGroup]=\"formGroup\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n <input\n matInput\n [formControlName]=\"element.key\"\n [placeholder]=\"element.placeholder || element.label || ''\"\n [mask]=\"element.mask\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue()\"\n type=\"button\"\n matSuffix\n aria-label=\"Limpar\"\n class=\"mapa-datepicker__clear\"\n (click)=\"cleanDatepicker()\"\n tabindex=\"-1\"\n >\n &times;\n </button>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker touchUi=\"true\" #picker></mat-datepicker>\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 </mat-form-field>\n </section>\n\n <section class=\"mapa-datepicker--hidden\">\n <mat-form-field [formGroup]=\"formDatepicker\">\n <input\n matInput\n formControlName=\"date\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [matDatepicker]=\"picker\"\n (dateChange)=\"closePicker(picker)\"\n />\n </mat-form-field>\n </section>\n </section>\n}\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mapa-datepicker{display:flex;flex-direction:column;gap:8px}:host ::ng-deep .mapa-datepicker__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-datepicker .mdc-text-field{padding:0}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-text-field-wrapper{height:48px;border-radius:var(--mapa-radius-sm, 12px);background-color:var(--mapa-color-surface, #ffffff)}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-icon-suffix{display:flex;align-items:center}:host ::ng-deep .mapa-datepicker__field .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-infix{padding-bottom:12px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline{border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__leading,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__notch,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-subscript-wrapper{min-height:22px}:host ::ng-deep .mapa-datepicker__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker--hidden{display:none}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error:before{display:none}\n"] }]
6345
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { formGroup: [{
6346
- type: Input
6347
- }], element: [{
6348
- type: Input
6349
- }] } });
6350
-
6351
- /*
6352
- * Public API Surface of mapa-library-ui datepicker (single)
6353
- */
6354
-
6355
- function getMapaDatepickerRangeFormats() {
6356
- const dateInput = getActiveMaterialDateFormat();
6357
- return {
6358
- parse: {
6359
- dateInput,
6360
- },
6361
- display: {
6362
- dateInput,
6363
- monthYearLabel: "MMM YYYY",
6364
- dateA11yLabel: "LL",
6365
- monthYearA11yLabel: "MMMM YYYY",
6366
- },
6367
- };
6368
- }
6369
- class MapaDatepickerRange {
6370
- constructor(i18n, cdr) {
6371
- this.i18n = i18n;
6372
- this.cdr = cdr;
6373
- this.destroyRef = inject(DestroyRef);
6374
- this.dateAdapter = inject((DateAdapter));
6375
- this.emptyValue = {
6376
- startDate: null,
6377
- endDate: null,
6378
- };
6379
- this.currentLocale = null;
6380
- this.formDatepicker = new FormGroup({
6381
- startDate: new FormControl(null),
6382
- endDate: new FormControl(null),
6383
- });
6384
- this.formDisplay = new FormGroup({
6385
- startDate: new FormControl(null),
6386
- endDate: new FormControl(null),
6387
- });
6388
- }
6389
- get texts() {
6390
- return this.i18n.textsSignal();
6391
6530
  }
6392
- get dateInputMask() {
6393
- return getDateInputMask(this.getLocale());
6531
+ closeCalendar() {
6532
+ if (this.isOpenState()) {
6533
+ this.setOpenState(false);
6534
+ }
6535
+ this.control?.markAsTouched();
6394
6536
  }
6395
- get activeDateFormat() {
6396
- return getActiveDateFormat(this.getLocale());
6537
+ handleOverlayOutsideClick(event) {
6538
+ if (this.toggleButton?.nativeElement.contains(event.target)) {
6539
+ return;
6540
+ }
6541
+ this.closeCalendar();
6397
6542
  }
6398
- ngOnInit() {
6399
- this.syncLocaleSettings();
6400
- if (!this.element?.key) {
6401
- throw new Error("mapa-datepicker-range requires element.key to resolve the target control.");
6543
+ handleEscape() {
6544
+ // Dois estágios: o Escape fecha primeiro o dropdown de presets, e só o
6545
+ // segundo fecha o calendário.
6546
+ if (this.isPresetsOpenState()) {
6547
+ this.closePresets();
6548
+ return;
6402
6549
  }
6403
- this.rangeControl = this.formGroup.get(this.element.key);
6404
- if (!this.rangeControl) {
6405
- throw new Error(`mapa-datepicker-range could not find control '${this.element.key}' in formGroup.`);
6550
+ if (this.isOpenState()) {
6551
+ this.closeCalendar();
6552
+ this.toggleButton?.nativeElement.focus();
6553
+ }
6554
+ }
6555
+ /** Seleção vinda do calendário. */
6556
+ handlePickerValue(value) {
6557
+ const next = this.toExternal(value, this.locale());
6558
+ this.closePresets();
6559
+ this.patchDisplay(this.toDisplayValue(next));
6560
+ this.pickerValue.set(value);
6561
+ // Um range pela metade nunca chega ao consumidor: o ngxsmk emite
6562
+ // `{ start, end: null }` já no primeiro clique.
6563
+ if (this.mode() === 'range' && !this.isCompleteRange(next)) {
6564
+ this.cdr.markForCheck();
6565
+ return;
6566
+ }
6567
+ this.emitExternal(next);
6568
+ if (this.element.closeOnSelect && this.shouldCloseAfterSelect(next)) {
6569
+ this.closeCalendar();
6406
6570
  }
6407
- this.syncFromExternal(this.rangeControl.value);
6408
- this.rangeControl.valueChanges
6409
- .pipe(takeUntilDestroyed(this.destroyRef))
6410
- .subscribe((value) => {
6411
- this.syncFromExternal(value);
6412
- });
6413
- this.formDisplay.valueChanges
6414
- .pipe(takeUntilDestroyed(this.destroyRef))
6415
- .subscribe((value) => {
6416
- this.updateExternalFromDisplay(value);
6417
- });
6418
- this.formDatepicker.valueChanges
6419
- .pipe(takeUntilDestroyed(this.destroyRef))
6420
- .subscribe((value) => {
6421
- this.updateExternalFromDatepicker(value);
6422
- });
6423
- }
6424
- ngDoCheck() {
6425
- this.syncLocaleSettings();
6426
- }
6427
- get startDatePlaceholder() {
6428
- return this.texts.datepicker.startDatePlaceholder;
6429
6571
  }
6430
- get endDatePlaceholder() {
6431
- return this.texts.datepicker.endDatePlaceholder;
6432
- }
6433
- syncFromExternal(value) {
6434
- this.syncLocaleSettings();
6435
- const nextValue = value ?? this.emptyValue;
6436
- const displayValue = {
6437
- startDate: nextValue.startDate,
6438
- endDate: nextValue.endDate,
6439
- };
6440
- const datepickerValue = {
6441
- startDate: parseDateFieldValue(nextValue.startDate, this.getLocale()),
6442
- endDate: parseDateFieldValue(nextValue.endDate, this.getLocale()),
6443
- };
6444
- const currentDisplay = this.formDisplay.getRawValue();
6445
- if (currentDisplay.startDate !== displayValue.startDate ||
6446
- currentDisplay.endDate !== displayValue.endDate) {
6447
- this.formDisplay.patchValue(displayValue, { emitEvent: false });
6572
+ clear(event) {
6573
+ event?.stopPropagation();
6574
+ if (this.isDisabled()) {
6575
+ return;
6448
6576
  }
6449
- const currentDatepicker = this.formDatepicker.getRawValue();
6450
- if (!this.areDatesEqual(currentDatepicker.startDate, datepickerValue.startDate) ||
6451
- !this.areDatesEqual(currentDatepicker.endDate, datepickerValue.endDate)) {
6452
- this.formDatepicker.patchValue(datepickerValue, { emitEvent: false });
6577
+ this.patchDisplay({ startDate: null, endDate: null });
6578
+ this.pickerValue.set(null);
6579
+ this.emitExternal(this.emptyValue());
6580
+ this.control.markAsTouched();
6581
+ }
6582
+ // --- sincronização --------------------------------------------------------
6583
+ locale() {
6584
+ return this.localeState ?? this.dateLocale.localeSignal();
6585
+ }
6586
+ handleLocaleChange(locale) {
6587
+ const previousLocale = this.localeState;
6588
+ this.localeState = locale;
6589
+ // O effect roda uma primeira vez antes de haver troca real de idioma, e
6590
+ // pode rodar antes do ngOnInit resolver o controle.
6591
+ if (!this.control || previousLocale === null || previousLocale === locale) {
6592
+ this.cdr.markForCheck();
6593
+ return;
6453
6594
  }
6454
- this.cdr.markForCheck();
6595
+ const picker = this.pickerValue();
6596
+ // Reformatamos a partir das datas já resolvidas, nunca reinterpretando o
6597
+ // texto: assim um valor meio digitado ou inválido sobrevive à troca.
6598
+ if (!picker) {
6599
+ this.cdr.markForCheck();
6600
+ return;
6601
+ }
6602
+ const next = this.toExternal(picker, locale);
6603
+ this.patchDisplay(this.toDisplayValue(next));
6604
+ this.emitExternal(next);
6455
6605
  }
6456
- updateExternalFromDisplay(value) {
6457
- this.syncLocaleSettings();
6458
- const nextValue = {
6459
- startDate: value.startDate ?? null,
6460
- endDate: value.endDate ?? null,
6461
- };
6462
- this.patchExternalValue(nextValue);
6463
- const nextDatepickerValue = {
6464
- startDate: parseDateFieldValue(nextValue.startDate, this.getLocale()),
6465
- endDate: parseDateFieldValue(nextValue.endDate, this.getLocale()),
6466
- };
6467
- this.formDatepicker.patchValue(nextDatepickerValue, { emitEvent: false });
6468
- this.cdr.markForCheck();
6606
+ /** Digitação no campo mascarado. Passa o texto adiante verbatim. */
6607
+ handleDisplayChange() {
6608
+ if (this.syncing || this.mode() === 'multiple' || !this.control) {
6609
+ return;
6610
+ }
6611
+ const display = this.formDisplay.getRawValue();
6612
+ const next = this.mode() === 'range'
6613
+ ? {
6614
+ startDate: display.startDate || null,
6615
+ endDate: display.endDate || null,
6616
+ }
6617
+ : (display.startDate ?? '');
6618
+ this.pickerValue.set(this.toPickerValue(next, this.locale()));
6619
+ this.emitExternal(next);
6469
6620
  }
6470
- updateExternalFromDatepicker(value) {
6471
- this.syncLocaleSettings();
6472
- if (!value.startDate || !value.endDate) {
6621
+ applyExternal(value) {
6622
+ if (this.syncing) {
6473
6623
  return;
6474
6624
  }
6475
- const nextValue = {
6476
- startDate: formatDateForLocale(value.startDate, this.getLocale()),
6477
- endDate: formatDateForLocale(value.endDate, this.getLocale()),
6478
- };
6479
- this.patchExternalValue(nextValue);
6480
- this.formDisplay.patchValue(nextValue, { emitEvent: false });
6625
+ const display = this.toDisplayValue(value);
6626
+ const current = this.formDisplay.getRawValue();
6627
+ if (current.startDate !== display.startDate ||
6628
+ current.endDate !== display.endDate) {
6629
+ this.patchDisplay(display);
6630
+ }
6631
+ this.pickerValue.set(this.toPickerValue(value, this.locale()));
6481
6632
  this.cdr.markForCheck();
6482
6633
  }
6483
- patchExternalValue(nextValue) {
6484
- const currentValue = this.rangeControl.value;
6485
- if (currentValue?.startDate === nextValue.startDate &&
6486
- currentValue?.endDate === nextValue.endDate) {
6634
+ emitExternal(next) {
6635
+ // Comparação pela string formatada, não por `Date`: presets devolvem o fim
6636
+ // do range às 23:59:59.999 e um guard por `getTime()` reemitiria em loop.
6637
+ if (this.serializeExternal(this.control.value) ===
6638
+ this.serializeExternal(next)) {
6639
+ this.cdr.markForCheck();
6487
6640
  return;
6488
6641
  }
6489
- this.rangeControl.patchValue(nextValue);
6642
+ this.syncing = true;
6643
+ try {
6644
+ this.control.patchValue(next);
6645
+ this.control.markAsDirty();
6646
+ }
6647
+ finally {
6648
+ this.syncing = false;
6649
+ }
6650
+ this.cdr.markForCheck();
6490
6651
  }
6491
- areDatesEqual(first, second) {
6492
- if (first === second) {
6493
- return true;
6652
+ patchDisplay(display) {
6653
+ this.syncing = true;
6654
+ try {
6655
+ this.formDisplay.patchValue(display, { emitEvent: false });
6494
6656
  }
6495
- if (!first || !second) {
6496
- return false;
6657
+ finally {
6658
+ this.syncing = false;
6497
6659
  }
6498
- return first.getTime() === second.getTime();
6499
6660
  }
6500
- cleanDatepicker() {
6501
- const defaultRange = {
6502
- startDate: null,
6503
- endDate: null,
6504
- };
6505
- this.formDatepicker.patchValue(defaultRange, { emitEvent: false });
6506
- this.formDisplay.patchValue(defaultRange, { emitEvent: false });
6507
- this.patchExternalValue(defaultRange);
6508
- this.cdr.markForCheck();
6661
+ // --- conversões -----------------------------------------------------------
6662
+ toPickerValue(value, locale) {
6663
+ switch (this.mode()) {
6664
+ case 'range': {
6665
+ const range = this.asRangeValue(value);
6666
+ const start = parseDateFieldValue(range.startDate, locale);
6667
+ const end = parseDateFieldValue(range.endDate, locale);
6668
+ return start || end ? { start, end } : null;
6669
+ }
6670
+ case 'multiple': {
6671
+ const dates = (Array.isArray(value) ? value : [])
6672
+ .map((item) => parseDateFieldValue(item, locale))
6673
+ .filter((date) => !!date);
6674
+ return dates.length ? dates : null;
6675
+ }
6676
+ default:
6677
+ return parseDateFieldValue(value, locale);
6678
+ }
6679
+ }
6680
+ toExternal(value, locale) {
6681
+ switch (this.mode()) {
6682
+ case 'range': {
6683
+ const range = this.asPickerRange(value);
6684
+ return {
6685
+ startDate: range.start
6686
+ ? formatDateForLocale(range.start, locale)
6687
+ : null,
6688
+ endDate: range.end ? formatDateForLocale(range.end, locale) : null,
6689
+ };
6690
+ }
6691
+ case 'multiple':
6692
+ return (Array.isArray(value) ? value : []).map((date) => formatDateForLocale(date, locale));
6693
+ default:
6694
+ return value instanceof Date ? formatDateForLocale(value, locale) : '';
6695
+ }
6509
6696
  }
6510
- getLocale() {
6511
- return this.currentLocale ?? getActiveDateLocale();
6697
+ toDisplayValue(value) {
6698
+ switch (this.mode()) {
6699
+ case 'range': {
6700
+ const range = this.asRangeValue(value);
6701
+ return { startDate: range.startDate, endDate: range.endDate };
6702
+ }
6703
+ case 'multiple':
6704
+ return { startDate: null, endDate: null };
6705
+ default:
6706
+ return {
6707
+ startDate: typeof value === 'string' ? value : '',
6708
+ endDate: null,
6709
+ };
6710
+ }
6512
6711
  }
6513
- syncLocaleSettings() {
6514
- const nextLocale = getActiveDateLocale();
6515
- if (this.currentLocale === nextLocale) {
6516
- return;
6712
+ /** Forma canônica usada só para comparar — nunca é gravada no controle. */
6713
+ serializeExternal(value) {
6714
+ switch (this.mode()) {
6715
+ case 'range': {
6716
+ const range = this.asRangeValue(value);
6717
+ const serialized = `${range.startDate ?? ''}|${range.endDate ?? ''}`;
6718
+ return serialized === '|' ? '' : serialized;
6719
+ }
6720
+ case 'multiple':
6721
+ return (Array.isArray(value) ? value : []).join('|');
6722
+ default:
6723
+ return typeof value === 'string' ? value : '';
6517
6724
  }
6518
- this.currentLocale = nextLocale;
6519
- this.dateAdapter.setLocale(nextLocale);
6520
- const datepickerValue = this.formDatepicker.getRawValue();
6521
- const hasDateRange = !!datepickerValue.startDate && !!datepickerValue.endDate;
6522
- if (hasDateRange) {
6523
- const formattedRange = {
6524
- startDate: formatDateForLocale(datepickerValue.startDate, nextLocale),
6525
- endDate: formatDateForLocale(datepickerValue.endDate, nextLocale),
6725
+ }
6726
+ emptyValue() {
6727
+ switch (this.mode()) {
6728
+ case 'range':
6729
+ return { startDate: null, endDate: null };
6730
+ case 'multiple':
6731
+ return [];
6732
+ default:
6733
+ return '';
6734
+ }
6735
+ }
6736
+ asRangeValue(value) {
6737
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
6738
+ return {
6739
+ startDate: value.startDate ?? null,
6740
+ endDate: value.endDate ?? null,
6526
6741
  };
6527
- this.formDisplay.patchValue(formattedRange, { emitEvent: false });
6528
- if (this.rangeControl) {
6529
- this.patchExternalValue(formattedRange);
6530
- }
6531
6742
  }
6532
- this.cdr.markForCheck();
6743
+ return { startDate: null, endDate: null };
6533
6744
  }
6534
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepickerRange, deps: [{ token: MapaI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
6535
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaDatepickerRange, isStandalone: true, selector: "mapa-datepicker-range", inputs: { formGroup: "formGroup", element: "element" }, providers: [
6536
- provideNgxMask(),
6537
- provideNativeDateAdapter(getMapaDatepickerRangeFormats()),
6538
- ], ngImport: i0, template: "@if (element.label) {\n <div class=\"mapa-datepicker-range__label\">\n {{ element.label }}\n </div>\n}\n<section class=\"mapa-datepicker-range\" [formGroup]=\"formDisplay\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__start-date\"\n >\n <input\n matInput\n formControlName=\"startDate\"\n [placeholder]=\"startDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n </mat-form-field>\n <div class=\"mapa-datepicker-range__divider\">&ndash;</div>\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__end-date\"\n >\n <input\n matInput\n formControlName=\"endDate\"\n [placeholder]=\"endDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n <button\n type=\"button\"\n matSuffix\n aria-label=\"Limpar\"\n class=\"mapa-datepicker-range__clear\"\n (click)=\"cleanDatepicker()\"\n tabindex=\"-1\"\n >\n &times;\n </button>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker touchUi=\"true\" #picker></mat-date-range-picker>\n </mat-form-field>\n</section>\n<section class=\"mapa--hidden\">\n <mat-form-field [formGroup]=\"formDatepicker\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"startDate\" />\n <input matEndDate formControlName=\"endDate\" />\n </mat-date-range-input>\n </mat-form-field>\n</section>\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mdc-text-field--outlined{background-color:#fff}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mat-mdc-text-field-wrapper{min-height:48px!important;height:48px!important}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-datepicker-range{display:flex;align-items:center;justify-content:flex-start;background-color:var(--mapa-color-surface, #ffffff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);overflow:hidden;box-sizing:border-box;padding:0 0 0 16px;min-height:48px;height:48px;width:100%}:host ::ng-deep .mapa-datepicker-range__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-datepicker-range__start-date,:host ::ng-deep .mapa-datepicker-range__end-date{display:flex;flex:1 1 0;align-items:center;align-self:stretch;min-width:0}:host ::ng-deep .mapa-datepicker-range__start-date .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker-range__start-date .mat-mdc-text-field-wrapper,:host ::ng-deep .mapa-datepicker-range__end-date .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker-range__end-date .mat-mdc-text-field-wrapper{width:100%;min-width:0}:host ::ng-deep .mapa-datepicker-range__end-date{flex-basis:72px}:host ::ng-deep .mapa-datepicker-range__divider{flex:none;margin:0 8px}:host ::ng-deep .mapa-datepicker-range__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker-range__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-icon-suffix{display:flex;flex:none;align-items:center;gap:4px;margin-left:0;padding:unset!important}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-icon-suffix .mat-datepicker-toggle{margin:0}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-flex{display:flex;align-items:center;min-height:100%;height:48px!important}:host ::ng-deep .mapa-datepicker-range .mat-mdc-text-field-wrapper{padding:0!important;align-items:center!important;display:flex;background:var(--mapa-color-surface, #ffffff);min-height:100%}:host ::ng-deep .mapa-datepicker-range .mdc-notched-outline{display:none}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-infix{padding:0!important;margin-left:0!important;min-height:unset!important;border-top:unset!important;display:flex;align-items:center;height:100%}:host ::ng-deep .mapa-datepicker-range .mat-mdc-input-element{align-self:center;height:100%;line-height:24px;margin:0!important;padding:0 8px 0 0!important;text-align:left;vertical-align:middle}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa--hidden{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: MapaMaskAutofillSyncDirective, selector: "input[mask], textarea[mask]", inputs: ["mapaMaskAutofillSync"], exportAs: ["mapaMaskAutofillSync"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i3$1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3$1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3$1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3$1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6745
+ asPickerRange(value) {
6746
+ if (value && !Array.isArray(value) && !(value instanceof Date)) {
6747
+ return { start: value.start ?? null, end: value.end ?? null };
6748
+ }
6749
+ return { start: null, end: null };
6750
+ }
6751
+ isCompleteRange(value) {
6752
+ const range = this.asRangeValue(value);
6753
+ return !!range.startDate && !!range.endDate;
6754
+ }
6755
+ shouldCloseAfterSelect(value) {
6756
+ switch (this.mode()) {
6757
+ case 'multiple':
6758
+ return false;
6759
+ case 'range':
6760
+ return this.isCompleteRange(value);
6761
+ default:
6762
+ return typeof value === 'string' && !!value;
6763
+ }
6764
+ }
6765
+ buildPresetEntries(presets) {
6766
+ if (this.mode() !== 'range' || !presets?.length) {
6767
+ return [];
6768
+ }
6769
+ return presets.map((preset) => ({
6770
+ label: preset.label,
6771
+ range: this.resolvePreset(preset),
6772
+ }));
6773
+ }
6774
+ resolvePreset(preset) {
6775
+ if (preset.startDate && preset.endDate) {
6776
+ return [preset.startDate, preset.endDate];
6777
+ }
6778
+ // Atenção: `getRelativeDateRange` devolve o fim às 23:59:59.999. Só o
6779
+ // guard por string formatada de `emitExternal` tolera isso — um guard por
6780
+ // `getTime()` reemitiria em loop.
6781
+ const { startDate, endDate } = getRelativeDateRange(preset.daysBack ?? 0);
6782
+ return [startDate, endDate];
6783
+ }
6784
+ setOpenState(isOpen) {
6785
+ this.isOpenState.set(isOpen);
6786
+ this.isPresetsOpenState.set(false);
6787
+ this.openedChange.emit(isOpen);
6788
+ }
6789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6790
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaDatepicker, isStandalone: true, selector: "mapa-datepicker, mapa-datepicker-range", inputs: { formGroup: "formGroup", element: "element" }, outputs: { openedChange: "openedChange" }, host: { listeners: { "document:keydown.escape": "handleEscape()" } }, providers: [provideNgxMask()], viewQueries: [{ propertyName: "toggleButton", first: true, predicate: ["toggleButton"], descendants: true }, { propertyName: "picker", first: true, predicate: NgxsmkDatepickerComponent, descendants: true }], ngImport: i0, template: "@if (element && formGroup) {\n <div\n class=\"mapa-datepicker\"\n [class.mapa-datepicker--open]=\"isOpen()\"\n [class.mapa-datepicker--disabled]=\"isDisabled()\"\n >\n @if (element.label) {\n <label class=\"mapa-datepicker__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <!-- A origem do overlay precisa ficar fora do @if: refer\u00EAncias de template\n n\u00E3o atravessam blocos de controle de fluxo. -->\n <div\n class=\"mapa-datepicker__origin\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [formGroup]=\"formDisplay\"\n >\n @if (mode() === \"range\") {\n <div class=\"mapa-datepicker__range\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker__range-start\"\n >\n <input\n matInput\n formControlName=\"startDate\"\n [attr.id]=\"element.key || null\"\n [placeholder]=\"startDatePlaceholder\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n </mat-form-field>\n\n <span class=\"mapa-datepicker__divider\">&ndash;</span>\n\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker__range-end\"\n >\n <input\n matInput\n formControlName=\"endDate\"\n [placeholder]=\"endDatePlaceholder\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n\n @if (showClear()) {\n <button\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__clear\"\n aria-label=\"Limpar\"\n tabindex=\"-1\"\n (click)=\"clear($event)\"\n >\n &times;\n </button>\n }\n\n <button\n #toggleButton\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__toggle\"\n [disabled]=\"isDisabled() || isReadonly()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calend\u00E1rio\"\n (click)=\"toggleCalendar()\"\n >\n <ng-container [ngTemplateOutlet]=\"calendarIcon\"></ng-container>\n </button>\n </mat-form-field>\n </div>\n } @else {\n <div class=\"mapa-datepicker__field\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n @if (mode() === \"multiple\") {\n <input\n matInput\n [attr.id]=\"element.key || null\"\n [value]=\"selectedLabel()\"\n [placeholder]=\"singlePlaceholder()\"\n readonly\n (click)=\"toggleCalendar()\"\n />\n } @else {\n <input\n matInput\n formControlName=\"startDate\"\n [attr.id]=\"element.key || null\"\n [placeholder]=\"singlePlaceholder()\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n }\n\n @if (showClear()) {\n <button\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__clear\"\n aria-label=\"Limpar\"\n tabindex=\"-1\"\n (click)=\"clear($event)\"\n >\n &times;\n </button>\n }\n\n <button\n #toggleButton\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__toggle\"\n [disabled]=\"isDisabled() || isReadonly()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calend\u00E1rio\"\n (click)=\"toggleCalendar()\"\n >\n <ng-container [ngTemplateOutlet]=\"calendarIcon\"></ng-container>\n </button>\n </mat-form-field>\n </div>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n cdkConnectedOverlayPanelClass=\"mapa-datepicker__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-datepicker__panel\" role=\"dialog\">\n @if (hasPresets()) {\n <div class=\"mapa-datepicker__presets\">\n <button\n type=\"button\"\n class=\"mapa-datepicker__presets-trigger\"\n [class.mapa-datepicker__presets-trigger--open]=\"isPresetsOpen()\"\n [attr.aria-expanded]=\"isPresetsOpen()\"\n aria-haspopup=\"listbox\"\n (click)=\"togglePresets()\"\n >\n <span>{{ presetsTriggerLabel() }}</span>\n <svg\n class=\"mapa-datepicker__presets-chevron\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M6 9l6 6 6-6\"></path>\n </svg>\n </button>\n\n @if (isPresetsOpen()) {\n <ul class=\"mapa-datepicker__presets-list\" role=\"listbox\">\n @for (preset of presetList(); track preset.label) {\n <li role=\"option\" [attr.aria-selected]=\"isPresetActive(preset)\">\n <button\n type=\"button\"\n class=\"mapa-datepicker__presets-option\"\n [class.mapa-datepicker__presets-option--active]=\"\n isPresetActive(preset)\n \"\n (click)=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n\n <ngxsmk-datepicker\n [inline]=\"true\"\n [mode]=\"mode()\"\n [value]=\"pickerValue()\"\n [locale]=\"ngxsmkLocale()\"\n [displayFormat]=\"displayFormat()\"\n [theme]=\"'light'\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [isInvalidDate]=\"isInvalidDate()\"\n [showRanges]=\"false\"\n [calendars]=\"calendars()\"\n [weekStart]=\"weekStart()\"\n [showCalendarButton]=\"false\"\n [classes]=\"ngxsmkClasses\"\n (valueChange)=\"handlePickerValue($event)\"\n ></ngxsmk-datepicker>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-datepicker__error\">\n <mapa-form-errors\n [control]=\"control\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-datepicker__hint\">{{ element.hint }}</p>\n }\n </div>\n}\n\n<ng-template #calendarIcon>\n <svg\n class=\"mapa-datepicker__icon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"></rect>\n <path d=\"M3 10h18M8 3v4M16 3v4\"></path>\n </svg>\n</ng-template>\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mapa-datepicker{display:flex;flex-direction:column;gap:8px}:host ::ng-deep .mapa-datepicker__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-datepicker .mdc-text-field{padding:0}:host ::ng-deep .mapa-datepicker__origin{display:block;width:100%;min-width:0}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-text-field-wrapper{height:48px;border-radius:var(--mapa-radius-sm, 12px);background-color:var(--mapa-color-surface, #ffffff)}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-icon-suffix{display:flex;align-items:center;gap:4px;margin-right:12px}:host ::ng-deep .mapa-datepicker__field .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-infix{padding-bottom:12px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline{border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__leading,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__notch,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-subscript-wrapper{min-height:0}:host ::ng-deep .mapa-datepicker__range{display:flex;align-items:center;justify-content:flex-start;background-color:var(--mapa-color-surface, #ffffff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);overflow:hidden;box-sizing:border-box;padding:0 8px 0 16px;min-height:48px;height:48px;width:100%}:host ::ng-deep .mapa-datepicker__range-start,:host ::ng-deep .mapa-datepicker__range-end{display:flex;flex:1 1 0;align-items:center;align-self:stretch;min-width:0}:host ::ng-deep .mapa-datepicker__range-start .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker__range-start .mat-mdc-text-field-wrapper,:host ::ng-deep .mapa-datepicker__range-end .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker__range-end .mat-mdc-text-field-wrapper{width:100%;min-width:0}:host ::ng-deep .mapa-datepicker__range-end{flex-basis:72px}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-icon-suffix{display:flex;flex:none;align-items:center;gap:4px;margin-left:0;padding:unset!important}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-flex{display:flex;align-items:center;min-height:100%;height:48px!important}:host ::ng-deep .mapa-datepicker__range .mat-mdc-text-field-wrapper{padding:0!important;align-items:center!important;display:flex;background:var(--mapa-color-surface, #ffffff);min-height:100%}:host ::ng-deep .mapa-datepicker__range .mdc-notched-outline{display:none}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-infix{padding:0!important;margin-left:0!important;min-height:unset!important;border-top:unset!important;display:flex;align-items:center;height:100%}:host ::ng-deep .mapa-datepicker__range .mat-mdc-input-element{align-self:center;height:100%;line-height:24px;margin:0!important;padding:0 8px 0 0!important;text-align:left;vertical-align:middle}:host ::ng-deep .mapa-datepicker__divider{flex:none;margin:0 8px;color:var(--mapa-color-muted, #555555)}:host ::ng-deep .mapa-datepicker__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker__toggle{display:flex;flex:0 0 24px;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);cursor:pointer}:host ::ng-deep .mapa-datepicker__toggle:hover:not(:disabled){background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker__toggle:disabled{cursor:default;opacity:.5}:host ::ng-deep .mapa-datepicker__icon{display:block;pointer-events:none}:host ::ng-deep .mapa-datepicker__error,:host ::ng-deep .mapa-datepicker__hint{margin:8px 0 0;padding-left:4px;font-size:13px;line-height:18px}:host ::ng-deep .mapa-datepicker__error{color:#b54242}:host ::ng-deep .mapa-datepicker__hint{color:var(--mapa-color-muted, #555555)}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-datepicker--open :host ::ng-deep .mapa-datepicker__toggle{color:var(--mapa-color-accent, #ff560b)}.mapa-datepicker__panel{display:block;max-width:calc(100vw - 32px);overflow-x:auto;padding:8px;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));font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);box-sizing:border-box}.mapa-datepicker__panel ::ng-deep ngxsmk-datepicker,.mapa-datepicker__panel ::ng-deep .ngxsmk-popover-container,.mapa-datepicker__panel ::ng-deep .ngxsmk-backdrop{--datepicker-primary-color: var(--mapa-color-accent, #ff560b);--datepicker-primary-contrast: var(--mapa-color-surface, #ffffff);--datepicker-background: var(--mapa-color-surface, #ffffff);--datepicker-text-color: var(--mapa-color-ink, #1a1a1a);--datepicker-subtle-text-color: var(--mapa-color-muted, #555555);--datepicker-border-color: var( --mapa-color-border-soft, rgba(26, 26, 26, .08) );--datepicker-hover-background: rgba(255, 86, 11, .08);--datepicker-range-background: rgba(255, 86, 11, .12);--datepicker-radius-sm: 8px;--datepicker-radius-md: var(--mapa-radius-sm, 12px);--datepicker-radius-lg: var(--mapa-radius-md, 16px);--datepicker-border-radius: var(--mapa-radius-md, 16px);--datepicker-spacing-xs: 2px;--datepicker-spacing-sm: 6px;--datepicker-spacing-md: 8px;--datepicker-spacing-lg: 12px;--datepicker-spacing-xl: 12px;--datepicker-spacing-2xl: 16px;--datepicker-font-size-xs: 10px;--datepicker-font-size-sm: 11px;--datepicker-font-size-base: 13px;--datepicker-font-size-lg: 15px;--datepicker-font-family: var( --mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif );--ngxsmk-cell-size-desktop: 36px;--ngxsmk-touch-target: 36px;--ngxsmk-space-sm: 6px;--ngxsmk-space-md: 8px;--ngxsmk-font-size-sm: 11px;--datepicker-shadow-sm: none;--datepicker-shadow-md: none;--datepicker-shadow-lg: none;--datepicker-z-index-base: 0;display:block}.mapa-datepicker__panel ::ng-deep .mapa-datepicker__ngxsmk-group{display:none}.mapa-datepicker__panel ::ng-deep .ngxsmk-datepicker-wrapper,.mapa-datepicker__panel ::ng-deep .ngxsmk-datepicker-container{box-shadow:none;border:0;background:transparent}.mapa-datepicker__panel ::ng-deep .ngxsmk-day-number{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px}.mapa-datepicker__panel ::ng-deep .ngxsmk-popover-container{min-width:0}.mapa-datepicker__panel ::ng-deep .ngxsmk-calendar-month-multi{min-width:0}.mapa-datepicker__presets{position:relative;z-index:10;margin-bottom:8px}.mapa-datepicker__presets-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:0 12px;border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);background:var(--mapa-color-surface, #ffffff);color:var(--mapa-color-ink, #1a1a1a);font-family:inherit;font-size:13px;line-height:18px;text-align:left;cursor:pointer}.mapa-datepicker__presets-trigger:hover,.mapa-datepicker__presets-trigger--open{border-color:var(--mapa-color-accent, #ff560b)}.mapa-datepicker__presets-chevron{flex:none;color:var(--mapa-color-muted, #555555);transition:transform .12s ease}.mapa-datepicker__presets-trigger--open .mapa-datepicker__presets-chevron{transform:rotate(180deg)}.mapa-datepicker__presets-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:11;max-height:240px;margin:0;padding:4px;overflow-y:auto;list-style:none;border:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));border-radius:var(--mapa-radius-sm, 12px);background:var(--mapa-color-surface, #ffffff);box-shadow:var(--mapa-shadow-panel, 0 18px 40px rgba(26, 26, 26, .08));box-sizing:border-box}.mapa-datepicker__presets-option{display:block;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--mapa-color-ink, #1a1a1a);font-family:inherit;font-size:13px;line-height:18px;text-align:left;cursor:pointer}.mapa-datepicker__presets-option:hover{background:#1a1a1a0f}.mapa-datepicker__presets-option--active{background:#ff560b1f;color:var(--mapa-color-accent, #ff560b);font-weight:600}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: MapaMaskAutofillSyncDirective, selector: "input[mask], textarea[mask]", inputs: ["mapaMaskAutofillSync"], exportAs: ["mapaMaskAutofillSync"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { 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: NgxsmkDatepickerComponent, selector: "ngxsmk-datepicker", inputs: ["mode", "calendarViewMode", "isInvalidDate", "asyncDateFilter", "showRanges", "showTime", "timeOnly", "timeRangeMode", "showCalendarButton", "minuteInterval", "use24Hour", "secondInterval", "showSeconds", "holidayProvider", "disableHolidays", "disabledDates", "disabledRanges", "recurringPattern", "dateTemplate", "placeholder", "inline", "responsive", "inputId", "name", "autocomplete", "translations", "translationService", "clearLabel", "closeLabel", "prevMonthAriaLabel", "nextMonthAriaLabel", "clearAriaLabel", "closeAriaLabel", "weekStart", "yearRange", "timezone", "showOtherMonths", "hooks", "enableKeyboardShortcuts", "customShortcuts", "autoApplyClose", "allowSameDay", "displayFormat", "allowTyping", "inputMask", "enableNaturalLanguage", "naturalLanguagePreviewTemplate", "calendars", "rangePresetFactory", "showTimezoneSelector", "defaultTimezone", "calendarCount", "calendarLayout", "changeActiveMonthOnSelection", "showWeekNumbers", "weekNumberLabel", "secondaryCalendar", "dayMetadata", "calendarHeaderTemplate", "calendarFooterTemplate", "defaultMonthOffset", "syncScroll", "align", "useNativePicker", "enableHapticFeedback", "mobileModalStyle", "mobileTimePickerStyle", "enablePullToRefresh", "mobileTheme", "enableVoiceInput", "autoDetectMobile", "disableFocusTrap", "appendToBody", "value", "field", "startAt", "locale", "theme", "dateFormatPattern", "animationConfig", "rtl", "classes", "disabledState", "required", "errorState", "userAriaDescribedBy", "minDate", "maxDate", "ranges", "comparisonRange"], outputs: ["asyncDateFilterLoading", "asyncDateFilterError", "naturalLanguageResolved", "invalidRange", "timezoneChange", "valueChange", "action", "validationError"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6539
6791
  }
6540
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepickerRange, decorators: [{
6792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepicker, decorators: [{
6541
6793
  type: Component,
6542
- args: [{ selector: "mapa-datepicker-range", changeDetection: ChangeDetectionStrategy.OnPush, imports: [
6543
- CommonModule,
6794
+ args: [{ selector: 'mapa-datepicker, mapa-datepicker-range', standalone: true, imports: [
6795
+ NgTemplateOutlet,
6544
6796
  ReactiveFormsModule,
6545
6797
  NgxMaskDirective,
6546
6798
  MapaMaskAutofillSyncDirective,
6547
- MatDatepickerModule,
6548
6799
  MatFormFieldModule,
6549
- MatIconModule,
6550
6800
  MatInputModule,
6551
- ], providers: [
6552
- provideNgxMask(),
6553
- provideNativeDateAdapter(getMapaDatepickerRangeFormats()),
6554
- ], standalone: true, template: "@if (element.label) {\n <div class=\"mapa-datepicker-range__label\">\n {{ element.label }}\n </div>\n}\n<section class=\"mapa-datepicker-range\" [formGroup]=\"formDisplay\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__start-date\"\n >\n <input\n matInput\n formControlName=\"startDate\"\n [placeholder]=\"startDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n </mat-form-field>\n <div class=\"mapa-datepicker-range__divider\">&ndash;</div>\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__end-date\"\n >\n <input\n matInput\n formControlName=\"endDate\"\n [placeholder]=\"endDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n <button\n type=\"button\"\n matSuffix\n aria-label=\"Limpar\"\n class=\"mapa-datepicker-range__clear\"\n (click)=\"cleanDatepicker()\"\n tabindex=\"-1\"\n >\n &times;\n </button>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker touchUi=\"true\" #picker></mat-date-range-picker>\n </mat-form-field>\n</section>\n<section class=\"mapa--hidden\">\n <mat-form-field [formGroup]=\"formDatepicker\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"startDate\" />\n <input matEndDate formControlName=\"endDate\" />\n </mat-date-range-input>\n </mat-form-field>\n</section>\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mdc-text-field--outlined{background-color:#fff}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mat-mdc-text-field-wrapper{min-height:48px!important;height:48px!important}:host ::ng-deep .mat-mdc-form-field-type-mat-date-range-input .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-datepicker-range{display:flex;align-items:center;justify-content:flex-start;background-color:var(--mapa-color-surface, #ffffff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);overflow:hidden;box-sizing:border-box;padding:0 0 0 16px;min-height:48px;height:48px;width:100%}:host ::ng-deep .mapa-datepicker-range__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-datepicker-range__start-date,:host ::ng-deep .mapa-datepicker-range__end-date{display:flex;flex:1 1 0;align-items:center;align-self:stretch;min-width:0}:host ::ng-deep .mapa-datepicker-range__start-date .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker-range__start-date .mat-mdc-text-field-wrapper,:host ::ng-deep .mapa-datepicker-range__end-date .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker-range__end-date .mat-mdc-text-field-wrapper{width:100%;min-width:0}:host ::ng-deep .mapa-datepicker-range__end-date{flex-basis:72px}:host ::ng-deep .mapa-datepicker-range__divider{flex:none;margin:0 8px}:host ::ng-deep .mapa-datepicker-range__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker-range__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-icon-suffix{display:flex;flex:none;align-items:center;gap:4px;margin-left:0;padding:unset!important}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-icon-suffix .mat-datepicker-toggle{margin:0}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-flex{display:flex;align-items:center;min-height:100%;height:48px!important}:host ::ng-deep .mapa-datepicker-range .mat-mdc-text-field-wrapper{padding:0!important;align-items:center!important;display:flex;background:var(--mapa-color-surface, #ffffff);min-height:100%}:host ::ng-deep .mapa-datepicker-range .mdc-notched-outline{display:none}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-infix{padding:0!important;margin-left:0!important;min-height:unset!important;border-top:unset!important;display:flex;align-items:center;height:100%}:host ::ng-deep .mapa-datepicker-range .mat-mdc-input-element{align-self:center;height:100%;line-height:24px;margin:0!important;padding:0 8px 0 0!important;text-align:left;vertical-align:middle}:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker-range .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa--hidden{display:none}\n"] }]
6555
- }], ctorParameters: () => [{ type: MapaI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formGroup: [{
6556
- type: Input
6801
+ CdkConnectedOverlay,
6802
+ CdkOverlayOrigin,
6803
+ NgxsmkDatepickerComponent,
6804
+ MapaFormErrorsComponent,
6805
+ ], providers: [provideNgxMask()], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (element && formGroup) {\n <div\n class=\"mapa-datepicker\"\n [class.mapa-datepicker--open]=\"isOpen()\"\n [class.mapa-datepicker--disabled]=\"isDisabled()\"\n >\n @if (element.label) {\n <label class=\"mapa-datepicker__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <!-- A origem do overlay precisa ficar fora do @if: refer\u00EAncias de template\n n\u00E3o atravessam blocos de controle de fluxo. -->\n <div\n class=\"mapa-datepicker__origin\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [formGroup]=\"formDisplay\"\n >\n @if (mode() === \"range\") {\n <div class=\"mapa-datepicker__range\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker__range-start\"\n >\n <input\n matInput\n formControlName=\"startDate\"\n [attr.id]=\"element.key || null\"\n [placeholder]=\"startDatePlaceholder\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n </mat-form-field>\n\n <span class=\"mapa-datepicker__divider\">&ndash;</span>\n\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker__range-end\"\n >\n <input\n matInput\n formControlName=\"endDate\"\n [placeholder]=\"endDatePlaceholder\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n\n @if (showClear()) {\n <button\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__clear\"\n aria-label=\"Limpar\"\n tabindex=\"-1\"\n (click)=\"clear($event)\"\n >\n &times;\n </button>\n }\n\n <button\n #toggleButton\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__toggle\"\n [disabled]=\"isDisabled() || isReadonly()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calend\u00E1rio\"\n (click)=\"toggleCalendar()\"\n >\n <ng-container [ngTemplateOutlet]=\"calendarIcon\"></ng-container>\n </button>\n </mat-form-field>\n </div>\n } @else {\n <div class=\"mapa-datepicker__field\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\">\n @if (mode() === \"multiple\") {\n <input\n matInput\n [attr.id]=\"element.key || null\"\n [value]=\"selectedLabel()\"\n [placeholder]=\"singlePlaceholder()\"\n readonly\n (click)=\"toggleCalendar()\"\n />\n } @else {\n <input\n matInput\n formControlName=\"startDate\"\n [attr.id]=\"element.key || null\"\n [placeholder]=\"singlePlaceholder()\"\n [mask]=\"mask()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isReadonly()\"\n />\n }\n\n @if (showClear()) {\n <button\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__clear\"\n aria-label=\"Limpar\"\n tabindex=\"-1\"\n (click)=\"clear($event)\"\n >\n &times;\n </button>\n }\n\n <button\n #toggleButton\n matSuffix\n type=\"button\"\n class=\"mapa-datepicker__toggle\"\n [disabled]=\"isDisabled() || isReadonly()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"dialog\"\n aria-label=\"Abrir calend\u00E1rio\"\n (click)=\"toggleCalendar()\"\n >\n <ng-container [ngTemplateOutlet]=\"calendarIcon\"></ng-container>\n </button>\n </mat-form-field>\n </div>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayPush]=\"true\"\n cdkConnectedOverlayPanelClass=\"mapa-datepicker__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-datepicker__panel\" role=\"dialog\">\n @if (hasPresets()) {\n <div class=\"mapa-datepicker__presets\">\n <button\n type=\"button\"\n class=\"mapa-datepicker__presets-trigger\"\n [class.mapa-datepicker__presets-trigger--open]=\"isPresetsOpen()\"\n [attr.aria-expanded]=\"isPresetsOpen()\"\n aria-haspopup=\"listbox\"\n (click)=\"togglePresets()\"\n >\n <span>{{ presetsTriggerLabel() }}</span>\n <svg\n class=\"mapa-datepicker__presets-chevron\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M6 9l6 6 6-6\"></path>\n </svg>\n </button>\n\n @if (isPresetsOpen()) {\n <ul class=\"mapa-datepicker__presets-list\" role=\"listbox\">\n @for (preset of presetList(); track preset.label) {\n <li role=\"option\" [attr.aria-selected]=\"isPresetActive(preset)\">\n <button\n type=\"button\"\n class=\"mapa-datepicker__presets-option\"\n [class.mapa-datepicker__presets-option--active]=\"\n isPresetActive(preset)\n \"\n (click)=\"applyPreset(preset)\"\n >\n {{ preset.label }}\n </button>\n </li>\n }\n </ul>\n }\n </div>\n }\n\n <ngxsmk-datepicker\n [inline]=\"true\"\n [mode]=\"mode()\"\n [value]=\"pickerValue()\"\n [locale]=\"ngxsmkLocale()\"\n [displayFormat]=\"displayFormat()\"\n [theme]=\"'light'\"\n [minDate]=\"minDate()\"\n [maxDate]=\"maxDate()\"\n [disabledDates]=\"disabledDates()\"\n [isInvalidDate]=\"isInvalidDate()\"\n [showRanges]=\"false\"\n [calendars]=\"calendars()\"\n [weekStart]=\"weekStart()\"\n [showCalendarButton]=\"false\"\n [classes]=\"ngxsmkClasses\"\n (valueChange)=\"handlePickerValue($event)\"\n ></ngxsmk-datepicker>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-datepicker__error\">\n <mapa-form-errors\n [control]=\"control\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-datepicker__hint\">{{ element.hint }}</p>\n }\n </div>\n}\n\n<ng-template #calendarIcon>\n <svg\n class=\"mapa-datepicker__icon\"\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"3\"></rect>\n <path d=\"M3 10h18M8 3v4M16 3v4\"></path>\n </svg>\n</ng-template>\n", styles: [":host{display:inline-block;width:310px;max-width:100%;min-width:0;box-sizing:border-box}:host ::ng-deep .mapa-datepicker{display:flex;flex-direction:column;gap:8px}:host ::ng-deep .mapa-datepicker__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-datepicker .mdc-text-field{padding:0}:host ::ng-deep .mapa-datepicker__origin{display:block;width:100%;min-width:0}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-text-field-wrapper{height:48px;border-radius:var(--mapa-radius-sm, 12px);background-color:var(--mapa-color-surface, #ffffff)}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-icon-suffix{display:flex;align-items:center;gap:4px;margin-right:12px}:host ::ng-deep .mapa-datepicker__field .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-infix{padding-bottom:12px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline{border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__leading,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__notch,:host ::ng-deep .mapa-datepicker__field .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-datepicker__field .mat-mdc-form-field-subscript-wrapper{min-height:0}:host ::ng-deep .mapa-datepicker__range{display:flex;align-items:center;justify-content:flex-start;background-color:var(--mapa-color-surface, #ffffff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);overflow:hidden;box-sizing:border-box;padding:0 8px 0 16px;min-height:48px;height:48px;width:100%}:host ::ng-deep .mapa-datepicker__range-start,:host ::ng-deep .mapa-datepicker__range-end{display:flex;flex:1 1 0;align-items:center;align-self:stretch;min-width:0}:host ::ng-deep .mapa-datepicker__range-start .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker__range-start .mat-mdc-text-field-wrapper,:host ::ng-deep .mapa-datepicker__range-end .mat-mdc-input-element,:host ::ng-deep .mapa-datepicker__range-end .mat-mdc-text-field-wrapper{width:100%;min-width:0}:host ::ng-deep .mapa-datepicker__range-end{flex-basis:72px}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-icon-suffix{display:flex;flex:none;align-items:center;gap:4px;margin-left:0;padding:unset!important}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-flex{display:flex;align-items:center;min-height:100%;height:48px!important}:host ::ng-deep .mapa-datepicker__range .mat-mdc-text-field-wrapper{padding:0!important;align-items:center!important;display:flex;background:var(--mapa-color-surface, #ffffff);min-height:100%}:host ::ng-deep .mapa-datepicker__range .mdc-notched-outline{display:none}:host ::ng-deep .mapa-datepicker__range .mat-mdc-form-field-infix{padding:0!important;margin-left:0!important;min-height:unset!important;border-top:unset!important;display:flex;align-items:center;height:100%}:host ::ng-deep .mapa-datepicker__range .mat-mdc-input-element{align-self:center;height:100%;line-height:24px;margin:0!important;padding:0 8px 0 0!important;text-align:left;vertical-align:middle}:host ::ng-deep .mapa-datepicker__divider{flex:none;margin:0 8px;color:var(--mapa-color-muted, #555555)}:host ::ng-deep .mapa-datepicker__clear{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-datepicker__clear:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker__toggle{display:flex;flex:0 0 24px;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);cursor:pointer}:host ::ng-deep .mapa-datepicker__toggle:hover:not(:disabled){background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-datepicker__toggle:disabled{cursor:default;opacity:.5}:host ::ng-deep .mapa-datepicker__icon{display:block;pointer-events:none}:host ::ng-deep .mapa-datepicker__error,:host ::ng-deep .mapa-datepicker__hint{margin:8px 0 0;padding-left:4px;font-size:13px;line-height:18px}:host ::ng-deep .mapa-datepicker__error{color:#b54242}:host ::ng-deep .mapa-datepicker__hint{color:var(--mapa-color-muted, #555555)}:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-datepicker .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-datepicker--open :host ::ng-deep .mapa-datepicker__toggle{color:var(--mapa-color-accent, #ff560b)}.mapa-datepicker__panel{display:block;max-width:calc(100vw - 32px);overflow-x:auto;padding:8px;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));font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);box-sizing:border-box}.mapa-datepicker__panel ::ng-deep ngxsmk-datepicker,.mapa-datepicker__panel ::ng-deep .ngxsmk-popover-container,.mapa-datepicker__panel ::ng-deep .ngxsmk-backdrop{--datepicker-primary-color: var(--mapa-color-accent, #ff560b);--datepicker-primary-contrast: var(--mapa-color-surface, #ffffff);--datepicker-background: var(--mapa-color-surface, #ffffff);--datepicker-text-color: var(--mapa-color-ink, #1a1a1a);--datepicker-subtle-text-color: var(--mapa-color-muted, #555555);--datepicker-border-color: var( --mapa-color-border-soft, rgba(26, 26, 26, .08) );--datepicker-hover-background: rgba(255, 86, 11, .08);--datepicker-range-background: rgba(255, 86, 11, .12);--datepicker-radius-sm: 8px;--datepicker-radius-md: var(--mapa-radius-sm, 12px);--datepicker-radius-lg: var(--mapa-radius-md, 16px);--datepicker-border-radius: var(--mapa-radius-md, 16px);--datepicker-spacing-xs: 2px;--datepicker-spacing-sm: 6px;--datepicker-spacing-md: 8px;--datepicker-spacing-lg: 12px;--datepicker-spacing-xl: 12px;--datepicker-spacing-2xl: 16px;--datepicker-font-size-xs: 10px;--datepicker-font-size-sm: 11px;--datepicker-font-size-base: 13px;--datepicker-font-size-lg: 15px;--datepicker-font-family: var( --mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif );--ngxsmk-cell-size-desktop: 36px;--ngxsmk-touch-target: 36px;--ngxsmk-space-sm: 6px;--ngxsmk-space-md: 8px;--ngxsmk-font-size-sm: 11px;--datepicker-shadow-sm: none;--datepicker-shadow-md: none;--datepicker-shadow-lg: none;--datepicker-z-index-base: 0;display:block}.mapa-datepicker__panel ::ng-deep .mapa-datepicker__ngxsmk-group{display:none}.mapa-datepicker__panel ::ng-deep .ngxsmk-datepicker-wrapper,.mapa-datepicker__panel ::ng-deep .ngxsmk-datepicker-container{box-shadow:none;border:0;background:transparent}.mapa-datepicker__panel ::ng-deep .ngxsmk-day-number{width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px}.mapa-datepicker__panel ::ng-deep .ngxsmk-popover-container{min-width:0}.mapa-datepicker__panel ::ng-deep .ngxsmk-calendar-month-multi{min-width:0}.mapa-datepicker__presets{position:relative;z-index:10;margin-bottom:8px}.mapa-datepicker__presets-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:0 12px;border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .18));border-radius:var(--mapa-radius-sm, 12px);background:var(--mapa-color-surface, #ffffff);color:var(--mapa-color-ink, #1a1a1a);font-family:inherit;font-size:13px;line-height:18px;text-align:left;cursor:pointer}.mapa-datepicker__presets-trigger:hover,.mapa-datepicker__presets-trigger--open{border-color:var(--mapa-color-accent, #ff560b)}.mapa-datepicker__presets-chevron{flex:none;color:var(--mapa-color-muted, #555555);transition:transform .12s ease}.mapa-datepicker__presets-trigger--open .mapa-datepicker__presets-chevron{transform:rotate(180deg)}.mapa-datepicker__presets-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:11;max-height:240px;margin:0;padding:4px;overflow-y:auto;list-style:none;border:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));border-radius:var(--mapa-radius-sm, 12px);background:var(--mapa-color-surface, #ffffff);box-shadow:var(--mapa-shadow-panel, 0 18px 40px rgba(26, 26, 26, .08));box-sizing:border-box}.mapa-datepicker__presets-option{display:block;width:100%;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--mapa-color-ink, #1a1a1a);font-family:inherit;font-size:13px;line-height:18px;text-align:left;cursor:pointer}.mapa-datepicker__presets-option:hover{background:#1a1a1a0f}.mapa-datepicker__presets-option--active{background:#ff560b1f;color:var(--mapa-color-accent, #ff560b);font-weight:600}\n"] }]
6806
+ }], propDecorators: { formGroup: [{
6807
+ type: Input,
6808
+ args: [{ required: true }]
6557
6809
  }], element: [{
6558
- type: Input
6810
+ type: Input,
6811
+ args: [{ required: true }]
6812
+ }], openedChange: [{
6813
+ type: Output
6814
+ }], toggleButton: [{
6815
+ type: ViewChild,
6816
+ args: ['toggleButton']
6817
+ }], picker: [{
6818
+ type: ViewChild,
6819
+ args: [NgxsmkDatepickerComponent]
6820
+ }], handleEscape: [{
6821
+ type: HostListener,
6822
+ args: ['document:keydown.escape']
6559
6823
  }] } });
6560
6824
 
6561
6825
  /*
6562
- * Public API Surface of mapa-library-ui datepicker-range
6826
+ * Public API Surface of mapa-library-ui datepicker
6563
6827
  */
6564
6828
 
6565
6829
  class MapaDialogComponent {
@@ -6590,8 +6854,8 @@ class MapaDialogComponent {
6590
6854
  emitData() {
6591
6855
  this.dataEmitter.emit(this.dialogData);
6592
6856
  }
6593
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$3.MatDialogRef }, { token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
6594
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaDialogComponent, isStandalone: true, selector: "mapa-dialog", inputs: { isReportRegistration: "isReportRegistration" }, outputs: { dataEmitter: "dataEmitter" }, ngImport: i0, template: "<div class=\"mapa-dialog\">\n <div class=\"dialog-icon\">\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div> \n <mat-dialog-content>\n <img *ngIf=\"imgBase64\" [src]=\"imgBase64\" />\n <h2>\n {{ dialogData.title }}\n </h2>\n <p [innerHTML]=\"htmlDescription | safeHtml\"></p>\n </mat-dialog-content>\n <div *ngIf=\"dialogData.isReportRegistration\">\n <mapa-button color=\"accent\" (click)=\"emitData()\">\n {{ dialogData.button }}\n </mapa-button>\n </div>\n <mat-dialog-actions *ngIf=\"!dialogData.isReportRegistration\" class=\"mapa-dialog__actions\">\n <mapa-button color=\"basic\" (click)=\"close()\" *ngIf=\"dialogData.actions.close\">\n {{ dialogData.actions.close }}\n </mapa-button>\n <mapa-button color=\"primary\" (click)=\"save()\" *ngIf=\"dialogData.actions.save\">\n {{ dialogData.actions.save }}\n </mapa-button>\n </mat-dialog-actions>\n</div>\n\n", styles: [".mapa-dialog{background-color:#f6f7f7!important;border-radius:8px!important;padding:42px!important}.mapa-dialog .dialog-icon{display:flex;margin-left:95%}.mapa-dialog .mat-icon{cursor:pointer;display:flex;position:relative;align-self:flex-end}.mapa-dialog h2{color:#181818;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:24px;font-style:normal;font-weight:400;line-height:32px}.mapa-dialog img{padding:39px 11px;width:100%;border-radius:8px;border:1px solid #CDCDCD;background:#fff;margin:30px 0}.mapa-dialog p{color:#50575e;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px}.mapa-dialog__actions{justify-content:end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
6857
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$4.MatDialogRef }, { token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
6858
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaDialogComponent, isStandalone: true, selector: "mapa-dialog", inputs: { isReportRegistration: "isReportRegistration" }, outputs: { dataEmitter: "dataEmitter" }, ngImport: i0, template: "<div class=\"mapa-dialog\">\n <div class=\"dialog-icon\">\n <mat-icon (click)=\"close()\">close</mat-icon>\n </div> \n <mat-dialog-content>\n <img *ngIf=\"imgBase64\" [src]=\"imgBase64\" />\n <h2>\n {{ dialogData.title }}\n </h2>\n <p [innerHTML]=\"htmlDescription | safeHtml\"></p>\n </mat-dialog-content>\n <div *ngIf=\"dialogData.isReportRegistration\">\n <mapa-button color=\"accent\" (click)=\"emitData()\">\n {{ dialogData.button }}\n </mapa-button>\n </div>\n <mat-dialog-actions *ngIf=\"!dialogData.isReportRegistration\" class=\"mapa-dialog__actions\">\n <mapa-button color=\"basic\" (click)=\"close()\" *ngIf=\"dialogData.actions.close\">\n {{ dialogData.actions.close }}\n </mapa-button>\n <mapa-button color=\"primary\" (click)=\"save()\" *ngIf=\"dialogData.actions.save\">\n {{ dialogData.actions.save }}\n </mapa-button>\n </mat-dialog-actions>\n</div>\n\n", styles: [".mapa-dialog{background-color:#f6f7f7!important;border-radius:8px!important;padding:42px!important}.mapa-dialog .dialog-icon{display:flex;margin-left:95%}.mapa-dialog .mat-icon{cursor:pointer;display:flex;position:relative;align-self:flex-end}.mapa-dialog h2{color:#181818;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:24px;font-style:normal;font-weight:400;line-height:32px}.mapa-dialog img{padding:39px 11px;width:100%;border-radius:8px;border:1px solid #CDCDCD;background:#fff;margin:30px 0}.mapa-dialog p{color:#50575e;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px}.mapa-dialog__actions{justify-content:end}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1$4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
6595
6859
  }
6596
6860
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDialogComponent, decorators: [{
6597
6861
  type: Component,
@@ -6605,7 +6869,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
6605
6869
  }], ctorParameters: () => [{ type: undefined, decorators: [{
6606
6870
  type: Inject,
6607
6871
  args: [MAT_DIALOG_DATA]
6608
- }] }, { type: i1$3.MatDialogRef }, { type: i1$2.DomSanitizer }], propDecorators: { isReportRegistration: [{
6872
+ }] }, { type: i1$4.MatDialogRef }, { type: i1$3.DomSanitizer }], propDecorators: { isReportRegistration: [{
6609
6873
  type: Input
6610
6874
  }], dataEmitter: [{
6611
6875
  type: Output
@@ -6686,7 +6950,7 @@ class MapaDropdownTreeComponent {
6686
6950
  this.openedChange.emit(event);
6687
6951
  }
6688
6952
  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 }); }
6689
- 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: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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"] }] }); }
6953
+ 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: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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"] }] }); }
6690
6954
  }
6691
6955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownTreeComponent, decorators: [{
6692
6956
  type: Component,
@@ -6709,7 +6973,7 @@ class MapaEmptyStateComponent {
6709
6973
  this.subtitle = null;
6710
6974
  }
6711
6975
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6712
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaEmptyStateComponent, isStandalone: true, selector: "mapa-empty", inputs: { title: "title", subtitle: "subtitle" }, ngImport: i0, template: "<div class=\"empty\">\n <svg\n width=\"284\"\n height=\"284\"\n viewBox=\"0 0 284 284\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <rect width=\"284\" height=\"284\" fill=\"url(#pattern0)\" />\n <defs>\n <pattern\n id=\"pattern0\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use xlink:href=\"#image0_861_11131\" transform=\"scale(0.00219298)\" />\n </pattern>\n <image\n id=\"image0_861_11131\"\n width=\"456\"\n height=\"456\"\n xlink:href=\"data:image/png;base64,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\"\n />\n </defs>\n </svg>\n <h2 *ngIf=\"title\" [innerHTML]=\"title | safeHtml\"></h2>\n <h3 *ngIf=\"subtitle\" [innerHTML]=\"subtitle | safeHtml\"></h3>\n</div>\n\n", styles: [".empty svg{display:block;margin:auto}.empty h3{color:#8c8f94;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}.empty h2{color:#181818;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:28px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
6976
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaEmptyStateComponent, isStandalone: true, selector: "mapa-empty", inputs: { title: "title", subtitle: "subtitle" }, ngImport: i0, template: "<div class=\"empty\">\n <svg\n width=\"284\"\n height=\"284\"\n viewBox=\"0 0 284 284\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <rect width=\"284\" height=\"284\" fill=\"url(#pattern0)\" />\n <defs>\n <pattern\n id=\"pattern0\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use xlink:href=\"#image0_861_11131\" transform=\"scale(0.00219298)\" />\n </pattern>\n <image\n id=\"image0_861_11131\"\n width=\"456\"\n height=\"456\"\n xlink:href=\"data:image/png;base64,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\"\n />\n </defs>\n </svg>\n <h2 *ngIf=\"title\" [innerHTML]=\"title | safeHtml\"></h2>\n <h3 *ngIf=\"subtitle\" [innerHTML]=\"subtitle | safeHtml\"></h3>\n</div>\n\n", styles: [".empty svg{display:block;margin:auto}.empty h3{color:#8c8f94;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}.empty h2{color:#181818;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:28px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
6713
6977
  }
6714
6978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaEmptyStateComponent, decorators: [{
6715
6979
  type: Component,
@@ -6759,7 +7023,7 @@ class MapaInputComponent {
6759
7023
  useExisting: forwardRef(() => MapaInputComponent),
6760
7024
  multi: true,
6761
7025
  },
6762
- ], ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-input__label\">\n {{ element.label }}\n</label>\n<div class=\"mapa-form--inline\">\n <mat-form-field\n class=\"mapa-input\"\n [class.mapa-input--autosize]=\"element.autosize\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n >\n <mat-icon *ngIf=\"element.prefix\" class=\"mapa-input--prefix\" matPrefix>\n {{ element.prefix }}\n </mat-icon>\n <input\n *ngIf=\"element.autosize\"\n matInput\n matInputAutosize\n [matInputAutosizeMinWidth]=\"element.autosizeMinWidth!\"\n [matInputAutosizeMaxWidth]=\"element.autosizeMaxWidth!\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n thousandSeparator=\".\"\n decimalMarker=\",\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <input\n matInput\n *ngIf=\"!element.autosize\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n type=\"button\"\n tabindex=\"-1\"\n matSuffix\n aria-label=\"Limpar\"\n (click)=\"clearValue()\"\n class=\"mapa-input--close\"\n >\n &times;\n </button>\n <mat-icon\n *ngIf=\"element.suffix\"\n class=\"mapa-input--suffix\"\n matSuffix\n (click)=\"suffix.emit()\"\n >\n {{ element.suffix }}\n </mat-icon>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n </mat-form-field>\n\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n</div>\n", styles: [":host{display:inline-block;max-width:100%;min-width:0;box-sizing:border-box}.mapa-input{width:310px;max-width:100%;min-width:0;box-sizing:border-box}.mapa-input--autosize{width:auto;--mapa-input-autosize-preferred-width: 310px}.mapa-input__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-input--autosize .mat-mdc-form-field-infix{overflow:hidden}:host ::ng-deep .mapa-input .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-input .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-input .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-input .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-input .mat-mdc-form-field-error:before{display:none}:host ::ng-deep .mapa-input .mat-mdc-form-field-hint{display:block;margin:8px 0 0;padding-left:4px;color:var(--mapa-color-muted, #555555);font-size:13px;line-height:18px}:host ::ng-deep .mapa-input .mat-mdc-form-field-hint:before{display:none}:host ::ng-deep .mapa-input .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}:host ::ng-deep .mapa-input .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-input .mat-mdc-text-field-wrapper{background-color:var(--mapa-color-surface, #ffffff);border-radius:var(--mapa-radius-sm, 12px);height:48px}:host ::ng-deep .mapa-input .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-input .mdc-notched-outline{background-color:transparent;border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-input .mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:12px;padding-top:16px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-input .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-input .mdc-notched-outline__leading,:host ::ng-deep .mapa-input .mdc-notched-outline__notch,:host ::ng-deep .mapa-input .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix{display:flex}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close:last-child{margin-right:12px}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--suffix{padding:0 0 0 8px}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mat-icon:last-child{padding-right:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: MatInputAutosizeDirective, selector: "[matInputAutosize]", inputs: ["matInputAutosizeMaxWidth", "matInputAutosizeMinWidth", "matInputAutosizeFontStyle"] }, { kind: "directive", type: MapaMaskAutofillSyncDirective, selector: "input[mask], textarea[mask]", inputs: ["mapaMaskAutofillSync"], exportAs: ["mapaMaskAutofillSync"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }] }); }
7026
+ ], ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-input__label\">\n {{ element.label }}\n</label>\n<div class=\"mapa-form--inline\">\n <mat-form-field\n class=\"mapa-input\"\n [class.mapa-input--autosize]=\"element.autosize\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n >\n <mat-icon *ngIf=\"element.prefix\" class=\"mapa-input--prefix\" matPrefix>\n {{ element.prefix }}\n </mat-icon>\n <input\n *ngIf=\"element.autosize\"\n matInput\n matInputAutosize\n [matInputAutosizeMinWidth]=\"element.autosizeMinWidth!\"\n [matInputAutosizeMaxWidth]=\"element.autosizeMaxWidth!\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n thousandSeparator=\".\"\n decimalMarker=\",\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <input\n matInput\n *ngIf=\"!element.autosize\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n type=\"button\"\n tabindex=\"-1\"\n matSuffix\n aria-label=\"Limpar\"\n (click)=\"clearValue()\"\n class=\"mapa-input--close\"\n >\n &times;\n </button>\n <mat-icon\n *ngIf=\"element.suffix\"\n class=\"mapa-input--suffix\"\n matSuffix\n (click)=\"suffix.emit()\"\n >\n {{ element.suffix }}\n </mat-icon>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n </mat-form-field>\n\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n</div>\n", styles: [":host{display:inline-block;max-width:100%;min-width:0;box-sizing:border-box}.mapa-input{width:310px;max-width:100%;min-width:0;box-sizing:border-box}.mapa-input--autosize{width:auto;--mapa-input-autosize-preferred-width: 310px}.mapa-input__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-input--autosize .mat-mdc-form-field-infix{overflow:hidden}:host ::ng-deep .mapa-input .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-input .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-input .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-input .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-input .mat-mdc-form-field-error:before{display:none}:host ::ng-deep .mapa-input .mat-mdc-form-field-hint{display:block;margin:8px 0 0;padding-left:4px;color:var(--mapa-color-muted, #555555);font-size:13px;line-height:18px}:host ::ng-deep .mapa-input .mat-mdc-form-field-hint:before{display:none}:host ::ng-deep .mapa-input .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}:host ::ng-deep .mapa-input .mat-mdc-form-field-flex{height:48px!important}:host ::ng-deep .mapa-input .mat-mdc-text-field-wrapper{background-color:var(--mapa-color-surface, #ffffff);border-radius:var(--mapa-radius-sm, 12px);height:48px}:host ::ng-deep .mapa-input .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-input .mdc-notched-outline{background-color:transparent;border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-input .mdc-text-field--outlined .mat-mdc-form-field-infix{padding-bottom:12px;padding-top:16px;--mat-form-field-container-height: 48px}:host ::ng-deep .mapa-input .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-input .mdc-notched-outline__leading,:host ::ng-deep .mapa-input .mdc-notched-outline__notch,:host ::ng-deep .mapa-input .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix{display:flex}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close{display:flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--mapa-color-muted, #555555);font-family:inherit;font-size:16px;line-height:1;cursor:pointer}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close:hover{background:#1a1a1a14;color:var(--mapa-color-ink, #1a1a1a)}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--close:last-child{margin-right:12px}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mapa-input--suffix{padding:0 0 0 8px}:host ::ng-deep .mapa-input .mat-mdc-form-field-icon-suffix .mat-icon:last-child{padding-right:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: MatInputAutosizeDirective, selector: "[matInputAutosize]", inputs: ["matInputAutosizeMaxWidth", "matInputAutosizeMinWidth", "matInputAutosizeFontStyle"] }, { kind: "directive", type: MapaMaskAutofillSyncDirective, selector: "input[mask], textarea[mask]", inputs: ["mapaMaskAutofillSync"], exportAs: ["mapaMaskAutofillSync"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }] }); }
6763
7027
  }
6764
7028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaInputComponent, decorators: [{
6765
7029
  type: Component,
@@ -6821,7 +7085,7 @@ class FiltersComponent {
6821
7085
  this.selectedValues.emit(this.form.getRawValue());
6822
7086
  }
6823
7087
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: FiltersComponent, deps: [{ token: MapaI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
6824
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: FiltersComponent, isStandalone: true, selector: "mapa-filters", inputs: { form: "form", elements: "elements" }, outputs: { selectedValues: "selectedValues" }, ngImport: i0, template: "<div class=\"filter\">\n <div *ngFor=\"let filter of elements\">\n <div *ngIf=\"filter.controlType === 'checkbox'\" class=\"filter__item--resizable\">\n <mapa-checkbox [formControl]=\"getFormControl(filter.key)\"></mapa-checkbox>\n </div>\n <div *ngIf=\"filter.controlType === 'dropdown'\" class=\"filter__item--resizable\">\n <mapa-dropdown\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-dropdown>\n </div>\n <div *ngIf=\"filter.controlType === 'input'\" class=\"filter__item\">\n <mapa-input\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-input>\n </div>\n </div>\n <div class=\"filter__item\">\n <mapa-button [color]=\"'basic'\" (clicked)=\"clearFilters()\">\n {{ clearFiltersLabel }}\n </mapa-button>\n <mapa-button\n [color]=\"'primary'\"\n [disabled]=\"!!form.invalid\"\n (clicked)=\"emitSelectedValues()\"\n >\n {{ submitFiltersLabel }}\n </mapa-button>\n </div>\n</div>\n\n", styles: [".filter{display:flex;align-items:flex-end;flex-wrap:wrap;background-color:#f6f7f7;padding:32px;width:100%;gap:30px}.filter__item,.filter__item--resizable{display:flex;align-items:flex-end}.filter mapa-dropdown{display:block;max-width:none;min-width:10vw}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "component", type: CheckboxComponent, selector: "mapa-checkbox", inputs: ["color", "formControl"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }, { kind: "component", type: MapaInputComponent, selector: "mapa-input", inputs: ["formControl", "element", "type"], outputs: ["suffix"] }] }); }
7088
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: FiltersComponent, isStandalone: true, selector: "mapa-filters", inputs: { form: "form", elements: "elements" }, outputs: { selectedValues: "selectedValues" }, ngImport: i0, template: "<div class=\"filter\">\n <div *ngFor=\"let filter of elements\">\n <div *ngIf=\"filter.controlType === 'checkbox'\" class=\"filter__item--resizable\">\n <mapa-checkbox [formControl]=\"getFormControl(filter.key)\"></mapa-checkbox>\n </div>\n <div *ngIf=\"filter.controlType === 'dropdown'\" class=\"filter__item--resizable\">\n <mapa-dropdown\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-dropdown>\n </div>\n <div *ngIf=\"filter.controlType === 'input'\" class=\"filter__item\">\n <mapa-input\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-input>\n </div>\n </div>\n <div class=\"filter__item\">\n <mapa-button [color]=\"'basic'\" (clicked)=\"clearFilters()\">\n {{ clearFiltersLabel }}\n </mapa-button>\n <mapa-button\n [color]=\"'primary'\"\n [disabled]=\"!!form.invalid\"\n (clicked)=\"emitSelectedValues()\"\n >\n {{ submitFiltersLabel }}\n </mapa-button>\n </div>\n</div>\n\n", styles: [".filter{display:flex;align-items:flex-end;flex-wrap:wrap;background-color:#f6f7f7;padding:32px;width:100%;gap:30px}.filter__item,.filter__item--resizable{display:flex;align-items:flex-end}.filter mapa-dropdown{display:block;max-width:none;min-width:10vw}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "component", type: CheckboxComponent, selector: "mapa-checkbox", inputs: ["color", "formControl"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }, { kind: "component", type: MapaInputComponent, selector: "mapa-input", inputs: ["formControl", "element", "type"], outputs: ["suffix"] }] }); }
6825
7089
  }
6826
7090
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: FiltersComponent, decorators: [{
6827
7091
  type: Component,
@@ -6881,7 +7145,7 @@ class RadioButtonComponent {
6881
7145
  useExisting: forwardRef(() => RadioButtonComponent),
6882
7146
  multi: true,
6883
7147
  },
6884
- ], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-radio-button__label\">\n {{ element.label }}\n</label>\n<section class=\"mapa-radio-button\">\n <mat-radio-group [formControl]=\"formControl\" [value]=\"selectedOption\" (change)=\"onSelectionChange($event.value)\">\n <mat-radio-button\n *ngFor=\"let option of options\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-radio-button>\n </mat-radio-group>\n</section>\n", styles: [".mapa-radio-button{--mat-radio-selected-focus-icon-color: #ea561d;--mat-radio-selected-hover-icon-color: #ea561d;--mat-radio-selected-icon-color: #ea561d;--mat-radio-selected-pressed-icon-color: #ea561d;--mat-mdc-radio-ripple-color: #ea561d;--mat-mdc-radio-checked-ripple-color: #ea561d;color:#000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:20px}:host ::ng-deep .mapa-radio-button__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-radio-button .mat-mdc-radio-button{margin-right:24px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-form-field{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio{padding:0;flex-shrink:0}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__background,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__outer-circle,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__inner-circle{height:12px;width:12px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mat-mdc-radio-touch-target{height:24px;width:24px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mat-radio-ripple{border-radius:50%;inset:-6px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-label{display:inline-flex;align-items:center;margin:0;min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3$3.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$3.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }] }); }
7148
+ ], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-radio-button__label\">\n {{ element.label }}\n</label>\n<section class=\"mapa-radio-button\">\n <mat-radio-group [formControl]=\"formControl\" [value]=\"selectedOption\" (change)=\"onSelectionChange($event.value)\">\n <mat-radio-button\n *ngFor=\"let option of options\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-radio-button>\n </mat-radio-group>\n</section>\n", styles: [".mapa-radio-button{--mat-radio-selected-focus-icon-color: #ea561d;--mat-radio-selected-hover-icon-color: #ea561d;--mat-radio-selected-icon-color: #ea561d;--mat-radio-selected-pressed-icon-color: #ea561d;--mat-mdc-radio-ripple-color: #ea561d;--mat-mdc-radio-checked-ripple-color: #ea561d;color:#000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:20px}:host ::ng-deep .mapa-radio-button__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-radio-button .mat-mdc-radio-button{margin-right:24px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-form-field{display:inline-flex;align-items:center;gap:8px;vertical-align:middle}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio{padding:0;flex-shrink:0}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__background,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__outer-circle,:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-radio__inner-circle{height:12px;width:12px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mat-mdc-radio-touch-target{height:24px;width:24px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mat-radio-ripple{border-radius:50%;inset:-6px}:host ::ng-deep .mapa-radio-button .mat-mdc-radio-button .mdc-label{display:inline-flex;align-items:center;margin:0;min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i3$2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }] }); }
6885
7149
  }
6886
7150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: RadioButtonComponent, decorators: [{
6887
7151
  type: Component,
@@ -6940,7 +7204,7 @@ class SlideToggleComponent {
6940
7204
  useExisting: forwardRef(() => SlideToggleComponent),
6941
7205
  multi: true,
6942
7206
  },
6943
- ], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-slide-toggle__label\">\n {{ element.label }}\n</label>\n<section class=\"mapa-slide-toggle\">\n <mat-slide-toggle [formControl]=\"formControl\" color=\"primary\">\n {{ element.status ? ( formControl.value ? element.status[1].label :\n element.status[0].label ) :( formControl.value ? \"Ativo\" : \"Inativo\" ) }}\n </mat-slide-toggle>\n</section>\n", styles: [".mapa-slide-toggle{color:#000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:20px}.mapa-slide-toggle__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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i3$4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
7207
+ ], usesOnChanges: true, ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-slide-toggle__label\">\n {{ element.label }}\n</label>\n<section class=\"mapa-slide-toggle\">\n <mat-slide-toggle [formControl]=\"formControl\" color=\"primary\">\n {{ element.status ? ( formControl.value ? element.status[1].label :\n element.status[0].label ) :( formControl.value ? \"Ativo\" : \"Inativo\" ) }}\n </mat-slide-toggle>\n</section>\n", styles: [".mapa-slide-toggle{color:#000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:20px}.mapa-slide-toggle__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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i3$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
6944
7208
  }
6945
7209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: SlideToggleComponent, decorators: [{
6946
7210
  type: Component,
@@ -6983,7 +7247,7 @@ class MapaTextareaComponent {
6983
7247
  useExisting: forwardRef(() => MapaTextareaComponent),
6984
7248
  multi: true,
6985
7249
  },
6986
- ], ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-textarea__label\">\n {{ element.label }}\n</label>\n<mat-form-field\n class=\"mapa-textarea\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <textarea\n *ngIf=\"element.autosize\"\n class=\"mapa-textarea__control mapa-textarea__control--autosize\"\n matInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n [cdkAutosizeMinRows]=\"element.autosizeMinRow\"\n [cdkAutosizeMaxRows]=\"element.autosizeMaxRow\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || ''\"\n ></textarea>\n <textarea\n class=\"mapa-textarea__control mapa-textarea__control--manual\"\n matInput\n *ngIf=\"!element.autosize\"\n [maxlength]=\"element.maxLength\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || ''\"\n ></textarea>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:block}.mapa-textarea{margin-bottom:16px}.mapa-textarea__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-textarea .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .mapa-textarea .mapa-textarea__control{box-sizing:border-box;display:block;margin:0;width:100%}:host ::ng-deep .mapa-textarea .mapa-textarea__control--manual{min-height:99px;resize:vertical!important}:host ::ng-deep .mapa-textarea .mat-mdc-text-field-wrapper{background-color:var(--mapa-color-surface, #ffffff);border-radius:var(--mapa-radius-sm, 12px);min-height:128px;height:auto!important;align-items:stretch!important}:host ::ng-deep .mapa-textarea .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-textarea .mdc-notched-outline{background-color:transparent;border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-textarea .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-textarea .mdc-notched-outline__leading,:host ::ng-deep .mapa-textarea .mdc-notched-outline__notch,:host ::ng-deep .mapa-textarea .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-flex{display:flex;align-items:stretch;flex-direction:column;height:auto!important;min-height:128px;padding:12px 16px!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-infix{display:flex;align-items:stretch;padding:unset!important;border-top:unset!important;height:auto!important;min-height:104px!important;width:100%}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-textarea .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-textarea .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5$1.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }] }); }
7250
+ ], ngImport: i0, template: "<label *ngIf=\"element.label\" class=\"mapa-textarea__label\">\n {{ element.label }}\n</label>\n<mat-form-field\n class=\"mapa-textarea\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <textarea\n *ngIf=\"element.autosize\"\n class=\"mapa-textarea__control mapa-textarea__control--autosize\"\n matInput\n cdkTextareaAutosize\n #autosize=\"cdkTextareaAutosize\"\n [cdkAutosizeMinRows]=\"element.autosizeMinRow\"\n [cdkAutosizeMaxRows]=\"element.autosizeMaxRow\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || ''\"\n ></textarea>\n <textarea\n class=\"mapa-textarea__control mapa-textarea__control--manual\"\n matInput\n *ngIf=\"!element.autosize\"\n [maxlength]=\"element.maxLength\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || ''\"\n ></textarea>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n</mat-form-field>\n", styles: [":host{display:block}.mapa-textarea{margin-bottom:16px}.mapa-textarea__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-textarea .mat-mdc-input-element{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px}:host ::ng-deep .mapa-textarea .mapa-textarea__control{box-sizing:border-box;display:block;margin:0;width:100%}:host ::ng-deep .mapa-textarea .mapa-textarea__control--manual{min-height:99px;resize:vertical!important}:host ::ng-deep .mapa-textarea .mat-mdc-text-field-wrapper{background-color:var(--mapa-color-surface, #ffffff);border-radius:var(--mapa-radius-sm, 12px);min-height:128px;height:auto!important;align-items:stretch!important}:host ::ng-deep .mapa-textarea .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-textarea .mdc-notched-outline{background-color:transparent;border-radius:var(--mapa-radius-sm, 12px)}:host ::ng-deep .mapa-textarea .mdc-text-field--outlined{--mat-form-field-outlined-container-shape: var(--mapa-radius-sm, 12px);--mat-form-field-outlined-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-hover-outline-color: var( --mapa-color-border, rgba(26, 26, 26, .18) );--mat-form-field-outlined-focus-outline-color: var( --mapa-color-accent, #ff560b );--mat-form-field-outlined-outline-width: 1px;--mat-form-field-outlined-focus-outline-width: 1px}:host ::ng-deep .mapa-textarea .mdc-notched-outline__leading,:host ::ng-deep .mapa-textarea .mdc-notched-outline__notch,:host ::ng-deep .mapa-textarea .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-flex{display:flex;align-items:stretch;flex-direction:column;height:auto!important;min-height:128px;padding:12px 16px!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-infix{display:flex;align-items:stretch;padding:unset!important;border-top:unset!important;height:auto!important;min-height:104px!important;width:100%}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-textarea .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-textarea .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error{margin:8px 0 0;padding-left:4px;color:#b54242;font-size:13px;line-height:18px}:host ::ng-deep .mapa-textarea .mat-mdc-form-field-error:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }] }); }
6987
7251
  }
6988
7252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTextareaComponent, decorators: [{
6989
7253
  type: Component,
@@ -7032,7 +7296,7 @@ class MapaFormComponent {
7032
7296
  element.openedChange?.emit(event);
7033
7297
  }
7034
7298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7035
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaFormComponent, isStandalone: true, selector: "mapa-form", inputs: { formGroup: "formGroup", elements: "elements" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<section class=\"mapa-form\">\n @for (element of elements; track element.key) {\n <div class=\"mapa-form__element\">\n <div class=\"mapa-form__element--type\">\n @switch (element.controlType) {\n @case (\"input\") {\n <mapa-input\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (suffix)=\"emitSuffix(element)\"\n ></mapa-input>\n }\n @case (\"dropdown\") {\n <mapa-dropdown\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (openedChange)=\"triggerOpenedChange(element, $event)\"\n ></mapa-dropdown>\n }\n @case (\"dropdown-tree\") {\n <mapa-dropdown-tree\n [formGroup]=\"formGroup\"\n [element]=\"element\"\n ></mapa-dropdown-tree>\n }\n @case (\"datepicker\") {\n <mapa-datepicker\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker>\n }\n @case (\"datepicker-range\") {\n <mapa-datepicker-range\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker-range>\n }\n @case (\"radio-button\") {\n <mapa-radio-button\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (optionSelected)=\"onOptionSelected($event)\"\n ></mapa-radio-button>\n }\n @case (\"slide-toggle\") {\n <mapa-slide-toggle\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-slide-toggle>\n }\n @case (\"textarea\") {\n <mapa-textarea\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-textarea>\n }\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host ::ng-deep .mapa-form{display:flex;flex-direction:column;margin-top:40px;gap:24px;width:100%}:host ::ng-deep .mapa-form__element{width:100%;min-width:0}:host ::ng-deep .mapa-form__element--type{width:100%;min-width:0}:host ::ng-deep .mapa-form mapa-textarea .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-form--inline{display:flex;flex-direction:row;align-items:baseline}:host ::ng-deep .mapa-form--action{margin-left:24px}:host ::ng-deep .mapa-form--action button{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MapaDatepicker, selector: "mapa-datepicker", inputs: ["formGroup", "element"] }, { kind: "component", type: MapaDatepickerRange, selector: "mapa-datepicker-range", inputs: ["formGroup", "element"] }, { kind: "component", type: MapaInputComponent, selector: "mapa-input", inputs: ["formControl", "element", "type"], outputs: ["suffix"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }, { kind: "component", type: MapaDropdownTreeComponent, selector: "mapa-dropdown-tree", inputs: ["formGroup", "element"], outputs: ["openedChange"] }, { kind: "component", type: RadioButtonComponent, selector: "mapa-radio-button", inputs: ["formControl", "element"], outputs: ["optionSelected"] }, { kind: "component", type: SlideToggleComponent, selector: "mapa-slide-toggle", inputs: ["formControl", "element"], outputs: ["optionSelected"] }, { kind: "component", type: MapaTextareaComponent, selector: "mapa-textarea", inputs: ["formControl", "element"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaFormComponent, isStandalone: true, selector: "mapa-form", inputs: { formGroup: "formGroup", elements: "elements" }, outputs: { emitter: "emitter" }, ngImport: i0, template: "<section class=\"mapa-form\">\n @for (element of elements; track element.key) {\n <div class=\"mapa-form__element\">\n <div class=\"mapa-form__element--type\">\n @switch (element.controlType) {\n @case (\"input\") {\n <mapa-input\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (suffix)=\"emitSuffix(element)\"\n ></mapa-input>\n }\n @case (\"dropdown\") {\n <mapa-dropdown\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (openedChange)=\"triggerOpenedChange(element, $event)\"\n ></mapa-dropdown>\n }\n @case (\"dropdown-tree\") {\n <mapa-dropdown-tree\n [formGroup]=\"formGroup\"\n [element]=\"element\"\n ></mapa-dropdown-tree>\n }\n @case (\"datepicker\") {\n <mapa-datepicker\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker>\n }\n @case (\"radio-button\") {\n <mapa-radio-button\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (optionSelected)=\"onOptionSelected($event)\"\n ></mapa-radio-button>\n }\n @case (\"slide-toggle\") {\n <mapa-slide-toggle\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-slide-toggle>\n }\n @case (\"textarea\") {\n <mapa-textarea\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-textarea>\n }\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host ::ng-deep .mapa-form{display:flex;flex-direction:column;margin-top:40px;gap:24px;width:100%}:host ::ng-deep .mapa-form__element{width:100%;min-width:0}:host ::ng-deep .mapa-form__element--type{width:100%;min-width:0}:host ::ng-deep .mapa-form mapa-textarea .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-form--inline{display:flex;flex-direction:row;align-items:baseline}:host ::ng-deep .mapa-form--action{margin-left:24px}:host ::ng-deep .mapa-form--action button{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MapaDatepicker, selector: "mapa-datepicker, mapa-datepicker-range", inputs: ["formGroup", "element"], outputs: ["openedChange"] }, { kind: "component", type: MapaInputComponent, selector: "mapa-input", inputs: ["formControl", "element", "type"], outputs: ["suffix"] }, { kind: "component", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: ["element", "formControl", "formControlSearch", "border"], outputs: ["openedChange"] }, { kind: "component", type: MapaDropdownTreeComponent, selector: "mapa-dropdown-tree", inputs: ["formGroup", "element"], outputs: ["openedChange"] }, { kind: "component", type: RadioButtonComponent, selector: "mapa-radio-button", inputs: ["formControl", "element"], outputs: ["optionSelected"] }, { kind: "component", type: SlideToggleComponent, selector: "mapa-slide-toggle", inputs: ["formControl", "element"], outputs: ["optionSelected"] }, { kind: "component", type: MapaTextareaComponent, selector: "mapa-textarea", inputs: ["formControl", "element"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7036
7300
  }
7037
7301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaFormComponent, decorators: [{
7038
7302
  type: Component,
@@ -7040,14 +7304,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
7040
7304
  CommonModule,
7041
7305
  ReactiveFormsModule,
7042
7306
  MapaDatepicker,
7043
- MapaDatepickerRange,
7044
7307
  MapaInputComponent,
7045
7308
  MapaDropdownComponent,
7046
7309
  MapaDropdownTreeComponent,
7047
7310
  RadioButtonComponent,
7048
7311
  SlideToggleComponent,
7049
7312
  MapaTextareaComponent,
7050
- ], standalone: true, template: "<section class=\"mapa-form\">\n @for (element of elements; track element.key) {\n <div class=\"mapa-form__element\">\n <div class=\"mapa-form__element--type\">\n @switch (element.controlType) {\n @case (\"input\") {\n <mapa-input\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (suffix)=\"emitSuffix(element)\"\n ></mapa-input>\n }\n @case (\"dropdown\") {\n <mapa-dropdown\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (openedChange)=\"triggerOpenedChange(element, $event)\"\n ></mapa-dropdown>\n }\n @case (\"dropdown-tree\") {\n <mapa-dropdown-tree\n [formGroup]=\"formGroup\"\n [element]=\"element\"\n ></mapa-dropdown-tree>\n }\n @case (\"datepicker\") {\n <mapa-datepicker\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker>\n }\n @case (\"datepicker-range\") {\n <mapa-datepicker-range\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker-range>\n }\n @case (\"radio-button\") {\n <mapa-radio-button\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (optionSelected)=\"onOptionSelected($event)\"\n ></mapa-radio-button>\n }\n @case (\"slide-toggle\") {\n <mapa-slide-toggle\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-slide-toggle>\n }\n @case (\"textarea\") {\n <mapa-textarea\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-textarea>\n }\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host ::ng-deep .mapa-form{display:flex;flex-direction:column;margin-top:40px;gap:24px;width:100%}:host ::ng-deep .mapa-form__element{width:100%;min-width:0}:host ::ng-deep .mapa-form__element--type{width:100%;min-width:0}:host ::ng-deep .mapa-form mapa-textarea .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-form--inline{display:flex;flex-direction:row;align-items:baseline}:host ::ng-deep .mapa-form--action{margin-left:24px}:host ::ng-deep .mapa-form--action button{white-space:nowrap}\n"] }]
7313
+ ], standalone: true, template: "<section class=\"mapa-form\">\n @for (element of elements; track element.key) {\n <div class=\"mapa-form__element\">\n <div class=\"mapa-form__element--type\">\n @switch (element.controlType) {\n @case (\"input\") {\n <mapa-input\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (suffix)=\"emitSuffix(element)\"\n ></mapa-input>\n }\n @case (\"dropdown\") {\n <mapa-dropdown\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (openedChange)=\"triggerOpenedChange(element, $event)\"\n ></mapa-dropdown>\n }\n @case (\"dropdown-tree\") {\n <mapa-dropdown-tree\n [formGroup]=\"formGroup\"\n [element]=\"element\"\n ></mapa-dropdown-tree>\n }\n @case (\"datepicker\") {\n <mapa-datepicker\n [formGroup]=\"$any(formGroup)\"\n [element]=\"$any(element)\"\n ></mapa-datepicker>\n }\n @case (\"radio-button\") {\n <mapa-radio-button\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n (optionSelected)=\"onOptionSelected($event)\"\n ></mapa-radio-button>\n }\n @case (\"slide-toggle\") {\n <mapa-slide-toggle\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-slide-toggle>\n }\n @case (\"textarea\") {\n <mapa-textarea\n [formControl]=\"getFormControl(element)\"\n [element]=\"element\"\n ></mapa-textarea>\n }\n }\n </div>\n </div>\n }\n</section>\n", styles: [":host ::ng-deep .mapa-form{display:flex;flex-direction:column;margin-top:40px;gap:24px;width:100%}:host ::ng-deep .mapa-form__element{width:100%;min-width:0}:host ::ng-deep .mapa-form__element--type{width:100%;min-width:0}:host ::ng-deep .mapa-form mapa-textarea .mat-mdc-form-field{width:100%;max-width:100%!important}:host ::ng-deep .mapa-form--inline{display:flex;flex-direction:row;align-items:baseline}:host ::ng-deep .mapa-form--action{margin-left:24px}:host ::ng-deep .mapa-form--action button{white-space:nowrap}\n"] }]
7051
7314
  }], propDecorators: { formGroup: [{
7052
7315
  type: Input
7053
7316
  }], elements: [{
@@ -7185,7 +7448,7 @@ class MapaGroupReportComponent {
7185
7448
  };
7186
7449
  }
7187
7450
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaGroupReportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaGroupReportComponent, isStandalone: true, selector: "mapa-group-report", inputs: { groupReport: "groupReport", showGroupReportGeneral: "showGroupReportGeneral" }, outputs: { onSortChange: "onSortChange" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-group-report\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"handleSortChange($event)\"\n >\n @for (column of columns; track trackColumn($index, column)) {\n <ng-container [matColumnDef]=\"column.key\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!column.sort\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ column: column }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column.width\">\n <div\n class=\"mapa-group-report__column\"\n [class.mapa-group-report__column--center-cell]=\"column.align === 'center' || column.key !== 'name'\"\n >\n <div class=\"mapa-group-report__content\">\n @if (column.key === \"name\") {\n <div class=\"mapa-group-report__content--value\">\n <div class=\"mapa-group-report__content--title\">\n {{ row.name }}<br />\n </div>\n <div class=\"mapa-group-report__content--subtitle\">\n {{ row.cpf }}\n </div>\n </div>\n } @else if (column.key === \"general\") {\n <div class=\"general\">\n {{ getGeneralValue(row) | currency:'':'' }}%\n </div>\n } @else {\n <div class=\"mapa-group-report__hover\">\n <span class=\"mapa-group-report__hover--main\">\n <div\n class=\"mapa__tag--bg\"\n [class.mapa__tag--contrast]=\"getDimensionClassification(row, column.key)?.classificationId === 1\"\n [style.backgroundColor]=\"getDimensionClassification(row, column.key)?.classificationColor\"\n >\n {{\n getDimensionClassification(row, column.key)?.classificationName ||\n \"-\"\n }}\n </div>\n </span>\n <span class=\"mapa-group-report__hover--hidden\">\n {{ getDimensionLabel(row, column.key) }}\n </span>\n </div>\n }\n </div>\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>\n\n<ng-template #tableHeader let-column=\"column\">\n <div class=\"mapa-group-report__header\">\n {{ column.label }}\n @if (column.sort) {\n <div>\n <mat-icon>filter_list</mat-icon>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .mapa-group-report{width:100%;white-space:nowrap}:host ::ng-deep .mapa-group-report__header{font-size:14px!important;justify-content:flex-start!important;gap:10px}:host ::ng-deep .mapa-group-report__header mat-icon{font-size:16px!important;height:16px!important;width:16px!important;margin-left:8px}:host ::ng-deep .mapa-group-report__column{display:flex;align-items:center}:host ::ng-deep .mapa-group-report__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-group-report__content--value{margin-right:40px}:host ::ng-deep .mapa-group-report__content--title{color:#000;text-align:left;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:500;line-height:20px}:host ::ng-deep .mapa-group-report__content--subtitle{color:#77838f;text-align:left;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}:host ::ng-deep .mapa-group-report__hover:hover--main{display:none}:host ::ng-deep .mapa-group-report__hover:hover--hidden{display:flex}:host ::ng-deep .mapa-group-report__hover--hidden{display:none}:host ::ng-deep .mapa-group-report__header{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-group-report .mat-sort-header-arrow{display:none}:host ::ng-deep .mapa-group-report .mat-sort-header-content{width:100%!important}:host ::ng-deep .mapa-group-report .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3$5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: i1$1.CurrencyPipe, name: "currency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7451
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaGroupReportComponent, isStandalone: true, selector: "mapa-group-report", inputs: { groupReport: "groupReport", showGroupReportGeneral: "showGroupReportGeneral" }, outputs: { onSortChange: "onSortChange" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section class=\"mapa-group-report\">\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n (matSortChange)=\"handleSortChange($event)\"\n >\n @for (column of columns; track trackColumn($index, column)) {\n <ng-container [matColumnDef]=\"column.key\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!column.sort\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ column: column }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column.width\">\n <div\n class=\"mapa-group-report__column\"\n [class.mapa-group-report__column--center-cell]=\"column.align === 'center' || column.key !== 'name'\"\n >\n <div class=\"mapa-group-report__content\">\n @if (column.key === \"name\") {\n <div class=\"mapa-group-report__content--value\">\n <div class=\"mapa-group-report__content--title\">\n {{ row.name }}<br />\n </div>\n <div class=\"mapa-group-report__content--subtitle\">\n {{ row.cpf }}\n </div>\n </div>\n } @else if (column.key === \"general\") {\n <div class=\"general\">\n {{ getGeneralValue(row) | currency:'':'' }}%\n </div>\n } @else {\n <div class=\"mapa-group-report__hover\">\n <span class=\"mapa-group-report__hover--main\">\n <div\n class=\"mapa__tag--bg\"\n [class.mapa__tag--contrast]=\"getDimensionClassification(row, column.key)?.classificationId === 1\"\n [style.backgroundColor]=\"getDimensionClassification(row, column.key)?.classificationColor\"\n >\n {{\n getDimensionClassification(row, column.key)?.classificationName ||\n \"-\"\n }}\n </div>\n </span>\n <span class=\"mapa-group-report__hover--hidden\">\n {{ getDimensionLabel(row, column.key) }}\n </span>\n </div>\n }\n </div>\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n</section>\n\n<ng-template #tableHeader let-column=\"column\">\n <div class=\"mapa-group-report__header\">\n {{ column.label }}\n @if (column.sort) {\n <div>\n <mat-icon>filter_list</mat-icon>\n </div>\n }\n </div>\n</ng-template>\n", styles: [":host ::ng-deep .mapa-group-report{width:100%;white-space:nowrap}:host ::ng-deep .mapa-group-report__header{font-size:14px!important;justify-content:flex-start!important;gap:10px}:host ::ng-deep .mapa-group-report__header mat-icon{font-size:16px!important;height:16px!important;width:16px!important;margin-left:8px}:host ::ng-deep .mapa-group-report__column{display:flex;align-items:center}:host ::ng-deep .mapa-group-report__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-group-report__content--value{margin-right:40px}:host ::ng-deep .mapa-group-report__content--title{color:#000;text-align:left;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:500;line-height:20px}:host ::ng-deep .mapa-group-report__content--subtitle{color:#77838f;text-align:left;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}:host ::ng-deep .mapa-group-report__hover:hover--main{display:none}:host ::ng-deep .mapa-group-report__hover:hover--hidden{display:flex}:host ::ng-deep .mapa-group-report__hover--hidden{display:none}:host ::ng-deep .mapa-group-report__header{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-group-report .mat-sort-header-arrow{display:none}:host ::ng-deep .mapa-group-report .mat-sort-header-content{width:100%!important}:host ::ng-deep .mapa-group-report .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3$4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$4.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3$4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: i1$2.CurrencyPipe, name: "currency" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7189
7452
  }
7190
7453
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaGroupReportComponent, decorators: [{
7191
7454
  type: Component,
@@ -7212,13 +7475,13 @@ class IconComponent {
7212
7475
  registerCustomIcons(svg) {
7213
7476
  this.matIconRegistry.addSvgIcon(svg, this.domSanitizer.bypassSecurityTrustResourceUrl(`../../../../assets/${svg}.svg`));
7214
7477
  }
7215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: IconComponent, deps: [{ token: i1$4.MatIconRegistry }, { token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
7216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: IconComponent, isStandalone: true, selector: "mapa-icon", inputs: { svg: "svg" }, usesOnChanges: true, ngImport: i0, template: "<mat-icon *ngIf=\"svg\" [svgIcon]=\"svg\"></mat-icon>\n<mat-icon *ngIf=\"!svg\"><ng-content></ng-content></mat-icon>\n", styles: [".mat-icon{color:#f5704b}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
7478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: IconComponent, deps: [{ token: i2$4.MatIconRegistry }, { token: i1$3.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
7479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: IconComponent, isStandalone: true, selector: "mapa-icon", inputs: { svg: "svg" }, usesOnChanges: true, ngImport: i0, template: "<mat-icon *ngIf=\"svg\" [svgIcon]=\"svg\"></mat-icon>\n<mat-icon *ngIf=\"!svg\"><ng-content></ng-content></mat-icon>\n", styles: [".mat-icon{color:#f5704b}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
7217
7480
  }
7218
7481
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: IconComponent, decorators: [{
7219
7482
  type: Component,
7220
7483
  args: [{ selector: 'mapa-icon', standalone: true, imports: [CommonModule, MatIconModule], template: "<mat-icon *ngIf=\"svg\" [svgIcon]=\"svg\"></mat-icon>\n<mat-icon *ngIf=\"!svg\"><ng-content></ng-content></mat-icon>\n", styles: [".mat-icon{color:#f5704b}\n"] }]
7221
- }], ctorParameters: () => [{ type: i1$4.MatIconRegistry }, { type: i1$2.DomSanitizer }], propDecorators: { svg: [{
7484
+ }], ctorParameters: () => [{ type: i2$4.MatIconRegistry }, { type: i1$3.DomSanitizer }], propDecorators: { svg: [{
7222
7485
  type: Input
7223
7486
  }] } });
7224
7487
 
@@ -7238,7 +7501,7 @@ class MapaMenuComponent {
7238
7501
  this.emitMenu.emit({ action: item.action, data: this.data });
7239
7502
  }
7240
7503
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaMenuComponent, isStandalone: true, selector: "mapa-menu", inputs: { items: "items", data: "data" }, outputs: { emitMenu: "emitMenu" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<mat-menu #menu=\"matMenu\" class=\"mapa-menu\">\n <button\n *ngFor=\"let item of items\"\n mat-menu-item\n (click)=\"clickMenu(item)\"\n class=\"mapa-menu__item\"\n [class.mapa-menu__item--disabled]=\"item.disabled\"\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span>{{item.text}}</span>\n </button>\n</mat-menu>\n\n<img\n class=\"outside-menu-icon\"\n src=\"assets/images/icons/ThreePoints.svg\"\n (click)=\"toggleMenu()\"\n [matMenuTriggerFor]=\"menu\"\n/>\n", styles: [".outside-menu-icon{color:#50575e;display:flex;align-items:center;justify-content:center}.mat-mdc-menu-content mat-icon{color:var(--Grey-Grey-60, #50575e);font-size:16px;line-height:28px}.mapa-menu__item{display:flex;align-items:center}.mapa-menu__item img{margin-right:8px}.mapa-menu__item--disabled{opacity:.45;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
7504
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaMenuComponent, isStandalone: true, selector: "mapa-menu", inputs: { items: "items", data: "data" }, outputs: { emitMenu: "emitMenu" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<mat-menu #menu=\"matMenu\" class=\"mapa-menu\">\n <button\n *ngFor=\"let item of items\"\n mat-menu-item\n (click)=\"clickMenu(item)\"\n class=\"mapa-menu__item\"\n [class.mapa-menu__item--disabled]=\"item.disabled\"\n >\n <mat-icon *ngIf=\"item.icon\">{{item.icon}}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span>{{item.text}}</span>\n </button>\n</mat-menu>\n\n<img\n class=\"outside-menu-icon\"\n src=\"assets/images/icons/ThreePoints.svg\"\n (click)=\"toggleMenu()\"\n [matMenuTriggerFor]=\"menu\"\n/>\n", styles: [".outside-menu-icon{color:#50575e;display:flex;align-items:center;justify-content:center}.mat-mdc-menu-content mat-icon{color:var(--Grey-Grey-60, #50575e);font-size:16px;line-height:28px}.mapa-menu__item{display:flex;align-items:center}.mapa-menu__item img{margin-right:8px}.mapa-menu__item--disabled{opacity:.45;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
7242
7505
  }
7243
7506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaMenuComponent, decorators: [{
7244
7507
  type: Component,
@@ -7267,7 +7530,7 @@ class MapaNavListComponent {
7267
7530
  this.clicked.emit(option);
7268
7531
  }
7269
7532
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaNavListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7270
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaNavListComponent, isStandalone: true, selector: "mapa-nav-list", inputs: { options: "options", label: "label" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<nav class=\"mapa-nav-list\">\n {{ label }}\n <ul>\n <li\n *ngFor=\"let option of options\"\n (click)=\"emit(option)\"\n [class.selected]=\"selected === option\"\n >\n <span>{{ option.value }}</span>\n </li>\n </ul>\n</nav>\n", styles: [".mapa-nav-list{display:flex;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px}.mapa-nav-list ul{list-style-type:none;margin-block-start:0px;margin-block-end:0px;padding-inline-start:0px}.mapa-nav-list ul li{cursor:pointer;display:inline;margin-left:33px}.mapa-nav-list ul li span{padding:0 4px}.mapa-nav-list ul li:hover span,.mapa-nav-list ul li.selected span{border-bottom:4px solid #ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
7533
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaNavListComponent, isStandalone: true, selector: "mapa-nav-list", inputs: { options: "options", label: "label" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<nav class=\"mapa-nav-list\">\n {{ label }}\n <ul>\n <li\n *ngFor=\"let option of options\"\n (click)=\"emit(option)\"\n [class.selected]=\"selected === option\"\n >\n <span>{{ option.value }}</span>\n </li>\n </ul>\n</nav>\n", styles: [".mapa-nav-list{display:flex;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:500;line-height:28px}.mapa-nav-list ul{list-style-type:none;margin-block-start:0px;margin-block-end:0px;padding-inline-start:0px}.mapa-nav-list ul li{cursor:pointer;display:inline;margin-left:33px}.mapa-nav-list ul li span{padding:0 4px}.mapa-nav-list ul li:hover span,.mapa-nav-list ul li.selected span{border-bottom:4px solid #ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
7271
7534
  }
7272
7535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaNavListComponent, decorators: [{
7273
7536
  type: Component,
@@ -7331,7 +7594,7 @@ class ReportItemComponent {
7331
7594
  this.clicked.emit(item.id);
7332
7595
  }
7333
7596
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ReportItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7334
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: ReportItemComponent, isStandalone: true, selector: "mapa-report-item", inputs: { itemData: "itemData", menuItems: "menuItems" }, outputs: { clicked: "clicked", emitMenu: "emitMenu" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"report-item\">\n <div class=\"report-icon\">\n <mat-icon class=\"material-icons\">{{ icon }}</mat-icon>\n </div>\n <div class=\"report-text\">\n <h1>\n {{ description }}\n </h1>\n </div>\n <div class=\"report-button\">\n <div class=\"report-circle\" *ngIf=\"resolvedMenuItems.length > 0\">\n <mat-icon [matMenuTriggerFor]=\"menu\">more_vert</mat-icon>\n <mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let item of resolvedMenuItems\"\n (click)=\"onClick(item.action)\"\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span>{{ item.text }}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n</div>\n", styles: [".report-item{margin:24px 48px;height:161px;display:flex;border-radius:16px;border:1px solid #CDCDCD}.report-item .report-icon{width:25%;border-radius:16px 0 0 16px;background:#fdefea}.report-item .report-icon .mat-icon{width:123px;height:123px;font-size:123px;color:#ea561d;padding:20px 42px}.report-item .report-text{background:var(--GlobalColors-Neutral-20, #F9F9F9);width:100%;padding:0 16px}.report-item .report-text h1{color:#000;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:28px;margin-top:25px}.report-item .report-text li{color:var #000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:10px}.report-item .report-button{width:4vw;align-items:flex-end;border-radius:50%;margin-top:10px}.report-item .report-button .report-circle{background-color:#fff;border-radius:50%;display:flex;align-items:center;margin-right:10px}.report-item .report-button .mat-icon{width:20px;height:20px;font-size:20px;margin:5px;color:#ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
7597
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: ReportItemComponent, isStandalone: true, selector: "mapa-report-item", inputs: { itemData: "itemData", menuItems: "menuItems" }, outputs: { clicked: "clicked", emitMenu: "emitMenu" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"report-item\">\n <div class=\"report-icon\">\n <mat-icon class=\"material-icons\">{{ icon }}</mat-icon>\n </div>\n <div class=\"report-text\">\n <h1>\n {{ description }}\n </h1>\n </div>\n <div class=\"report-button\">\n <div class=\"report-circle\" *ngIf=\"resolvedMenuItems.length > 0\">\n <mat-icon [matMenuTriggerFor]=\"menu\">more_vert</mat-icon>\n <mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n *ngFor=\"let item of resolvedMenuItems\"\n (click)=\"onClick(item.action)\"\n >\n <mat-icon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <img *ngIf=\"item.image\" [src]=\"item.image\" />\n <span>{{ item.text }}</span>\n </button>\n </mat-menu>\n </div>\n </div>\n</div>\n", styles: [".report-item{margin:24px 48px;height:161px;display:flex;border-radius:16px;border:1px solid #CDCDCD}.report-item .report-icon{width:25%;border-radius:16px 0 0 16px;background:#fdefea}.report-item .report-icon .mat-icon{width:123px;height:123px;font-size:123px;color:#ea561d;padding:20px 42px}.report-item .report-text{background:var(--GlobalColors-Neutral-20, #F9F9F9);width:100%;padding:0 16px}.report-item .report-text h1{color:#000;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400;line-height:28px;margin-top:25px}.report-item .report-text li{color:var #000;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:10px}.report-item .report-button{width:4vw;align-items:flex-end;border-radius:50%;margin-top:10px}.report-item .report-button .report-circle{background-color:#fff;border-radius:50%;display:flex;align-items:center;margin-right:10px}.report-item .report-button .mat-icon{width:20px;height:20px;font-size:20px;margin:5px;color:#ea561d}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
7335
7598
  }
7336
7599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: ReportItemComponent, decorators: [{
7337
7600
  type: Component,
@@ -7355,7 +7618,7 @@ class MapaProgressbarComponent {
7355
7618
  this.showInterval = true;
7356
7619
  }
7357
7620
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaProgressbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7358
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaProgressbarComponent, isStandalone: true, selector: "mapa-progressbar", inputs: { data: "data", showInterval: "showInterval" }, ngImport: i0, template: "<div class=\"progress-bar\">\n <div class=\"progress-bar--bg\">\n <div\n class=\"progress-bar--filled\"\n [style.width.%]=\"data.interval\"\n [style.backgroundColor]=\"data.classification?.classificationColor\"\n ></div>\n </div>\n <div class=\"progress-bar--interval\" *ngIf=\"showInterval\">\n {{data.interval}}%\n </div>\n</div>\n", styles: [".progress-bar{display:flex;align-items:center;justify-content:space-between;color:#2e2a2a;font-size:18px;font-style:normal;font-weight:400;width:310px;gap:20px}.progress-bar--bg{position:relative;background-color:#eee;border-radius:6px;height:8px;width:247px}.progress-bar--filled{position:absolute;top:0;left:0;background-color:#c6c6c6;border-radius:6px;height:8px}.progress-bar--interval{color:#2e2a2a;text-align:center;font-size:24px;font-style:normal;font-weight:400;line-height:32px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
7621
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaProgressbarComponent, isStandalone: true, selector: "mapa-progressbar", inputs: { data: "data", showInterval: "showInterval" }, ngImport: i0, template: "<div class=\"progress-bar\">\n <div class=\"progress-bar--bg\">\n <div\n class=\"progress-bar--filled\"\n [style.width.%]=\"data.interval\"\n [style.backgroundColor]=\"data.classification?.classificationColor\"\n ></div>\n </div>\n <div class=\"progress-bar--interval\" *ngIf=\"showInterval\">\n {{data.interval}}%\n </div>\n</div>\n", styles: [".progress-bar{display:flex;align-items:center;justify-content:space-between;color:#2e2a2a;font-size:18px;font-style:normal;font-weight:400;width:310px;gap:20px}.progress-bar--bg{position:relative;background-color:#eee;border-radius:6px;height:8px;width:247px}.progress-bar--filled{position:absolute;top:0;left:0;background-color:#c6c6c6;border-radius:6px;height:8px}.progress-bar--interval{color:#2e2a2a;text-align:center;font-size:24px;font-style:normal;font-weight:400;line-height:32px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
7359
7622
  }
7360
7623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaProgressbarComponent, decorators: [{
7361
7624
  type: Component,
@@ -7482,7 +7745,7 @@ class MapaSvgIconComponent {
7482
7745
  .replaceAll('stroke="#7def7b"', `stroke="${this.color}"`);
7483
7746
  }
7484
7747
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaSvgIconComponent, deps: [{ token: i1$5.HttpClient }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
7485
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaSvgIconComponent, isStandalone: true, selector: "mapa-svg-icon", inputs: { name: "name", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<span *ngIf=\"svgIcon\" class=\"mapa__svg-icon\" [innerHTML]=\"svgIcon | safeHtml\"></span>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
7748
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaSvgIconComponent, isStandalone: true, selector: "mapa-svg-icon", inputs: { name: "name", color: "color" }, usesOnChanges: true, ngImport: i0, template: "<span *ngIf=\"svgIcon\" class=\"mapa__svg-icon\" [innerHTML]=\"svgIcon | safeHtml\"></span>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }] }); }
7486
7749
  }
7487
7750
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaSvgIconComponent, decorators: [{
7488
7751
  type: Component,
@@ -7510,455 +7773,414 @@ function customPaginatorFactory(i18n, injector) {
7510
7773
  return customPaginatorIntl;
7511
7774
  }
7512
7775
 
7776
+ class MapaTableCellDirective {
7777
+ constructor() {
7778
+ this.templateRef = inject(TemplateRef);
7779
+ }
7780
+ static ngTemplateContextGuard(_directive, context) {
7781
+ return true;
7782
+ }
7783
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTableCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7784
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.21", type: MapaTableCellDirective, isStandalone: true, selector: "ng-template[mapaTableCell]", inputs: { columnKey: ["mapaTableCell", "columnKey"] }, ngImport: i0 }); }
7785
+ }
7786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTableCellDirective, decorators: [{
7787
+ type: Directive,
7788
+ args: [{
7789
+ selector: 'ng-template[mapaTableCell]',
7790
+ standalone: true,
7791
+ }]
7792
+ }], propDecorators: { columnKey: [{
7793
+ type: Input,
7794
+ args: [{ required: true, alias: 'mapaTableCell' }]
7795
+ }] } });
7513
7796
  class MapaTableComponent {
7514
- constructor(cdr, i18n) {
7515
- this.cdr = cdr;
7516
- this.i18n = i18n;
7797
+ constructor() {
7517
7798
  this.columns = [];
7518
7799
  this.data = [];
7800
+ this.rowKey = 'id';
7801
+ this.caption = '';
7802
+ this.showSelectAll = true;
7803
+ this.selectionLabelKey = 'name';
7804
+ this.error = false;
7805
+ /** @deprecated Prefer the individual state inputs. */
7806
+ this.status = { loading: false, finished: false };
7807
+ /** @deprecated Prefer `emptyTitle` and `emptySubtitle`. */
7808
+ this.empty = { title: '', subtitle: null };
7519
7809
  this.pageIndex = 1;
7520
7810
  this.pageSize = 5;
7521
7811
  this.totalCount = 0;
7812
+ this.pageSizeOptions = [5, 10, 25, 100];
7813
+ /** @deprecated The paginator derives its pages from `totalCount` and `pageSize`. */
7522
7814
  this.totalPages = 0;
7523
- this.menuItems = [];
7815
+ /** @deprecated Prefer `pagination`. */
7524
7816
  this.showPaginator = true;
7525
- this.status = { loading: false, finished: false };
7526
- this.empty = { title: "", subtitle: null };
7527
7817
  this.paginatorShowFirstButton = true;
7528
7818
  this.paginatorShowLastButton = true;
7529
7819
  this.paginatorRenderButtonsNumber = 2;
7530
7820
  this.paginatorHideDefaultArrows = false;
7531
- this.rowClick = new EventEmitter();
7532
- this.selectedRows = new EventEmitter();
7821
+ this.sortActive = '';
7822
+ this.sortDirection = '';
7823
+ /** @deprecated Prefer projected cells for new integrations. */
7824
+ this.menuItems = [];
7825
+ this.pageChange = new EventEmitter();
7826
+ this.sortChange = new EventEmitter();
7827
+ this.selectionChange = new EventEmitter();
7828
+ this.retry = new EventEmitter();
7829
+ /** @deprecated Prefer `pageChange`. */
7533
7830
  this.onChangePage = new EventEmitter();
7831
+ /** @deprecated Prefer `sortChange`. */
7534
7832
  this.onSortChange = new EventEmitter();
7535
- this.dataSource = new MatTableDataSource([]);
7536
- this.displayedColumns = [];
7537
- this.desktopTableVisible = true;
7833
+ /** @deprecated Prefer `selectionChange`. */
7834
+ this.selectedRows = new EventEmitter();
7835
+ this.rowClick = new EventEmitter();
7836
+ this.projectedCells = contentChildren(MapaTableCellDirective, ...(ngDevMode ? [{ debugName: "projectedCells" }] : []));
7837
+ this.cdr = inject(ChangeDetectorRef);
7538
7838
  this.destroyRef = inject(DestroyRef);
7839
+ this.i18n = inject(MapaI18nService);
7840
+ this.localSort = { active: '', direction: '' };
7841
+ this.filterValue = '';
7539
7842
  }
7540
7843
  get texts() {
7541
7844
  return this.i18n.textsSignal();
7542
7845
  }
7543
- get selectAllLabel() {
7544
- return this.texts.common.selectAll;
7846
+ get visibleData() {
7847
+ this.observeFilterControl();
7848
+ if (!this.filterValue)
7849
+ return this.data;
7850
+ return this.data.filter((row) => this.getFilterValue(row).includes(this.filterValue));
7545
7851
  }
7546
- get paginatorPageIndex() {
7547
- return Math.max(this.pageIndex - 1, 0);
7852
+ get isSelectable() {
7853
+ return this.selectable ?? this.checkbox ?? false;
7548
7854
  }
7549
- get shouldShowPaginator() {
7550
- return this.showPaginator && this.totalCount > this.dataSource.data.length;
7855
+ get isLoading() {
7856
+ return this.loading ?? this.status.loading;
7857
+ }
7858
+ get isFinished() {
7859
+ return this.finished ?? this.status.finished;
7551
7860
  }
7552
7861
  get resolvedEmptyTitle() {
7553
- return this.empty.title || this.texts.table.emptyTitle;
7862
+ return (this.emptyTitle ?? this.empty.title) || this.texts.table.emptyTitle;
7554
7863
  }
7555
7864
  get resolvedEmptySubtitle() {
7556
- return this.empty.subtitle || this.texts.table.emptySubtitle || null;
7865
+ return ((this.emptySubtitle ?? this.empty.subtitle) ||
7866
+ this.texts.table.emptySubtitle ||
7867
+ null);
7557
7868
  }
7558
- get skeletonRows() {
7559
- const rowsCount = Math.max(this.pageSize, 0);
7560
- return Array.from({ length: rowsCount }, (_, index) => index);
7869
+ get resolvedErrorTitle() {
7870
+ return this.errorTitle || this.texts.table.errorTitle;
7561
7871
  }
7562
- ngAfterViewInit() {
7563
- this.dataSource.sort = this.sort;
7564
- this.cdr.markForCheck();
7872
+ get resolvedErrorSubtitle() {
7873
+ return this.errorSubtitle ?? null;
7565
7874
  }
7566
- ngOnChanges(changes) {
7567
- if ((changes["data"] || changes["columns"]) && this.dataSource) {
7568
- if (changes["data"]) {
7569
- this.data = changes["data"].currentValue;
7570
- }
7571
- if (changes["columns"]) {
7572
- this.columns = changes["columns"].currentValue;
7573
- }
7574
- this.refreshTableState();
7575
- if (changes["columns"]) {
7576
- this.rebuildDesktopTable();
7577
- }
7578
- this.cdr.markForCheck();
7579
- }
7580
- if (changes["filterControl"] && this.filterControl) {
7581
- this.setupFilter();
7582
- }
7583
- if (this.hasViewStateChanges(changes)) {
7584
- this.cdr.markForCheck();
7585
- }
7875
+ get resolvedRetryLabel() {
7876
+ return this.retryLabel || this.texts.common.retry;
7586
7877
  }
7587
- hasViewStateChanges(changes) {
7588
- return [
7589
- "status",
7590
- "pageSize",
7591
- "pageIndex",
7592
- "totalCount",
7593
- "totalPages",
7594
- ].some((inputName) => !!changes[inputName]);
7878
+ get zeroBasedPageIndex() {
7879
+ return Math.max(this.pageIndex - 1, 0);
7595
7880
  }
7596
- refreshTableState() {
7597
- this.dataSource = new MatTableDataSource(this.data);
7598
- this.dataSource.sort = this.sort;
7599
- this.displayedColumns = this.columns.map((column) => column.key);
7600
- if (this.filterControl) {
7601
- this.setupFilter();
7602
- this.dataSource.filter = `${this.filterControl.value ?? ""}`.trim().toLowerCase();
7603
- }
7604
- this.table?.renderRows();
7881
+ get shouldShowPaginator() {
7882
+ const enabled = this.pagination ?? this.showPaginator;
7883
+ return (enabled &&
7884
+ !this.isLoading &&
7885
+ !this.error &&
7886
+ this.totalCount > this.data.length);
7605
7887
  }
7606
- rebuildDesktopTable() {
7607
- this.desktopTableVisible = false;
7608
- this.cdr.detectChanges();
7609
- this.desktopTableVisible = true;
7610
- this.cdr.detectChanges();
7888
+ get skeletonRows() {
7889
+ return Array.from({ length: Math.max(this.pageSize, 0) }, (_, index) => index);
7611
7890
  }
7612
- trackColumn(index, column) {
7613
- return `${index}:${column.key}:${column.label}`;
7891
+ skeletonColumnWidth(column) {
7892
+ return (column.width ||
7893
+ (this.columns.length ? `${100 / this.columns.length}%` : '100%'));
7614
7894
  }
7615
- getSkeletonColumnWidth(column) {
7616
- if (column.width) {
7617
- return column.width;
7618
- }
7619
- if (!this.columns.length) {
7620
- return "100%";
7621
- }
7622
- return `${100 / this.columns.length}%`;
7895
+ rowIdentity(row, index) {
7896
+ return this.getRowKey(row) || row || index;
7623
7897
  }
7624
- setupFilter() {
7625
- this.filterControlSubscription?.unsubscribe();
7626
- if (!this.dataSource || !this.filterControl) {
7627
- return;
7628
- }
7629
- this.filterControlSubscription = this.filterControl.valueChanges
7630
- .pipe(takeUntilDestroyed(this.destroyRef))
7631
- .subscribe((value) => {
7632
- this.dataSource.filter = (value ?? "").trim().toLowerCase();
7633
- this.cdr.markForCheck();
7634
- });
7635
- this.dataSource.filterPredicate = (data, filter) => {
7636
- const dataStr = Object.keys(data)
7637
- .reduce((currentTerm, key) => {
7638
- return `${currentTerm}${this.getFilterValue(data[key])} `;
7639
- }, "")
7640
- .trim()
7641
- .toLowerCase();
7642
- return dataStr.indexOf(filter) !== -1;
7643
- };
7898
+ getRowKey(row) {
7899
+ const value = this.getColumnValue(row, this.rowKey);
7900
+ return value == null ? '' : String(value);
7644
7901
  }
7645
- isAllSelected() {
7646
- if (this.selection) {
7647
- const numSelected = this.selection.selected.length;
7648
- const numRows = this.dataSource.data.length;
7649
- return numSelected === numRows;
7902
+ isSelected(row) {
7903
+ if (this.selectedKeys !== undefined) {
7904
+ return new Set(this.selectedKeys.map(String)).has(this.getRowKey(row));
7650
7905
  }
7651
- return false;
7906
+ return this.selection?.isSelected(row) ?? false;
7652
7907
  }
7653
- toggleAllRows() {
7654
- if (this.selection) {
7655
- if (this.isAllSelected()) {
7656
- this.selection.clear();
7657
- this.getSelectedValues();
7658
- }
7659
- else {
7660
- this.dataSource.data.forEach((row) => this.selection?.select(row));
7661
- this.getSelectedValues();
7662
- }
7663
- }
7908
+ allVisibleSelected() {
7909
+ const rows = this.visibleData;
7910
+ return rows.length > 0 && rows.every((row) => this.isSelected(row));
7664
7911
  }
7665
- checkboxLabel(row) {
7666
- if (this.selection) {
7667
- if (!row) {
7668
- return `${this.isAllSelected() ? "deselect" : "select"} all`;
7669
- }
7670
- const rowPosition = typeof row.position === "number" ? row.position + 1 : 1;
7671
- return `${this.selection.isSelected(row) ? "deselect" : "select"} row ${rowPosition}`;
7672
- }
7673
- return "";
7912
+ someVisibleSelected() {
7913
+ const selectedCount = this.visibleData.filter((row) => this.isSelected(row)).length;
7914
+ return selectedCount > 0 && selectedCount < this.visibleData.length;
7674
7915
  }
7675
- sortData(column) {
7676
- if (column.sort) {
7677
- const sort = { active: column.key, direction: "asc" };
7678
- if (this.currentSort &&
7679
- this.currentSort.active === column.key &&
7680
- this.currentSort.direction === "asc") {
7681
- sort.direction = "desc";
7682
- }
7683
- this.currentSort = sort;
7684
- this.sortDataFunction(sort);
7916
+ toggleRow(row, selected) {
7917
+ if (this.selectedKeys !== undefined) {
7918
+ const next = new Set(this.selectedKeys.map(String));
7919
+ const key = this.getRowKey(row);
7920
+ if (!key)
7921
+ return;
7922
+ selected ? next.add(key) : next.delete(key);
7923
+ this.selectionChange.emit({ selectedKeys: Array.from(next) });
7924
+ return;
7685
7925
  }
7686
- }
7687
- sortDataFunction(sort) {
7688
- this.currentSort = sort;
7689
- this.onSortChange.emit(sort);
7690
- }
7691
- emitRowClick(row, action) {
7692
- const rowData = { row, action };
7693
- this.rowClick.emit(rowData);
7694
- }
7695
- toggleSelection(row) {
7696
- if (this.selection) {
7697
- if (this.selection.isSelected(row)) {
7698
- this.selection.deselect(row);
7699
- }
7700
- else {
7701
- this.selection.select(row);
7926
+ if (!this.selection)
7927
+ return;
7928
+ selected
7929
+ ? this.selection.select(row)
7930
+ : this.selection.deselect(row);
7931
+ this.emitLegacySelection();
7932
+ }
7933
+ toggleVisibleRows(selected) {
7934
+ if (this.selectedKeys !== undefined) {
7935
+ const next = new Set(this.selectedKeys.map(String));
7936
+ for (const row of this.visibleData) {
7937
+ const key = this.getRowKey(row);
7938
+ if (!key)
7939
+ continue;
7940
+ selected ? next.add(key) : next.delete(key);
7702
7941
  }
7703
- this.getSelectedValues();
7942
+ this.selectionChange.emit({ selectedKeys: Array.from(next) });
7943
+ return;
7704
7944
  }
7705
- }
7706
- getSelectedValues() {
7707
- if (this.selection) {
7708
- const selectedRows = this.selection.selected.map((row) => {
7709
- return { row };
7710
- });
7711
- this.selectedRows.emit(selectedRows);
7945
+ if (!this.selection)
7946
+ return;
7947
+ for (const row of this.visibleData) {
7948
+ selected
7949
+ ? this.selection.select(row)
7950
+ : this.selection.deselect(row);
7712
7951
  }
7952
+ this.emitLegacySelection();
7713
7953
  }
7714
- generateColumns() {
7715
- const columns = [{ key: "name", label: "", sort: false }];
7716
- this.columns = columns;
7717
- }
7718
- columnExists(columns, key) {
7719
- return columns.some((column) => column.key === key);
7720
- }
7721
- generateGroupData() {
7722
- const result = [];
7723
- this.data = result;
7954
+ selectionLabel(row) {
7955
+ const value = this.getColumnValue(row, this.selectionLabelKey);
7956
+ return value == null
7957
+ ? this.texts.table.selectRow
7958
+ : this.texts.table.selectNamedRow(String(value));
7724
7959
  }
7725
- isBoolean(column, row) {
7726
- return typeof this.getColumnValue(row, column.key) === "boolean";
7960
+ cellTemplate(columnKey) {
7961
+ return (this.projectedCells().find((cell) => cell.columnKey === columnKey)
7962
+ ?.templateRef ?? null);
7727
7963
  }
7728
- isMaskedData(column, row) {
7729
- return !!column.mask && isDateValue(this.getColumnValue(row, column.key));
7964
+ isSortable(column) {
7965
+ return column.sortable ?? column.sort ?? false;
7730
7966
  }
7731
- getValueAsDate(column, row) {
7732
- return parseDateValue(this.getColumnValue(row, column.key)) ?? new Date("");
7967
+ ariaSort(column) {
7968
+ if (!this.isSortable(column))
7969
+ return null;
7970
+ if (this.activeSort() !== column.key)
7971
+ return 'none';
7972
+ if (this.activeDirection() === 'asc')
7973
+ return 'ascending';
7974
+ if (this.activeDirection() === 'desc')
7975
+ return 'descending';
7976
+ return 'none';
7977
+ }
7978
+ sortIcon(column) {
7979
+ if (this.activeSort() !== column.key || !this.activeDirection())
7980
+ return 'unfold_more';
7981
+ return this.activeDirection() === 'asc' ? 'arrow_upward' : 'arrow_downward';
7982
+ }
7983
+ changeSort(column) {
7984
+ if (!this.isSortable(column))
7985
+ return;
7986
+ const current = this.activeSort() === column.key ? this.activeDirection() : '';
7987
+ const direction = current === '' ? 'asc' : current === 'asc' ? 'desc' : '';
7988
+ const active = direction ? column.key : '';
7989
+ this.localSort = { active, direction };
7990
+ this.sortChange.emit(this.localSort);
7991
+ this.onSortChange.emit(this.localSort);
7992
+ }
7993
+ handlePage(event) {
7994
+ this.pageChange.emit({
7995
+ pageIndex: event.pageIndex + 1,
7996
+ pageSize: event.pageSize,
7997
+ });
7998
+ this.onChangePage.emit(event);
7733
7999
  }
7734
- getCellClass(column, row) {
7735
- if (column.key === "name" ||
7736
- column.key === "cpf" ||
7737
- column.key === "general") {
7738
- return "";
7739
- }
7740
- try {
7741
- return `classification`;
7742
- }
7743
- catch {
7744
- return "";
7745
- }
8000
+ cellValue(row, column) {
8001
+ const value = this.getColumnValue(row, column.key);
8002
+ if (value == null || value === '')
8003
+ return column.fallback ?? '-';
8004
+ if (typeof value === 'boolean')
8005
+ return value ? 'true' : 'false';
8006
+ if (typeof value === 'string' || typeof value === 'number')
8007
+ return String(value);
8008
+ return '';
7746
8009
  }
7747
- getCellBg(column, row) {
7748
- if (column.key === "name" ||
7749
- column.key === "cpf" ||
7750
- column.key === "general") {
7751
- return "";
7752
- }
7753
- try {
7754
- return this.getRecordStringValue(this.getColumnRecord(row, column.key), "classificationColor");
7755
- }
7756
- catch {
7757
- return "";
8010
+ dateValue(row, column) {
8011
+ const value = this.getColumnValue(row, column.key);
8012
+ if (typeof value === 'string') {
8013
+ const dateOnly = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value.trim());
8014
+ if (dateOnly) {
8015
+ const [, year, month, day] = dateOnly;
8016
+ const localDate = new Date(Number(year), Number(month) - 1, Number(day));
8017
+ return Number.isNaN(localDate.getTime()) ? null : localDate;
8018
+ }
7758
8019
  }
8020
+ return isDateValue(value) ? parseDateValue(value) : null;
7759
8021
  }
7760
- getCellTextColor(column, row) {
7761
- if (column.key === "name" ||
7762
- column.key === "cpf" ||
7763
- column.key === "general") {
7764
- return "";
7765
- }
7766
- try {
7767
- return this.getRecordStringValue(this.getColumnRecord(row, column.key), "classificationTextColor");
7768
- }
7769
- catch {
7770
- return "";
7771
- }
8022
+ dateFormat(column) {
8023
+ return column.dateFormat ?? column.mask ?? null;
7772
8024
  }
7773
- getValue(row) {
7774
- try {
7775
- if (row.value !== undefined && row.value !== null && row.value !== "") {
7776
- return row.value + "%";
7777
- }
7778
- return "-";
7779
- }
7780
- catch {
7781
- return "-";
7782
- }
8025
+ statusLabel(column, row) {
8026
+ const labels = column.status?.label;
8027
+ if (!labels)
8028
+ return column.fallback ?? '-';
8029
+ return labels[this.statusIndex(row, column.key)] ?? column.fallback ?? '-';
7783
8030
  }
7784
- changePage(event) {
7785
- this.onChangePage.emit(event);
8031
+ statusBackground(column, row) {
8032
+ return column.status?.color?.[this.statusIndex(row, column.key)] ?? null;
7786
8033
  }
7787
- toggleMenu() {
7788
- this.trigger.openMenu();
8034
+ statusTextColor(column, row) {
8035
+ return (column.status?.textColor?.[this.statusIndex(row, column.key)] ?? null);
7789
8036
  }
7790
- getBackgroundColor(column, row) {
7791
- return column.status?.color?.[this.getStatusIndex(row, column.key)] || "";
8037
+ cellClasses(column, row) {
8038
+ const record = this.asRow(row);
8039
+ const cellClass = record.styleClass?.key === column.key ? record.styleClass.class : '';
8040
+ return [
8041
+ cellClass || column.class || record.rowStyleClass || '',
8042
+ column.collapse
8043
+ ? `mapa-data-table__cell--${this.normalizeCollapse(column.collapse)}`
8044
+ : '',
8045
+ ].filter(Boolean);
7792
8046
  }
7793
- getTextColor(column, row) {
7794
- return column.status?.textColor?.[this.getStatusIndex(row, column.key)] || "";
8047
+ isCenterAligned(column) {
8048
+ return column.align === 'center';
7795
8049
  }
7796
- hasCustomClass(column, row, key) {
7797
- if (column?.class ||
7798
- row?.rowStyleClass ||
7799
- this.hasCellStyleClass(row, key)) {
7800
- return true;
7801
- }
7802
- return false;
8050
+ isEndAligned(column) {
8051
+ return ['end', 'right', 'flex-end'].includes(column.align ?? '');
7803
8052
  }
7804
- getCustomClass(column, row, key) {
7805
- if (this.hasCellStyleClass(row, key)) {
7806
- return this.getCellStyleClass(row, column.key);
7807
- }
7808
- else if (column?.class) {
7809
- return column.class;
7810
- }
7811
- else if (row?.rowStyleClass) {
7812
- return row.rowStyleClass;
7813
- }
7814
- return "";
8053
+ getActionItems(row) {
8054
+ const rowActions = this.getMenuActionItems(row, 'actions');
8055
+ return rowActions.length ? rowActions : (this.actions ?? []);
7815
8056
  }
7816
- hasCellStyleClass(row, key) {
7817
- return row.styleClass?.key === key;
8057
+ getMenuItems(row) {
8058
+ const rowItems = this.getMenuActionItems(row, 'menu');
8059
+ return rowItems.length ? rowItems : this.menuItems;
7818
8060
  }
7819
- getCellStyleClass(row, key) {
7820
- return row.styleClass?.key === key ? row.styleClass?.class : "";
8061
+ emitAction(row, item, event) {
8062
+ event.stopPropagation();
8063
+ if (item.disabled)
8064
+ return;
8065
+ this.rowClick.emit({ row: this.asRow(row), action: item.action });
7821
8066
  }
7822
- handleMenu(selected) {
7823
- if (this.isTableRowData(selected.data)) {
7824
- this.emitRowClick(selected.data, selected.action);
7825
- }
8067
+ emitRowInteraction(event, row) {
8068
+ if (!this.rowClick.observed || this.isInteractiveTarget(event.target))
8069
+ return;
8070
+ this.rowClick.emit({ row: this.asRow(row), action: '' });
7826
8071
  }
7827
- hasIndividualMenu(row) {
7828
- return this.getMenuItems(row).length > 0;
8072
+ emitRowKeyboard(event, row) {
8073
+ if (!this.rowClick.observed || !['Enter', ' '].includes(event.key))
8074
+ return;
8075
+ event.preventDefault();
8076
+ this.rowClick.emit({ row: this.asRow(row), action: '' });
7829
8077
  }
7830
- getMenuItems(row) {
7831
- return this.getMenuActionItems(row, "menu");
8078
+ route(item) {
8079
+ return item.route ?? null;
7832
8080
  }
7833
- getActionItems(row) {
7834
- const rowActions = this.getMenuActionItems(row, "actions");
7835
- return rowActions.length > 0 ? rowActions : (this.actions ?? []);
8081
+ queryParams(item) {
8082
+ return item.queryParams ?? null;
7836
8083
  }
7837
- getStatusLabel(column, row) {
7838
- const labels = column.status?.label;
7839
- if (!labels) {
7840
- return "-";
7841
- }
7842
- const value = this.getColumnValue(row, column.key);
7843
- if (typeof value === "boolean") {
7844
- return labels[value ? 1 : 0] ?? "-";
7845
- }
7846
- if (typeof value === "number") {
7847
- return labels[value] ?? "-";
7848
- }
7849
- if (typeof value === "string") {
7850
- const numericIndex = Number(value);
7851
- return Number.isNaN(numericIndex) ? labels[0] ?? "-" : labels[numericIndex] ?? "-";
7852
- }
7853
- return "-";
8084
+ svgName(svg) {
8085
+ return svg.split('/').pop()?.split('.')[0] || '';
7854
8086
  }
7855
- getCellContent(row, key) {
7856
- const value = this.getColumnValue(row, key);
7857
- if (value === null || value === undefined) {
7858
- return "";
7859
- }
7860
- if (typeof value === "string" || typeof value === "number") {
7861
- return `${value}`;
7862
- }
7863
- if (typeof value === "boolean") {
7864
- return value ? "true" : "false";
7865
- }
7866
- return "";
8087
+ activeSort() {
8088
+ return this.sortActive || this.localSort.active;
7867
8089
  }
7868
- hasActionsColumn() {
7869
- return this.columns.some((column) => column.key.includes('actions'));
8090
+ activeDirection() {
8091
+ return this.sortDirection || this.localSort.direction;
7870
8092
  }
7871
- hasMenuColumn() {
7872
- return this.columns.some((column) => column.key.includes('menu'));
8093
+ emitLegacySelection() {
8094
+ if (!this.selection)
8095
+ return;
8096
+ this.selectedRows.emit(this.selection.selected.map((row) => ({ row })));
7873
8097
  }
7874
- setSvgName(image) {
7875
- return image.split('/').pop()?.split('.')[0] || '';
8098
+ observeFilterControl() {
8099
+ if (this.observedFilter === this.filterControl)
8100
+ return;
8101
+ this.filterSubscription?.unsubscribe();
8102
+ this.observedFilter = this.filterControl;
8103
+ this.filterValue = `${this.filterControl?.value ?? ''}`
8104
+ .trim()
8105
+ .toLowerCase();
8106
+ this.filterSubscription = this.filterControl?.valueChanges
8107
+ .pipe(takeUntilDestroyed(this.destroyRef))
8108
+ .subscribe((value) => {
8109
+ this.filterValue = `${value ?? ''}`.trim().toLowerCase();
8110
+ this.cdr.markForCheck();
8111
+ });
7876
8112
  }
7877
8113
  getColumnValue(row, key) {
8114
+ if (!row || typeof row !== 'object')
8115
+ return null;
7878
8116
  return row[key];
7879
8117
  }
7880
- getColumnRecord(row, key) {
7881
- const value = this.getColumnValue(row, key);
7882
- if (!value || typeof value !== "object" || Array.isArray(value)) {
7883
- return undefined;
7884
- }
7885
- return value;
7886
- }
7887
- getRecordStringValue(value, key) {
7888
- const recordValue = value?.[key];
7889
- return typeof recordValue === "string" ? recordValue : "";
7890
- }
7891
- getStatusIndex(row, key) {
8118
+ statusIndex(row, key) {
7892
8119
  const value = this.getColumnValue(row, key);
7893
- if (typeof value === "boolean") {
8120
+ if (typeof value === 'boolean')
7894
8121
  return value ? 1 : 0;
7895
- }
7896
- if (typeof value === "number") {
8122
+ if (typeof value === 'number')
7897
8123
  return value;
7898
- }
7899
- if (typeof value === "string") {
7900
- const parsedValue = Number(value);
7901
- return Number.isNaN(parsedValue) ? 0 : parsedValue;
8124
+ if (typeof value === 'string') {
8125
+ const parsed = Number(value);
8126
+ return Number.isNaN(parsed) ? 0 : parsed;
7902
8127
  }
7903
8128
  return 0;
7904
8129
  }
8130
+ normalizeCollapse(collapse) {
8131
+ return collapse === 'nowrap' ? 'no-wrap' : collapse;
8132
+ }
7905
8133
  getFilterValue(value) {
7906
- if (value === null || value === undefined) {
7907
- return "";
7908
- }
7909
- if (typeof value === "string" ||
7910
- typeof value === "number" ||
7911
- typeof value === "boolean") {
7912
- return `${value}`.toLowerCase();
7913
- }
7914
- if (Array.isArray(value)) {
7915
- return value.map((item) => this.getFilterValue(item)).join(" ");
7916
- }
7917
- if (typeof value === "object") {
7918
- return Object.values(value).map((item) => this.getFilterValue(item)).join(" ");
7919
- }
7920
- return "";
8134
+ if (value == null)
8135
+ return '';
8136
+ if (['string', 'number', 'boolean'].includes(typeof value))
8137
+ return String(value).toLowerCase();
8138
+ if (Array.isArray(value))
8139
+ return value.map((item) => this.getFilterValue(item)).join(' ');
8140
+ if (typeof value === 'object')
8141
+ return Object.values(value)
8142
+ .map((item) => this.getFilterValue(item))
8143
+ .join(' ');
8144
+ return '';
7921
8145
  }
7922
8146
  getMenuActionItems(row, key) {
7923
- const value = row?.[key];
7924
- if (!Array.isArray(value)) {
8147
+ const value = this.getColumnValue(row, key);
8148
+ if (!Array.isArray(value))
7925
8149
  return [];
7926
- }
7927
- return value.filter((item) => this.isMenuItem(item));
8150
+ return value.filter((item) => !!item &&
8151
+ typeof item === 'object' &&
8152
+ 'action' in item &&
8153
+ 'text' in item);
7928
8154
  }
7929
- isMenuItem(value) {
7930
- return (!!value &&
7931
- typeof value === "object" &&
7932
- "action" in value &&
7933
- "text" in value);
8155
+ asRow(row) {
8156
+ return row;
7934
8157
  }
7935
- isTableRowData(value) {
7936
- return !!value && typeof value === "object" && !Array.isArray(value);
8158
+ isInteractiveTarget(target) {
8159
+ return (target instanceof Element &&
8160
+ !!target.closest("a, button, input, select, textarea, [role='button'], [role='menuitem']"));
7937
8161
  }
7938
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: MapaI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
7939
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaTableComponent, isStandalone: true, selector: "mapa-table", inputs: { columns: "columns", data: "data", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", totalPages: "totalPages", checkbox: "checkbox", selection: "selection", actions: "actions", filterControl: "filterControl", menuItems: "menuItems", menu: "menu", showPaginator: "showPaginator", status: "status", empty: "empty", paginatorShowFirstButton: "paginatorShowFirstButton", paginatorShowLastButton: "paginatorShowLastButton", paginatorRenderButtonsNumber: "paginatorRenderButtonsNumber", paginatorHideDefaultArrows: "paginatorHideDefaultArrows" }, outputs: { rowClick: "rowClick", selectedRows: "selectedRows", onChangePage: "onChangePage", onSortChange: "onSortChange" }, providers: [
8162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.21", type: MapaTableComponent, isStandalone: true, selector: "mapa-table", inputs: { columns: "columns", data: "data", rowKey: "rowKey", caption: "caption", selectable: "selectable", showSelectAll: "showSelectAll", selectedKeys: "selectedKeys", selectionLabelKey: "selectionLabelKey", checkbox: "checkbox", selection: "selection", loading: "loading", finished: "finished", error: "error", emptyTitle: "emptyTitle", emptySubtitle: "emptySubtitle", errorTitle: "errorTitle", errorSubtitle: "errorSubtitle", retryLabel: "retryLabel", status: "status", empty: "empty", pagination: "pagination", pageIndex: "pageIndex", pageSize: "pageSize", totalCount: "totalCount", pageSizeOptions: "pageSizeOptions", totalPages: "totalPages", showPaginator: "showPaginator", paginatorShowFirstButton: "paginatorShowFirstButton", paginatorShowLastButton: "paginatorShowLastButton", paginatorRenderButtonsNumber: "paginatorRenderButtonsNumber", paginatorHideDefaultArrows: "paginatorHideDefaultArrows", sortActive: "sortActive", sortDirection: "sortDirection", actions: "actions", menuItems: "menuItems", menu: "menu", filterControl: "filterControl" }, outputs: { pageChange: "pageChange", sortChange: "sortChange", selectionChange: "selectionChange", retry: "retry", onChangePage: "onChangePage", onSortChange: "onSortChange", selectedRows: "selectedRows", rowClick: "rowClick" }, providers: [
7940
8164
  {
7941
8165
  provide: MatPaginatorIntl,
7942
8166
  useFactory: customPaginatorFactory,
7943
8167
  deps: [MapaI18nService, Injector],
7944
8168
  },
7945
- ], viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, read: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (status.loading) {\n <section class=\"mapa-table mapa-table__skeleton\" aria-hidden=\"true\">\n <div class=\"mapa-table__skeleton-content mapa__card mapa__card--show-on-desktop\">\n <div class=\"mapa-table__skeleton-header\">\n @for (column of columns; track trackColumn($index, column)) {\n <div\n class=\"mapa-table__skeleton-cell mapa-table__skeleton-cell--header\"\n [style.width]=\"getSkeletonColumnWidth(column)\"\n ></div>\n }\n </div>\n @for (rowIndex of skeletonRows; track rowIndex) {\n <div class=\"mapa-table__skeleton-row\">\n @for (column of columns; track trackColumn($index, column)) {\n <div\n class=\"mapa-table__skeleton-cell\"\n [style.width]=\"getSkeletonColumnWidth(column)\"\n ></div>\n }\n </div>\n }\n </div>\n </section>\n} @else if (dataSource.data.length > 0) {\n <section class=\"mapa-table\">\n <div class=\"mapa-table--show-on-mobile\">\n @if (checkbox) {\n <div class=\"mapa-table__select-all\">\n @if (selection) {\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n > {{ selectAllLabel }}</mat-checkbox>\n }\n </div>\n }\n @for (row of dataSource.data; track row) {\n <div>\n <div class=\"mapa-table__card mapa__card\">\n @for (column of columns; track trackColumn($index, column); let isFirst = $first) {\n <div [ngClass]=\"'mapa-table__card--column-' + column.key\">\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n }\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n @if (column?.status?.color) {\n <div\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n } @else {\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n }\n </div>\n </div>\n } @else {\n @if (column.key === \"actions\" && actions) {\n <div>\n @for (item of getActionItems(row); track item) {\n @if (item.route) {\n <a [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n </a>\n } @else {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n }\n }\n </div>\n }\n\n @if (column.key === \"menu\") {\n @if (hasIndividualMenu(row)) {\n <div class=\"mapa-table__column--menu\">\n @for (item of getMenuItems(row); track item) {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--menu-item\"\n [class.mapa-table__column--menu-item-disabled]=\"item.disabled\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n }\n </div>\n } @else {\n <div class=\"mapa-table__column--menu\">\n @for (item of menuItems; track item) {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--menu-item\"\n [class.mapa-table__column--menu-item-disabled]=\"item.disabled\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <mapa-svg-icon [name]=\"setSvgName(item.image)\"></mapa-svg-icon>\n }\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n }\n </div>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"mapa-table--show-on-desktop\">\n @if (desktopTableVisible) {\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n [matSortActive]=\"currentSort?.active ?? ''\"\n [matSortDirection]=\"currentSort?.direction ?? ''\"\n (matSortChange)=\"sortDataFunction($event)\"\n >\n @for (column of columns; track trackColumn($index, column); let isFirst = $first) {\n <ng-container [matColumnDef]=\"column.key\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n @if (column?.status?.color) {\n <div\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n } @else {\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n }\n </div>\n </div>\n } @else {\n @if (column.key === \"actions\" && actions) {\n <div class=\"mapa-table__column--actions\">\n @for (item of getActionItems(row); track item) {\n @if (item.route) {\n <a [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n </a>\n } @else {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n }\n }\n </div>\n }\n @if (column.key === \"menu\") {\n <div class=\"mapa-table__column--menu\">\n @if (hasIndividualMenu(row)) {\n <mapa-menu\n [items]=\"getMenuItems(row)\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n } @else if (menuItems.length > 0) {\n <mapa-menu\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n }\n </div>\n }\n }\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n }\n </div>\n\n @if (shouldShowPaginator) {\n <section>\n <mat-paginator\n class=\"mapa-table__paginator\"\n appBubblePagination\n [appCustomLength]=\"totalCount\"\n [bubblePageIndex]=\"paginatorPageIndex\"\n [pageIndex]=\"paginatorPageIndex\"\n [showFirstButton]=\"paginatorShowFirstButton\"\n [showLastButton]=\"paginatorShowLastButton\"\n [renderButtonsNumber]=\"paginatorRenderButtonsNumber\"\n [hideDefaultArrows]=\"paginatorHideDefaultArrows\"\n [bubblePageSize]=\"pageSize\"\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n }\n </section>\n} @else if (status.finished && dataSource.data.length === 0) {\n <section class=\"mapa-table\">\n <mapa-empty\n [title]=\"resolvedEmptyTitle\"\n [subtitle]=\"resolvedEmptySubtitle\"\n ></mapa-empty>\n </section>\n}\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n @if (isFirst && checkbox) {\n @if (selection) {\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n }\n }\n <div>\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n </div>\n @if (column.key !== \"actions\" && column.key !== \"menu\" && column.sort) {\n <div class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n }\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n @if (isFirst && checkbox) {\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n }\n @if (isMaskedData(column, row)) {\n {{ getValueAsDate(column, row) | date: column.mask }}\n } @else if (column.status) {\n <span [innerHTML]=\"getStatusLabel(column, row) | safeHtml\"></span>\n } @else {\n <span [innerHTML]=\"getCellContent(row, column.key) | safeHtml\"></span>\n }\n</ng-template>\n", styles: [":host ::ng-deep .mapa-table .mat-mdc-table{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);width:100%}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-checkbox{margin:6px 8px 0 0;padding:0}:host ::ng-deep .mapa-table td.mat-mdc-cell{padding:16px 0}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-row .mat-mdc-cell{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;color:#50575e}:host ::ng-deep .mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-header-cell{border:none;border-bottom:1px solid #eee;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:600;color:#50575e}:host ::ng-deep .mapa-table .mat-mdc-row,:host ::ng-deep .mapa-table .mdc-data-table__content{--mat-table-row-item-label-text-font: var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)}:host ::ng-deep .mapa-table .mat-mdc-header-cell,:host ::ng-deep .mapa-table .mdc-data-table__content{--mat-table-row-item-label-text-font: var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif)}:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{background-color:transparent;border-color:#b6b6b6}:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#ea561d;border-color:#ea561d}:host ::ng-deep .mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}:host ::ng-deep .mapa-table__paginator .mat-paginator-container,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-container{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;justify-content:flex-start}:host ::ng-deep .mapa-table__paginator .mat-paginator-page-size,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-page-size{margin-right:10vw}:host ::ng-deep .mapa-table__paginator .custom-paginator-container{justify-content:flex-end}:host ::ng-deep .mapa-table__paginator .g-bubble-container{display:flex;align-items:center;justify-content:flex-end;gap:8px}:host ::ng-deep .mapa-table__paginator .g-bubble{border-radius:4px;outline:none;border:none;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;background:transparent;color:#0000008a;cursor:pointer;margin:.4em 0;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mapa-table__paginator .g-bubble:hover{background-color:#dfe3e6}:host ::ng-deep .mapa-table__paginator .g-bubble__active{background-color:#ea561d;color:#fff}:host ::ng-deep .mapa-table__paginator .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-page-size-label,:host ::ng-deep .mapa-table__paginator .custom-paginator-counter{color:#0000008a}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-previous,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-next{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;color:#999}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-previous[disabled],:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-next[disabled]{color:#dfe3e6}:host ::ng-deep .hidden{display:none}:host ::ng-deep .mapa-table{width:100%;white-space:nowrap;overflow-x:auto}:host ::ng-deep .mapa-table .mat-mdc-icon-button{width:unset!important;height:unset!important;line-height:unset!important;justify-content:flex-start}:host ::ng-deep .mapa-table .mat-mdc-icon-button .mat-mdc-button-touch-target,:host ::ng-deep .mapa-table .mat-mdc-icon-button .mdc-button__label{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%!important}@media(min-width:1201px){:host ::ng-deep .mapa-table--show-on-mobile{display:none}:host ::ng-deep .mapa-table--show-on-desktop{display:block}}@media(max-width:1200px){:host ::ng-deep .mapa-table--show-on-mobile{padding:20px}:host ::ng-deep .mapa-table--show-on-mobile .mapa__card{width:unset!important}:host ::ng-deep .mapa-table--show-on-desktop{display:none}}:host ::ng-deep .mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media(max-width:1200px){:host ::ng-deep .mapa-table__checkbox{margin-right:8px}:host ::ng-deep .mapa-table__checkbox--header{padding-left:24px}}:host ::ng-deep .mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}:host ::ng-deep .mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}:host ::ng-deep .mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}:host ::ng-deep .mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}:host ::ng-deep .mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}:host ::ng-deep .mapa-table__card--column{padding:16px 0}:host ::ng-deep .mapa-table__column{padding:15px;align-items:center;display:flex}:host ::ng-deep .mapa-table__column--actions{display:flex}:host ::ng-deep .mapa-table__column--actions .mat-icon{color:#ea561d!important}:host ::ng-deep .mapa-table__column--actions-item{display:flex!important;align-items:center;gap:8px}:host ::ng-deep .mapa-table__column--actions-item span{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:500;line-height:20px}:host ::ng-deep .mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}:host ::ng-deep .mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}:host ::ng-deep .mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}:host ::ng-deep .mapa-table__column--menu-item img{margin-right:8px}:host ::ng-deep .mapa-table__column--menu-item button{color:#ea561d!important}:host ::ng-deep .mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}:host ::ng-deep .mapa-table__column--menu-item-disabled{opacity:.45;cursor:not-allowed}:host ::ng-deep .mapa-table__column--header{width:100%}:host ::ng-deep .mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}:host ::ng-deep .mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}:host ::ng-deep .mapa-table__column--status-round{border-radius:50px}:host ::ng-deep .mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host ::ng-deep .mapa-table__column--no-wrap{white-space:nowrap}:host ::ng-deep .mapa-table__column--wrap{white-space:pre-wrap}:host ::ng-deep .mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-table .mat-sort-header-arrow{color:transparent}:host ::ng-deep .mapa-table .mat-sort-header-content{width:100%!important}:host ::ng-deep .mapa-table .mat-sort-header-content mat-icon{margin-left:24px}:host ::ng-deep .mapa-table .mat-mdc-cell{padding:0 10px!important}:host ::ng-deep .mapa-table .mat-mdc-header-cell{padding:0 24px!important}:host ::ng-deep .mapa-table .mat-mdc-table{width:100%;overflow-x:auto}:host ::ng-deep .mapa-table__skeleton-content{padding:24px}:host ::ng-deep .mapa-table__skeleton-header,:host ::ng-deep .mapa-table__skeleton-row{display:flex;gap:12px}:host ::ng-deep .mapa-table__skeleton-header{margin-bottom:16px}:host ::ng-deep .mapa-table__skeleton-row{margin-bottom:12px}:host ::ng-deep .mapa-table__skeleton-cell{height:16px;border-radius:8px;background:linear-gradient(90deg,#f0f2f4 25%,#e6e9ec,#f0f2f4 75%);background-size:200% 100%;animation:mapa-table-skeleton-shimmer 1.2s infinite linear}:host ::ng-deep .mapa-table__skeleton-cell--header{height:20px}@media(max-width:1000px){:host ::ng-deep .mapa-table .mat-mdc-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}:host ::ng-deep .mapa-table .mat-mdc-paginator-range-label{padding:16px 0;text-align:center;width:100%}:host ::ng-deep .mapa-table .mat-mdc-paginator-container{justify-content:center}}:host ::ng-deep .mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}:host ::ng-deep .mapa-table .roundCell{border-radius:10px}:host ::ng-deep .mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}:host ::ng-deep .mapa-table .name{color:#181818;text-align:left;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:400;line-height:20px}:host ::ng-deep .mapa-table .cpf{color:#77838f;text-align:left;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}:host ::ng-deep .mapa-table .label_report{color:#181818;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}@keyframes mapa-table-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: MapaMenuComponent, selector: "mapa-menu", inputs: ["items", "data"], outputs: ["emitMenu"] }, { kind: "component", type: MapaSvgIconComponent, selector: "mapa-svg-icon", inputs: ["name", "color"] }, { kind: "component", type: MapaEmptyStateComponent, selector: "mapa-empty", inputs: ["title", "subtitle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$3.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: MatIconModule }, { kind: "component", type: i1$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3$5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3$5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3$5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3$5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3$5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3$5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3$5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3$5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3$5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3$5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: BubblePaginationDirective, selector: "[appBubblePagination], [appStylePaginatorMv]", inputs: ["showFirstButton", "showLastButton", "renderButtonsNumber", "appCustomLength", "hideDefaultArrows", "bubblePageIndex", "bubblePageSize"], outputs: ["pageIndexChangeEmitter"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8169
+ ], queries: [{ propertyName: "projectedCells", predicate: MapaTableCellDirective, isSignal: true }], ngImport: i0, template: "<section\n class=\"mapa-data-table\"\n [class.mapa-data-table--selectable]=\"isSelectable\"\n>\n <div class=\"mapa-data-table__frame\">\n @if (isLoading) {\n <table class=\"mapa-data-table__table\" aria-hidden=\"true\">\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"mapa-data-table__selection-cell\"></th>\n }\n @for (column of columns; track column.key) {\n <th [style.width]=\"skeletonColumnWidth(column)\">\n {{ column.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of skeletonRows; track row) {\n <tr>\n @if (isSelectable) {\n <td class=\"mapa-data-table__selection-cell\">\n <span\n class=\"mapa-data-table__skeleton mapa-data-table__skeleton--checkbox\"\n ></span>\n </td>\n }\n @for (column of columns; track column.key) {\n <td [style.width]=\"skeletonColumnWidth(column)\">\n <span class=\"mapa-data-table__skeleton\"></span>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n <span class=\"mapa-data-table__sr-only\" role=\"status\">\n {{ texts.table.loading }}\n </span>\n } @else if (error) {\n <div class=\"mapa-data-table__state\" role=\"alert\">\n <strong>{{ resolvedErrorTitle }}</strong>\n @if (resolvedErrorSubtitle) {\n <span>{{ resolvedErrorSubtitle }}</span>\n }\n @if (retry.observed) {\n <button type=\"button\" (click)=\"retry.emit()\">\n {{ resolvedRetryLabel }}\n </button>\n }\n </div>\n } @else if (visibleData.length > 0) {\n <table class=\"mapa-data-table__table\">\n @if (caption) {\n <caption class=\"mapa-data-table__sr-only\">\n {{\n caption\n }}\n </caption>\n }\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"mapa-data-table__selection-cell\">\n @if (showSelectAll) {\n <mat-checkbox\n color=\"primary\"\n [checked]=\"allVisibleSelected()\"\n [indeterminate]=\"someVisibleSelected()\"\n [aria-label]=\"texts.table.selectAllVisible\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleVisibleRows($event.checked)\"\n />\n } @else {\n <span class=\"mapa-data-table__sr-only\">\n {{ texts.table.selectionColumn }}\n </span>\n }\n </th>\n }\n @for (column of columns; track column.key) {\n <th\n [class.mapa-data-table__cell--center]=\"isCenterAligned(column)\"\n [class.mapa-data-table__cell--end]=\"isEndAligned(column)\"\n [style.width]=\"column.width ?? null\"\n [attr.aria-sort]=\"ariaSort(column)\"\n >\n @if (isSortable(column)) {\n <button\n type=\"button\"\n class=\"mapa-data-table__sort\"\n (click)=\"changeSort(column)\"\n >\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n <mat-icon aria-hidden=\"true\">{{\n sortIcon(column)\n }}</mat-icon>\n </button>\n } @else {\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of visibleData; track rowIdentity(row, $index)) {\n <tr\n [class.mapa-data-table__row--selected]=\"isSelected(row)\"\n [class.mapa-data-table__row--interactive]=\"rowClick.observed\"\n [attr.tabindex]=\"rowClick.observed ? 0 : null\"\n (click)=\"emitRowInteraction($event, row)\"\n (keydown)=\"emitRowKeyboard($event, row)\"\n >\n @if (isSelectable) {\n <td class=\"mapa-data-table__selection-cell\">\n <mat-checkbox\n color=\"primary\"\n [checked]=\"isSelected(row)\"\n [aria-label]=\"selectionLabel(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row, $event.checked)\"\n />\n </td>\n }\n @for (column of columns; track column.key) {\n <td\n [attr.data-label]=\"column.label\"\n [class.mapa-data-table__cell--center]=\"\n isCenterAligned(column)\n \"\n [class.mapa-data-table__cell--end]=\"isEndAligned(column)\"\n [style.width]=\"column.width ?? null\"\n >\n <div\n class=\"mapa-data-table__cell-content\"\n [ngClass]=\"cellClasses(column, row)\"\n >\n @if (cellTemplate(column.key); as template) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n row,\n column,\n }\"\n ></ng-container>\n } @else if (column.key === \"actions\") {\n <div class=\"mapa-data-table__actions\">\n @for (item of getActionItems(row); track item) {\n @if (route(item); as actionRoute) {\n <a\n class=\"mapa-data-table__action\"\n [class.mapa-data-table__action--disabled]=\"\n item.disabled\n \"\n [attr.aria-disabled]=\"\n item.disabled ? 'true' : null\n \"\n [attr.tabindex]=\"item.disabled ? -1 : null\"\n [title]=\"item.text\"\n [routerLink]=\"item.disabled ? null : actionRoute\"\n [queryParams]=\"queryParams(item)\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"svgName(item.svg)\" />\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n } @else {\n <span class=\"mapa-data-table__sr-only\">{{\n item.text\n }}</span>\n }\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"mapa-data-table__action\"\n [disabled]=\"item.disabled\"\n [title]=\"item.text\"\n (click)=\"emitAction(row, item, $event)\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"svgName(item.svg)\" />\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n } @else {\n <span class=\"mapa-data-table__sr-only\">{{\n item.text\n }}</span>\n }\n </button>\n }\n }\n </div>\n } @else if (column.key === \"menu\") {\n @if (getMenuItems(row).length > 0) {\n <button\n type=\"button\"\n class=\"mapa-data-table__menu-trigger\"\n [matMenuTriggerFor]=\"rowMenu\"\n [attr.aria-label]=\"column.label\"\n (click)=\"$event.stopPropagation()\"\n >\n <mat-icon aria-hidden=\"true\">more_vert</mat-icon>\n </button>\n <mat-menu #rowMenu=\"matMenu\">\n @for (item of getMenuItems(row); track item) {\n @if (route(item); as menuRoute) {\n <a\n mat-menu-item\n [disabled]=\"item.disabled\"\n [routerLink]=\"item.disabled ? null : menuRoute\"\n [queryParams]=\"queryParams(item)\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n <span>{{ item.text }}</span>\n </a>\n } @else {\n <button\n mat-menu-item\n [disabled]=\"item.disabled\"\n (click)=\"emitAction(row, item, $event)\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n <span>{{ item.text }}</span>\n </button>\n }\n }\n </mat-menu>\n }\n } @else if (dateFormat(column); as format) {\n @if (dateValue(row, column); as value) {\n {{ value | date: format }}\n } @else {\n {{ column.fallback ?? \"-\" }}\n }\n } @else if (column.status) {\n <span\n class=\"mapa-data-table__status\"\n [class.mapa-data-table__status--round]=\"\n column.status.style === 'round'\n \"\n [style.background-color]=\"statusBackground(column, row)\"\n [style.color]=\"statusTextColor(column, row)\"\n [innerHTML]=\"statusLabel(column, row) | safeHtml\"\n ></span>\n } @else {\n <span\n [innerHTML]=\"cellValue(row, column) | safeHtml\"\n ></span>\n }\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n } @else if (isFinished) {\n <div class=\"mapa-data-table__state\">\n <strong>{{ resolvedEmptyTitle }}</strong>\n @if (resolvedEmptySubtitle) {\n <span>{{ resolvedEmptySubtitle }}</span>\n }\n </div>\n }\n </div>\n\n @if (shouldShowPaginator) {\n <mat-paginator\n class=\"mapa-data-table__paginator\"\n appBubblePagination\n [appCustomLength]=\"totalCount\"\n [bubblePageIndex]=\"zeroBasedPageIndex\"\n [pageIndex]=\"zeroBasedPageIndex\"\n [showFirstButton]=\"paginatorShowFirstButton\"\n [showLastButton]=\"paginatorShowLastButton\"\n [renderButtonsNumber]=\"paginatorRenderButtonsNumber\"\n [hideDefaultArrows]=\"paginatorHideDefaultArrows\"\n [bubblePageSize]=\"pageSize\"\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"handlePage($event)\"\n />\n }\n</section>\n", styles: [":host{display:block}.mapa-data-table{color:var(--mapa-color-text, #1a1a1a);font-family:var(--mapa-font-body, Asap, sans-serif)}.mapa-data-table__frame{background:var(--mapa-color-surface, #fff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:14px;overflow-x:auto}.mapa-data-table__table{border-collapse:collapse;width:100%}.mapa-data-table th,.mapa-data-table td{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));box-sizing:border-box;font-family:inherit;font-size:13px;font-weight:400;padding:.875rem 1rem;text-align:left;vertical-align:middle}.mapa-data-table th{background:var(--mapa-color-surface-muted, #fafbfc);color:var(--mapa-color-text-subtle, #555);font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.mapa-data-table td{color:var(--mapa-color-text, #1a1a1a)}.mapa-data-table tbody tr:last-child td{border-bottom:0}.mapa-data-table tbody tr:hover,.mapa-data-table__row--selected{background:var(--mapa-color-primary-soft, #fffaf6)}.mapa-data-table__row--interactive{cursor:pointer}.mapa-data-table__row--interactive:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:-3px}.mapa-data-table__selection-cell{width:4.5rem}.mapa-data-table__cell--center{text-align:center}.mapa-data-table__cell--end{text-align:right}.mapa-data-table__cell-content{min-width:0}.mapa-data-table__cell--ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapa-data-table__cell--no-wrap{white-space:nowrap}.mapa-data-table__cell--wrap{white-space:pre-wrap}.mapa-data-table__sort{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.25rem;padding:0;text-transform:inherit}.mapa-data-table__sort:focus-visible,.mapa-data-table__state button:focus-visible,.mapa-data-table__action:focus-visible,.mapa-data-table__menu-trigger:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:3px}.mapa-data-table__sort mat-icon{font-size:1rem;height:1rem;width:1rem}.mapa-data-table__actions{align-items:center;display:inline-flex;gap:.5rem}.mapa-data-table__action,.mapa-data-table__menu-trigger{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--mapa-color-primary-dark, #cf482b);cursor:pointer;display:inline-flex;font:inherit;gap:.375rem;justify-content:center;min-height:36px;min-width:36px;padding:.375rem;text-decoration:none}.mapa-data-table__action:hover,.mapa-data-table__menu-trigger:hover{background:var(--mapa-color-primary-soft, #fffaf6)}.mapa-data-table__action:disabled,.mapa-data-table__action--disabled{cursor:not-allowed;opacity:.45}.mapa-data-table__action img,.mapa-data-table__menu-trigger img{height:1.25rem;width:1.25rem}.mapa-data-table__status{border-radius:4px;display:inline-flex;padding:.25rem .5rem;white-space:nowrap}.mapa-data-table__status--round{border-radius:999px}.mapa-data-table__state{align-items:center;color:var(--mapa-color-text-subtle, #555);display:flex;flex-direction:column;gap:.625rem;justify-content:center;min-height:150px;padding:1.5rem;text-align:center}.mapa-data-table__state strong{color:var(--mapa-color-text, #1a1a1a)}.mapa-data-table__state button{background:var(--mapa-color-surface-warm, #fffaf6);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:10px;color:var(--mapa-color-text, #1a1a1a);cursor:pointer;font:inherit;min-height:40px;padding:.5rem .875rem}.mapa-data-table__skeleton{animation:mapa-data-table-shimmer 1.2s linear infinite;background:linear-gradient(90deg,#f0f2f4 25%,#e6e9ec,#f0f2f4 75%);background-size:200% 100%;border-radius:8px;display:block;height:1rem;max-width:14rem}.mapa-data-table__skeleton--checkbox{border-radius:3px;height:1.125rem;width:1.125rem}.mapa-data-table__sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host ::ng-deep .mapa-data-table__paginator{background:transparent;color:var(--mapa-color-text-subtle, #555);font-family:var(--mapa-font-body, Asap, sans-serif)}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container{justify-content:space-between;min-height:72px}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-page-size{margin-right:min(10vw,8rem)}:host ::ng-deep .mapa-data-table__paginator .custom-paginator-container,:host ::ng-deep .mapa-data-table__paginator .g-bubble-container{align-items:center;display:flex;justify-content:flex-end}:host ::ng-deep .mapa-data-table__paginator .g-bubble-container{gap:.5rem}:host ::ng-deep .mapa-data-table__paginator .g-bubble{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--mapa-color-text-subtle, #555);cursor:pointer;display:flex;font:inherit;justify-content:center;min-height:24px;min-width:24px;padding:1px 6px}:host ::ng-deep .mapa-data-table__paginator .g-bubble:hover{background:var(--mapa-color-border-soft, rgba(26, 26, 26, .08))}:host ::ng-deep .mapa-data-table__paginator .g-bubble:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:2px}:host ::ng-deep .mapa-data-table__paginator .g-bubble__active{background:var(--mapa-color-primary-dark, #cf482b);color:var(--mapa-color-surface, #fff)}:host ::ng-deep .mapa-data-table__paginator .custom-paginator-counter{color:var(--mapa-color-text-subtle, #555);margin:0 .25rem 0 .625rem;white-space:nowrap}@media(max-width:760px){.mapa-data-table__frame{border:0;overflow:visible}.mapa-data-table thead{display:none}.mapa-data-table tbody{display:grid;gap:.75rem}.mapa-data-table tr{border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr);padding:.75rem}.mapa-data-table--selectable tr{grid-template-columns:auto minmax(0,1fr)}.mapa-data-table td{border:0;grid-column:1;padding:.375rem .5rem;text-align:left;width:auto}.mapa-data-table--selectable td:not(.mapa-data-table__selection-cell){grid-column:2}.mapa-data-table td:not(.mapa-data-table__selection-cell):before{color:var(--mapa-color-text-subtle, #555);content:attr(data-label);display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase}.mapa-data-table__selection-cell{grid-column:1;grid-row:1/span 20;width:auto}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container,:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-range-actions{justify-content:center}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container{gap:.75rem;padding:.75rem 0}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-page-size{margin-right:0}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-range-label{padding:.5rem 0;text-align:center;width:100%}}@media(prefers-reduced-motion:reduce){.mapa-data-table__skeleton{animation:none}}@keyframes mapa-data-table-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "directive", type: BubblePaginationDirective, selector: "[appBubblePagination], [appStylePaginatorMv]", inputs: ["showFirstButton", "showLastButton", "renderButtonsNumber", "appCustomLength", "hideDefaultArrows", "bubblePageIndex", "bubblePageSize"], outputs: ["pageIndexChangeEmitter"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$3.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: MatIconModule }, { kind: "component", type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3$5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i1$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MapaSvgIconComponent, selector: "mapa-svg-icon", inputs: ["name", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7946
8170
  }
7947
8171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaTableComponent, decorators: [{
7948
8172
  type: Component,
7949
- args: [{ selector: "mapa-table", changeDetection: ChangeDetectionStrategy.OnPush, imports: [
7950
- CommonModule,
7951
- RouterModule,
7952
- MapaMenuComponent,
7953
- MapaSvgIconComponent,
7954
- MapaEmptyStateComponent,
7955
- MatButtonModule,
8173
+ args: [{ selector: 'mapa-table', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
8174
+ BubblePaginationDirective,
8175
+ DatePipe,
7956
8176
  MatCheckboxModule,
7957
8177
  MatIconModule,
8178
+ MatMenuModule,
7958
8179
  MatPaginatorModule,
7959
- MatSortModule,
7960
- MatTableModule,
7961
- BubblePaginationDirective,
8180
+ MapaSvgIconComponent,
8181
+ NgClass,
8182
+ NgTemplateOutlet,
8183
+ RouterLink,
7962
8184
  SafeHtmlPipe,
7963
8185
  ], providers: [
7964
8186
  {
@@ -7966,37 +8188,61 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
7966
8188
  useFactory: customPaginatorFactory,
7967
8189
  deps: [MapaI18nService, Injector],
7968
8190
  },
7969
- ], standalone: true, template: "@if (status.loading) {\n <section class=\"mapa-table mapa-table__skeleton\" aria-hidden=\"true\">\n <div class=\"mapa-table__skeleton-content mapa__card mapa__card--show-on-desktop\">\n <div class=\"mapa-table__skeleton-header\">\n @for (column of columns; track trackColumn($index, column)) {\n <div\n class=\"mapa-table__skeleton-cell mapa-table__skeleton-cell--header\"\n [style.width]=\"getSkeletonColumnWidth(column)\"\n ></div>\n }\n </div>\n @for (rowIndex of skeletonRows; track rowIndex) {\n <div class=\"mapa-table__skeleton-row\">\n @for (column of columns; track trackColumn($index, column)) {\n <div\n class=\"mapa-table__skeleton-cell\"\n [style.width]=\"getSkeletonColumnWidth(column)\"\n ></div>\n }\n </div>\n }\n </div>\n </section>\n} @else if (dataSource.data.length > 0) {\n <section class=\"mapa-table\">\n <div class=\"mapa-table--show-on-mobile\">\n @if (checkbox) {\n <div class=\"mapa-table__select-all\">\n @if (selection) {\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n > {{ selectAllLabel }}</mat-checkbox>\n }\n </div>\n }\n @for (row of dataSource.data; track row) {\n <div>\n <div class=\"mapa-table__card mapa__card\">\n @for (column of columns; track trackColumn($index, column); let isFirst = $first) {\n <div [ngClass]=\"'mapa-table__card--column-' + column.key\">\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <strong\n class=\"mapa-table__card--header\"\n [class.mapa-table__checkbox--header]=\"isFirst && checkbox\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox: false }\"\n class=\"hidden\"\n ></div>\n </strong>\n }\n <div\n class=\"mapa-table__card--column\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n @if (column?.status?.color) {\n <div\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n } @else {\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n }\n </div>\n </div>\n } @else {\n @if (column.key === \"actions\" && actions) {\n <div>\n @for (item of getActionItems(row); track item) {\n @if (item.route) {\n <a [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n </a>\n } @else {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n }\n }\n </div>\n }\n\n @if (column.key === \"menu\") {\n @if (hasIndividualMenu(row)) {\n <div class=\"mapa-table__column--menu\">\n @for (item of getMenuItems(row); track item) {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--menu-item\"\n [class.mapa-table__column--menu-item-disabled]=\"item.disabled\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n }\n </div>\n } @else {\n <div class=\"mapa-table__column--menu\">\n @for (item of menuItems; track item) {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--menu-item\"\n [class.mapa-table__column--menu-item-disabled]=\"item.disabled\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <mapa-svg-icon [name]=\"setSvgName(item.image)\"></mapa-svg-icon>\n }\n <span class=\"mapa-table__column--menu-item-text\">{{ item.text }}</span>\n </button>\n }\n </div>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <div class=\"mapa-table--show-on-desktop\">\n @if (desktopTableVisible) {\n <table\n mat-table\n [dataSource]=\"dataSource\"\n matSort\n [matSortActive]=\"currentSort?.active ?? ''\"\n [matSortDirection]=\"currentSort?.direction ?? ''\"\n (matSortChange)=\"sortDataFunction($event)\"\n >\n @for (column of columns; track trackColumn($index, column); let isFirst = $first) {\n <ng-container [matColumnDef]=\"column.key\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header\n [disabled]=\"!(column.key !== 'actions' ? column.sort : null)\"\n >\n <div\n [ngTemplateOutlet]=\"tableHeader\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox }\"\n ></div>\n </th>\n <td mat-cell *matCellDef=\"let row\" [style.width]=\"column?.width\">\n <div\n class=\"mapa-table__column\"\n (click)=\"emitRowClick(row, '')\"\n [class.mapa-table__column--center-cell]=\"column?.align === 'center'\"\n >\n @if (column.key !== \"actions\" && column.key !== \"menu\") {\n <div class=\"mapa-table__content\">\n <div\n [style.width]=\"column?.width\"\n [class.mapa-table__column--ellipsis]=\"column?.collapse === 'overflow'\"\n [class.mapa-table__column--no-wrap]=\"column?.collapse === 'no-wrap'\"\n [class.mapa-table__column--wrap]=\"column?.collapse === 'wrap'\"\n [ngClass]=\"[hasCustomClass(column, row, column.key) ? getCustomClass(column, row, column.key) : '']\"\n >\n @if (column?.status?.color) {\n <div\n class=\"mapa-table__column--status\"\n [style.backgroundColor]=\"getBackgroundColor(column, row)\"\n [style.color]=\"getTextColor(column, row)\"\n [class.mapa-table__column--status-round]=\"column.status?.style == 'round'\"\n >\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n </div>\n } @else {\n <div\n [ngTemplateOutlet]=\"tableContent\"\n [ngTemplateOutletContext]=\"{ selection, column, isFirst, checkbox, row }\"\n ></div>\n }\n </div>\n </div>\n } @else {\n @if (column.key === \"actions\" && actions) {\n <div class=\"mapa-table__column--actions\">\n @for (item of getActionItems(row); track item) {\n @if (item.route) {\n <a [href]=\"item.route\" [routerLink]=\"item.route\">\n <button\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n </a>\n } @else {\n <button\n (click)=\"handleMenu({ data: row, action: item.action })\"\n class=\"mapa-table__column--actions-item\"\n [title]=\"item.text\"\n mat-icon-button\n >\n @if (item.icon) {\n <mat-icon>{{ item.icon }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"setSvgName(item.svg)\"></mapa-svg-icon>\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n }\n </button>\n }\n }\n </div>\n }\n @if (column.key === \"menu\") {\n <div class=\"mapa-table__column--menu\">\n @if (hasIndividualMenu(row)) {\n <mapa-menu\n [items]=\"getMenuItems(row)\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n } @else if (menuItems.length > 0) {\n <mapa-menu\n [items]=\"menuItems\"\n [data]=\"row\"\n (emitMenu)=\"handleMenu($event)\"\n ></mapa-menu>\n }\n </div>\n }\n }\n </div>\n </td>\n </ng-container>\n }\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr\n mat-row\n *matRowDef=\"let row; columns: displayedColumns;\"\n class=\"row-hover\"\n ></tr>\n </table>\n }\n </div>\n\n @if (shouldShowPaginator) {\n <section>\n <mat-paginator\n class=\"mapa-table__paginator\"\n appBubblePagination\n [appCustomLength]=\"totalCount\"\n [bubblePageIndex]=\"paginatorPageIndex\"\n [pageIndex]=\"paginatorPageIndex\"\n [showFirstButton]=\"paginatorShowFirstButton\"\n [showLastButton]=\"paginatorShowLastButton\"\n [renderButtonsNumber]=\"paginatorRenderButtonsNumber\"\n [hideDefaultArrows]=\"paginatorHideDefaultArrows\"\n [bubblePageSize]=\"pageSize\"\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"[5, 10, 25, 100]\"\n (page)=\"changePage($event)\"\n ></mat-paginator>\n </section>\n }\n </section>\n} @else if (status.finished && dataSource.data.length === 0) {\n <section class=\"mapa-table\">\n <mapa-empty\n [title]=\"resolvedEmptyTitle\"\n [subtitle]=\"resolvedEmptySubtitle\"\n ></mapa-empty>\n </section>\n}\n\n<ng-template\n #tableHeader\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n>\n @if (isFirst && checkbox) {\n @if (selection) {\n <mat-checkbox\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (click)=\"$event.stopPropagation()\"\n color=\"primary\"\n ></mat-checkbox>\n }\n }\n <div>\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n </div>\n @if (column.key !== \"actions\" && column.key !== \"menu\" && column.sort) {\n <div class=\"mapa-table--show-on-desktop\">\n <mat-icon>filter_list</mat-icon>\n </div>\n }\n</ng-template>\n\n<ng-template\n #tableContent\n let-selection=\"selection\"\n let-column=\"column\"\n let-isFirst=\"isFirst\"\n let-checkbox=\"checkbox\"\n let-row=\"row\"\n>\n @if (isFirst && checkbox) {\n <mat-checkbox\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection?.toggle(row) : null; getSelectedValues()\"\n [checked]=\"selection?.isSelected(row)\"\n color=\"primary\"\n class=\"mapa-table__checkbox\"\n >\n </mat-checkbox>\n }\n @if (isMaskedData(column, row)) {\n {{ getValueAsDate(column, row) | date: column.mask }}\n } @else if (column.status) {\n <span [innerHTML]=\"getStatusLabel(column, row) | safeHtml\"></span>\n } @else {\n <span [innerHTML]=\"getCellContent(row, column.key) | safeHtml\"></span>\n }\n</ng-template>\n", styles: [":host ::ng-deep .mapa-table .mat-mdc-table{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);width:100%}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-checkbox{margin:6px 8px 0 0;padding:0}:host ::ng-deep .mapa-table td.mat-mdc-cell{padding:16px 0}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-row .mat-mdc-cell{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400;color:#50575e}:host ::ng-deep .mapa-table .row-hover:hover{box-shadow:0 2px 4px #00000021;outline:1px solid rgba(238,238,238,.93);cursor:pointer}:host ::ng-deep .mapa-table .mat-mdc-table .mat-mdc-header-cell{border:none;border-bottom:1px solid #eee;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:600;color:#50575e}:host ::ng-deep .mapa-table .mat-mdc-row,:host ::ng-deep .mapa-table .mdc-data-table__content{--mat-table-row-item-label-text-font: var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)}:host ::ng-deep .mapa-table .mat-mdc-header-cell,:host ::ng-deep .mapa-table .mdc-data-table__content{--mat-table-row-item-label-text-font: var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif)}:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{background-color:transparent;border-color:#b6b6b6}:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,:host ::ng-deep .mapa-table .mat-mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{background-color:#ea561d;border-color:#ea561d}:host ::ng-deep .mapa-table .mat-mdc-paginator-container{display:flex;justify-content:space-between}:host ::ng-deep .mapa-table__paginator .mat-paginator-container,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-container{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;justify-content:flex-start}:host ::ng-deep .mapa-table__paginator .mat-paginator-page-size,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-page-size{margin-right:10vw}:host ::ng-deep .mapa-table__paginator .custom-paginator-container{justify-content:flex-end}:host ::ng-deep .mapa-table__paginator .g-bubble-container{display:flex;align-items:center;justify-content:flex-end;gap:8px}:host ::ng-deep .mapa-table__paginator .g-bubble{border-radius:4px;outline:none;border:none;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;background:transparent;color:#0000008a;cursor:pointer;margin:.4em 0;font-size:14px;min-width:24px;width:auto;min-height:24px;max-height:24px;padding:1px 6px;display:flex;align-items:center;justify-content:center}:host ::ng-deep .mapa-table__paginator .g-bubble:hover{background-color:#dfe3e6}:host ::ng-deep .mapa-table__paginator .g-bubble__active{background-color:#ea561d;color:#fff}:host ::ng-deep .mapa-table__paginator .custom-paginator-counter{white-space:nowrap;margin:0 4px 0 10px!important}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-page-size-label,:host ::ng-deep .mapa-table__paginator .custom-paginator-counter{color:#0000008a}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-previous,:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-next{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;color:#999}:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-previous[disabled],:host ::ng-deep .mapa-table__paginator .mat-mdc-paginator-navigation-next[disabled]{color:#dfe3e6}:host ::ng-deep .hidden{display:none}:host ::ng-deep .mapa-table{width:100%;white-space:nowrap;overflow-x:auto}:host ::ng-deep .mapa-table .mat-mdc-icon-button{width:unset!important;height:unset!important;line-height:unset!important;justify-content:flex-start}:host ::ng-deep .mapa-table .mat-mdc-icon-button .mat-mdc-button-touch-target,:host ::ng-deep .mapa-table .mat-mdc-icon-button .mdc-button__label{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%!important}@media(min-width:1201px){:host ::ng-deep .mapa-table--show-on-mobile{display:none}:host ::ng-deep .mapa-table--show-on-desktop{display:block}}@media(max-width:1200px){:host ::ng-deep .mapa-table--show-on-mobile{padding:20px}:host ::ng-deep .mapa-table--show-on-mobile .mapa__card{width:unset!important}:host ::ng-deep .mapa-table--show-on-desktop{display:none}}:host ::ng-deep .mapa-table__select-all{display:flex;align-items:center;padding:16px 24px;font-size:12px;text-transform:uppercase}@media(max-width:1200px){:host ::ng-deep .mapa-table__checkbox{margin-right:8px}:host ::ng-deep .mapa-table__checkbox--header{padding-left:24px}}:host ::ng-deep .mapa-table__card{position:relative;padding:24px;display:flex;flex-direction:row;flex-wrap:wrap;gap:16px}:host ::ng-deep .mapa-table__card--floating-content{display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:8px}:host ::ng-deep .mapa-table__card--floating-actions{position:absolute;bottom:16px;right:16px;color:#ea561d}:host ::ng-deep .mapa-table__card--header{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;font-size:12px;text-transform:uppercase}:host ::ng-deep .mapa-table__card--header mat-icon{height:16px;width:16px;font-size:16px}:host ::ng-deep .mapa-table__card--column{padding:16px 0}:host ::ng-deep .mapa-table__column{padding:15px;align-items:center;display:flex}:host ::ng-deep .mapa-table__column--actions{display:flex}:host ::ng-deep .mapa-table__column--actions .mat-icon{color:#ea561d!important}:host ::ng-deep .mapa-table__column--actions-item{display:flex!important;align-items:center;gap:8px}:host ::ng-deep .mapa-table__column--actions-item span{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:500;line-height:20px}:host ::ng-deep .mapa-table__column--menu{display:flex;align-items:center;justify-content:center;gap:8px}:host ::ng-deep .mapa-table__column--menu .mapa-table__column--menu-item-text{display:flex;align-items:center;justify-content:center;font-size:12px;line-height:16px!important}:host ::ng-deep .mapa-table__column--menu-item{display:flex;align-items:center;width:unset!important;height:unset!important}:host ::ng-deep .mapa-table__column--menu-item img{margin-right:8px}:host ::ng-deep .mapa-table__column--menu-item button{color:#ea561d!important}:host ::ng-deep .mapa-table__column--menu-item button span{font-size:12px;text-transform:uppercase;display:flex}:host ::ng-deep .mapa-table__column--menu-item-disabled{opacity:.45;cursor:not-allowed}:host ::ng-deep .mapa-table__column--header{width:100%}:host ::ng-deep .mapa-table__column--header .mat-icon{cursor:pointer;position:relative;bottom:-3px;margin:0 7px;font-size:14px;height:14px;width:14px}:host ::ng-deep .mapa-table__column--status{margin:auto;text-align:center;width:min-content;border-radius:4px;padding:4px 8px}:host ::ng-deep .mapa-table__column--status-round{border-radius:50px}:host ::ng-deep .mapa-table__column--ellipsis{display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host ::ng-deep .mapa-table__column--no-wrap{white-space:nowrap}:host ::ng-deep .mapa-table__column--wrap{white-space:pre-wrap}:host ::ng-deep .mapa-table__column--center-cell{display:flex;align-items:center;justify-content:center;width:100%}:host ::ng-deep .mapa-table .mat-sort-header-arrow{color:transparent}:host ::ng-deep .mapa-table .mat-sort-header-content{width:100%!important}:host ::ng-deep .mapa-table .mat-sort-header-content mat-icon{margin-left:24px}:host ::ng-deep .mapa-table .mat-mdc-cell{padding:0 10px!important}:host ::ng-deep .mapa-table .mat-mdc-header-cell{padding:0 24px!important}:host ::ng-deep .mapa-table .mat-mdc-table{width:100%;overflow-x:auto}:host ::ng-deep .mapa-table__skeleton-content{padding:24px}:host ::ng-deep .mapa-table__skeleton-header,:host ::ng-deep .mapa-table__skeleton-row{display:flex;gap:12px}:host ::ng-deep .mapa-table__skeleton-header{margin-bottom:16px}:host ::ng-deep .mapa-table__skeleton-row{margin-bottom:12px}:host ::ng-deep .mapa-table__skeleton-cell{height:16px;border-radius:8px;background:linear-gradient(90deg,#f0f2f4 25%,#e6e9ec,#f0f2f4 75%);background-size:200% 100%;animation:mapa-table-skeleton-shimmer 1.2s infinite linear}:host ::ng-deep .mapa-table__skeleton-cell--header{height:20px}@media(max-width:1000px){:host ::ng-deep .mapa-table .mat-mdc-paginator-range-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap}:host ::ng-deep .mapa-table .mat-mdc-paginator-range-label{padding:16px 0;text-align:center;width:100%}:host ::ng-deep .mapa-table .mat-mdc-paginator-container{justify-content:center}}:host ::ng-deep .mapa-table .classification{width:40px;height:40px;border-radius:24px;display:flex;justify-content:center;align-items:center}:host ::ng-deep .mapa-table .roundCell{border-radius:10px}:host ::ng-deep .mapa-table .general{border-radius:24px;border:1px solid #dcdcde;display:flex;justify-content:center;align-items:center;width:48px;height:48px}:host ::ng-deep .mapa-table .name{color:#181818;text-align:left;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:400;line-height:20px}:host ::ng-deep .mapa-table .cpf{color:#77838f;text-align:left;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}:host ::ng-deep .mapa-table .label_report{color:#181818;text-align:center;font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:12px;font-style:normal;font-weight:400;line-height:16px}@keyframes mapa-table-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n", ".classification-1{background-color:#073e92;color:#fff}.classification-2{background-color:#0e6ece;color:#fff}.classification-3{background-color:#2d9ced;color:#000}.classification-4{background-color:#68ceee;color:#000}.classification-5{background-color:#96f2ee;color:#000}.classification-6{background-color:#f598a7;color:#000}.classification-7{background-color:#f56580;color:#000}.classification-8{background-color:#f4284e;color:#fff}.classification-9{background-color:#c11c2f;color:#fff}.small-dot{width:12px;height:12px;border-radius:12px;padding:0;margin:0}.dot{width:16px;height:16px;border-radius:16px;padding:0;margin:0}.indicator{display:flex;padding:2px 4px 2px 16px;justify-content:space-between;align-items:center;border-radius:8px;font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:16px;font-style:normal;font-weight:400}.display-S{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:20px;font-style:normal;font-weight:400}.display-L{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:32px;font-style:normal;font-weight:400}.display-XG{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);font-size:48px;font-style:normal;font-weight:400}*{transition:opacity .4s ease-out,max-height .4s ease-out}\n"] }]
7970
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: MapaI18nService }], propDecorators: { columns: [{
8191
+ ], standalone: true, template: "<section\n class=\"mapa-data-table\"\n [class.mapa-data-table--selectable]=\"isSelectable\"\n>\n <div class=\"mapa-data-table__frame\">\n @if (isLoading) {\n <table class=\"mapa-data-table__table\" aria-hidden=\"true\">\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"mapa-data-table__selection-cell\"></th>\n }\n @for (column of columns; track column.key) {\n <th [style.width]=\"skeletonColumnWidth(column)\">\n {{ column.label }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of skeletonRows; track row) {\n <tr>\n @if (isSelectable) {\n <td class=\"mapa-data-table__selection-cell\">\n <span\n class=\"mapa-data-table__skeleton mapa-data-table__skeleton--checkbox\"\n ></span>\n </td>\n }\n @for (column of columns; track column.key) {\n <td [style.width]=\"skeletonColumnWidth(column)\">\n <span class=\"mapa-data-table__skeleton\"></span>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n <span class=\"mapa-data-table__sr-only\" role=\"status\">\n {{ texts.table.loading }}\n </span>\n } @else if (error) {\n <div class=\"mapa-data-table__state\" role=\"alert\">\n <strong>{{ resolvedErrorTitle }}</strong>\n @if (resolvedErrorSubtitle) {\n <span>{{ resolvedErrorSubtitle }}</span>\n }\n @if (retry.observed) {\n <button type=\"button\" (click)=\"retry.emit()\">\n {{ resolvedRetryLabel }}\n </button>\n }\n </div>\n } @else if (visibleData.length > 0) {\n <table class=\"mapa-data-table__table\">\n @if (caption) {\n <caption class=\"mapa-data-table__sr-only\">\n {{\n caption\n }}\n </caption>\n }\n <thead>\n <tr>\n @if (isSelectable) {\n <th class=\"mapa-data-table__selection-cell\">\n @if (showSelectAll) {\n <mat-checkbox\n color=\"primary\"\n [checked]=\"allVisibleSelected()\"\n [indeterminate]=\"someVisibleSelected()\"\n [aria-label]=\"texts.table.selectAllVisible\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleVisibleRows($event.checked)\"\n />\n } @else {\n <span class=\"mapa-data-table__sr-only\">\n {{ texts.table.selectionColumn }}\n </span>\n }\n </th>\n }\n @for (column of columns; track column.key) {\n <th\n [class.mapa-data-table__cell--center]=\"isCenterAligned(column)\"\n [class.mapa-data-table__cell--end]=\"isEndAligned(column)\"\n [style.width]=\"column.width ?? null\"\n [attr.aria-sort]=\"ariaSort(column)\"\n >\n @if (isSortable(column)) {\n <button\n type=\"button\"\n class=\"mapa-data-table__sort\"\n (click)=\"changeSort(column)\"\n >\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n <mat-icon aria-hidden=\"true\">{{\n sortIcon(column)\n }}</mat-icon>\n </button>\n } @else {\n <span [innerHTML]=\"column.label | safeHtml\"></span>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of visibleData; track rowIdentity(row, $index)) {\n <tr\n [class.mapa-data-table__row--selected]=\"isSelected(row)\"\n [class.mapa-data-table__row--interactive]=\"rowClick.observed\"\n [attr.tabindex]=\"rowClick.observed ? 0 : null\"\n (click)=\"emitRowInteraction($event, row)\"\n (keydown)=\"emitRowKeyboard($event, row)\"\n >\n @if (isSelectable) {\n <td class=\"mapa-data-table__selection-cell\">\n <mat-checkbox\n color=\"primary\"\n [checked]=\"isSelected(row)\"\n [aria-label]=\"selectionLabel(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row, $event.checked)\"\n />\n </td>\n }\n @for (column of columns; track column.key) {\n <td\n [attr.data-label]=\"column.label\"\n [class.mapa-data-table__cell--center]=\"\n isCenterAligned(column)\n \"\n [class.mapa-data-table__cell--end]=\"isEndAligned(column)\"\n [style.width]=\"column.width ?? null\"\n >\n <div\n class=\"mapa-data-table__cell-content\"\n [ngClass]=\"cellClasses(column, row)\"\n >\n @if (cellTemplate(column.key); as template) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n row,\n column,\n }\"\n ></ng-container>\n } @else if (column.key === \"actions\") {\n <div class=\"mapa-data-table__actions\">\n @for (item of getActionItems(row); track item) {\n @if (route(item); as actionRoute) {\n <a\n class=\"mapa-data-table__action\"\n [class.mapa-data-table__action--disabled]=\"\n item.disabled\n \"\n [attr.aria-disabled]=\"\n item.disabled ? 'true' : null\n \"\n [attr.tabindex]=\"item.disabled ? -1 : null\"\n [title]=\"item.text\"\n [routerLink]=\"item.disabled ? null : actionRoute\"\n [queryParams]=\"queryParams(item)\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"svgName(item.svg)\" />\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n } @else {\n <span class=\"mapa-data-table__sr-only\">{{\n item.text\n }}</span>\n }\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"mapa-data-table__action\"\n [disabled]=\"item.disabled\"\n [title]=\"item.text\"\n (click)=\"emitAction(row, item, $event)\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n @if (item.svg) {\n <mapa-svg-icon [name]=\"svgName(item.svg)\" />\n }\n @if (item.showText) {\n <span>{{ item.text }}</span>\n } @else {\n <span class=\"mapa-data-table__sr-only\">{{\n item.text\n }}</span>\n }\n </button>\n }\n }\n </div>\n } @else if (column.key === \"menu\") {\n @if (getMenuItems(row).length > 0) {\n <button\n type=\"button\"\n class=\"mapa-data-table__menu-trigger\"\n [matMenuTriggerFor]=\"rowMenu\"\n [attr.aria-label]=\"column.label\"\n (click)=\"$event.stopPropagation()\"\n >\n <mat-icon aria-hidden=\"true\">more_vert</mat-icon>\n </button>\n <mat-menu #rowMenu=\"matMenu\">\n @for (item of getMenuItems(row); track item) {\n @if (route(item); as menuRoute) {\n <a\n mat-menu-item\n [disabled]=\"item.disabled\"\n [routerLink]=\"item.disabled ? null : menuRoute\"\n [queryParams]=\"queryParams(item)\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n <span>{{ item.text }}</span>\n </a>\n } @else {\n <button\n mat-menu-item\n [disabled]=\"item.disabled\"\n (click)=\"emitAction(row, item, $event)\"\n >\n @if (item.icon) {\n <mat-icon aria-hidden=\"true\">{{\n item.icon\n }}</mat-icon>\n }\n @if (item.image) {\n <img [src]=\"item.image\" alt=\"\" />\n }\n <span>{{ item.text }}</span>\n </button>\n }\n }\n </mat-menu>\n }\n } @else if (dateFormat(column); as format) {\n @if (dateValue(row, column); as value) {\n {{ value | date: format }}\n } @else {\n {{ column.fallback ?? \"-\" }}\n }\n } @else if (column.status) {\n <span\n class=\"mapa-data-table__status\"\n [class.mapa-data-table__status--round]=\"\n column.status.style === 'round'\n \"\n [style.background-color]=\"statusBackground(column, row)\"\n [style.color]=\"statusTextColor(column, row)\"\n [innerHTML]=\"statusLabel(column, row) | safeHtml\"\n ></span>\n } @else {\n <span\n [innerHTML]=\"cellValue(row, column) | safeHtml\"\n ></span>\n }\n </div>\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n } @else if (isFinished) {\n <div class=\"mapa-data-table__state\">\n <strong>{{ resolvedEmptyTitle }}</strong>\n @if (resolvedEmptySubtitle) {\n <span>{{ resolvedEmptySubtitle }}</span>\n }\n </div>\n }\n </div>\n\n @if (shouldShowPaginator) {\n <mat-paginator\n class=\"mapa-data-table__paginator\"\n appBubblePagination\n [appCustomLength]=\"totalCount\"\n [bubblePageIndex]=\"zeroBasedPageIndex\"\n [pageIndex]=\"zeroBasedPageIndex\"\n [showFirstButton]=\"paginatorShowFirstButton\"\n [showLastButton]=\"paginatorShowLastButton\"\n [renderButtonsNumber]=\"paginatorRenderButtonsNumber\"\n [hideDefaultArrows]=\"paginatorHideDefaultArrows\"\n [bubblePageSize]=\"pageSize\"\n [length]=\"totalCount\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"handlePage($event)\"\n />\n }\n</section>\n", styles: [":host{display:block}.mapa-data-table{color:var(--mapa-color-text, #1a1a1a);font-family:var(--mapa-font-body, Asap, sans-serif)}.mapa-data-table__frame{background:var(--mapa-color-surface, #fff);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:14px;overflow-x:auto}.mapa-data-table__table{border-collapse:collapse;width:100%}.mapa-data-table th,.mapa-data-table td{border-bottom:1px solid var(--mapa-color-border-soft, rgba(26, 26, 26, .08));box-sizing:border-box;font-family:inherit;font-size:13px;font-weight:400;padding:.875rem 1rem;text-align:left;vertical-align:middle}.mapa-data-table th{background:var(--mapa-color-surface-muted, #fafbfc);color:var(--mapa-color-text-subtle, #555);font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.mapa-data-table td{color:var(--mapa-color-text, #1a1a1a)}.mapa-data-table tbody tr:last-child td{border-bottom:0}.mapa-data-table tbody tr:hover,.mapa-data-table__row--selected{background:var(--mapa-color-primary-soft, #fffaf6)}.mapa-data-table__row--interactive{cursor:pointer}.mapa-data-table__row--interactive:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:-3px}.mapa-data-table__selection-cell{width:4.5rem}.mapa-data-table__cell--center{text-align:center}.mapa-data-table__cell--end{text-align:right}.mapa-data-table__cell-content{min-width:0}.mapa-data-table__cell--ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapa-data-table__cell--no-wrap{white-space:nowrap}.mapa-data-table__cell--wrap{white-space:pre-wrap}.mapa-data-table__sort{align-items:center;background:transparent;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.25rem;padding:0;text-transform:inherit}.mapa-data-table__sort:focus-visible,.mapa-data-table__state button:focus-visible,.mapa-data-table__action:focus-visible,.mapa-data-table__menu-trigger:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:3px}.mapa-data-table__sort mat-icon{font-size:1rem;height:1rem;width:1rem}.mapa-data-table__actions{align-items:center;display:inline-flex;gap:.5rem}.mapa-data-table__action,.mapa-data-table__menu-trigger{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--mapa-color-primary-dark, #cf482b);cursor:pointer;display:inline-flex;font:inherit;gap:.375rem;justify-content:center;min-height:36px;min-width:36px;padding:.375rem;text-decoration:none}.mapa-data-table__action:hover,.mapa-data-table__menu-trigger:hover{background:var(--mapa-color-primary-soft, #fffaf6)}.mapa-data-table__action:disabled,.mapa-data-table__action--disabled{cursor:not-allowed;opacity:.45}.mapa-data-table__action img,.mapa-data-table__menu-trigger img{height:1.25rem;width:1.25rem}.mapa-data-table__status{border-radius:4px;display:inline-flex;padding:.25rem .5rem;white-space:nowrap}.mapa-data-table__status--round{border-radius:999px}.mapa-data-table__state{align-items:center;color:var(--mapa-color-text-subtle, #555);display:flex;flex-direction:column;gap:.625rem;justify-content:center;min-height:150px;padding:1.5rem;text-align:center}.mapa-data-table__state strong{color:var(--mapa-color-text, #1a1a1a)}.mapa-data-table__state button{background:var(--mapa-color-surface-warm, #fffaf6);border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:10px;color:var(--mapa-color-text, #1a1a1a);cursor:pointer;font:inherit;min-height:40px;padding:.5rem .875rem}.mapa-data-table__skeleton{animation:mapa-data-table-shimmer 1.2s linear infinite;background:linear-gradient(90deg,#f0f2f4 25%,#e6e9ec,#f0f2f4 75%);background-size:200% 100%;border-radius:8px;display:block;height:1rem;max-width:14rem}.mapa-data-table__skeleton--checkbox{border-radius:3px;height:1.125rem;width:1.125rem}.mapa-data-table__sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:host ::ng-deep .mapa-data-table__paginator{background:transparent;color:var(--mapa-color-text-subtle, #555);font-family:var(--mapa-font-body, Asap, sans-serif)}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container{justify-content:space-between;min-height:72px}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-page-size{margin-right:min(10vw,8rem)}:host ::ng-deep .mapa-data-table__paginator .custom-paginator-container,:host ::ng-deep .mapa-data-table__paginator .g-bubble-container{align-items:center;display:flex;justify-content:flex-end}:host ::ng-deep .mapa-data-table__paginator .g-bubble-container{gap:.5rem}:host ::ng-deep .mapa-data-table__paginator .g-bubble{align-items:center;background:transparent;border:0;border-radius:4px;color:var(--mapa-color-text-subtle, #555);cursor:pointer;display:flex;font:inherit;justify-content:center;min-height:24px;min-width:24px;padding:1px 6px}:host ::ng-deep .mapa-data-table__paginator .g-bubble:hover{background:var(--mapa-color-border-soft, rgba(26, 26, 26, .08))}:host ::ng-deep .mapa-data-table__paginator .g-bubble:focus-visible{outline:2px solid var(--mapa-color-primary, #ff560b);outline-offset:2px}:host ::ng-deep .mapa-data-table__paginator .g-bubble__active{background:var(--mapa-color-primary-dark, #cf482b);color:var(--mapa-color-surface, #fff)}:host ::ng-deep .mapa-data-table__paginator .custom-paginator-counter{color:var(--mapa-color-text-subtle, #555);margin:0 .25rem 0 .625rem;white-space:nowrap}@media(max-width:760px){.mapa-data-table__frame{border:0;overflow:visible}.mapa-data-table thead{display:none}.mapa-data-table tbody{display:grid;gap:.75rem}.mapa-data-table tr{border:1px solid var(--mapa-color-border, rgba(26, 26, 26, .12));border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr);padding:.75rem}.mapa-data-table--selectable tr{grid-template-columns:auto minmax(0,1fr)}.mapa-data-table td{border:0;grid-column:1;padding:.375rem .5rem;text-align:left;width:auto}.mapa-data-table--selectable td:not(.mapa-data-table__selection-cell){grid-column:2}.mapa-data-table td:not(.mapa-data-table__selection-cell):before{color:var(--mapa-color-text-subtle, #555);content:attr(data-label);display:block;font-size:.6875rem;font-weight:600;text-transform:uppercase}.mapa-data-table__selection-cell{grid-column:1;grid-row:1/span 20;width:auto}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container,:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-range-actions{justify-content:center}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-container{gap:.75rem;padding:.75rem 0}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-page-size{margin-right:0}:host ::ng-deep .mapa-data-table__paginator .mat-mdc-paginator-range-label{padding:.5rem 0;text-align:center;width:100%}}@media(prefers-reduced-motion:reduce){.mapa-data-table__skeleton{animation:none}}@keyframes mapa-data-table-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
8192
+ }], propDecorators: { columns: [{
7971
8193
  type: Input
7972
8194
  }], data: [{
7973
8195
  type: Input
7974
- }], pageIndex: [{
8196
+ }], rowKey: [{
7975
8197
  type: Input
7976
- }], pageSize: [{
8198
+ }], caption: [{
7977
8199
  type: Input
7978
- }], totalCount: [{
8200
+ }], selectable: [{
7979
8201
  type: Input
7980
- }], totalPages: [{
8202
+ }], showSelectAll: [{
8203
+ type: Input
8204
+ }], selectedKeys: [{
8205
+ type: Input
8206
+ }], selectionLabelKey: [{
7981
8207
  type: Input
7982
8208
  }], checkbox: [{
7983
8209
  type: Input
7984
8210
  }], selection: [{
7985
8211
  type: Input
7986
- }], actions: [{
8212
+ }], loading: [{
7987
8213
  type: Input
7988
- }], filterControl: [{
8214
+ }], finished: [{
7989
8215
  type: Input
7990
- }], menuItems: [{
8216
+ }], error: [{
7991
8217
  type: Input
7992
- }], menu: [{
8218
+ }], emptyTitle: [{
7993
8219
  type: Input
7994
- }], showPaginator: [{
8220
+ }], emptySubtitle: [{
8221
+ type: Input
8222
+ }], errorTitle: [{
8223
+ type: Input
8224
+ }], errorSubtitle: [{
8225
+ type: Input
8226
+ }], retryLabel: [{
7995
8227
  type: Input
7996
8228
  }], status: [{
7997
8229
  type: Input
7998
8230
  }], empty: [{
7999
8231
  type: Input
8232
+ }], pagination: [{
8233
+ type: Input
8234
+ }], pageIndex: [{
8235
+ type: Input
8236
+ }], pageSize: [{
8237
+ type: Input
8238
+ }], totalCount: [{
8239
+ type: Input
8240
+ }], pageSizeOptions: [{
8241
+ type: Input
8242
+ }], totalPages: [{
8243
+ type: Input
8244
+ }], showPaginator: [{
8245
+ type: Input
8000
8246
  }], paginatorShowFirstButton: [{
8001
8247
  type: Input
8002
8248
  }], paginatorShowLastButton: [{
@@ -8005,27 +8251,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
8005
8251
  type: Input
8006
8252
  }], paginatorHideDefaultArrows: [{
8007
8253
  type: Input
8008
- }], trigger: [{
8009
- type: ViewChild,
8010
- args: [MatMenuTrigger]
8011
- }], table: [{
8012
- type: ViewChild,
8013
- args: [MatTable]
8014
- }], rowClick: [{
8254
+ }], sortActive: [{
8255
+ type: Input
8256
+ }], sortDirection: [{
8257
+ type: Input
8258
+ }], actions: [{
8259
+ type: Input
8260
+ }], menuItems: [{
8261
+ type: Input
8262
+ }], menu: [{
8263
+ type: Input
8264
+ }], filterControl: [{
8265
+ type: Input
8266
+ }], pageChange: [{
8015
8267
  type: Output
8016
- }], selectedRows: [{
8268
+ }], sortChange: [{
8269
+ type: Output
8270
+ }], selectionChange: [{
8271
+ type: Output
8272
+ }], retry: [{
8017
8273
  type: Output
8018
8274
  }], onChangePage: [{
8019
8275
  type: Output
8020
8276
  }], onSortChange: [{
8021
8277
  type: Output
8022
- }], paginator: [{
8023
- type: ViewChild,
8024
- args: [MatPaginator, { read: true }]
8025
- }], sort: [{
8026
- type: ViewChild,
8027
- args: [MatSort]
8028
- }] } });
8278
+ }], selectedRows: [{
8279
+ type: Output
8280
+ }], rowClick: [{
8281
+ type: Output
8282
+ }], projectedCells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => MapaTableCellDirective), { isSignal: true }] }] } });
8029
8283
 
8030
8284
  /*
8031
8285
  * Public API Surface of mapa-library-ui table
@@ -8072,7 +8326,7 @@ class MapaWarningComponent {
8072
8326
  .map((report, index, array) => `${report.instrument ?? ''} - ${report.date ?? ''}${index < array.length - 1 ? ', ' : ''}`);
8073
8327
  }
8074
8328
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaWarningComponent, deps: [{ token: MapaI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
8075
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaWarningComponent, isStandalone: true, selector: "mapa-warning", inputs: { lowReliabilityReports: "lowReliabilityReports" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"warning\">\n <div class=\"warning__icon\">\n <img src=\"assets/images/icons/Warning.svg\" />\n </div>\n <article>\n <p *ngIf=\"showFirstLine\">\n {{ lowReliabilityTitle }}\n <span *ngFor=\"let report of nonExpirationDateReports\">{{ report }}</span>.\n </p>\n <p *ngIf=\"showSecondLine\">\n {{ expirationLimitTitle }}\n <span *ngFor=\"let report of expirationDateReports\">{{ report }}</span>.\n </p>\n </article>\n</section>\n", styles: [".warning{background:#eedb2a!important;display:flex;align-items:flex-start;padding:21px 45px;margin-top:16px}.warning p{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:400;line-height:20px;margin:0}.warning__icon{margin-right:16px;margin-top:auto;margin-bottom:auto;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
8329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.21", type: MapaWarningComponent, isStandalone: true, selector: "mapa-warning", inputs: { lowReliabilityReports: "lowReliabilityReports" }, usesOnChanges: true, ngImport: i0, template: "<section class=\"warning\">\n <div class=\"warning__icon\">\n <img src=\"assets/images/icons/Warning.svg\" />\n </div>\n <article>\n <p *ngIf=\"showFirstLine\">\n {{ lowReliabilityTitle }}\n <span *ngFor=\"let report of nonExpirationDateReports\">{{ report }}</span>.\n </p>\n <p *ngIf=\"showSecondLine\">\n {{ expirationLimitTitle }}\n <span *ngFor=\"let report of expirationDateReports\">{{ report }}</span>.\n </p>\n </article>\n</section>\n", styles: [".warning{background:#eedb2a!important;display:flex;align-items:flex-start;padding:21px 45px;margin-top:16px}.warning p{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif);font-size:14px;font-style:normal;font-weight:400;line-height:20px;margin:0}.warning__icon{margin-right:16px;margin-top:auto;margin-bottom:auto;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
8076
8330
  }
8077
8331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaWarningComponent, decorators: [{
8078
8332
  type: Component,
@@ -8203,5 +8457,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
8203
8457
  * Generated bundle index. Do not edit.
8204
8458
  */
8205
8459
 
8206
- export { AIH_ESTADOS, AIH_TIPOS, BubblePaginationDirective, ButtonComponent, ButtonIconComponent, CEPRange, CID_NAME, CID_REGEX, CORES, CPFPipe, CapabilityClassificationService, CheckboxComponent, Datepicker, DatepickerRange, Dropdown, DropdownTree, ESTADOS, ESTADOS_SIGLA, ElementBase, FiltersComponent, HtmlSanitizerService, IPTUCREATE, IPTUMASKS, IPTUVALIDATE, IconComponent, InputText, LOCALIZACAO_BAIRROS, LOCALIZACAO_CIDADES, LOCALIZACAO_COMPLEMENTOS, LOCALIZACAO_ESTADOS, LOCALIZACAO_LOGRADOUROS, LOCALIZACAO_RUAS, LocaleDatePipe, LocaleDateTimePipe, MAPA_DATEPICKER_FORMATS, MAPA_UI_TEXTS, MASKSIE, MapaBenchmarkChartComponent, MapaBenchmarkIndicatorComponent, MapaBreadcrumbComponent, MapaCapabilityComparativeChartComponent, MapaCapabilityComparativeComponent, MapaCapabilityComparativeHeaderComponent, MapaCapabilityDetailComponent, MapaCapabilityDotComponent, MapaCapabilityExpandComponent, MapaCapabilityIndicatorChartComponent, MapaCapabilityIndicatorComponent, MapaCapabilityIndicatorListComponent, MapaCapabilityIntervalBarComponent, MapaCapabilityIntervalComponent, MapaChartComponent, MapaDatepicker, MapaDatepickerRange, MapaDetailsComponent, MapaDialogComponent, MapaDropdownComponent, MapaDropdownTreeComponent, MapaEmptyStateComponent, MapaFormComponent, MapaFormErrorsComponent, MapaGroupReportComponent, MapaI18nService, MapaInputComponent, MapaMaskAutofillSyncDirective, MapaMenuComponent, MapaNavListComponent, MapaProgressbarComponent, MapaScaleComponent, MapaScaleParameterizationComponent, MapaSvgIconComponent, MapaTableComponent, MapaTextareaComponent, MapaTooltipComponent, MapaTooltipDirective, MapaWarningComponent, MatInputAutosizeDirective, PLACAS_INVALID, PLACAS_RANGE, RadioButton, RadioButtonComponent, ReportItemComponent, SafeHtmlPipe, SlideToggle, SlideToggleComponent, TagComponent, Textarea, ValidationMessageResolverService, addDays, addMonthsToDateValue, allNumbersAreSame, buildDetailedIndicatorSections, buildIndicatorCollections, cep_ranges, create_aih, create_cartaocredito, create_certidao, create_cnh, create_cnhespelho, create_cnpj, create_cns, create_cpf, create_ect, create_iptu, create_iptu_ctba, create_iptu_sp, create_pispasep, create_processo, create_renachestadual, create_renachseguranca, create_renavam, create_titulo, create_titulo_atual, creditCardValidator, currencyToNumber, customPaginatorFactory, faker_iptu, fillString, formatBrazilianDate, formatDateAsDayMonthYear, formatDateAsMonthDayYear, formatDateByLanguage, formatDateForLocale, formatDateTimeByLanguage, formatDateValue, formatLocaleDate, formatLocaleDateTime, generateInscricaoEstadual, getActiveDateFormat, getActiveDateLocale, getActiveMaterialDateFormat, getAllDigits, getAllWords, getDateFormatByLanguage, getDateInputMask, getDateTimeFormatByLanguage, getDayOfMonthFromDateValue, getDefaultDateRange, getMapaDatepickerRangeFormats, getRelativeDateRange, getSpecialProperty, getYearFromDateValue, isAfterDateValue, isArray, isDateValue, isMonthFirstDateLocale, isNil, isNumber, isPresent, isString, isValidDateByLanguage, isValidDateValue, makeGenericFaker, maskBr, mask_iptu, mergeMapaUiTexts, modulo11, modulo11Custom, modulo11a, normalizeDateInput, normalizeDateLocale, normalizeLookup, normalizeText, numberToCurrency, openDialog, parseBrazilianDate, parseDateByLanguage, parseDateFieldValue, parseDateValue, parseDateValueFns, parseLocaleDateValue, processCaretTraps, provideMapaUiTexts, rand, randArray, randomEstadoSigla, randomLetter, randomLetterOrNumber, randomNumber, reformatDateStringForLanguage, rg_rj, rg_sp, sanitizeHtmlContent, setTimeOnDateValue, slugify, toDatepickerLocale, toIsoDateByLanguage, toIsoDateByLanguageWithUtcTime, toIsoDateValue, toIsoDateValueWithTime, toIsoDateValueWithUtcTime, toUtcDayExclusiveEndIso, toUtcRangeEndIso, toUtcRangeStartIso, utilsBr, validateBr, validate_aih, validate_cartaocredito, validate_celular, validate_cep, validate_certidao, validate_chassi, validate_cnh, validate_cnhespelho, validate_cnpj, validate_cns, validate_cpf, validate_currency, validate_datahora, validate_datetime, validate_ect, validate_inscricaoestadual, validate_iptu, validate_iptu_contagem, validate_iptu_ctba, validate_iptu_sp, validate_number, validate_pispasep, validate_placa, validate_porcentagem, validate_processo, validate_renachestadual, validate_renachseguranca, validate_renavam, validate_rg, validate_sped, validate_telefone, validate_time, validate_titulo };
8460
+ export { AIH_ESTADOS, AIH_TIPOS, BubblePaginationDirective, ButtonComponent, ButtonIconComponent, CEPRange, CID_NAME, CID_REGEX, CORES, CPFPipe, CapabilityClassificationService, CheckboxComponent, Datepicker, DatepickerRange, Dropdown, DropdownTree, ESTADOS, ESTADOS_SIGLA, ElementBase, FiltersComponent, HtmlSanitizerService, IPTUCREATE, IPTUMASKS, IPTUVALIDATE, IconComponent, InputText, LOCALIZACAO_BAIRROS, LOCALIZACAO_CIDADES, LOCALIZACAO_COMPLEMENTOS, LOCALIZACAO_ESTADOS, LOCALIZACAO_LOGRADOUROS, LOCALIZACAO_RUAS, LocaleDatePipe, LocaleDateTimePipe, MAPA_UI_TEXTS, MASKSIE, MapaBenchmarkChartComponent, MapaBenchmarkIndicatorComponent, MapaBreadcrumbComponent, MapaCapabilityComparativeChartComponent, MapaCapabilityComparativeComponent, MapaCapabilityComparativeHeaderComponent, MapaCapabilityDetailComponent, MapaCapabilityDotComponent, MapaCapabilityExpandComponent, MapaCapabilityIndicatorChartComponent, MapaCapabilityIndicatorComponent, MapaCapabilityIndicatorListComponent, MapaCapabilityIntervalBarComponent, MapaCapabilityIntervalComponent, MapaChartComponent, MapaDateLocaleService, MapaDatepicker, MapaDatepicker as MapaDatepickerRange, MapaDetailsComponent, MapaDialogComponent, MapaDropdownComponent, MapaDropdownTreeComponent, MapaEmptyStateComponent, MapaFormComponent, MapaFormErrorsComponent, MapaGroupReportComponent, MapaI18nService, MapaInputComponent, MapaMaskAutofillSyncDirective, MapaMenuComponent, MapaNavListComponent, MapaProgressbarComponent, MapaScaleComponent, MapaScaleParameterizationComponent, MapaSvgIconComponent, MapaTableCellDirective, MapaTableComponent, MapaTextareaComponent, MapaTooltipComponent, MapaTooltipDirective, MapaWarningComponent, MatInputAutosizeDirective, PLACAS_INVALID, PLACAS_RANGE, RadioButton, RadioButtonComponent, ReportItemComponent, SafeHtmlPipe, SlideToggle, SlideToggleComponent, TagComponent, Textarea, ValidationMessageResolverService, addDays, addMonthsToDateValue, allNumbersAreSame, buildDetailedIndicatorSections, buildIndicatorCollections, cep_ranges, create_aih, create_cartaocredito, create_certidao, create_cnh, create_cnhespelho, create_cnpj, create_cns, create_cpf, create_ect, create_iptu, create_iptu_ctba, create_iptu_sp, create_pispasep, create_processo, create_renachestadual, create_renachseguranca, create_renavam, create_titulo, create_titulo_atual, creditCardValidator, currencyToNumber, customPaginatorFactory, faker_iptu, fillString, formatBrazilianDate, formatDateAsDayMonthYear, formatDateAsMonthDayYear, formatDateByLanguage, formatDateForLocale, formatDateTimeByLanguage, formatDateValue, formatLocaleDate, formatLocaleDateTime, generateInscricaoEstadual, getActiveDateFormat, getActiveDateLocale, getAllDigits, getAllWords, getDateFormatByLanguage, getDateInputMask, getDateTimeFormatByLanguage, getDayOfMonthFromDateValue, getDefaultDateRange, getRelativeDateRange, getSpecialProperty, getYearFromDateValue, isAfterDateValue, isArray, isDateValue, isMonthFirstDateLocale, isNil, isNumber, isPresent, isString, isValidDateByLanguage, isValidDateValue, makeGenericFaker, maskBr, mask_iptu, mergeMapaUiTexts, modulo11, modulo11Custom, modulo11a, normalizeDateInput, normalizeDateLocale, normalizeLookup, normalizeText, numberToCurrency, openDialog, parseBrazilianDate, parseDateByLanguage, parseDateFieldValue, parseDateValue, parseDateValueFns, parseLocaleDateValue, processCaretTraps, provideMapaUiTexts, rand, randArray, randomEstadoSigla, randomLetter, randomLetterOrNumber, randomNumber, reformatDateStringForLanguage, rg_rj, rg_sp, sanitizeHtmlContent, setTimeOnDateValue, slugify, toDatepickerLocale, toIsoDateByLanguage, toIsoDateByLanguageWithUtcTime, toIsoDateValue, toIsoDateValueWithTime, toIsoDateValueWithUtcTime, toUtcDayExclusiveEndIso, toUtcRangeEndIso, toUtcRangeStartIso, utilsBr, validateBr, validate_aih, validate_cartaocredito, validate_celular, validate_cep, validate_certidao, validate_chassi, validate_cnh, validate_cnhespelho, validate_cnpj, validate_cns, validate_cpf, validate_currency, validate_datahora, validate_datetime, validate_ect, validate_inscricaoestadual, validate_iptu, validate_iptu_contagem, validate_iptu_ctba, validate_iptu_sp, validate_number, validate_pispasep, validate_placa, validate_porcentagem, validate_processo, validate_renachestadual, validate_renachseguranca, validate_renavam, validate_rg, validate_sped, validate_telefone, validate_time, validate_titulo };
8207
8461
  //# sourceMappingURL=mapa-library-ui.mjs.map