mapa-library-ui 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +24 -2
  2. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  3. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +28 -6
  4. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  5. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs +77 -13
  6. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs.map +1 -1
  7. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +77 -13
  8. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
  9. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +27 -5
  10. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  11. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +24 -2
  12. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  13. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +58 -7
  14. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
  15. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +216 -29
  16. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
  17. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +34 -6
  18. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
  19. package/fesm2022/mapa-library-ui-src-lib-components-radio-button.mjs +29 -5
  20. package/fesm2022/mapa-library-ui-src-lib-components-radio-button.mjs.map +1 -1
  21. package/fesm2022/mapa-library-ui-src-lib-components-slide-toggle.mjs +29 -5
  22. package/fesm2022/mapa-library-ui-src-lib-components-slide-toggle.mjs.map +1 -1
  23. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +77 -13
  24. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
  25. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +27 -3
  26. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
  27. package/fesm2022/mapa-library-ui.mjs +306 -87
  28. package/fesm2022/mapa-library-ui.mjs.map +1 -1
  29. package/index.d.ts +67 -10
  30. package/mapa-library-ui-1.4.0.tgz +0 -0
  31. package/package.json +2 -2
  32. package/src/lib/components/capability/index.d.ts +6 -2
  33. package/src/lib/components/dropdown/index.d.ts +6 -2
  34. package/src/lib/components/form/index.d.ts +23 -7
  35. package/src/lib/components/input/index.d.ts +6 -2
  36. package/src/lib/components/radio-button/index.d.ts +7 -3
  37. package/src/lib/components/slide-toggle/index.d.ts +7 -3
  38. package/src/lib/components/textarea/index.d.ts +6 -2
  39. package/mapa-library-ui-1.2.0.tgz +0 -0
@@ -1,12 +1,12 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Output, Input, Component, InjectionToken, inject, Injector, signal, Optional, Inject, Injectable, SecurityContext, Pipe, DestroyRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
5
- import * as i2$1 from 'ng-apexcharts';
4
+ import { EventEmitter, Output, Input, Component, InjectionToken, inject, Injector, signal, Optional, Inject, Injectable, SecurityContext, Pipe, DestroyRef, forwardRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';
5
+ import * as i3 from '@angular/forms';
6
+ import { FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
+ import * as i3$1 from 'ng-apexcharts';
6
8
  import { NgApexchartsModule } from 'ng-apexcharts';
7
9
  import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import * as i3 from '@angular/forms';
9
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
10
  import * as i4 from '@angular/material/checkbox';
11
11
  import { MatCheckboxModule } from '@angular/material/checkbox';
12
12
  import * as i5 from '@angular/material/form-field';
@@ -247,6 +247,18 @@ class MapaDropdownComponent {
247
247
  this.isChecked = false;
248
248
  this.isOptionsGroup = false;
249
249
  }
250
+ writeValue(_value) {
251
+ // No-op: inner <mat-select [formControl]="formControl"> handles binding.
252
+ }
253
+ registerOnChange(_fn) {
254
+ // No-op.
255
+ }
256
+ registerOnTouched(_fn) {
257
+ // No-op.
258
+ }
259
+ setDisabledState(_isDisabled) {
260
+ // No-op.
261
+ }
250
262
  get texts() {
251
263
  return this.i18n.textsSignal();
252
264
  }
@@ -388,6 +400,11 @@ class MapaDropdownComponent {
388
400
  provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
389
401
  useValue: { appearance: "outline" },
390
402
  },
403
+ {
404
+ provide: NG_VALUE_ACCESSOR,
405
+ useExisting: forwardRef(() => MapaDropdownComponent),
406
+ multi: true,
407
+ },
391
408
  ], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n", styles: [":host ::ng-deep .mapa-dropdown{max-width:min-content;min-width:235px}:host ::ng-deep .mapa-dropdown .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center;position:absolute;right:28px!important;top:18px!important;z-index:1}:host ::ng-deep .mapa-dropdown__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}:host ::ng-deep .mapa-dropdown--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown .mdc-notched-outline{background-color:transparent;border-radius:8px;pointer-events:none;z-index:0}:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px;position:relative}:host ::ng-deep .mapa-dropdown .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-]{height:auto!important;align-items:start!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mat-pseudo-checkbox{margin:7px 7px 7px 0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mdc-list-item__primary-text{height:auto!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mapa-dropdown__option-value{text-wrap:auto}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-1{padding-left:30px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-2{padding-left:50px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-3{padding-left:70px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-4{padding-left:90px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-5{padding-left:100px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-6{padding-left:120px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all{padding-left:5px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox{display:none!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{align-items:flex-start;background:#f6f7f7;height:auto!important;min-height:80px;padding:16px 8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner{background:transparent!important;background-color:transparent!important;border:unset;border-radius:0;box-shadow:none!important;inset:0 auto auto 0;overflow:visible;position:relative;width:100%!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner-row{align-items:center;background:transparent;display:flex;position:relative}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-hidden{background:transparent!important;background-color:transparent!important;border:unset!important;height:0!important;line-height:0!important;padding:0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input{background-color:#fff!important;border:2px solid #a7aaad!important;border-radius:8px!important;height:28px!important;line-height:24px!important;padding:0 48px 0 12px!important;width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-clear{top:50%;transform:translateY(-50%)}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-divider{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search.mat-mdc-option-active,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search:hover{background:#f6f7f7}::ng-deep .mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mdc-checkbox__background{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i8.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "component", type: ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "component", type: MapaFormErrorsComponent, selector: "mapa-form-errors", inputs: ["control", "errors"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: SafeHtmlPipe, name: "safeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
392
409
  }
393
410
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaDropdownComponent, decorators: [{
@@ -413,6 +430,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImpo
413
430
  provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
414
431
  useValue: { appearance: "outline" },
415
432
  },
433
+ {
434
+ provide: NG_VALUE_ACCESSOR,
435
+ useExisting: forwardRef(() => MapaDropdownComponent),
436
+ multi: true,
437
+ },
416
438
  ], standalone: true, template: "@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n", styles: [":host ::ng-deep .mapa-dropdown{max-width:min-content;min-width:235px}:host ::ng-deep .mapa-dropdown .mat-mdc-select{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important}:host ::ng-deep .mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center;position:absolute;right:28px!important;top:18px!important;z-index:1}:host ::ng-deep .mapa-dropdown__label{font-family:var(--mapa-font-heading, \"Asap\", \"Inter\", sans-serif);display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}:host ::ng-deep .mapa-dropdown--highlight .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline{border-radius:16px!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px!important;border-color:#eedb2a!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--highlight .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--soft-border .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important}:host ::ng-deep .mapa-dropdown--tag .mat-mdc-text-field-wrapper{border-radius:16px}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline{border-radius:16px!important;height:42px!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-width:1px!important;border-color:#cdcdcd}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__leading{display:none!important}:host ::ng-deep .mapa-dropdown--tag .mdc-notched-outline .mdc-notched-outline__trailing{border-radius:16px!important;border-left-style:solid!important}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper{background-color:#fff;border-radius:8px}:host ::ng-deep .mapa-dropdown .mat-mdc-text-field-wrapper.mdc-text-field--outlined{padding-left:unset!important;padding-right:unset!important}:host ::ng-deep .mapa-dropdown .mdc-notched-outline{background-color:transparent;border-radius:8px;pointer-events:none;z-index:0}:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mapa-dropdown .mdc-notched-outline .mdc-notched-outline__trailing{border-width:2px}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-flex{display:flex;align-items:center;height:48px;position:relative}:host ::ng-deep .mapa-dropdown .mat-mdc-select-trigger{min-width:50px;padding-top:unset!important;height:unset!important;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-value-text{display:block;width:90%}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow-wrapper{transform:none!important;align-items:center;position:relative;z-index:1}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow{border:unset;color:#50575e}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:before,:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow:after{content:none!important}:host ::ng-deep .mapa-dropdown .mat-mdc-select-arrow svg{display:block!important;fill:currentColor}:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-error-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-hint-wrapper,:host ::ng-deep .mapa-dropdown .mat-mdc-form-field-subscript-wrapper{padding:0!important}:host ::ng-deep .mapa-dropdown [aria-expanded=true] .mat-mdc-select-arrow{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mdc-list-item__primary-text{font-family:var(--mapa-font-body, \"Asap\", \"Roboto\", \"Inter\", sans-serif)!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-]{height:auto!important;align-items:start!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mat-pseudo-checkbox{margin:7px 7px 7px 0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mdc-list-item__primary-text,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[class*=mapa-dropdown__option--children-level-] .mdc-list-item__primary-text{height:auto!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mapa-dropdown__option-value{text-wrap:auto}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-1{padding-left:30px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-2{padding-left:50px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-3{padding-left:70px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-4{padding-left:90px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-5{padding-left:100px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--children-level-6{padding-left:120px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all{padding-left:5px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option.mapa-dropdown__option--select-all .mat-pseudo-checkbox{display:none!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search{align-items:flex-start;background:#f6f7f7;height:auto!important;min-height:80px;padding:16px 8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner{background:transparent!important;background-color:transparent!important;border:unset;border-radius:0;box-shadow:none!important;inset:0 auto auto 0;overflow:visible;position:relative;width:100%!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-inner-row{align-items:center;background:transparent;display:flex;position:relative}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-hidden{background:transparent!important;background-color:transparent!important;border:unset!important;height:0!important;line-height:0!important;padding:0!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-toggle-all-checkbox{padding-left:8px!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input{background-color:#fff!important;border:2px solid #a7aaad!important;border-radius:8px!important;height:28px!important;line-height:24px!important;padding:0 48px 0 12px!important;width:100%}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-input::placeholder{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-select-search-clear{top:50%;transform:translateY(-50%)}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-divider{margin:0}::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search.mat-mdc-option-active,::ng-deep .mapa-overlay-dropdown .mat-mdc-select-panel .mat-mdc-option[aria-disabled=true].contains-mat-select-search:hover{background:#f6f7f7}::ng-deep .mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}::ng-deep .mapa-overlay-dropdown .mdc-checkbox__background{border-color:#c3c4c7!important}\n"] }]
417
439
  }], ctorParameters: () => [{ type: MapaI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formControl: [{
418
440
  type: Input
@@ -529,11 +551,11 @@ class MapaChartComponent {
529
551
  }
530
552
  }
531
553
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
532
- 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: NgApexchartsModule }, { kind: "component", type: i2$1.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: ["formControl", "formControlSearch", "element", "border"], outputs: ["openedChange"] }] }); }
554
+ 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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgApexchartsModule }, { kind: "component", type: i3$1.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: ["formControl", "formControlSearch", "element", "border"], outputs: ["openedChange"] }] }); }
533
555
  }
