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.
- package/README.md +2 -3
- package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +648 -125
- package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +569 -322
- package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +522 -581
- package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs +42 -35
- package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs.map +1 -1
- package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs +1 -4
- package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs.map +1 -1
- package/fesm2022/mapa-library-ui.mjs +1272 -1018
- package/fesm2022/mapa-library-ui.mjs.map +1 -1
- package/index.d.ts +350 -187
- package/mapa-library-ui-2.0.0.tgz +0 -0
- package/package.json +3 -10
- package/src/lib/components/datepicker/index.d.ts +165 -27
- package/src/lib/components/group-report/index.d.ts +6 -1
- package/src/lib/components/menu/index.d.ts +3 -1
- package/src/lib/components/report-item/index.d.ts +3 -1
- package/src/lib/components/table/index.d.ts +153 -100
- package/src/lib/core/utils/index.d.ts +1 -2
- package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs +0 -733
- package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs.map +0 -1
- package/mapa-library-ui-1.7.3.tgz +0 -0
- package/src/lib/components/datepicker-range/index.d.ts +0 -207
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import * as i5
|
|
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,
|
|
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
|
|
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
|
|
15
|
-
import * as i1$
|
|
16
|
-
import { CommonModule } from '@angular/common';
|
|
17
|
-
import * as i3$
|
|
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$
|
|
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 {
|
|
33
|
-
import * as
|
|
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
|
|
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$
|
|
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$
|
|
46
|
-
import { MatTableDataSource, MatTableModule
|
|
47
|
-
import * as i3$
|
|
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(
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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:
|
|
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:
|
|
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?.[
|
|
397
|
-
|
|
398
|
-
(!changes?.[
|
|
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([
|
|
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,
|
|
421
|
-
this.ren.addClass(currentActive,
|
|
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,
|
|
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,
|
|
433
|
-
this.ren.setStyle(lastButton,
|
|
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,
|
|
440
|
-
this.ren.setStyle(firstButton,
|
|
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,
|
|
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(
|
|
456
|
-
const nextButtonDefault = nativeElement.querySelector(
|
|
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,
|
|
459
|
-
this.ren.setStyle(nextButtonDefault,
|
|
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(
|
|
464
|
-
const nextButtonDefault = this.elementRef.nativeElement.querySelector(
|
|
465
|
-
const pageRange = this.elementRef.nativeElement.querySelector(
|
|
466
|
-
this.bubbleContainerRef = this.ren.createElement(
|
|
467
|
-
this.ren.addClass(this.bubbleContainerRef,
|
|
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,
|
|
482
|
+
this.ren.addClass(actionContainer, 'custom-paginator-container');
|
|
470
483
|
}
|
|
471
484
|
if (pageRange) {
|
|
472
|
-
this.ren.addClass(pageRange,
|
|
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(
|
|
517
|
+
const bubbleButton = this.ren.createElement('button');
|
|
505
518
|
const text = this.ren.createText(String(i + 1));
|
|
506
|
-
this.ren.addClass(bubbleButton,
|
|
507
|
-
this.ren.
|
|
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,
|
|
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,
|
|
528
|
+
this.ren.setStyle(bubbleButton, 'display', 'none');
|
|
515
529
|
return bubbleButton;
|
|
516
530
|
}
|
|
517
531
|
createDotsElement() {
|
|
518
|
-
const dotsEl = this.ren.createElement(
|
|
519
|
-
const dotsText = this.ren.createText(
|
|
520
|
-
this.ren.setStyle(dotsEl,
|
|
521
|
-
this.ren.setStyle(dotsEl,
|
|
522
|
-
this.ren.setStyle(dotsEl,
|
|
523
|
-
this.ren.setStyle(dotsEl,
|
|
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,
|
|
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:
|
|
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(
|
|
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
|
|
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 ?
|
|
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:
|
|
659
|
+
selectAll: 'Selecionar todos',
|
|
660
|
+
retry: 'Tentar novamente',
|
|
646
661
|
},
|
|
647
662
|
filters: {
|
|
648
|
-
clear:
|
|
649
|
-
submit:
|
|
663
|
+
clear: 'Limpar filtros',
|
|
664
|
+
submit: 'Filtrar',
|
|
650
665
|
},
|
|
651
666
|
datepicker: {
|
|
652
|
-
startDatePlaceholder:
|
|
653
|
-
endDatePlaceholder:
|
|
667
|
+
startDatePlaceholder: 'Data inicial',
|
|
668
|
+
endDatePlaceholder: 'Data final',
|
|
654
669
|
},
|
|
655
670
|
capability: {
|
|
656
|
-
groupAverageTitle:
|
|
657
|
-
individualAverageTitle:
|
|
658
|
-
conceptTitle:
|
|
659
|
-
resultTitle:
|
|
660
|
-
positiveIndicatorsTitle:
|
|
661
|
-
negativeIndicatorsTitle:
|
|
662
|
-
riskIndicatorsTitle:
|
|
663
|
-
precipitationRiskTitle:
|
|
664
|
-
negligenceRiskTitle:
|
|
665
|
-
negativeDirectionLabel:
|
|
666
|
-
positiveDirectionLabel:
|
|
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:
|
|
670
|
-
nextPage:
|
|
671
|
-
previousPage:
|
|
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:
|
|
677
|
-
expirationLimitTitle:
|
|
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:
|
|
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:
|
|
685
|
-
cpf:
|
|
686
|
-
email:
|
|
687
|
-
max: (context) => `O valor máximo permitido é ${context?.max ??
|
|
688
|
-
maxLength: (context) => `O máximo permitido é ${context?.requiredLength ??
|
|
689
|
-
min: (context) => `O valor mínimo permitido é ${context?.min ??
|
|
690
|
-
minLength: (context) => `O mínimo permitido é ${context?.requiredLength ??
|
|
691
|
-
pattern:
|
|
692
|
-
required:
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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\">↘ </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">↗ </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$
|
|
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\">↘ </strong>\n <strong *ngIf=\"classification.getByItem(item).positive\">↗ </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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
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(
|
|
6247
|
-
this.cdr =
|
|
6310
|
+
constructor() {
|
|
6311
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
6248
6312
|
this.destroyRef = inject(DestroyRef);
|
|
6249
|
-
this.
|
|
6250
|
-
|
|
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
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
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
|
-
|
|
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((
|
|
6264
|
-
|
|
6265
|
-
|
|
6383
|
+
.subscribe(() => this.cdr.markForCheck());
|
|
6384
|
+
this.formDisplay.valueChanges
|
|
6385
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
6386
|
+
.subscribe(() => this.handleDisplayChange());
|
|
6266
6387
|
}
|
|
6267
|
-
|
|
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
|
-
|
|
6439
|
+
maxDate() {
|
|
6271
6440
|
return parseDateValue(this.element.maxDate);
|
|
6272
6441
|
}
|
|
6273
|
-
|
|
6274
|
-
return
|
|
6442
|
+
disabledDates() {
|
|
6443
|
+
return this.element.disabledDates ?? this.emptyDisabledDates;
|
|
6275
6444
|
}
|
|
6276
|
-
|
|
6277
|
-
this.
|
|
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
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
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
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
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
|
-
|
|
6305
|
-
|
|
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.
|
|
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
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6517
|
+
// --- interação ------------------------------------------------------------
|
|
6518
|
+
toggleCalendar() {
|
|
6519
|
+
if (this.isDisabled() || this.isReadonly()) {
|
|
6520
|
+
return;
|
|
6317
6521
|
}
|
|
6318
|
-
|
|
6319
|
-
|
|
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 ×\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 ×\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
|
-
|
|
6393
|
-
|
|
6531
|
+
closeCalendar() {
|
|
6532
|
+
if (this.isOpenState()) {
|
|
6533
|
+
this.setOpenState(false);
|
|
6534
|
+
}
|
|
6535
|
+
this.control?.markAsTouched();
|
|
6394
6536
|
}
|
|
6395
|
-
|
|
6396
|
-
|
|
6537
|
+
handleOverlayOutsideClick(event) {
|
|
6538
|
+
if (this.toggleButton?.nativeElement.contains(event.target)) {
|
|
6539
|
+
return;
|
|
6540
|
+
}
|
|
6541
|
+
this.closeCalendar();
|
|
6397
6542
|
}
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6401
|
-
|
|
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
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
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
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
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
|
-
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
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.
|
|
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
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
this.
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6467
|
-
|
|
6468
|
-
this.
|
|
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
|
-
|
|
6471
|
-
this.
|
|
6472
|
-
if (!value.startDate || !value.endDate) {
|
|
6621
|
+
applyExternal(value) {
|
|
6622
|
+
if (this.syncing) {
|
|
6473
6623
|
return;
|
|
6474
6624
|
}
|
|
6475
|
-
const
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
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
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
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.
|
|
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
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6652
|
+
patchDisplay(display) {
|
|
6653
|
+
this.syncing = true;
|
|
6654
|
+
try {
|
|
6655
|
+
this.formDisplay.patchValue(display, { emitEvent: false });
|
|
6494
6656
|
}
|
|
6495
|
-
|
|
6496
|
-
|
|
6657
|
+
finally {
|
|
6658
|
+
this.syncing = false;
|
|
6497
6659
|
}
|
|
6498
|
-
return first.getTime() === second.getTime();
|
|
6499
6660
|
}
|
|
6500
|
-
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
|
|
6504
|
-
|
|
6505
|
-
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
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
|
-
|
|
6511
|
-
|
|
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
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
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
|
-
|
|
6519
|
-
|
|
6520
|
-
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
|
|
6524
|
-
|
|
6525
|
-
|
|
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
|
-
|
|
6743
|
+
return { startDate: null, endDate: null };
|
|
6533
6744
|
}
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
|
|
6537
|
-
|
|
6538
|
-
|
|
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\">–</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 ×\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 ×\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:
|
|
6792
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDatepicker, decorators: [{
|
|
6541
6793
|
type: Component,
|
|
6542
|
-
args: [{ selector:
|
|
6543
|
-
|
|
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
|
-
|
|
6552
|
-
|
|
6553
|
-
|
|
6554
|
-
|
|
6555
|
-
}], ctorParameters: () => [{ type: MapaI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formGroup: [{
|
|
6556
|
-
|
|
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\">–</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 ×\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 ×\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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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 ×\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$
|
|
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 ×\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$
|
|
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$
|
|
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$
|
|
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$
|
|
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 (\"
|
|
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 (\"
|
|
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$
|
|
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:
|
|
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$
|
|
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:
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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(
|
|
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
|
-
|
|
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.
|
|
7532
|
-
this.
|
|
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
|
-
|
|
7536
|
-
this.
|
|
7537
|
-
this.
|
|
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
|
|
7544
|
-
|
|
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
|
|
7547
|
-
return
|
|
7852
|
+
get isSelectable() {
|
|
7853
|
+
return this.selectable ?? this.checkbox ?? false;
|
|
7548
7854
|
}
|
|
7549
|
-
get
|
|
7550
|
-
return this.
|
|
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.
|
|
7865
|
+
return ((this.emptySubtitle ?? this.empty.subtitle) ||
|
|
7866
|
+
this.texts.table.emptySubtitle ||
|
|
7867
|
+
null);
|
|
7557
7868
|
}
|
|
7558
|
-
get
|
|
7559
|
-
|
|
7560
|
-
return Array.from({ length: rowsCount }, (_, index) => index);
|
|
7869
|
+
get resolvedErrorTitle() {
|
|
7870
|
+
return this.errorTitle || this.texts.table.errorTitle;
|
|
7561
7871
|
}
|
|
7562
|
-
|
|
7563
|
-
this.
|
|
7564
|
-
this.cdr.markForCheck();
|
|
7872
|
+
get resolvedErrorSubtitle() {
|
|
7873
|
+
return this.errorSubtitle ?? null;
|
|
7565
7874
|
}
|
|
7566
|
-
|
|
7567
|
-
|
|
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
|
-
|
|
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
|
-
|
|
7597
|
-
this.
|
|
7598
|
-
|
|
7599
|
-
|
|
7600
|
-
|
|
7601
|
-
this.
|
|
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
|
-
|
|
7607
|
-
this.
|
|
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
|
-
|
|
7613
|
-
return
|
|
7891
|
+
skeletonColumnWidth(column) {
|
|
7892
|
+
return (column.width ||
|
|
7893
|
+
(this.columns.length ? `${100 / this.columns.length}%` : '100%'));
|
|
7614
7894
|
}
|
|
7615
|
-
|
|
7616
|
-
|
|
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
|
-
|
|
7625
|
-
this.
|
|
7626
|
-
|
|
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
|
-
|
|
7646
|
-
if (this.
|
|
7647
|
-
|
|
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
|
-
|
|
7654
|
-
|
|
7655
|
-
|
|
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
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
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
|
-
|
|
7676
|
-
if (
|
|
7677
|
-
const
|
|
7678
|
-
|
|
7679
|
-
|
|
7680
|
-
|
|
7681
|
-
|
|
7682
|
-
}
|
|
7683
|
-
|
|
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
|
-
|
|
7688
|
-
|
|
7689
|
-
|
|
7690
|
-
|
|
7691
|
-
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
|
|
7698
|
-
|
|
7699
|
-
|
|
7700
|
-
|
|
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.
|
|
7942
|
+
this.selectionChange.emit({ selectedKeys: Array.from(next) });
|
|
7943
|
+
return;
|
|
7704
7944
|
}
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
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
|
-
|
|
7715
|
-
const
|
|
7716
|
-
|
|
7717
|
-
|
|
7718
|
-
|
|
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
|
-
|
|
7726
|
-
return
|
|
7960
|
+
cellTemplate(columnKey) {
|
|
7961
|
+
return (this.projectedCells().find((cell) => cell.columnKey === columnKey)
|
|
7962
|
+
?.templateRef ?? null);
|
|
7727
7963
|
}
|
|
7728
|
-
|
|
7729
|
-
return
|
|
7964
|
+
isSortable(column) {
|
|
7965
|
+
return column.sortable ?? column.sort ?? false;
|
|
7730
7966
|
}
|
|
7731
|
-
|
|
7732
|
-
|
|
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
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
column.
|
|
7738
|
-
|
|
7739
|
-
|
|
7740
|
-
|
|
7741
|
-
return
|
|
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
|
-
|
|
7748
|
-
|
|
7749
|
-
|
|
7750
|
-
|
|
7751
|
-
|
|
7752
|
-
|
|
7753
|
-
|
|
7754
|
-
|
|
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
|
-
|
|
7761
|
-
|
|
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
|
-
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
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
|
-
|
|
7785
|
-
this.
|
|
8031
|
+
statusBackground(column, row) {
|
|
8032
|
+
return column.status?.color?.[this.statusIndex(row, column.key)] ?? null;
|
|
7786
8033
|
}
|
|
7787
|
-
|
|
7788
|
-
this.
|
|
8034
|
+
statusTextColor(column, row) {
|
|
8035
|
+
return (column.status?.textColor?.[this.statusIndex(row, column.key)] ?? null);
|
|
7789
8036
|
}
|
|
7790
|
-
|
|
7791
|
-
|
|
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
|
-
|
|
7794
|
-
return column.
|
|
8047
|
+
isCenterAligned(column) {
|
|
8048
|
+
return column.align === 'center';
|
|
7795
8049
|
}
|
|
7796
|
-
|
|
7797
|
-
|
|
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
|
-
|
|
7805
|
-
|
|
7806
|
-
|
|
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
|
-
|
|
7817
|
-
|
|
8057
|
+
getMenuItems(row) {
|
|
8058
|
+
const rowItems = this.getMenuActionItems(row, 'menu');
|
|
8059
|
+
return rowItems.length ? rowItems : this.menuItems;
|
|
7818
8060
|
}
|
|
7819
|
-
|
|
7820
|
-
|
|
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
|
-
|
|
7823
|
-
if (this.
|
|
7824
|
-
|
|
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
|
-
|
|
7828
|
-
|
|
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
|
-
|
|
7831
|
-
return
|
|
8078
|
+
route(item) {
|
|
8079
|
+
return item.route ?? null;
|
|
7832
8080
|
}
|
|
7833
|
-
|
|
7834
|
-
|
|
7835
|
-
return rowActions.length > 0 ? rowActions : (this.actions ?? []);
|
|
8081
|
+
queryParams(item) {
|
|
8082
|
+
return item.queryParams ?? null;
|
|
7836
8083
|
}
|
|
7837
|
-
|
|
7838
|
-
|
|
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
|
-
|
|
7856
|
-
|
|
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
|
-
|
|
7869
|
-
return this.
|
|
8090
|
+
activeDirection() {
|
|
8091
|
+
return this.sortDirection || this.localSort.direction;
|
|
7870
8092
|
}
|
|
7871
|
-
|
|
7872
|
-
|
|
8093
|
+
emitLegacySelection() {
|
|
8094
|
+
if (!this.selection)
|
|
8095
|
+
return;
|
|
8096
|
+
this.selectedRows.emit(this.selection.selected.map((row) => ({ row })));
|
|
7873
8097
|
}
|
|
7874
|
-
|
|
7875
|
-
|
|
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
|
-
|
|
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 ===
|
|
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
|
-
|
|
7900
|
-
|
|
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
|
|
7907
|
-
return
|
|
7908
|
-
|
|
7909
|
-
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
|
|
7915
|
-
|
|
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
|
|
7924
|
-
if (!Array.isArray(value))
|
|
8147
|
+
const value = this.getColumnValue(row, key);
|
|
8148
|
+
if (!Array.isArray(value))
|
|
7925
8149
|
return [];
|
|
7926
|
-
|
|
7927
|
-
|
|
8150
|
+
return value.filter((item) => !!item &&
|
|
8151
|
+
typeof item === 'object' &&
|
|
8152
|
+
'action' in item &&
|
|
8153
|
+
'text' in item);
|
|
7928
8154
|
}
|
|
7929
|
-
|
|
7930
|
-
return
|
|
7931
|
-
typeof value === "object" &&
|
|
7932
|
-
"action" in value &&
|
|
7933
|
-
"text" in value);
|
|
8155
|
+
asRow(row) {
|
|
8156
|
+
return row;
|
|
7934
8157
|
}
|
|
7935
|
-
|
|
7936
|
-
return
|
|
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: [
|
|
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",
|
|
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:
|
|
7950
|
-
|
|
7951
|
-
|
|
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
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
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
|
-
}],
|
|
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
|
-
}],
|
|
8196
|
+
}], rowKey: [{
|
|
7975
8197
|
type: Input
|
|
7976
|
-
}],
|
|
8198
|
+
}], caption: [{
|
|
7977
8199
|
type: Input
|
|
7978
|
-
}],
|
|
8200
|
+
}], selectable: [{
|
|
7979
8201
|
type: Input
|
|
7980
|
-
}],
|
|
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
|
-
}],
|
|
8212
|
+
}], loading: [{
|
|
7987
8213
|
type: Input
|
|
7988
|
-
}],
|
|
8214
|
+
}], finished: [{
|
|
7989
8215
|
type: Input
|
|
7990
|
-
}],
|
|
8216
|
+
}], error: [{
|
|
7991
8217
|
type: Input
|
|
7992
|
-
}],
|
|
8218
|
+
}], emptyTitle: [{
|
|
7993
8219
|
type: Input
|
|
7994
|
-
}],
|
|
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
|
-
}],
|
|
8009
|
-
type:
|
|
8010
|
-
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
}],
|
|
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
|
-
}],
|
|
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
|
-
}],
|
|
8023
|
-
type:
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
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$
|
|
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,
|
|
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
|