534
556
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.21", ngImport: i0, type: MapaChartComponent, decorators: [{
535
557
  type: Component,
536
- args: [{ selector: "mapa-chart", imports: [CommonModule, NgApexchartsModule, MapaDropdownComponent], standalone: true, 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"] }]
558
+ args: [{ selector: "mapa-chart", imports: [CommonModule, ReactiveFormsModule, NgApexchartsModule, MapaDropdownComponent], standalone: true, 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"] }]
537
559
  }], ctorParameters: () => [], propDecorators: { options: [{
538
560
  type: Input
539
561
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-components-chart.mjs","sources":["../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/i18n/mapa-ui-texts.ts","../../../projects/mapa-library-ui/src/lib/core/services/mapa-i18n.service.ts","../../../projects/mapa-library-ui/src/lib/core/services/validation-message-resolver.service.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.html","../../../projects/mapa-library-ui/src/lib/core/services/html-sanitizer.service.ts","../../../projects/mapa-library-ui/src/lib/core/pipes/safe-html.pipe.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/chart/src/chart.component.ts","../../../projects/mapa-library-ui/src/lib/components/chart/src/chart.component.html","../../../projects/mapa-library-ui/src/lib/components/chart/public-api.ts","../../../projects/mapa-library-ui/src/chart.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-chart.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n standalone: true\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button> ","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\n","import { InjectionToken, Provider } from \"@angular/core\";\nimport {\n MapaUiTextGroups,\n PartialMapaUiTexts,\n ValidationContext,\n ValidationTextResolver,\n getMapaUiTexts,\n} from \"mapa-frontend-i18n\";\n\nexport type MapaUiTexts = MapaUiTextGroups;\nexport type ValidationMessageContext = ValidationContext;\nexport type { PartialMapaUiTexts, ValidationTextResolver };\n\nexport const MAPA_UI_TEXTS = new InjectionToken<PartialMapaUiTexts>(\n \"MAPA_UI_TEXTS\"\n);\n\nfunction getDefaultTexts(): MapaUiTexts {\n return getMapaUiTexts(\"pt-BR\") as MapaUiTexts;\n}\n\nexport function mergeMapaUiTexts(\n customTexts?: PartialMapaUiTexts | null\n): MapaUiTexts {\n const defaults = getDefaultTexts();\n\n return {\n common: { ...defaults.common, ...(customTexts?.common ?? {}) },\n filters: { ...defaults.filters, ...(customTexts?.filters ?? {}) },\n datepicker: { ...defaults.datepicker, ...(customTexts?.datepicker ?? {}) },\n capability: { ...defaults.capability, ...(customTexts?.capability ?? {}) },\n paginator: { ...defaults.paginator, ...(customTexts?.paginator ?? {}) },\n warning: { ...defaults.warning, ...(customTexts?.warning ?? {}) },\n table: { ...defaults.table, ...(customTexts?.table ?? {}) },\n validation: { ...defaults.validation, ...(customTexts?.validation ?? {}) },\n };\n}\n\nexport function provideMapaUiTexts(texts: PartialMapaUiTexts): Provider {\n return {\n provide: MAPA_UI_TEXTS,\n useValue: texts,\n };\n}\n","import { Inject, Injectable, Injector, Optional, inject, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport {\n MAPA_UI_TEXTS,\n MapaUiTexts,\n PartialMapaUiTexts,\n ValidationMessageContext,\n ValidationTextResolver,\n mergeMapaUiTexts,\n} from \"../i18n/mapa-ui-texts\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MapaI18nService {\n private readonly injector = inject(Injector);\n private readonly textsState = signal<MapaUiTexts>(mergeMapaUiTexts());\n\n readonly textsSignal = this.textsState.asReadonly();\n readonly texts$ = toObservable(this.textsSignal, { injector: this.injector });\n\n constructor(\n @Optional() @Inject(MAPA_UI_TEXTS) customTexts: PartialMapaUiTexts | null\n ) {\n if (customTexts) {\n this.textsState.set(mergeMapaUiTexts(customTexts));\n }\n }\n\n get texts(): MapaUiTexts {\n return this.textsState();\n }\n\n setTexts(texts: PartialMapaUiTexts): void {\n this.textsState.set(mergeMapaUiTexts(texts));\n }\n\n resolveValidationText(\n key: keyof MapaUiTexts[\"validation\"],\n context?: ValidationMessageContext\n ): string {\n return this.resolveText(this.texts.validation[key], context);\n }\n\n private resolveText(\n value: ValidationTextResolver,\n context?: ValidationMessageContext\n ): string {\n return typeof value === \"function\" ? value(context) : value;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AbstractControl, ValidationErrors } from \"@angular/forms\";\nimport { Errors } from \"../elements/errors\";\nimport { MapaI18nService } from \"./mapa-i18n.service\";\n\ntype ValidationKey =\n | \"required\"\n | \"minlength\"\n | \"maxlength\"\n | \"cpf\"\n | \"cnpj\"\n | \"email\"\n | \"pattern\"\n | \"min\"\n | \"max\";\n\ntype ErrorOverrides = Errors & {\n maxlength?: string;\n minlength?: string;\n};\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ValidationMessageResolverService {\n private readonly errorOrder: ValidationKey[] = [\n \"required\",\n \"minlength\",\n \"maxlength\",\n \"cpf\",\n \"cnpj\",\n \"email\",\n \"pattern\",\n \"min\",\n \"max\",\n ];\n\n constructor(private readonly i18n: MapaI18nService) {}\n\n resolveFirstError(\n control?: AbstractControl | null,\n errors?: Errors\n ): string | null {\n const validationErrors = control?.errors;\n\n if (!validationErrors) {\n return null;\n }\n\n const firstErrorKey = this.errorOrder.find((key) => control?.hasError(key));\n\n if (!firstErrorKey) {\n return null;\n }\n\n return this.resolveErrorMessage(firstErrorKey, validationErrors, errors);\n }\n\n private resolveErrorMessage(\n errorKey: ValidationKey,\n validationErrors: ValidationErrors,\n errors?: Errors\n ): string {\n const errorOverrides = errors as ErrorOverrides | undefined;\n const customMessage = this.getCustomMessage(errorKey, errorOverrides);\n\n if (customMessage) {\n return customMessage;\n }\n\n const errorValue = validationErrors[errorKey];\n\n switch (errorKey) {\n case \"minlength\":\n return this.i18n.resolveValidationText(\"minLength\", errorValue);\n case \"maxlength\":\n return this.i18n.resolveValidationText(\"maxLength\", errorValue);\n case \"min\":\n return this.i18n.resolveValidationText(\"min\", errorValue);\n case \"max\":\n return this.i18n.resolveValidationText(\"max\", errorValue);\n default:\n return this.i18n.resolveValidationText(errorKey);\n }\n }\n\n private getCustomMessage(\n errorKey: ValidationKey,\n errors?: ErrorOverrides\n ): string | undefined {\n if (!errors) {\n return undefined;\n }\n\n switch (errorKey) {\n case \"minlength\":\n return errors.minLength ?? errors.minlength;\n case \"maxlength\":\n return errors.maxLength ?? errors.maxlength;\n default:\n return errors[errorKey];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { Errors } from \"../../elements/errors\";\nimport { ValidationMessageResolverService } from \"../../services/validation-message-resolver.service\";\n\n@Component({\n selector: \"mapa-form-errors\",\n imports: [CommonModule, MatFormFieldModule],\n templateUrl: \"./form-errors.component.html\"\n})\nexport class MapaFormErrorsComponent {\n @Input() control?: AbstractControl | null;\n @Input() errors?: Errors;\n\n constructor(\n private readonly validationMessageResolver: ValidationMessageResolverService\n ) {}\n\n get message(): string | null {\n return this.validationMessageResolver.resolveFirstError(\n this.control,\n this.errors\n );\n }\n}\n","<span *ngIf=\"message\">\n {{ message }}\n</span>\n","import { Injectable, SecurityContext } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nexport function sanitizeHtmlContent(\n sanitizer: DomSanitizer,\n value?: string | null\n): string {\n return sanitizer.sanitize(SecurityContext.HTML, value ?? \"\") ?? \"\";\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class HtmlSanitizerService {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n sanitize(value?: string | null): string {\n return sanitizeHtmlContent(this.sanitizer, value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HtmlSanitizerService } from \"../services/html-sanitizer.service\";\n\n@Pipe({\n name: \"safeHtml\",\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly htmlSanitizer: HtmlSanitizerService) {}\n\n transform(value?: string | null): string {\n return this.htmlSanitizer.sanitize(value);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n inject,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { FormsModule, FormControl, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatSelect } from \"@angular/material/select\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\nimport { ReplaySubject } from \"rxjs\";\nimport { ButtonComponent } from \"../../button/public-api\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { MapaFormErrorsComponent } from \"../../../core/components/form-errors/form-errors.component\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { SafeHtmlPipe } from \"../../../core/pipes/safe-html.pipe\";\nimport { MapaI18nService } from \"../../../core/services/mapa-i18n.service\";\n\n@Component({\n selector: \"mapa-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrl: \"./dropdown.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ButtonComponent,\n MapaFormErrorsComponent,\n SafeHtmlPipe,\n ],\n providers: [\n {\n provide: MAT_SELECT_CONFIG,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n ],\n standalone: true\n})\nexport class MapaDropdownComponent\n implements OnInit, OnChanges, AfterViewInit\n{\n @Input() formControl!: FormControl;\n @Input() formControlSearch!: FormControl;\n @Input() element!: Dropdown;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n @Output() openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild(\"dropdown\", { static: true }) dropdown!: MatSelect;\n\n public filteredOptions: ReplaySubject<ElementOption[]> = new ReplaySubject<\n ElementOption[]\n >(1);\n public filteredGroups: ReplaySubject<ElementGroup[]> = new ReplaySubject<\n ElementGroup[]\n >(1);\n protected filteredOptionsCache: ElementOption[] = [];\n protected filteredGroupCache: ElementGroup[] = [];\n private readonly destroyRef = inject(DestroyRef);\n\n isIndeterminate = false;\n isChecked = false;\n isOptionsGroup = false;\n\n constructor(\n private readonly i18n: MapaI18nService,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n get texts() {\n return this.i18n.textsSignal();\n }\n\n get selectAllLabel(): string {\n return this.texts.common.selectAll;\n }\n\n get selectedOptions(): ElementOption[] {\n const value = this.formControl?.value;\n\n if (Array.isArray(value)) {\n return value.filter((option): option is ElementOption =>\n this.isElementOption(option)\n );\n }\n\n return this.isElementOption(value) ? [value] : [];\n }\n\n ngOnInit(): void {\n this.setOptions();\n\n this.element.search?.formControl?.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.filterOptions();\n this.setToggleAllCheckboxState();\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n Promise.resolve().then(() => this.cdr.detectChanges());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes[\"element\"]?.previousValue !== undefined &&\n changes[\"element\"].previousValue?.controlType === \"dropdown\" &&\n changes[\"element\"].previousValue?.options !==\n changes[\"element\"].currentValue?.options\n ) {\n this.element.options = changes[\"element\"].currentValue.options;\n this.setOptions();\n this.cdr.markForCheck();\n }\n }\n\n setOptions(): void {\n this.isOptionsGroup = this.isElementGroup(this.element.options[0]);\n\n if (this.isOptionsGroup) {\n this.filteredGroupCache = (this.element.options as ElementGroup[]).slice();\n this.filteredGroups.next(this.filteredGroupCache);\n this.cdr.markForCheck();\n return;\n }\n\n this.filteredOptionsCache = (this.element.options as ElementOption[]).slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n this.cdr.markForCheck();\n }\n\n protected filterOptionsFromGroup(\n group: ElementGroup,\n value: string\n ): ElementOption[] {\n const filterValue = this.normalizeValue(value);\n\n return this.normalizeValue(group.label).includes(filterValue)\n ? group.options\n : group.options.filter((item) =>\n this.normalizeValue(item.value).includes(filterValue)\n );\n }\n\n protected filterOptions(): void {\n if (!this.element.options) {\n return;\n }\n\n const search = this.normalizeValue(this.element.search?.formControl?.value);\n\n if (this.isOptionsGroup) {\n const groups = this.element.options as ElementGroup[];\n this.filteredGroupCache = groups\n .map((group: ElementGroup) => ({\n label: group.label,\n options: this.filterOptionsFromGroup(group, search),\n }))\n .filter((group) => group.options.length > 0);\n this.filteredGroups.next(this.filteredGroupCache);\n return;\n }\n\n const options = this.element.options as ElementOption[];\n if (!search) {\n this.filteredOptionsCache = options.slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n return;\n }\n\n this.filteredOptionsCache = options.filter((option: ElementOption) =>\n this.normalizeValue(option.value).includes(search)\n );\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n\n normalizeValue(value?: string | null): string {\n return (value ?? \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLowerCase();\n }\n\n triggerOpenedChange(event: boolean): void {\n this.openedChange.emit(event);\n }\n\n protected setToggleAllCheckboxState(): void {\n const search = this.normalizeValue(this.element.search?.formControl?.value);\n\n if (!search) {\n this.isIndeterminate = false;\n this.isChecked = false;\n return;\n }\n\n const filteredLength = this.filteredOptionsCache.filter((option) =>\n this.normalizeValue(option.value).includes(search)\n ).length;\n\n this.isIndeterminate =\n filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;\n this.isChecked =\n filteredLength > 0 && filteredLength === this.filteredOptionsCache.length;\n this.cdr.markForCheck();\n }\n\n toggleSelectAll(event: MatCheckboxChange): void {\n if (this.isOptionsGroup) {\n const groupOptions = this.filteredGroupCache.reduce(\n (accumulator: ElementOption[], group) => accumulator.concat(group.options),\n []\n );\n this.formControl?.patchValue(event.checked ? groupOptions : []);\n return;\n }\n\n this.formControl?.patchValue(event.checked ? this.filteredOptionsCache : []);\n }\n\n isElementGroup(object: ElementGroup | ElementOption): object is ElementGroup {\n return !!object && \"label\" in object && \"options\" in object;\n }\n\n isElementOption(object: unknown): object is ElementOption {\n return (\n !!object &&\n typeof object === \"object\" &&\n \"key\" in object &&\n \"value\" in object\n );\n }\n\n compareFn(c1: ElementOption | null, c2: ElementOption | null): boolean {\n return c1 && c2 ? c1.key === c2.key : c1 === c2;\n }\n\n hasValue(): boolean {\n const value = this.formControl?.value;\n return Array.isArray(value) ? value.length > 0 : this.isElementOption(value);\n }\n\n clearValue(event: MouseEvent): void {\n event.stopPropagation();\n this.formControl.setValue(null);\n this.cdr.markForCheck();\n }\n}\n","@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NgApexchartsModule } from \"ng-apexcharts\";\nimport { MapaDropdownComponent } from \"../../dropdown/public-api\";\nimport { ChartOptions } from \"../../../core/interfaces/chart-options.interface\";\n\n@Component({\n selector: \"mapa-chart\",\n templateUrl: \"./chart.component.html\",\n styleUrl: \"./chart.component.scss\",\n imports: [CommonModule, NgApexchartsModule, MapaDropdownComponent],\n standalone: true,\n})\nexport class MapaChartComponent implements OnInit, OnChanges {\n @Input() options!: Partial<ChartOptions>;\n\n private colors = [\"#EA561D\", \"#6195FB\", \"#2ED47A\", \"#EEDB2A\"];\n public chartOptions!: Partial<ChartOptions>;\n\n constructor() {}\n\n ngOnInit(): void {\n this.generateChart();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"options\"]) {\n this.generateChart();\n }\n }\n\n private generateChart(): void {\n if (this.options) {\n this.chartOptions = {\n series: this.options.series,\n chart: {\n height: 500,\n width: \"100%\",\n type: this.options.chart?.type || \"radar\",\n events: {\n beforeMount: (chart) => {\n chart.windowResizeHandler();\n },\n },\n toolbar: {\n show: false,\n },\n },\n stroke: {\n width: 1,\n colors: this.colors,\n },\n fill: {\n opacity: 0.3,\n colors: this.colors,\n },\n markers: {\n size: 2,\n shape: \"circle\",\n colors: this.colors,\n strokeColors: this.colors,\n },\n xaxis: {\n categories: this.options.xaxis?.categories,\n labels: {\n style: {\n colors: new Array(this.options.xaxis?.categories.length).fill(\n \"#666666\"\n ),\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n },\n },\n },\n yaxis: {\n labels: {\n style: {\n colors: \"#9B9B9B\",\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n },\n },\n tickAmount: 10,\n min: 0,\n max: 100,\n },\n legend: {\n position: \"right\",\n horizontalAlign: \"center\",\n height: 500,\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n offsetX: 30,\n markers: {\n fillColors: this.colors,\n },\n },\n responsive: [\n {\n breakpoint: 1300,\n options: {\n chart: {\n width: \"100%\",\n height: 550,\n },\n legend: {\n position: \"bottom\",\n horizontalAlign: \"center\",\n height: 100,\n },\n },\n },\n ],\n };\n }\n }\n}\n\n","<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","/*\n * Public API Surface of mapa-library-ui chart\n */\n\nexport * from './src/chart.component';\n","/*\n * Public API Surface of mapa-library-ui chart\n */\n\nexport * from './lib/components/chart/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './chart';\n"],"names":["i1.MapaI18nService","i1.ValidationMessageResolverService","i1.HtmlSanitizerService","i1"],"mappings":"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"}
1
+ {"version":3,"file":"mapa-library-ui-src-lib-components-chart.mjs","sources":["../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/i18n/mapa-ui-texts.ts","../../../projects/mapa-library-ui/src/lib/core/services/mapa-i18n.service.ts","../../../projects/mapa-library-ui/src/lib/core/services/validation-message-resolver.service.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.html","../../../projects/mapa-library-ui/src/lib/core/services/html-sanitizer.service.ts","../../../projects/mapa-library-ui/src/lib/core/pipes/safe-html.pipe.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/chart/src/chart.component.ts","../../../projects/mapa-library-ui/src/lib/components/chart/src/chart.component.html","../../../projects/mapa-library-ui/src/lib/components/chart/public-api.ts","../../../projects/mapa-library-ui/src/chart.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-chart.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n standalone: true\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button> ","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\n","import { InjectionToken, Provider } from \"@angular/core\";\nimport {\n MapaUiTextGroups,\n PartialMapaUiTexts,\n ValidationContext,\n ValidationTextResolver,\n getMapaUiTexts,\n} from \"mapa-frontend-i18n\";\n\nexport type MapaUiTexts = MapaUiTextGroups;\nexport type ValidationMessageContext = ValidationContext;\nexport type { PartialMapaUiTexts, ValidationTextResolver };\n\nexport const MAPA_UI_TEXTS = new InjectionToken<PartialMapaUiTexts>(\n \"MAPA_UI_TEXTS\"\n);\n\nfunction getDefaultTexts(): MapaUiTexts {\n return getMapaUiTexts(\"pt-BR\") as MapaUiTexts;\n}\n\nexport function mergeMapaUiTexts(\n customTexts?: PartialMapaUiTexts | null\n): MapaUiTexts {\n const defaults = getDefaultTexts();\n\n return {\n common: { ...defaults.common, ...(customTexts?.common ?? {}) },\n filters: { ...defaults.filters, ...(customTexts?.filters ?? {}) },\n datepicker: { ...defaults.datepicker, ...(customTexts?.datepicker ?? {}) },\n capability: { ...defaults.capability, ...(customTexts?.capability ?? {}) },\n paginator: { ...defaults.paginator, ...(customTexts?.paginator ?? {}) },\n warning: { ...defaults.warning, ...(customTexts?.warning ?? {}) },\n table: { ...defaults.table, ...(customTexts?.table ?? {}) },\n validation: { ...defaults.validation, ...(customTexts?.validation ?? {}) },\n };\n}\n\nexport function provideMapaUiTexts(texts: PartialMapaUiTexts): Provider {\n return {\n provide: MAPA_UI_TEXTS,\n useValue: texts,\n };\n}\n","import { Inject, Injectable, Injector, Optional, inject, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport {\n MAPA_UI_TEXTS,\n MapaUiTexts,\n PartialMapaUiTexts,\n ValidationMessageContext,\n ValidationTextResolver,\n mergeMapaUiTexts,\n} from \"../i18n/mapa-ui-texts\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MapaI18nService {\n private readonly injector = inject(Injector);\n private readonly textsState = signal<MapaUiTexts>(mergeMapaUiTexts());\n\n readonly textsSignal = this.textsState.asReadonly();\n readonly texts$ = toObservable(this.textsSignal, { injector: this.injector });\n\n constructor(\n @Optional() @Inject(MAPA_UI_TEXTS) customTexts: PartialMapaUiTexts | null\n ) {\n if (customTexts) {\n this.textsState.set(mergeMapaUiTexts(customTexts));\n }\n }\n\n get texts(): MapaUiTexts {\n return this.textsState();\n }\n\n setTexts(texts: PartialMapaUiTexts): void {\n this.textsState.set(mergeMapaUiTexts(texts));\n }\n\n resolveValidationText(\n key: keyof MapaUiTexts[\"validation\"],\n context?: ValidationMessageContext\n ): string {\n return this.resolveText(this.texts.validation[key], context);\n }\n\n private resolveText(\n value: ValidationTextResolver,\n context?: ValidationMessageContext\n ): string {\n return typeof value === \"function\" ? value(context) : value;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AbstractControl, ValidationErrors } from \"@angular/forms\";\nimport { Errors } from \"../elements/errors\";\nimport { MapaI18nService } from \"./mapa-i18n.service\";\n\ntype ValidationKey =\n | \"required\"\n | \"minlength\"\n | \"maxlength\"\n | \"cpf\"\n | \"cnpj\"\n | \"email\"\n | \"pattern\"\n | \"min\"\n | \"max\";\n\ntype ErrorOverrides = Errors & {\n maxlength?: string;\n minlength?: string;\n};\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ValidationMessageResolverService {\n private readonly errorOrder: ValidationKey[] = [\n \"required\",\n \"minlength\",\n \"maxlength\",\n \"cpf\",\n \"cnpj\",\n \"email\",\n \"pattern\",\n \"min\",\n \"max\",\n ];\n\n constructor(private readonly i18n: MapaI18nService) {}\n\n resolveFirstError(\n control?: AbstractControl | null,\n errors?: Errors\n ): string | null {\n const validationErrors = control?.errors;\n\n if (!validationErrors) {\n return null;\n }\n\n const firstErrorKey = this.errorOrder.find((key) => control?.hasError(key));\n\n if (!firstErrorKey) {\n return null;\n }\n\n return this.resolveErrorMessage(firstErrorKey, validationErrors, errors);\n }\n\n private resolveErrorMessage(\n errorKey: ValidationKey,\n validationErrors: ValidationErrors,\n errors?: Errors\n ): string {\n const errorOverrides = errors as ErrorOverrides | undefined;\n const customMessage = this.getCustomMessage(errorKey, errorOverrides);\n\n if (customMessage) {\n return customMessage;\n }\n\n const errorValue = validationErrors[errorKey];\n\n switch (errorKey) {\n case \"minlength\":\n return this.i18n.resolveValidationText(\"minLength\", errorValue);\n case \"maxlength\":\n return this.i18n.resolveValidationText(\"maxLength\", errorValue);\n case \"min\":\n return this.i18n.resolveValidationText(\"min\", errorValue);\n case \"max\":\n return this.i18n.resolveValidationText(\"max\", errorValue);\n default:\n return this.i18n.resolveValidationText(errorKey);\n }\n }\n\n private getCustomMessage(\n errorKey: ValidationKey,\n errors?: ErrorOverrides\n ): string | undefined {\n if (!errors) {\n return undefined;\n }\n\n switch (errorKey) {\n case \"minlength\":\n return errors.minLength ?? errors.minlength;\n case \"maxlength\":\n return errors.maxLength ?? errors.maxlength;\n default:\n return errors[errorKey];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { Errors } from \"../../elements/errors\";\nimport { ValidationMessageResolverService } from \"../../services/validation-message-resolver.service\";\n\n@Component({\n selector: \"mapa-form-errors\",\n imports: [CommonModule, MatFormFieldModule],\n templateUrl: \"./form-errors.component.html\"\n})\nexport class MapaFormErrorsComponent {\n @Input() control?: AbstractControl | null;\n @Input() errors?: Errors;\n\n constructor(\n private readonly validationMessageResolver: ValidationMessageResolverService\n ) {}\n\n get message(): string | null {\n return this.validationMessageResolver.resolveFirstError(\n this.control,\n this.errors\n );\n }\n}\n","<span *ngIf=\"message\">\n {{ message }}\n</span>\n","import { Injectable, SecurityContext } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nexport function sanitizeHtmlContent(\n sanitizer: DomSanitizer,\n value?: string | null\n): string {\n return sanitizer.sanitize(SecurityContext.HTML, value ?? \"\") ?? \"\";\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class HtmlSanitizerService {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n sanitize(value?: string | null): string {\n return sanitizeHtmlContent(this.sanitizer, value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HtmlSanitizerService } from \"../services/html-sanitizer.service\";\n\n@Pipe({\n name: \"safeHtml\",\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly htmlSanitizer: HtmlSanitizerService) {}\n\n transform(value?: string | null): string {\n return this.htmlSanitizer.sanitize(value);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n forwardRef,\n inject,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n ControlValueAccessor,\n FormsModule,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS, MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatSelect } from \"@angular/material/select\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\nimport { ReplaySubject } from \"rxjs\";\nimport { ButtonComponent } from \"../../button/public-api\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { MapaFormErrorsComponent } from \"../../../core/components/form-errors/form-errors.component\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { SafeHtmlPipe } from \"../../../core/pipes/safe-html.pipe\";\nimport { MapaI18nService } from \"../../../core/services/mapa-i18n.service\";\n\n@Component({\n selector: \"mapa-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrl: \"./dropdown.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n MatFormFieldModule,\n MatIconModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ButtonComponent,\n MapaFormErrorsComponent,\n SafeHtmlPipe,\n ],\n providers: [\n {\n provide: MAT_SELECT_CONFIG,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MapaDropdownComponent),\n multi: true,\n },\n ],\n standalone: true\n})\nexport class MapaDropdownComponent\n implements ControlValueAccessor, OnInit, OnChanges, AfterViewInit\n{\n @Input() formControl!: FormControl;\n @Input() formControlSearch!: FormControl;\n @Input() element!: Dropdown;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n @Output() openedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild(\"dropdown\", { static: true }) dropdown!: MatSelect;\n\n public filteredOptions: ReplaySubject<ElementOption[]> = new ReplaySubject<\n ElementOption[]\n >(1);\n public filteredGroups: ReplaySubject<ElementGroup[]> = new ReplaySubject<\n ElementGroup[]\n >(1);\n protected filteredOptionsCache: ElementOption[] = [];\n protected filteredGroupCache: ElementGroup[] = [];\n private readonly destroyRef = inject(DestroyRef);\n\n isIndeterminate = false;\n isChecked = false;\n isOptionsGroup = false;\n\n constructor(\n private readonly i18n: MapaI18nService,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n writeValue(_value: unknown): void {\n // No-op: inner <mat-select [formControl]=\"formControl\"> handles binding.\n }\n\n registerOnChange(_fn: (value: unknown) => void): void {\n // No-op.\n }\n\n registerOnTouched(_fn: () => void): void {\n // No-op.\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // No-op.\n }\n\n get texts() {\n return this.i18n.textsSignal();\n }\n\n get selectAllLabel(): string {\n return this.texts.common.selectAll;\n }\n\n get selectedOptions(): ElementOption[] {\n const value = this.formControl?.value;\n\n if (Array.isArray(value)) {\n return value.filter((option): option is ElementOption =>\n this.isElementOption(option)\n );\n }\n\n return this.isElementOption(value) ? [value] : [];\n }\n\n ngOnInit(): void {\n this.setOptions();\n\n this.element.search?.formControl?.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.filterOptions();\n this.setToggleAllCheckboxState();\n this.cdr.markForCheck();\n });\n }\n\n ngAfterViewInit(): void {\n Promise.resolve().then(() => this.cdr.detectChanges());\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes[\"element\"]?.previousValue !== undefined &&\n changes[\"element\"].previousValue?.controlType === \"dropdown\" &&\n changes[\"element\"].previousValue?.options !==\n changes[\"element\"].currentValue?.options\n ) {\n this.element.options = changes[\"element\"].currentValue.options;\n this.setOptions();\n this.cdr.markForCheck();\n }\n }\n\n setOptions(): void {\n this.isOptionsGroup = this.isElementGroup(this.element.options[0]);\n\n if (this.isOptionsGroup) {\n this.filteredGroupCache = (this.element.options as ElementGroup[]).slice();\n this.filteredGroups.next(this.filteredGroupCache);\n this.cdr.markForCheck();\n return;\n }\n\n this.filteredOptionsCache = (this.element.options as ElementOption[]).slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n this.cdr.markForCheck();\n }\n\n protected filterOptionsFromGroup(\n group: ElementGroup,\n value: string\n ): ElementOption[] {\n const filterValue = this.normalizeValue(value);\n\n return this.normalizeValue(group.label).includes(filterValue)\n ? group.options\n : group.options.filter((item) =>\n this.normalizeValue(item.value).includes(filterValue)\n );\n }\n\n protected filterOptions(): void {\n if (!this.element.options) {\n return;\n }\n\n const search = this.normalizeValue(this.element.search?.formControl?.value);\n\n if (this.isOptionsGroup) {\n const groups = this.element.options as ElementGroup[];\n this.filteredGroupCache = groups\n .map((group: ElementGroup) => ({\n label: group.label,\n options: this.filterOptionsFromGroup(group, search),\n }))\n .filter((group) => group.options.length > 0);\n this.filteredGroups.next(this.filteredGroupCache);\n return;\n }\n\n const options = this.element.options as ElementOption[];\n if (!search) {\n this.filteredOptionsCache = options.slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n return;\n }\n\n this.filteredOptionsCache = options.filter((option: ElementOption) =>\n this.normalizeValue(option.value).includes(search)\n );\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n\n normalizeValue(value?: string | null): string {\n return (value ?? \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLowerCase();\n }\n\n triggerOpenedChange(event: boolean): void {\n this.openedChange.emit(event);\n }\n\n protected setToggleAllCheckboxState(): void {\n const search = this.normalizeValue(this.element.search?.formControl?.value);\n\n if (!search) {\n this.isIndeterminate = false;\n this.isChecked = false;\n return;\n }\n\n const filteredLength = this.filteredOptionsCache.filter((option) =>\n this.normalizeValue(option.value).includes(search)\n ).length;\n\n this.isIndeterminate =\n filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;\n this.isChecked =\n filteredLength > 0 && filteredLength === this.filteredOptionsCache.length;\n this.cdr.markForCheck();\n }\n\n toggleSelectAll(event: MatCheckboxChange): void {\n if (this.isOptionsGroup) {\n const groupOptions = this.filteredGroupCache.reduce(\n (accumulator: ElementOption[], group) => accumulator.concat(group.options),\n []\n );\n this.formControl?.patchValue(event.checked ? groupOptions : []);\n return;\n }\n\n this.formControl?.patchValue(event.checked ? this.filteredOptionsCache : []);\n }\n\n isElementGroup(object: ElementGroup | ElementOption): object is ElementGroup {\n return !!object && \"label\" in object && \"options\" in object;\n }\n\n isElementOption(object: unknown): object is ElementOption {\n return (\n !!object &&\n typeof object === \"object\" &&\n \"key\" in object &&\n \"value\" in object\n );\n }\n\n compareFn(c1: ElementOption | null, c2: ElementOption | null): boolean {\n return c1 && c2 ? c1.key === c2.key : c1 === c2;\n }\n\n hasValue(): boolean {\n const value = this.formControl?.value;\n return Array.isArray(value) ? value.length > 0 : this.isElementOption(value);\n }\n\n clearValue(event: MouseEvent): void {\n event.stopPropagation();\n this.formControl.setValue(null);\n this.cdr.markForCheck();\n }\n}\n","@if (element) {\n @if (element.label) {\n <label class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n }\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n (openedChange)=\"triggerOpenedChange($event)\"\n >\n @if (element.search) {\n <mat-option class=\"mapa-dropdown__search\">\n @if (element.search.formControl) {\n <ngx-mat-select-search\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n ></ngx-mat-select-search>\n }\n </mat-option>\n }\n @if (element.multiple) {\n <mat-option class=\"mapa-dropdown__option--select-all\">\n <mat-checkbox\n class=\"mat-option\"\n [indeterminate]=\"isIndeterminate\"\n [checked]=\"isChecked\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleSelectAll($event)\"\n >\n {{ selectAllLabel }}\n </mat-checkbox>\n </mat-option>\n }\n @if (isOptionsGroup) {\n @if (filteredGroups | async; as groups) {\n @for (group of groups; track group.label) {\n <mat-optgroup [label]=\"group.label\">\n @for (option of group.options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-optgroup>\n }\n }\n } @else {\n @if (filteredOptions | async; as options) {\n @for (option of options; track option.key) {\n <mat-option\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option mapa-dropdown__option--children-level-' +\n option.childrenLevel,\n ]\"\n >\n <span\n class=\"mapa-dropdown__option-value\"\n [innerHTML]=\"option.value | safeHtml\"\n ></span>\n </mat-option>\n }\n }\n }\n\n @for (option of selectedOptions; track option.key) {\n <mat-option\n hidden\n [value]=\"option\"\n [ngClass]=\"[\n 'mapa-dropdown__option--children-level-' + option.childrenLevel,\n ]\"\n >\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </mat-option>\n }\n </mat-select>\n @if (element.hint) {\n <mat-hint>{{ element.hint }}</mat-hint>\n }\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n @if (hasValue() && !formControl.disabled && element.clearValue) {\n <mat-icon\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n }\n </mat-form-field>\n @if (element.actionButton) {\n <div class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n }\n </div>\n}\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { NgApexchartsModule } from \"ng-apexcharts\";\nimport { MapaDropdownComponent } from \"../../dropdown/public-api\";\nimport { ChartOptions } from \"../../../core/interfaces/chart-options.interface\";\n\n@Component({\n selector: \"mapa-chart\",\n templateUrl: \"./chart.component.html\",\n styleUrl: \"./chart.component.scss\",\n imports: [CommonModule, ReactiveFormsModule, NgApexchartsModule, MapaDropdownComponent],\n standalone: true,\n})\nexport class MapaChartComponent implements OnInit, OnChanges {\n @Input() options!: Partial<ChartOptions>;\n\n private colors = [\"#EA561D\", \"#6195FB\", \"#2ED47A\", \"#EEDB2A\"];\n public chartOptions!: Partial<ChartOptions>;\n\n constructor() {}\n\n ngOnInit(): void {\n this.generateChart();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"options\"]) {\n this.generateChart();\n }\n }\n\n private generateChart(): void {\n if (this.options) {\n this.chartOptions = {\n series: this.options.series,\n chart: {\n height: 500,\n width: \"100%\",\n type: this.options.chart?.type || \"radar\",\n events: {\n beforeMount: (chart) => {\n chart.windowResizeHandler();\n },\n },\n toolbar: {\n show: false,\n },\n },\n stroke: {\n width: 1,\n colors: this.colors,\n },\n fill: {\n opacity: 0.3,\n colors: this.colors,\n },\n markers: {\n size: 2,\n shape: \"circle\",\n colors: this.colors,\n strokeColors: this.colors,\n },\n xaxis: {\n categories: this.options.xaxis?.categories,\n labels: {\n style: {\n colors: new Array(this.options.xaxis?.categories.length).fill(\n \"#666666\"\n ),\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n },\n },\n },\n yaxis: {\n labels: {\n style: {\n colors: \"#9B9B9B\",\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n },\n },\n tickAmount: 10,\n min: 0,\n max: 100,\n },\n legend: {\n position: \"right\",\n horizontalAlign: \"center\",\n height: 500,\n fontSize: \"12px\",\n fontFamily: \"Asap\",\n offsetX: 30,\n markers: {\n fillColors: this.colors,\n },\n },\n responsive: [\n {\n breakpoint: 1300,\n options: {\n chart: {\n width: \"100%\",\n height: 550,\n },\n legend: {\n position: \"bottom\",\n horizontalAlign: \"center\",\n height: 100,\n },\n },\n },\n ],\n };\n }\n }\n}\n\n","<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","/*\n * Public API Surface of mapa-library-ui chart\n */\n\nexport * from './src/chart.component';\n","/*\n * Public API Surface of mapa-library-ui chart\n */\n\nexport * from './lib/components/chart/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './chart';\n"],"names":["i1.MapaI18nService","i1.ValidationMessageResolverService","i1.HtmlSanitizerService","i2","i3"],"mappings":"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"}
@@ -14,12 +14,15 @@ import { MatIconModule } from '@angular/material/icon';
14
14
  import * as i6 from '@angular/material/input';
15
15
  import { MatInputModule } from '@angular/material/input';
16
16
  import { NgxMaskDirective, provideNgxMask } from 'ngx-mask';
17
- import { getMapaUiTexts } from 'mapa-frontend-i18n';
17
+ import { getIntlLocale, getStoredAppLanguage, getMapaUiTexts } from 'mapa-frontend-i18n';
18
18
 
19
19
  const DAY_MONTH_YEAR_PATTERN = /^(\d{2})\/(\d{2})\/(\d{4})$/;
20
20
  function isValidDate(date) {
21
21
  return !Number.isNaN(date.getTime());
22
22
  }
23
+ function buildUtcDate(date, dayOffset, hours, minutes, seconds, milliseconds) {
24
+ return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate() + dayOffset, hours, minutes, seconds, milliseconds));
25
+ }
23
26
  function formatDateAsDayMonthYear(date) {
24
27
  const day = `${date.getDate()}`.padStart(2, "0");
25
28
  const month = `${date.getMonth() + 1}`.padStart(2, "0");
@@ -41,18 +44,11 @@ function parseDateValue(value) {
41
44
  if (!trimmedValue) {
42
45
  return null;
43
46
  }
44
- const dayMonthYearMatch = DAY_MONTH_YEAR_PATTERN.exec(trimmedValue);
45
- if (dayMonthYearMatch) {
46
- const [, dayValue, monthValue, yearValue] = dayMonthYearMatch;
47
- const day = Number(dayValue);
48
- const month = Number(monthValue);
49
- const year = Number(yearValue);
50
- const parsedDate = new Date(year, month - 1, day);
51
- if (parsedDate.getFullYear() === year &&
52
- parsedDate.getMonth() === month - 1 &&
53
- parsedDate.getDate() === day) {
54
- return parsedDate;
55
- }
47
+ const brazilianDate = parseBrazilianDate(trimmedValue);
48
+ if (brazilianDate) {
49
+ return brazilianDate;
50
+ }
51
+ if (DAY_MONTH_YEAR_PATTERN.test(trimmedValue)) {
56
52
  return null;
57
53
  }
58
54
  const parsedDate = new Date(trimmedValue);
@@ -61,6 +57,62 @@ function parseDateValue(value) {
61
57
  function isDateValue(value) {
62
58
  return parseDateValue(value) !== null;
63
59
  }
60
+ function parseBrazilianDate(value) {
61
+ const match = DAY_MONTH_YEAR_PATTERN.exec(value.trim());
62
+ if (!match) {
63
+ return null;
64
+ }
65
+ const [, dayValue, monthValue, yearValue] = match;
66
+ const day = Number(dayValue);
67
+ const month = Number(monthValue);
68
+ const year = Number(yearValue);
69
+ const parsedDate = new Date(year, month - 1, day);
70
+ if (parsedDate.getFullYear() !== year ||
71
+ parsedDate.getMonth() !== month - 1 ||
72
+ parsedDate.getDate() !== day) {
73
+ return null;
74
+ }
75
+ return parsedDate;
76
+ }
77
+ function normalizeDateInput(value) {
78
+ return parseDateValue(value);
79
+ }
80
+ function formatBrazilianDate(value) {
81
+ const date = normalizeDateInput(value);
82
+ return date ? formatDateAsDayMonthYear(date) : "";
83
+ }
84
+ function addDays(date, days) {
85
+ const nextDate = new Date(date);
86
+ nextDate.setDate(nextDate.getDate() + days);
87
+ return nextDate;
88
+ }
89
+ function formatLocaleDate(value, dateStyle = "short") {
90
+ const date = normalizeDateInput(value);
91
+ if (!date) {
92
+ return "";
93
+ }
94
+ return new Intl.DateTimeFormat(getIntlLocale(getStoredAppLanguage()), {
95
+ dateStyle,
96
+ }).format(date);
97
+ }
98
+ function formatLocaleDateTime(value, options = {}) {
99
+ const date = normalizeDateInput(value);
100
+ if (!date) {
101
+ return "";
102
+ }
103
+ const { dateStyle = "short", timeStyle = "short" } = options;
104
+ return new Intl.DateTimeFormat(getIntlLocale(getStoredAppLanguage()), {
105
+ dateStyle,
106
+ timeStyle,
107
+ }).format(date);
108
+ }
109
+ function getDefaultDateRange(days = 60) {
110
+ const today = new Date();
111
+ return {
112
+ startDate: formatBrazilianDate(addDays(today, -days)),
113
+ endDate: formatBrazilianDate(today),
114
+ };
115
+ }
64
116
  function getRelativeDateRange(daysBack) {
65
117
  const endDate = new Date();
66
118
  endDate.setHours(23, 59, 59, 999);
@@ -69,6 +121,18 @@ function getRelativeDateRange(daysBack) {
69
121
  startDate.setDate(startDate.getDate() - daysBack);
70
122
  return { startDate, endDate };
71
123
  }
124
+ function toUtcRangeStartIso(value) {
125
+ const date = normalizeDateInput(value);
126
+ return date ? buildUtcDate(date, 0, 3, 0, 0, 0).toISOString() : undefined;
127
+ }
128
+ function toUtcRangeEndIso(value) {
129
+ const date = normalizeDateInput(value);
130
+ return date ? buildUtcDate(date, 1, 2, 59, 59, 999).toISOString() : undefined;
131
+ }
132
+ function toUtcDayExclusiveEndIso(value) {
133
+ const date = normalizeDateInput(value);
134
+ return date ? buildUtcDate(date, 1, 3, 0, 0, 0).toISOString() : undefined;
135
+ }
72
136
 
73
137
  const MAPA_UI_TEXTS = new InjectionToken("MAPA_UI_TEXTS");
74
138
  function getDefaultTexts() {