structra-ui 0.1.18 → 0.1.20

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 (150) hide show
  1. package/README.md +3 -4
  2. package/fesm2022/structra-ui.mjs +326 -326
  3. package/fesm2022/structra-ui.mjs.map +1 -1
  4. package/package.json +16 -25
  5. package/esm2022/app/_utils/date-pt-br.utils.mjs +0 -82
  6. package/esm2022/app/_utils/decimal-br.utils.mjs +0 -154
  7. package/esm2022/app/_utils/estados-br.data.mjs +0 -37
  8. package/esm2022/app/_utils/integer-br.utils.mjs +0 -48
  9. package/esm2022/app/_utils/integer-value.utils.mjs +0 -19
  10. package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +0 -97
  11. package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +0 -2
  12. package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +0 -29
  13. package/esm2022/app/app-shell/app-shell.component.mjs +0 -105
  14. package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +0 -18
  15. package/esm2022/app/app-shell/index.mjs +0 -19
  16. package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +0 -23
  17. package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +0 -36
  18. package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +0 -84
  19. package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +0 -9
  20. package/esm2022/app/app-shell/topbar/topbar.component.mjs +0 -14
  21. package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +0 -52
  22. package/esm2022/app/buttons/base-button/base-button.component.mjs +0 -97
  23. package/esm2022/app/buttons/index.mjs +0 -2
  24. package/esm2022/app/data-display/_models/card-item-view.model.mjs +0 -2
  25. package/esm2022/app/data-display/_models/data-display.models.mjs +0 -2
  26. package/esm2022/app/data-display/_models/data-grid-column.model.mjs +0 -2
  27. package/esm2022/app/data-display/_models/index.mjs +0 -2
  28. package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +0 -124
  29. package/esm2022/app/data-display/card-list/card-list.component.mjs +0 -208
  30. package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +0 -25
  31. package/esm2022/app/data-display/data-card/data-card.component.mjs +0 -40
  32. package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +0 -41
  33. package/esm2022/app/data-display/data-grid/data-grid.component.mjs +0 -253
  34. package/esm2022/app/data-display/data-list/data-list.component.mjs +0 -40
  35. package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +0 -12
  36. package/esm2022/app/data-display/details-field/details-field.component.mjs +0 -21
  37. package/esm2022/app/data-display/details-view/details-view.component.mjs +0 -44
  38. package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +0 -19
  39. package/esm2022/app/data-display/empty-state/empty-state.component.mjs +0 -30
  40. package/esm2022/app/data-display/index.mjs +0 -19
  41. package/esm2022/app/data-display/list-item/list-item.component.mjs +0 -59
  42. package/esm2022/app/data-display/stat-card/stat-card.component.mjs +0 -59
  43. package/esm2022/app/data-display/status-badge/status-badge.component.mjs +0 -41
  44. package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +0 -31
  45. package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +0 -22
  46. package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +0 -8
  47. package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +0 -22
  48. package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +0 -6
  49. package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +0 -200
  50. package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +0 -15
  51. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +0 -2
  52. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -36
  53. package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +0 -47
  54. package/esm2022/app/dialogs/index.mjs +0 -12
  55. package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +0 -2
  56. package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +0 -19
  57. package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +0 -38
  58. package/esm2022/app/dialogs/toast/toast-host.component.mjs +0 -65
  59. package/esm2022/app/dialogs/toast/toast.models.mjs +0 -2
  60. package/esm2022/app/dialogs/toast/toast.service.mjs +0 -76
  61. package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +0 -158
  62. package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +0 -36
  63. package/esm2022/app/fields/checkbox-fields/index.mjs +0 -4
  64. package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +0 -35
  65. package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +0 -117
  66. package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +0 -152
  67. package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +0 -149
  68. package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +0 -32
  69. package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +0 -2
  70. package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +0 -2
  71. package/esm2022/app/fields/dropdown-fields/_models/index.mjs +0 -2
  72. package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +0 -2
  73. package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +0 -2
  74. package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +0 -520
  75. package/esm2022/app/fields/dropdown-fields/index.mjs +0 -7
  76. package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +0 -379
  77. package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +0 -359
  78. package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +0 -151
  79. package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +0 -224
  80. package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +0 -135
  81. package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +0 -127
  82. package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +0 -2
  83. package/esm2022/app/fields/input-fields/_models/index.mjs +0 -2
  84. package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +0 -61
  85. package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +0 -40
  86. package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +0 -48
  87. package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +0 -61
  88. package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +0 -147
  89. package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +0 -166
  90. package/esm2022/app/fields/input-fields/index.mjs +0 -22
  91. package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +0 -52
  92. package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +0 -143
  93. package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +0 -130
  94. package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +0 -66
  95. package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +0 -90
  96. package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +0 -125
  97. package/esm2022/app/form-layout/_models/form-layout.model.mjs +0 -48
  98. package/esm2022/app/form-layout/_models/form-tabs.model.mjs +0 -2
  99. package/esm2022/app/form-layout/_models/index.mjs +0 -2
  100. package/esm2022/app/form-layout/_models/validation-summary.model.mjs +0 -2
  101. package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +0 -55
  102. package/esm2022/app/form-layout/form-col/form-col.component.mjs +0 -76
  103. package/esm2022/app/form-layout/form-group/form-group.component.mjs +0 -358
  104. package/esm2022/app/form-layout/form-group/form-path.utils.mjs +0 -65
  105. package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +0 -54
  106. package/esm2022/app/form-layout/form-row/form-row.component.mjs +0 -49
  107. package/esm2022/app/form-layout/form-section/form-section.component.mjs +0 -43
  108. package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +0 -67
  109. package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +0 -126
  110. package/esm2022/app/form-layout/index.mjs +0 -14
  111. package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +0 -56
  112. package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +0 -343
  113. package/esm2022/app/loading/skeleton-loading/index.mjs +0 -7
  114. package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +0 -43
  115. package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +0 -23
  116. package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +0 -34
  117. package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +0 -38
  118. package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +0 -37
  119. package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +0 -45
  120. package/esm2022/app/menus/_models/drawer-side.model.mjs +0 -8
  121. package/esm2022/app/menus/_models/drawer-size.model.mjs +0 -8
  122. package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +0 -12
  123. package/esm2022/app/menus/_models/menu-item.model.mjs +0 -6
  124. package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +0 -41
  125. package/esm2022/app/menus/_utils/menu-rows.util.mjs +0 -39
  126. package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +0 -23
  127. package/esm2022/app/menus/action-menu/action-menu.component.mjs +0 -48
  128. package/esm2022/app/menus/context-menu/context-menu.component.mjs +0 -112
  129. package/esm2022/app/menus/drawer/drawer.component.mjs +0 -142
  130. package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +0 -99
  131. package/esm2022/app/menus/index.mjs +0 -11
  132. package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +0 -14
  133. package/esm2022/app/menus/menu-group/menu-group.component.mjs +0 -32
  134. package/esm2022/app/menus/menu-list/menu-list.component.mjs +0 -399
  135. package/esm2022/app/overlay/_models/overlay-placement.model.mjs +0 -11
  136. package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +0 -84
  137. package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +0 -121
  138. package/esm2022/app/overlay/index.mjs +0 -21
  139. package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +0 -17
  140. package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +0 -17
  141. package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +0 -15
  142. package/esm2022/app/overlay/popover/popover.component.mjs +0 -93
  143. package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +0 -20
  144. package/esm2022/app/overlay/tooltip/tooltip.component.mjs +0 -118
  145. package/esm2022/app/theme/app-theme.service.mjs +0 -49
  146. package/esm2022/app/theme/index.mjs +0 -2
  147. package/esm2022/structra-public-api.mjs +0 -18
  148. package/esm2022/structra-ui.mjs +0 -5
  149. package/esm2022/structra-version.mjs +0 -3
  150. package/index.d.ts +0 -5
@@ -1,127 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { FormGroupDirective, NgControl, NgForm, } from '@angular/forms';
4
- import { distinctUntilChanged, merge } from 'rxjs';
5
- import { BaseFieldDirective } from './base-field.directive';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Campos com `NgControl` + CVA: injeta o control e expõe estado de erro/a11y comuns.
9
- */
10
- export class NgControlFieldDirective extends BaseFieldDirective {
11
- constructor() {
12
- super(...arguments);
13
- this.ngControl = null;
14
- /**
15
- * Texto do label flutuante em `app-base-field` (`label` ou `placeholder`).
16
- * Mantido em campo (não getter) para reduzir trabalho por ciclo de deteção.
17
- */
18
- this.floatLabelCaption = '';
19
- /** Cache para o template (evita `getErrorMessage()` / getters a cada CD). */
20
- this.uiErrorMessage = '';
21
- this.uiRequiredEffective = false;
22
- this.uiInvalid = false;
23
- this.uiAriaDescribedBy = null;
24
- }
25
- resolveControlForRequired() {
26
- return this.ngControl?.control ?? undefined;
27
- }
28
- ngOnChanges(_changes) {
29
- this.refreshFloatLabelCaption();
30
- if (this.ngControl?.control) {
31
- this.syncControlUi();
32
- }
33
- }
34
- refreshFloatLabelCaption() {
35
- this.floatLabelCaption = (this.label || this.placeholder).trim();
36
- }
37
- ngOnInit() {
38
- this.refreshFloatLabelCaption();
39
- this.ngControl = this.injector.get(NgControl, null, {
40
- optional: true,
41
- self: true,
42
- });
43
- if (this.ngControl) {
44
- this.ngControl.valueAccessor = this;
45
- }
46
- const c = this.ngControl?.control;
47
- if (c) {
48
- merge(c.statusChanges, c.valueChanges.pipe(distinctUntilChanged((a, b) => Object.is(a, b))))
49
- .pipe(takeUntilDestroyed(this.destroyRef))
50
- .subscribe(() => this.syncControlUi());
51
- this.syncControlUi();
52
- }
53
- this.registerFormSubmitRecheck();
54
- }
55
- ngDoCheck() {
56
- if (!this.ngControl?.control) {
57
- return;
58
- }
59
- const sub = this.isParentFormSubmitted();
60
- if (this.lastParentSubmitted === undefined) {
61
- this.lastParentSubmitted = sub;
62
- return;
63
- }
64
- if (this.lastParentSubmitted !== sub) {
65
- this.lastParentSubmitted = sub;
66
- this.syncControlUi();
67
- }
68
- }
69
- writeValue(value) {
70
- super.writeValue(value);
71
- if (this.ngControl?.control) {
72
- this.syncControlUi();
73
- }
74
- }
75
- /**
76
- * Após propagar o valor ao `FormControl`, reavalia já `uiInvalid` / a11y.
77
- * Só confiar em `valueChanges` pode deixar o estado visual desfasado (ex.: select após escolha).
78
- */
79
- emitModelValue(value) {
80
- super.emitModelValue(value);
81
- if (this.ngControl?.control) {
82
- this.syncControlUi();
83
- }
84
- }
85
- registerFormSubmitRecheck() {
86
- const fg = this.injector.get(FormGroupDirective, null, { optional: true });
87
- const nf = this.injector.get(NgForm, null, { optional: true });
88
- const recheck = () => {
89
- if (this.ngControl?.control) {
90
- this.syncControlUi();
91
- }
92
- else {
93
- this.cdr.markForCheck();
94
- }
95
- };
96
- fg?.ngSubmit
97
- ?.pipe(takeUntilDestroyed(this.destroyRef))
98
- .subscribe(recheck);
99
- nf?.ngSubmit
100
- ?.pipe(takeUntilDestroyed(this.destroyRef))
101
- .subscribe(recheck);
102
- }
103
- /**
104
- * Actualiza caches usados no template após mudança de valor/estado do control
105
- * ou de inputs que afectam mensagem / obrigatório.
106
- */
107
- syncControlUi() {
108
- this.uiInvalid = this.baseInvalid;
109
- this.uiRequiredEffective = this.requiredEffective;
110
- this.uiErrorMessage = this.getErrorMessage();
111
- this.uiAriaDescribedBy =
112
- this.uiInvalid && this.uiErrorMessage ? this.errorElementId : null;
113
- this.cdr.markForCheck();
114
- }
115
- get baseInvalid() {
116
- return this.controlInvalidUi(this.ngControl?.control);
117
- }
118
- get errorElementId() {
119
- return `${this.controlId}-error`;
120
- }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgControlFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
122
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NgControlFieldDirective, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NgControlFieldDirective, decorators: [{
125
- type: Directive
126
- }] });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY29udHJvbC1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9pbnB1dC1maWVsZHMvX2Jhc2UvbmctY29udHJvbC1maWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkMsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUVMLGtCQUFrQixFQUNsQixTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFNUQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHVCQUNwQixTQUFRLGtCQUFxQjtJQUYvQjs7UUFLWSxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUs3Qzs7O1dBR0c7UUFDSCxzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFFdkIsNkVBQTZFO1FBQzdFLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHNCQUFpQixHQUFrQixJQUFJLENBQUM7S0FnSHpDO0lBOUdvQix5QkFBeUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FB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QzsrR0FsSW1CLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUQ1QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBEb0NoZWNrLCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBOZ0NvbnRyb2wsXHJcbiAgTmdGb3JtLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4vYmFzZS1maWVsZC5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIENhbXBvcyBjb20gYE5nQ29udHJvbGAgKyBDVkE6IGluamV0YSBvIGNvbnRyb2wgZSBleHDDtWUgZXN0YWRvIGRlIGVycm8vYTExeSBjb211bnMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlPFQ+XHJcbiAgZXh0ZW5kcyBCYXNlRmllbGREaXJlY3RpdmU8VD5cclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBEb0NoZWNrXHJcbntcclxuICBwcm90ZWN0ZWQgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqIGBGb3JtR3JvdXBEaXJlY3RpdmUuc3VibWl0dGVkYCBtdWRhIGNvbSBgcmVzZXRGb3JtKClgIHNlbSBgbmdTdWJtaXRgIOKAlCBPblB1c2ggcHJlY2lzYSBkaXN0byBwYXJhIGEgYm9yZGEvZXJyby4gKi9cclxuICBwcml2YXRlIGxhc3RQYXJlbnRTdWJtaXR0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHRvIGRvIGxhYmVsIGZsdXR1YW50ZSBlbSBgYXBwLWJhc2UtZmllbGRgIChgbGFiZWxgIG91IGBwbGFjZWhvbGRlcmApLlxyXG4gICAqIE1hbnRpZG8gZW0gY2FtcG8gKG7Do28gZ2V0dGVyKSBwYXJhIHJlZHV6aXIgdHJhYmFsaG8gcG9yIGNpY2xvIGRlIGRldGXDp8Ojby5cclxuICAgKi9cclxuICBmbG9hdExhYmVsQ2FwdGlvbiA9ICcnO1xyXG5cclxuICAvKiogQ2FjaGUgcGFyYSBvIHRlbXBsYXRlIChldml0YSBgZ2V0RXJyb3JNZXNzYWdlKClgIC8gZ2V0dGVycyBhIGNhZGEgQ0QpLiAqL1xyXG4gIHVpRXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgdWlSZXF1aXJlZEVmZmVjdGl2ZSA9IGZhbHNlO1xyXG4gIHVpSW52YWxpZCA9IGZhbHNlO1xyXG4gIHVpQXJpYURlc2NyaWJlZEJ5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlc29sdmVDb250cm9sRm9yUmVxdWlyZWQoKTogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgPz8gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaEZsb2F0TGFiZWxDYXB0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5zeW5jQ29udHJvbFVpKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlZnJlc2hGbG9hdExhYmVsQ2FwdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZmxvYXRMYWJlbENhcHRpb24gPSAodGhpcy5sYWJlbCB8fCB0aGlzLnBsYWNlaG9sZGVyKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVmcmVzaEZsb2F0TGFiZWxDYXB0aW9uKCk7XHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCwge1xyXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcclxuICAgICAgc2VsZjogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYyA9IHRoaXMubmdDb250cm9sPy5jb250cm9sO1xyXG4gICAgaWYgKGMpIHtcclxuICAgICAgbWVyZ2UoXHJcbiAgICAgICAgYy5zdGF0dXNDaGFuZ2VzLFxyXG4gICAgICAgIGMudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gT2JqZWN0LmlzKGEsIGIpKSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN5bmNDb250cm9sVWkoKSk7XHJcbiAgICAgIHRoaXMuc3luY0NvbnRyb2xVaSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWdpc3RlckZvcm1TdWJtaXRSZWNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubmdDb250cm9sPy5jb250cm9sKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuaXNQYXJlbnRGb3JtU3VibWl0dGVkKCk7XHJcbiAgICBpZiAodGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID0gc3ViO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sYXN0UGFyZW50U3VibWl0dGVkICE9PSBzdWIpIHtcclxuICAgICAgdGhpcy5sYXN0UGFyZW50U3VibWl0dGVkID0gc3ViO1xyXG4gICAgICB0aGlzLnN5bmNDb250cm9sVWkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCkge1xyXG4gICAgICB0aGlzLnN5bmNDb250cm9sVWkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFww7NzIHByb3BhZ2FyIG8gdmFsb3IgYW8gYEZvcm1Db250cm9sYCwgcmVhdmFsaWEgasOhIGB1aUludmFsaWRgIC8gYTExeS5cclxuICAgKiBTw7MgY29uZmlhciBlbSBgdmFsdWVDaGFuZ2VzYCBwb2RlIGRlaXhhciBvIGVzdGFkbyB2aXN1YWwgZGVzZmFzYWRvIChleC46IHNlbGVjdCBhcMOzcyBlc2NvbGhhKS5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZW1pdE1vZGVsVmFsdWUodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XHJcbiAgICBzdXBlci5lbWl0TW9kZWxWYWx1ZSh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5zeW5jQ29udHJvbFVpKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVnaXN0ZXJGb3JtU3VibWl0UmVjaGVjaygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZnID0gdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gICAgY29uc3QgbmYgPSB0aGlzLmluamVjdG9yLmdldChOZ0Zvcm0sIG51bGwsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICBjb25zdCByZWNoZWNrID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgICB0aGlzLnN5bmNDb250cm9sVWkoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGZnPy5uZ1N1Ym1pdFxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUocmVjaGVjayk7XHJcbiAgICBuZj8ubmdTdWJtaXRcclxuICAgICAgPy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlY2hlY2spO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0dWFsaXphIGNhY2hlcyB1c2Fkb3Mgbm8gdGVtcGxhdGUgYXDDs3MgbXVkYW7Dp2EgZGUgdmFsb3IvZXN0YWRvIGRvIGNvbnRyb2xcclxuICAgKiBvdSBkZSBpbnB1dHMgcXVlIGFmZWN0YW0gbWVuc2FnZW0gLyBvYnJpZ2F0w7NyaW8uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHN5bmNDb250cm9sVWkoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVpSW52YWxpZCA9IHRoaXMuYmFzZUludmFsaWQ7XHJcbiAgICB0aGlzLnVpUmVxdWlyZWRFZmZlY3RpdmUgPSB0aGlzLnJlcXVpcmVkRWZmZWN0aXZlO1xyXG4gICAgdGhpcy51aUVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0RXJyb3JNZXNzYWdlKCk7XHJcbiAgICB0aGlzLnVpQXJpYURlc2NyaWJlZEJ5ID1cclxuICAgICAgdGhpcy51aUludmFsaWQgJiYgdGhpcy51aUVycm9yTWVzc2FnZSA/IHRoaXMuZXJyb3JFbGVtZW50SWQgOiBudWxsO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYmFzZUludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sSW52YWxpZFVpKHRoaXMubmdDb250cm9sPy5jb250cm9sKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvckVsZW1lbnRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY29udHJvbElkfS1lcnJvcmA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tbW9uLWlucHV0cy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2lucHV0LWZpZWxkcy9fbW9kZWxzL2ZpZWxkLWNvbW1vbi1pbnB1dHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWVudU5vZGVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbWVudXMvX21vZGVscy9tZW51LWl0ZW0ubW9kZWwnO1xuXG4vKipcbiAqIENvbnRyYXRvIGRvY3VtZW50YWwgZGUgZW50cmFkYXMgdmlzdWFpcyBjb211bnMgKGNhbXBvcyBjb20gYEJhc2VGaWVsZERpcmVjdGl2ZWApLlxuICogTmVtIHRvZG9zIG9zIG1lbWJyb3MgZXhpc3RlbSBlbSB0b2RvcyBvcyBjb21wb25lbnRlczsgdXNlIGNvbW8gcmVmZXLDqm5jaWEgZGUgQVBJLlxuICpcbiAqICoqQWxpYXNlcyBlc3TDoXZlaXM6KiogYGljb25MZWZ0YCDihpIgYHByZWZpeEljb25gIChtZXNtbyB2YWxvcikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRDb21tb25JbnB1dHMge1xuICBsYWJlbDogc3RyaW5nO1xuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvKiogTWVuc2FnZW0gZGUgZXJybyBzb2IgbyBjYW1wbzsgdmF6aWEgdXNhIG8gdGV4dG8gcGFkcsOjbyBxdWFuZG8gaW52w6FsaWRvLiAqL1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIFBvciBkZWZlaXRvIGBmYWxzZWAgbmEgYEJhc2VGaWVsZERpcmVjdGl2ZWAuICovXG4gIHNob3dFcnJvck1lc3NhZ2U/OiBib29sZWFuO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHk6IGJvb2xlYW47XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICAvKiogQXN0ZXJpc2NvIG5vIGxhYmVsIHF1YW5kbyBvYnJpZ2F0w7NyaW87IHBhZHLDo28gYGZhbHNlYCBuYSBgQmFzZUZpZWxkRGlyZWN0aXZlYC4gKi9cbiAgc2hvd1JlcXVpcmVkTWFyaz86IGJvb2xlYW47XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIMONY29uZSBGb250IEF3ZXNvbWUgw6AgZXNxdWVyZGE7IHVzZSBjb20gYHNob3dQcmVmaXhJY29uYC4gKi9cbiAgc2hvd1ByZWZpeEljb24/OiBib29sZWFuO1xuICBwcmVmaXhJY29uPzogc3RyaW5nO1xuICAvKiogQWxpYXMgZGUgYHByZWZpeEljb25gLiAqL1xuICBpY29uTGVmdD86IHN0cmluZztcbiAgY2xlYXJhYmxlPzogYm9vbGVhbjtcbiAgY2xlYXJBcmlhTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBgdHJ1ZWAgPSBzdWdlc3TDtWVzIGRvIG5hdmVnYWRvcjsgcGFkcsOjbyBub3MgY29tcG9uZW50ZXMgw6kgYGZhbHNlYC4gKi9cbiAgYXV0b2NvbXBsZXRlPzogYm9vbGVhbjtcbiAgLyoqIFNrZWxldG9uIG5vIGBhcHAtYmFzZS1maWVsZGAgZW5xdWFudG8gZGFkb3MgZXh0ZXJub3MgY2FycmVnYW0uICovXG4gIGxvYWRpbmc/OiBib29sZWFuO1xuICAvKiogQm90w6NvIMKr4oCmwrsgbm8gc3VmaXhvIGNvbSBtZW51IGRlIGHDp8O1ZXM7IHBhZHLDo28gYGZhbHNlYCBuYSBgQmFzZUZpZWxkRGlyZWN0aXZlYC4gKi9cbiAgbW9zdHJhck1lbnVDb250ZXh0bz86IGJvb2xlYW47XG4gIC8qKiBJdGVucyBkbyBtZW51IGRvIHN1Zml4bzsgc8OzIG1vc3RyYSBvIGJvdMOjbyBzZSBhIGxpc3RhIHRpdmVyIGVudHJhZGFzLiAqL1xuICBjb250ZXh0TWVudUl0ZW1zPzogcmVhZG9ubHkgTWVudU5vZGVJdGVtPHN0cmluZz5bXTtcbiAgLyoqIGBpZGAgQVJJQSBkbyBtZW51IGRvIHN1Zml4bzsgcG9yIGRlZmVpdG8gYHtpZCBkbyBjYW1wb30tY3R4YC4gKi9cbiAgY29udGV4dE1lbnVJZD86IHN0cmluZztcbiAgLyoqIFRleHRvOiBsaW1pdGUgZGUgY2FyYWN0ZXJlcyAocGFkcsOjbyBubyBjb21wb25lbnRlKS4gKi9cbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogSW50ZWlyby9kZWNpbWFsOiB2YWxvciBtw6F4aW1vIG51bcOpcmljbyAocGFkcsOjbyBubyBjb21wb25lbnRlKS4gKi9cbiAgbWF4PzogbnVtYmVyO1xuICAvKiogRGF0YTogZm9ybWF0YcOnw6NvIGNvbSBoaDptbSBlIGhvcmEgYXR1YWwgYW8gZXNjb2xoZXIgbm8gY2FsZW5kw6FyaW8uICovXG4gIHNob3dUaW1lSG91cnM/OiBib29sZWFuO1xuICAvKiogRGF0YTogbGltaXRlIGluZmVyaW9yIGRvIGNhbGVuZMOhcmlvLiAqL1xuICBtaW5EYXRlPzogRGF0ZSB8IG51bGw7XG4gIC8qKiBEYXRhOiBsaW1pdGUgc3VwZXJpb3IgZG8gY2FsZW5kw6FyaW8uICovXG4gIG1heERhdGU/OiBEYXRlIHwgbnVsbDtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9pbnB1dC1maWVsZHMvX21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBGaWVsZENvbW1vbklucHV0cyB9IGZyb20gJy4vZmllbGQtY29tbW9uLWlucHV0cy5tb2RlbCc7XHJcbiJdfQ==
@@ -1,61 +0,0 @@
1
- import { stripToDigits } from './mask-format.utils';
2
- /**
3
- * Validação alinhada às máscaras dinâmicas CPF/CNPJ: só dígitos; 11 ou 14 completos.
4
- * Vazio fica para `Validators.required`; com dígitos a menos devolve `maskIncomplete`.
5
- */
6
- export function cpfCnpjMaskCompleteValidator() {
7
- return (control) => {
8
- const raw = control.value;
9
- if (raw == null || raw === '') {
10
- return null;
11
- }
12
- const digits = stripToDigits(String(raw));
13
- if (digits.length === 0) {
14
- return null;
15
- }
16
- if (digits.length <= 11) {
17
- return digits.length === 11 ? null : { maskIncomplete: true };
18
- }
19
- return digits.length === 14 ? null : { maskIncomplete: true };
20
- };
21
- }
22
- /**
23
- * Telefone BR só dígitos (DDD + número): 10 fixo ou 11 celular, conforme {@link landline}.
24
- * Usar com `app-phone-field` para que `FormControl.invalid` e ícones de grupo/aba coincidam com a UI.
25
- */
26
- export function phoneBrMaskCompleteValidator(landline) {
27
- const expected = landline ? 10 : 11;
28
- return (control) => {
29
- const raw = control.value;
30
- if (raw == null || raw === '') {
31
- return null;
32
- }
33
- const digits = stripToDigits(String(raw));
34
- if (digits.length === 0) {
35
- return null;
36
- }
37
- return digits.length === expected ? null : { maskIncomplete: true };
38
- };
39
- }
40
- /**
41
- * Máscara com número fixo de dígitos (valor do modelo só dígitos, como CEP/telefone).
42
- * Valor vazio: `null` (delega em `Validators.required`); com dígitos a menos: `maskIncomplete`.
43
- */
44
- export function fixedDigitsMaskCompleteValidator(expectedDigits) {
45
- return (control) => {
46
- const raw = control.value;
47
- if (raw == null || raw === '') {
48
- return null;
49
- }
50
- const digits = stripToDigits(String(raw));
51
- if (digits.length === 0) {
52
- return null;
53
- }
54
- return digits.length === expectedDigits ? null : { maskIncomplete: true };
55
- };
56
- }
57
- /** CEP brasileiro (`app-cep-field`): 8 dígitos. Usar com `Validators.required`. */
58
- export function cepMaskCompleteValidator() {
59
- return fixedDigitsMaskCompleteValidator(8);
60
- }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay1jb21wbGV0ZS52YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9maWVsZHMvaW5wdXQtZmllbGRzL191dGlscy9tYXNrLWNvbXBsZXRlLnZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBEOzs7R0FHRztBQUNILE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDaEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxRQUFpQjtJQUM1RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BDLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxjQUFzQjtJQUNyRSxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtRQUMzRCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzVFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxPQUFPLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBzdHJpcFRvRGlnaXRzIH0gZnJvbSAnLi9tYXNrLWZvcm1hdC51dGlscyc7XHJcblxyXG4vKipcclxuICogVmFsaWRhw6fDo28gYWxpbmhhZGEgw6BzIG3DoXNjYXJhcyBkaW7Dom1pY2FzIENQRi9DTlBKOiBzw7MgZMOtZ2l0b3M7IDExIG91IDE0IGNvbXBsZXRvcy5cclxuICogVmF6aW8gZmljYSBwYXJhIGBWYWxpZGF0b3JzLnJlcXVpcmVkYDsgY29tIGTDrWdpdG9zIGEgbWVub3MgZGV2b2x2ZSBgbWFza0luY29tcGxldGVgLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNwZkNucGpNYXNrQ29tcGxldGVWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgcmF3ID0gY29udHJvbC52YWx1ZTtcclxuICAgIGlmIChyYXcgPT0gbnVsbCB8fCByYXcgPT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlnaXRzID0gc3RyaXBUb0RpZ2l0cyhTdHJpbmcocmF3KSk7XHJcbiAgICBpZiAoZGlnaXRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChkaWdpdHMubGVuZ3RoIDw9IDExKSB7XHJcbiAgICAgIHJldHVybiBkaWdpdHMubGVuZ3RoID09PSAxMSA/IG51bGwgOiB7IG1hc2tJbmNvbXBsZXRlOiB0cnVlIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlnaXRzLmxlbmd0aCA9PT0gMTQgPyBudWxsIDogeyBtYXNrSW5jb21wbGV0ZTogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUZWxlZm9uZSBCUiBzw7MgZMOtZ2l0b3MgKERERCArIG7Dum1lcm8pOiAxMCBmaXhvIG91IDExIGNlbHVsYXIsIGNvbmZvcm1lIHtAbGluayBsYW5kbGluZX0uXHJcbiAqIFVzYXIgY29tIGBhcHAtcGhvbmUtZmllbGRgIHBhcmEgcXVlIGBGb3JtQ29udHJvbC5pbnZhbGlkYCBlIMOtY29uZXMgZGUgZ3J1cG8vYWJhIGNvaW5jaWRhbSBjb20gYSBVSS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwaG9uZUJyTWFza0NvbXBsZXRlVmFsaWRhdG9yKGxhbmRsaW5lOiBib29sZWFuKTogVmFsaWRhdG9yRm4ge1xyXG4gIGNvbnN0IGV4cGVjdGVkID0gbGFuZGxpbmUgPyAxMCA6IDExO1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgcmF3ID0gY29udHJvbC52YWx1ZTtcclxuICAgIGlmIChyYXcgPT0gbnVsbCB8fCByYXcgPT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGlnaXRzID0gc3RyaXBUb0RpZ2l0cyhTdHJpbmcocmF3KSk7XHJcbiAgICBpZiAoZGlnaXRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBkaWdpdHMubGVuZ3RoID09PSBleHBlY3RlZCA/IG51bGwgOiB7IG1hc2tJbmNvbXBsZXRlOiB0cnVlIH07XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE3DoXNjYXJhIGNvbSBuw7ptZXJvIGZpeG8gZGUgZMOtZ2l0b3MgKHZhbG9yIGRvIG1vZGVsbyBzw7MgZMOtZ2l0b3MsIGNvbW8gQ0VQL3RlbGVmb25lKS5cclxuICogVmFsb3IgdmF6aW86IGBudWxsYCAoZGVsZWdhIGVtIGBWYWxpZGF0b3JzLnJlcXVpcmVkYCk7IGNvbSBkw61naXRvcyBhIG1lbm9zOiBgbWFza0luY29tcGxldGVgLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpeGVkRGlnaXRzTWFza0NvbXBsZXRlVmFsaWRhdG9yKGV4cGVjdGVkRGlnaXRzOiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICBjb25zdCByYXcgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgaWYgKHJhdyA9PSBudWxsIHx8IHJhdyA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWdpdHMgPSBzdHJpcFRvRGlnaXRzKFN0cmluZyhyYXcpKTtcclxuICAgIGlmIChkaWdpdHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRpZ2l0cy5sZW5ndGggPT09IGV4cGVjdGVkRGlnaXRzID8gbnVsbCA6IHsgbWFza0luY29tcGxldGU6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG4vKiogQ0VQIGJyYXNpbGVpcm8gKGBhcHAtY2VwLWZpZWxkYCk6IDggZMOtZ2l0b3MuIFVzYXIgY29tIGBWYWxpZGF0b3JzLnJlcXVpcmVkYC4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNlcE1hc2tDb21wbGV0ZVZhbGlkYXRvcigpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIGZpeGVkRGlnaXRzTWFza0NvbXBsZXRlVmFsaWRhdG9yKDgpO1xyXG59XHJcbiJdfQ==
@@ -1,40 +0,0 @@
1
- /**
2
- * Máscara com `#` como placeholder de um dígito (0–9); restantes caracteres são literais.
3
- * Ex.: `#####-###` (CEP), `(##) #####-####` (celular BR 11 dígitos).
4
- */
5
- /** Remove tudo que não é dígito. */
6
- export function stripToDigits(s) {
7
- return s.replace(/\D/g, '');
8
- }
9
- /** Conta quantos `#` existem no padrão (= número máximo de dígitos). */
10
- export function maskDigitCount(pattern) {
11
- let n = 0;
12
- for (const c of pattern) {
13
- if (c === '#') {
14
- n++;
15
- }
16
- }
17
- return n;
18
- }
19
- /**
20
- * Formata apenas dígitos segundo o padrão. Não adiciona literais à direita sem dígitos
21
- * correspondentes (ex.: não fica "12345-" com 5 dígitos).
22
- */
23
- export function formatMaskDigits(digitsOnly, pattern) {
24
- const d = stripToDigits(digitsOnly);
25
- const max = maskDigitCount(pattern);
26
- const src = d.slice(0, max);
27
- let out = '';
28
- let j = 0;
29
- for (let i = 0; i < pattern.length && j < src.length; i++) {
30
- const c = pattern[i];
31
- if (c === '#') {
32
- out += src[j++];
33
- }
34
- else {
35
- out += c;
36
- }
37
- }
38
- return out;
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay1mb3JtYXQudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9pbnB1dC1maWVsZHMvX3V0aWxzL21hc2stZm9ybWF0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILG9DQUFvQztBQUNwQyxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQVM7SUFDckMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZTtJQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLE9BQWU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNkLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBNw6FzY2FyYSBjb20gYCNgIGNvbW8gcGxhY2Vob2xkZXIgZGUgdW0gZMOtZ2l0byAoMOKAkzkpOyByZXN0YW50ZXMgY2FyYWN0ZXJlcyBzw6NvIGxpdGVyYWlzLlxyXG4gKiBFeC46IGAjIyMjIy0jIyNgIChDRVApLCBgKCMjKSAjIyMjIy0jIyMjYCAoY2VsdWxhciBCUiAxMSBkw61naXRvcykuXHJcbiAqL1xyXG5cclxuLyoqIFJlbW92ZSB0dWRvIHF1ZSBuw6NvIMOpIGTDrWdpdG8uICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpcFRvRGlnaXRzKHM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHMucmVwbGFjZSgvXFxEL2csICcnKTtcclxufVxyXG5cclxuLyoqIENvbnRhIHF1YW50b3MgYCNgIGV4aXN0ZW0gbm8gcGFkcsOjbyAoPSBuw7ptZXJvIG3DoXhpbW8gZGUgZMOtZ2l0b3MpLiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFza0RpZ2l0Q291bnQocGF0dGVybjogc3RyaW5nKTogbnVtYmVyIHtcclxuICBsZXQgbiA9IDA7XHJcbiAgZm9yIChjb25zdCBjIG9mIHBhdHRlcm4pIHtcclxuICAgIGlmIChjID09PSAnIycpIHtcclxuICAgICAgbisrO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdGEgYXBlbmFzIGTDrWdpdG9zIHNlZ3VuZG8gbyBwYWRyw6NvLiBOw6NvIGFkaWNpb25hIGxpdGVyYWlzIMOgIGRpcmVpdGEgc2VtIGTDrWdpdG9zXHJcbiAqIGNvcnJlc3BvbmRlbnRlcyAoZXguOiBuw6NvIGZpY2EgXCIxMjM0NS1cIiBjb20gNSBkw61naXRvcykuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TWFza0RpZ2l0cyhkaWdpdHNPbmx5OiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgZCA9IHN0cmlwVG9EaWdpdHMoZGlnaXRzT25seSk7XHJcbiAgY29uc3QgbWF4ID0gbWFza0RpZ2l0Q291bnQocGF0dGVybik7XHJcbiAgY29uc3Qgc3JjID0gZC5zbGljZSgwLCBtYXgpO1xyXG4gIGxldCBvdXQgPSAnJztcclxuICBsZXQgaiA9IDA7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aCAmJiBqIDwgc3JjLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjID0gcGF0dGVybltpXTtcclxuICAgIGlmIChjID09PSAnIycpIHtcclxuICAgICAgb3V0ICs9IHNyY1tqKytdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb3V0ICs9IGM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBvdXQ7XHJcbn1cclxuIl19
@@ -1,48 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, forwardRef, } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { BaseFieldComponent } from '../_base/base-field.component';
4
- import { MaskedTextFieldBase } from '../_base/masked-text-field.base';
5
- import * as i0 from "@angular/core";
6
- /** CEP brasileiro (8 dígitos). Valor do modelo: só dígitos, ex. `01310100`. */
7
- export class CepFieldComponent extends MaskedTextFieldBase {
8
- constructor() {
9
- super(...arguments);
10
- this.maskPattern = '#####-###';
11
- }
12
- get hostInvalidClass() {
13
- return this.uiInvalid;
14
- }
15
- onNativeInput(event) {
16
- this.onMaskedInput(event);
17
- }
18
- onBlur() {
19
- this.onMaskedBlur();
20
- }
21
- onClear() {
22
- this.onMaskedClear();
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CepFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CepFieldComponent, isStandalone: true, selector: "app-cep-field", inputs: { maskPattern: "maskPattern" }, host: { properties: { "class.cep-field--invalid": "this.hostInvalidClass" } }, providers: [
26
- {
27
- provide: NG_VALUE_ACCESSOR,
28
- useExisting: forwardRef(() => CepFieldComponent),
29
- multi: true,
30
- },
31
- ], usesInheritance: true, ngImport: i0, template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\" [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\"\n [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\" [clearAriaLabel]=\"clearAriaLabel\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <input class=\"cep-field__input\" type=\"text\" inputmode=\"numeric\" [id]=\"controlId\" [attr.name]=\"name || null\"\n [attr.placeholder]=\"''\" [attr.autocomplete]=\"autocompleteAttr\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [value]=\"inputText\" (input)=\"onNativeInput($event)\" (blur)=\"onBlur()\" />\n</app-base-field>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.cep-field__input{display:block;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:var(--ui-field-float-input-text);border:none;border-radius:0;background:transparent;box-shadow:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cep-field__input::placeholder{color:transparent}.cep-field__input:focus,.cep-field__input:focus-visible{outline:none}.cep-field__input--invalid:not(:disabled)::placeholder{color:transparent}.cep-field__input:disabled{opacity:var(--ui-field-input-disabled-opacity);cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: BaseFieldComponent, selector: "app-base-field", inputs: ["label", "errorMessage", "required", "showRequiredMark", "invalid", "filled", "disabled", "readonly", "inputId", "errorId", "showPrefixIcon", "prefixIcon", "clearable", "clearAriaLabel", "showSuffixSlot", "valueAlignEnd", "loading", "skeletonVariant", "mostrarMenuContexto", "contextMenuItems", "contextMenuId"], outputs: ["clear", "contextMenuSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
- }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CepFieldComponent, decorators: [{
34
- type: Component,
35
- args: [{ selector: 'app-cep-field', standalone: true, imports: [BaseFieldComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
36
- {
37
- provide: NG_VALUE_ACCESSOR,
38
- useExisting: forwardRef(() => CepFieldComponent),
39
- multi: true,
40
- },
41
- ], template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\" [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\"\n [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\" [clearAriaLabel]=\"clearAriaLabel\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <input class=\"cep-field__input\" type=\"text\" inputmode=\"numeric\" [id]=\"controlId\" [attr.name]=\"name || null\"\n [attr.placeholder]=\"''\" [attr.autocomplete]=\"autocompleteAttr\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [value]=\"inputText\" (input)=\"onNativeInput($event)\" (blur)=\"onBlur()\" />\n</app-base-field>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.cep-field__input{display:block;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:var(--ui-field-float-input-text);border:none;border-radius:0;background:transparent;box-shadow:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cep-field__input::placeholder{color:transparent}.cep-field__input:focus,.cep-field__input:focus-visible{outline:none}.cep-field__input--invalid:not(:disabled)::placeholder{color:transparent}.cep-field__input:disabled{opacity:var(--ui-field-input-disabled-opacity);cursor:not-allowed}\n"] }]
42
- }], propDecorators: { hostInvalidClass: [{
43
- type: HostBinding,
44
- args: ['class.cep-field--invalid']
45
- }], maskPattern: [{
46
- type: Input
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VwLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2lucHV0LWZpZWxkcy9jZXAtZmllbGQvY2VwLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2lucHV0LWZpZWxkcy9jZXAtZmllbGQvY2VwLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUV0RSwrRUFBK0U7QUFnQi9FLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7SUFmMUQ7O1FBcUJvQixnQkFBVyxHQUFHLFdBQVcsQ0FBQztLQWE3QztJQWxCQyxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUlELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0FsQlUsaUJBQWlCO21HQUFqQixpQkFBaUIsbUxBUmpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDaEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQ3pCSCwycENBYUEsd3VCREVZLGtCQUFrQjs7NEZBWWpCLGlCQUFpQjtrQkFmN0IsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLENBQUMsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBSUcsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLDBCQUEwQjtnQkFLckIsV0FBVztzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9fYmFzZS9iYXNlLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc2tlZFRleHRGaWVsZEJhc2UgfSBmcm9tICcuLi9fYmFzZS9tYXNrZWQtdGV4dC1maWVsZC5iYXNlJztcclxuXHJcbi8qKiBDRVAgYnJhc2lsZWlybyAoOCBkw61naXRvcykuIFZhbG9yIGRvIG1vZGVsbzogc8OzIGTDrWdpdG9zLCBleC4gYDAxMzEwMTAwYC4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY2VwLWZpZWxkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtCYXNlRmllbGRDb21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jZXAtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jZXAtZmllbGQuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2VwRmllbGRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENlcEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgTWFza2VkVGV4dEZpZWxkQmFzZSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jZXAtZmllbGQtLWludmFsaWQnKVxyXG4gIGdldCBob3N0SW52YWxpZENsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudWlJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgbWFza1BhdHRlcm4gPSAnIyMjIyMtIyMjJztcclxuXHJcbiAgb25OYXRpdmVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMub25NYXNrZWRJbnB1dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTWFza2VkQmx1cigpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMub25NYXNrZWRDbGVhcigpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWJhc2UtZmllbGQgW2xhYmVsXT1cImZsb2F0TGFiZWxDYXB0aW9uXCIgW2ZpbGxlZF09XCJmaWxsZWRVaVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICBbZXJyb3JNZXNzYWdlXT1cInVpRXJyb3JNZXNzYWdlXCIgW3JlcXVpcmVkXT1cInVpUmVxdWlyZWRFZmZlY3RpdmVcIiBbc2hvd1JlcXVpcmVkTWFya109XCJzaG93UmVxdWlyZWRNYXJrXCJcbiAgW2ludmFsaWRdPVwidWlJbnZhbGlkXCIgW2lucHV0SWRdPVwiY29udHJvbElkXCIgW2Vycm9ySWRdPVwiZXJyb3JFbGVtZW50SWRcIiBbc2hvd1ByZWZpeEljb25dPVwic2hvd1ByZWZpeEljb25cIlxuICBbcHJlZml4SWNvbl09XCJwcmVmaXhJY29uXCIgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIiBbY2xlYXJBcmlhTGFiZWxdPVwiY2xlYXJBcmlhTGFiZWxcIlxuICBbbW9zdHJhck1lbnVDb250ZXh0b109XCJtb3N0cmFyTWVudUNvbnRleHRvXCIgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiIFtjb250ZXh0TWVudUlkXT1cImNvbnRleHRNZW51SWRcIlxuICAoY2xlYXIpPVwib25DbGVhcigpXCIgKGNvbnRleHRNZW51U2VsZWN0KT1cImNvbnRleHRNZW51U2VsZWN0LmVtaXQoJGV2ZW50KVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwRmllbGRQcmVmaXhdXCIgLz5cbiAgPGlucHV0IGNsYXNzPVwiY2VwLWZpZWxkX19pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIFtpZF09XCJjb250cm9sSWRcIiBbYXR0ci5uYW1lXT1cIm5hbWUgfHwgbnVsbFwiXG4gICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiJydcIiBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlQXR0clwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3JlcXVpcmVkXT1cInVpUmVxdWlyZWRFZmZlY3RpdmVcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwidWlJbnZhbGlkXCIgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJ1aUFyaWFEZXNjcmliZWRCeVwiXG4gICAgW3ZhbHVlXT1cImlucHV0VGV4dFwiIChpbnB1dCk9XCJvbk5hdGl2ZUlucHV0KCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG48L2FwcC1iYXNlLWZpZWxkPlxuIl19
@@ -1,61 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input, forwardRef, } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { BaseFieldComponent } from '../_base/base-field.component';
4
- import { MaskedTextFieldBase } from '../_base/masked-text-field.base';
5
- import { stripToDigits } from '../_utils/mask-format.utils';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * CPF (11 dígitos) ou CNPJ (14 dígitos) no mesmo campo.
9
- * Até 11 dígitos: `###.###.###-##`; a partir do 12º: `##.###.###/####-##`.
10
- * Valor do modelo: só dígitos, ex. `12345678901` ou `12345678000190`.
11
- */
12
- export class CpfCnpjFieldComponent extends MaskedTextFieldBase {
13
- constructor() {
14
- super(...arguments);
15
- /** Ignorado: a máscara é definida dinamicamente por {@link maskPatternFromDigits}. */
16
- this.maskPattern = CpfCnpjFieldComponent.CPF_MASK;
17
- }
18
- static { this.CPF_MASK = '###.###.###-##'; }
19
- static { this.CNPJ_MASK = '##.###.###/####-##'; }
20
- get hostInvalidClass() {
21
- return this.uiInvalid;
22
- }
23
- maskPatternFromDigits(digitsOnly) {
24
- return stripToDigits(digitsOnly).length <= 11
25
- ? CpfCnpjFieldComponent.CPF_MASK
26
- : CpfCnpjFieldComponent.CNPJ_MASK;
27
- }
28
- onNativeInput(event) {
29
- this.onMaskedInput(event);
30
- }
31
- onBlur() {
32
- this.onMaskedBlur();
33
- }
34
- onClear() {
35
- this.onMaskedClear();
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CpfCnpjFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CpfCnpjFieldComponent, isStandalone: true, selector: "app-cpf-cnpj-field", inputs: { maskPattern: "maskPattern" }, host: { properties: { "class.cpf-cnpj-field--invalid": "this.hostInvalidClass" } }, providers: [
39
- {
40
- provide: NG_VALUE_ACCESSOR,
41
- useExisting: forwardRef(() => CpfCnpjFieldComponent),
42
- multi: true,
43
- },
44
- ], usesInheritance: true, ngImport: i0, template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\" [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\"\n [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\" [clearAriaLabel]=\"clearAriaLabel\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <input class=\"cpf-cnpj-field__input\" type=\"text\" inputmode=\"numeric\" [id]=\"controlId\" [attr.name]=\"name || null\"\n [attr.placeholder]=\"''\" [attr.autocomplete]=\"autocompleteAttr\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [value]=\"inputText\" (input)=\"onNativeInput($event)\" (blur)=\"onBlur()\" />\n</app-base-field>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.cpf-cnpj-field__input{display:block;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:var(--ui-field-float-input-text);border:none;border-radius:0;background:transparent;box-shadow:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cpf-cnpj-field__input::placeholder{color:transparent}.cpf-cnpj-field__input:focus,.cpf-cnpj-field__input:focus-visible{outline:none}.cpf-cnpj-field__input--invalid:not(:disabled)::placeholder{color:transparent}.cpf-cnpj-field__input:disabled{opacity:var(--ui-field-input-disabled-opacity);cursor:not-allowed}\n"], dependencies: [{ kind: "component", type: BaseFieldComponent, selector: "app-base-field", inputs: ["label", "errorMessage", "required", "showRequiredMark", "invalid", "filled", "disabled", "readonly", "inputId", "errorId", "showPrefixIcon", "prefixIcon", "clearable", "clearAriaLabel", "showSuffixSlot", "valueAlignEnd", "loading", "skeletonVariant", "mostrarMenuContexto", "contextMenuItems", "contextMenuId"], outputs: ["clear", "contextMenuSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CpfCnpjFieldComponent, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'app-cpf-cnpj-field', standalone: true, imports: [BaseFieldComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
49
- {
50
- provide: NG_VALUE_ACCESSOR,
51
- useExisting: forwardRef(() => CpfCnpjFieldComponent),
52
- multi: true,
53
- },
54
- ], template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\" [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\"\n [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\" [clearAriaLabel]=\"clearAriaLabel\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <input class=\"cpf-cnpj-field__input\" type=\"text\" inputmode=\"numeric\" [id]=\"controlId\" [attr.name]=\"name || null\"\n [attr.placeholder]=\"''\" [attr.autocomplete]=\"autocompleteAttr\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [value]=\"inputText\" (input)=\"onNativeInput($event)\" (blur)=\"onBlur()\" />\n</app-base-field>\n", styles: [":host{display:block;width:100%;box-sizing:border-box}.cpf-cnpj-field__input{display:block;width:100%;max-width:none;box-sizing:border-box;margin:0;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:var(--ui-field-float-input-text);border:none;border-radius:0;background:transparent;box-shadow:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cpf-cnpj-field__input::placeholder{color:transparent}.cpf-cnpj-field__input:focus,.cpf-cnpj-field__input:focus-visible{outline:none}.cpf-cnpj-field__input--invalid:not(:disabled)::placeholder{color:transparent}.cpf-cnpj-field__input:disabled{opacity:var(--ui-field-input-disabled-opacity);cursor:not-allowed}\n"] }]
55
- }], propDecorators: { hostInvalidClass: [{
56
- type: HostBinding,
57
- args: ['class.cpf-cnpj-field--invalid']
58
- }], maskPattern: [{
59
- type: Input
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWNucGotZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9maWVsZHMvaW5wdXQtZmllbGRzL2NwZi1jbnBqLWZpZWxkL2NwZi1jbnBqLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2lucHV0LWZpZWxkcy9jcGYtY25wai1maWVsZC9jcGYtY25wai1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUNMLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTVEOzs7O0dBSUc7QUFnQkgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQWY5RDs7UUF3QkUsc0ZBQXNGO1FBQ3BFLGdCQUFXLEdBQUcscUJBQXFCLENBQUMsUUFBUSxDQUFDO0tBbUJoRTthQTVCeUIsYUFBUSxHQUFHLGdCQUFnQixBQUFuQixDQUFvQjthQUM1QixjQUFTLEdBQUcsb0JBQW9CLEFBQXZCLENBQXdCO0lBRXpELElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS2tCLHFCQUFxQixDQUFDLFVBQWtCO1FBQ3pELE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQzNDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRO1lBQ2hDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0E1QlUscUJBQXFCO21HQUFyQixxQkFBcUIsNkxBUnJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQzlCSCxncUNBYUEsc3dCRE9ZLGtCQUFrQjs7NEZBWWpCLHFCQUFxQjtrQkFmakMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsa0JBQWtCLENBQUMsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQzs0QkFDcEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBT0csZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLCtCQUErQjtnQkFNMUIsV0FBVztzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9fYmFzZS9iYXNlLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hc2tlZFRleHRGaWVsZEJhc2UgfSBmcm9tICcuLi9fYmFzZS9tYXNrZWQtdGV4dC1maWVsZC5iYXNlJztcclxuaW1wb3J0IHsgc3RyaXBUb0RpZ2l0cyB9IGZyb20gJy4uL191dGlscy9tYXNrLWZvcm1hdC51dGlscyc7XHJcblxyXG4vKipcclxuICogQ1BGICgxMSBkw61naXRvcykgb3UgQ05QSiAoMTQgZMOtZ2l0b3MpIG5vIG1lc21vIGNhbXBvLlxyXG4gKiBBdMOpIDExIGTDrWdpdG9zOiBgIyMjLiMjIy4jIyMtIyNgOyBhIHBhcnRpciBkbyAxMsK6OiBgIyMuIyMjLiMjIy8jIyMjLSMjYC5cclxuICogVmFsb3IgZG8gbW9kZWxvOiBzw7MgZMOtZ2l0b3MsIGV4LiBgMTIzNDU2Nzg5MDFgIG91IGAxMjM0NTY3ODAwMDE5MGAuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jcGYtY25wai1maWVsZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQmFzZUZpZWxkQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3BmLWNucGotZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jcGYtY25wai1maWVsZC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDcGZDbnBqRmllbGRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENwZkNucGpGaWVsZENvbXBvbmVudCBleHRlbmRzIE1hc2tlZFRleHRGaWVsZEJhc2Uge1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENQRl9NQVNLID0gJyMjIy4jIyMuIyMjLSMjJztcclxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDTlBKX01BU0sgPSAnIyMuIyMjLiMjIy8jIyMjLSMjJztcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jcGYtY25wai1maWVsZC0taW52YWxpZCcpXHJcbiAgZ2V0IGhvc3RJbnZhbGlkQ2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy51aUludmFsaWQ7XHJcbiAgfVxyXG5cclxuICAvKiogSWdub3JhZG86IGEgbcOhc2NhcmEgw6kgZGVmaW5pZGEgZGluYW1pY2FtZW50ZSBwb3Ige0BsaW5rIG1hc2tQYXR0ZXJuRnJvbURpZ2l0c30uICovXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgbWFza1BhdHRlcm4gPSBDcGZDbnBqRmllbGRDb21wb25lbnQuQ1BGX01BU0s7XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBtYXNrUGF0dGVybkZyb21EaWdpdHMoZGlnaXRzT25seTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBzdHJpcFRvRGlnaXRzKGRpZ2l0c09ubHkpLmxlbmd0aCA8PSAxMVxyXG4gICAgICA/IENwZkNucGpGaWVsZENvbXBvbmVudC5DUEZfTUFTS1xyXG4gICAgICA6IENwZkNucGpGaWVsZENvbXBvbmVudC5DTlBKX01BU0s7XHJcbiAgfVxyXG5cclxuICBvbk5hdGl2ZUlucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1hc2tlZElucHV0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25NYXNrZWRCbHVyKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1hc2tlZENsZWFyKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYmFzZS1maWVsZCBbbGFiZWxdPVwiZmxvYXRMYWJlbENhcHRpb25cIiBbZmlsbGVkXT1cImZpbGxlZFVpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gIFtlcnJvck1lc3NhZ2VdPVwidWlFcnJvck1lc3NhZ2VcIiBbcmVxdWlyZWRdPVwidWlSZXF1aXJlZEVmZmVjdGl2ZVwiIFtzaG93UmVxdWlyZWRNYXJrXT1cInNob3dSZXF1aXJlZE1hcmtcIlxuICBbaW52YWxpZF09XCJ1aUludmFsaWRcIiBbaW5wdXRJZF09XCJjb250cm9sSWRcIiBbZXJyb3JJZF09XCJlcnJvckVsZW1lbnRJZFwiIFtzaG93UHJlZml4SWNvbl09XCJzaG93UHJlZml4SWNvblwiXG4gIFtwcmVmaXhJY29uXT1cInByZWZpeEljb25cIiBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiIFtjbGVhckFyaWFMYWJlbF09XCJjbGVhckFyaWFMYWJlbFwiXG4gIFttb3N0cmFyTWVudUNvbnRleHRvXT1cIm1vc3RyYXJNZW51Q29udGV4dG9cIiBbY29udGV4dE1lbnVJdGVtc109XCJjb250ZXh0TWVudUl0ZW1zXCIgW2NvbnRleHRNZW51SWRdPVwiY29udGV4dE1lbnVJZFwiXG4gIChjbGVhcik9XCJvbkNsZWFyKClcIiAoY29udGV4dE1lbnVTZWxlY3QpPVwiY29udGV4dE1lbnVTZWxlY3QuZW1pdCgkZXZlbnQpXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIlthcHBGaWVsZFByZWZpeF1cIiAvPlxuICA8aW5wdXQgY2xhc3M9XCJjcGYtY25wai1maWVsZF9faW5wdXRcIiB0eXBlPVwidGV4dFwiIGlucHV0bW9kZT1cIm51bWVyaWNcIiBbaWRdPVwiY29udHJvbElkXCIgW2F0dHIubmFtZV09XCJuYW1lIHx8IG51bGxcIlxuICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIicnXCIgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUF0dHJcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtyZXF1aXJlZF09XCJ1aVJlcXVpcmVkRWZmZWN0aXZlXCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cInVpSW52YWxpZFwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwidWlBcmlhRGVzY3JpYmVkQnlcIlxuICAgIFt2YWx1ZV09XCJpbnB1dFRleHRcIiAoaW5wdXQpPVwib25OYXRpdmVJbnB1dCgkZXZlbnQpXCIgKGJsdXIpPVwib25CbHVyKClcIiAvPlxuPC9hcHAtYmFzZS1maWVsZD5cbiJdfQ==
@@ -1,147 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild, booleanAttribute, forwardRef, } from '@angular/core';
2
- import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { MatDatepickerModule } from '@angular/material/datepicker';
4
- import { MAT_DATE_LOCALE, MatNativeDateModule } from '@angular/material/core';
5
- import { MatInputModule } from '@angular/material/input';
6
- import { BaseFieldComponent } from '../_base/base-field.component';
7
- import { NgControlFieldDirective } from '../_base/ng-control-field.directive';
8
- import { applyPickedCalendarDate, formatDateTimePtBr, formatUiFieldDateValue, parseUiFieldDateValue, } from '../../../_utils/date-pt-br.utils';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "@angular/material/datepicker";
12
- import * as i3 from "@angular/material/input";
13
- export class DateFieldComponent extends NgControlFieldDirective {
14
- constructor() {
15
- super(...arguments);
16
- /**
17
- * Se `true`, a formatação inclui hh:mm (24h) e, ao escolher no calendário,
18
- * usa a hora actual local no momento da selecção.
19
- */
20
- this.showTimeHours = false;
21
- this.minDate = null;
22
- this.maxDate = null;
23
- this.innerDate = null;
24
- this.filledUi = false;
25
- /** Texto da data no span (evita getter no template). */
26
- this.displayTextUi = '';
27
- }
28
- ngOnChanges(changes) {
29
- super.ngOnChanges(changes);
30
- if (changes['showTimeHours'] && this.innerDate) {
31
- this.refreshDateDisplay();
32
- }
33
- }
34
- refreshFilledUi() {
35
- this.filledUi = this.innerDate != null;
36
- }
37
- refreshDateDisplay() {
38
- if (!this.innerDate) {
39
- this.displayTextUi = '';
40
- return;
41
- }
42
- this.displayTextUi = formatDateTimePtBr(this.innerDate, this.showTimeHours);
43
- }
44
- afterWriteValue(value) {
45
- this.innerDate = parseUiFieldDateValue(value);
46
- this.refreshFilledUi();
47
- this.refreshDateDisplay();
48
- if (this.ngControl?.control) {
49
- this.syncControlUi();
50
- }
51
- }
52
- openPicker() {
53
- if (this.disabled || this.readonly) {
54
- return;
55
- }
56
- this.picker?.open();
57
- }
58
- onGhostInputKeydown(ev) {
59
- if (this.disabled || this.readonly) {
60
- return;
61
- }
62
- if (ev.key === 'Enter' || ev.key === ' ') {
63
- ev.preventDefault();
64
- ev.stopPropagation();
65
- this.openPicker();
66
- }
67
- }
68
- onPickedDate(next) {
69
- if (this.disabled || this.readonly) {
70
- return;
71
- }
72
- if (next == null) {
73
- this.innerDate = null;
74
- this.emitModelValue(null);
75
- this.refreshFilledUi();
76
- this.refreshDateDisplay();
77
- if (this.ngControl?.control) {
78
- this.syncControlUi();
79
- }
80
- return;
81
- }
82
- const merged = applyPickedCalendarDate(next, this.showTimeHours);
83
- this.innerDate = merged;
84
- this.emitModelValue(formatUiFieldDateValue(merged, this.showTimeHours));
85
- this.refreshFilledUi();
86
- this.refreshDateDisplay();
87
- if (this.ngControl?.control) {
88
- this.syncControlUi();
89
- }
90
- }
91
- onBlur() {
92
- this.notifyTouched();
93
- }
94
- onClear() {
95
- if (this.disabled || this.readonly) {
96
- return;
97
- }
98
- this.innerDate = null;
99
- this.emitModelValue(null);
100
- this.notifyTouched();
101
- this.refreshFilledUi();
102
- this.refreshDateDisplay();
103
- if (this.ngControl?.control) {
104
- this.syncControlUi();
105
- }
106
- else {
107
- this.cdr.markForCheck();
108
- }
109
- }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.3.12", type: DateFieldComponent, isStandalone: true, selector: "app-date-field", inputs: { showTimeHours: ["showTimeHours", "showTimeHours", booleanAttribute], minDate: "minDate", maxDate: "maxDate" }, providers: [
112
- {
113
- provide: NG_VALUE_ACCESSOR,
114
- useExisting: forwardRef(() => DateFieldComponent),
115
- multi: true,
116
- },
117
- { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
118
- ], viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\"\n [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\" [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\"\n [clearAriaLabel]=\"clearAriaLabel\" [valueAlignEnd]=\"false\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <div class=\"date-field__date-wrap\">\n <span class=\"date-field__display\" aria-hidden=\"true\">{{ displayTextUi }}</span>\n <input matInput class=\"date-field__ghost-input\" [matDatepicker]=\"picker\" [(ngModel)]=\"innerDate\"\n [ngModelOptions]=\"{ standalone: true }\" (ngModelChange)=\"onPickedDate($event)\"\n [min]=\"minDate ?? undefined\" [max]=\"maxDate ?? undefined\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [id]=\"controlId\" [attr.name]=\"name || null\" [attr.autocomplete]=\"autocompleteAttr\"\n [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [attr.aria-label]=\"floatLabelCaption || 'Data'\" readonly (click)=\"openPicker()\"\n (keydown)=\"onGhostInputKeydown($event)\" (blur)=\"onBlur()\" />\n <mat-datepicker #picker panelClass=\"ui-field-datepicker-panel\" />\n </div>\n</app-base-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;box-sizing:border-box}.date-field__date-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:stretch}.date-field__display{position:absolute;left:.75rem;right:.75rem;top:50%;transform:translateY(-.15rem);pointer-events:none;font-size:1rem;line-height:1.35;color:var(--ui-field-float-input-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:0}.date-field__ghost-input{position:relative;z-index:1;flex:1;width:100%;min-width:0;margin:0;box-sizing:border-box;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:transparent;caret-color:transparent;background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer}.date-field__ghost-input:focus{outline:none}.date-field__ghost-input:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}:host ::ng-deep .base-field--readonly:not(.base-field--disabled) .date-field__display{color:var(--ui-field-readonly-input-text)}:host ::ng-deep .base-field--readonly:not(.base-field--disabled) .date-field__ghost-input{cursor:default}:host ::ng-deep .date-field__ghost-input.mdc-text-field__input,:host ::ng-deep .date-field__ghost-input.mat-mdc-input-element{border:none!important;box-shadow:none!important}\n"], dependencies: [{ kind: "component", type: BaseFieldComponent, selector: "app-base-field", inputs: ["label", "errorMessage", "required", "showRequiredMark", "invalid", "filled", "disabled", "readonly", "inputId", "errorId", "showPrefixIcon", "prefixIcon", "clearable", "clearAriaLabel", "showSuffixSlot", "valueAlignEnd", "loading", "skeletonVariant", "mostrarMenuContexto", "contextMenuItems", "contextMenuId"], outputs: ["clear", "contextMenuSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatNativeDateModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
- }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateFieldComponent, decorators: [{
121
- type: Component,
122
- args: [{ selector: 'app-date-field', standalone: true, imports: [
123
- BaseFieldComponent,
124
- FormsModule,
125
- MatDatepickerModule,
126
- MatInputModule,
127
- MatNativeDateModule,
128
- ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
129
- {
130
- provide: NG_VALUE_ACCESSOR,
131
- useExisting: forwardRef(() => DateFieldComponent),
132
- multi: true,
133
- },
134
- { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },
135
- ], template: "<app-base-field [label]=\"floatLabelCaption\" [filled]=\"filledUi\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [loading]=\"loading\"\n [errorMessage]=\"uiErrorMessage\" [required]=\"uiRequiredEffective\" [showRequiredMark]=\"showRequiredMark\"\n [invalid]=\"uiInvalid\" [inputId]=\"controlId\"\n [errorId]=\"errorElementId\" [showPrefixIcon]=\"showPrefixIcon\" [prefixIcon]=\"prefixIcon\" [clearable]=\"clearable\"\n [clearAriaLabel]=\"clearAriaLabel\" [valueAlignEnd]=\"false\"\n [mostrarMenuContexto]=\"mostrarMenuContexto\" [contextMenuItems]=\"contextMenuItems\" [contextMenuId]=\"contextMenuId\"\n (clear)=\"onClear()\" (contextMenuSelect)=\"contextMenuSelect.emit($event)\">\n <ng-content select=\"[appFieldPrefix]\" />\n <div class=\"date-field__date-wrap\">\n <span class=\"date-field__display\" aria-hidden=\"true\">{{ displayTextUi }}</span>\n <input matInput class=\"date-field__ghost-input\" [matDatepicker]=\"picker\" [(ngModel)]=\"innerDate\"\n [ngModelOptions]=\"{ standalone: true }\" (ngModelChange)=\"onPickedDate($event)\"\n [min]=\"minDate ?? undefined\" [max]=\"maxDate ?? undefined\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [required]=\"uiRequiredEffective\" [id]=\"controlId\" [attr.name]=\"name || null\" [attr.autocomplete]=\"autocompleteAttr\"\n [attr.aria-invalid]=\"uiInvalid\" [attr.aria-describedby]=\"uiAriaDescribedBy\"\n [attr.aria-label]=\"floatLabelCaption || 'Data'\" readonly (click)=\"openPicker()\"\n (keydown)=\"onGhostInputKeydown($event)\" (blur)=\"onBlur()\" />\n <mat-datepicker #picker panelClass=\"ui-field-datepicker-panel\" />\n </div>\n</app-base-field>\n", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;box-sizing:border-box}.date-field__date-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:stretch}.date-field__display{position:absolute;left:.75rem;right:.75rem;top:50%;transform:translateY(-.15rem);pointer-events:none;font-size:1rem;line-height:1.35;color:var(--ui-field-float-input-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:0}.date-field__ghost-input{position:relative;z-index:1;flex:1;width:100%;min-width:0;margin:0;box-sizing:border-box;padding:1.35rem .75rem .45rem;font-size:1rem;line-height:1.35;font-family:inherit;color:transparent;caret-color:transparent;background:transparent;border:none;border-radius:0;box-shadow:none;cursor:pointer}.date-field__ghost-input:focus{outline:none}.date-field__ghost-input:disabled{cursor:not-allowed;opacity:var(--ui-field-input-disabled-opacity)}:host ::ng-deep .base-field--readonly:not(.base-field--disabled) .date-field__display{color:var(--ui-field-readonly-input-text)}:host ::ng-deep .base-field--readonly:not(.base-field--disabled) .date-field__ghost-input{cursor:default}:host ::ng-deep .date-field__ghost-input.mdc-text-field__input,:host ::ng-deep .date-field__ghost-input.mat-mdc-input-element{border:none!important;box-shadow:none!important}\n"] }]
136
- }], propDecorators: { picker: [{
137
- type: ViewChild,
138
- args: ['picker']
139
- }], showTimeHours: [{
140
- type: Input,
141
- args: [{ transform: booleanAttribute }]
142
- }], minDate: [{
143
- type: Input
144
- }], maxDate: [{
145
- type: Input
146
- }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9pbnB1dC1maWVsZHMvZGF0ZS1maWVsZC9kYXRlLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2lucHV0LWZpZWxkcy9kYXRlLWZpZWxkL2RhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQWlCLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIscUJBQXFCLEdBQ3RCLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBd0IxQyxNQUFNLE9BQU8sa0JBQ1gsU0FBUSx1QkFBc0M7SUF2QmhEOztRQTRCRTs7O1dBR0c7UUFDcUMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFckQsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFDNUIsWUFBTyxHQUFnQixJQUFJLENBQUM7UUFFckMsY0FBUyxHQUFnQixJ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QWtCO2tCQXRCOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtxQkFDaEQ7OEJBTW9CLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFNcUIsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBib29sZWFuQXR0cmlidXRlLFxyXG4gIGZvcndhcmRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciwgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBNQVRfREFURV9MT0NBTEUsIE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL19iYXNlL2Jhc2UtZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdDb250cm9sRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi9fYmFzZS9uZy1jb250cm9sLWZpZWxkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7XHJcbiAgYXBwbHlQaWNrZWRDYWxlbmRhckRhdGUsXHJcbiAgZm9ybWF0RGF0ZVRpbWVQdEJyLFxyXG4gIGZvcm1hdFVpRmllbGREYXRlVmFsdWUsXHJcbiAgcGFyc2VVaUZpZWxkRGF0ZVZhbHVlLFxyXG59IGZyb20gJy4uLy4uLy4uL191dGlscy9kYXRlLXB0LWJyLnV0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGUtZmllbGQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQmFzZUZpZWxkQ29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLWZpZWxkLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVGaWVsZENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfTE9DQUxFLCB1c2VWYWx1ZTogJ3B0LUJSJyB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlRmllbGRDb21wb25lbnRcclxuICBleHRlbmRzIE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlPHN0cmluZyB8IG51bGw+XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcclxue1xyXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlcj86IE1hdERhdGVwaWNrZXI8RGF0ZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGB0cnVlYCwgYSBmb3JtYXRhw6fDo28gaW5jbHVpIGhoOm1tICgyNGgpIGUsIGFvIGVzY29saGVyIG5vIGNhbGVuZMOhcmlvLFxyXG4gICAqIHVzYSBhIGhvcmEgYWN0dWFsIGxvY2FsIG5vIG1vbWVudG8gZGEgc2VsZWPDp8Ojby5cclxuICAgKi9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1RpbWVIb3VycyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcbiAgQElucHV0KCkgbWF4RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBpbm5lckRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZmlsbGVkVWkgPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRleHRvIGRhIGRhdGEgbm8gc3BhbiAoZXZpdGEgZ2V0dGVyIG5vIHRlbXBsYXRlKS4gKi9cclxuICBkaXNwbGF5VGV4dFVpID0gJyc7XHJcblxyXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Nob3dUaW1lSG91cnMnXSAmJiB0aGlzLmlubmVyRGF0ZSkge1xyXG4gICAgICB0aGlzLnJlZnJlc2hEYXRlRGlzcGxheSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoRmlsbGVkVWkoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGxlZFVpID0gdGhpcy5pbm5lckRhdGUgIT0gbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVmcmVzaERhdGVEaXNwbGF5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlubmVyRGF0ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXlUZXh0VWkgPSAnJztcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNwbGF5VGV4dFVpID0gZm9ybWF0RGF0ZVRpbWVQdEJyKHRoaXMuaW5uZXJEYXRlLCB0aGlzLnNob3dUaW1lSG91cnMpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFmdGVyV3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbm5lckRhdGUgPSBwYXJzZVVpRmllbGREYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5yZWZyZXNoRmlsbGVkVWkoKTtcclxuICAgIHRoaXMucmVmcmVzaERhdGVEaXNwbGF5KCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5zeW5jQ29udHJvbFVpKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuUGlja2VyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnBpY2tlcj8ub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgb25HaG9zdElucHV0S2V5ZG93bihldjogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZXYua2V5ID09PSAnRW50ZXInIHx8IGV2LmtleSA9PT0gJyAnKSB7XHJcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLm9wZW5QaWNrZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uUGlja2VkRGF0ZShuZXh0OiBEYXRlIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJEYXRlID0gbnVsbDtcclxuICAgICAgdGhpcy5lbWl0TW9kZWxWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5yZWZyZXNoRmlsbGVkVWkoKTtcclxuICAgICAgdGhpcy5yZWZyZXNoRGF0ZURpc3BsYXkoKTtcclxuICAgICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFVpKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWVyZ2VkID0gYXBwbHlQaWNrZWRDYWxlbmRhckRhdGUobmV4dCwgdGhpcy5zaG93VGltZUhvdXJzKTtcclxuICAgIHRoaXMuaW5uZXJEYXRlID0gbWVyZ2VkO1xyXG4gICAgdGhpcy5lbWl0TW9kZWxWYWx1ZShmb3JtYXRVaUZpZWxkRGF0ZVZhbHVlKG1lcmdlZCwgdGhpcy5zaG93VGltZUhvdXJzKSk7XHJcbiAgICB0aGlzLnJlZnJlc2hGaWxsZWRVaSgpO1xyXG4gICAgdGhpcy5yZWZyZXNoRGF0ZURpc3BsYXkoKTtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbCkge1xyXG4gICAgICB0aGlzLnN5bmNDb250cm9sVWkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMubm90aWZ5VG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbm5lckRhdGUgPSBudWxsO1xyXG4gICAgdGhpcy5lbWl0TW9kZWxWYWx1ZShudWxsKTtcclxuICAgIHRoaXMubm90aWZ5VG91Y2hlZCgpO1xyXG4gICAgdGhpcy5yZWZyZXNoRmlsbGVkVWkoKTtcclxuICAgIHRoaXMucmVmcmVzaERhdGVEaXNwbGF5KCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5zeW5jQ29udHJvbFVpKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGFwcC1iYXNlLWZpZWxkIFtsYWJlbF09XCJmbG9hdExhYmVsQ2FwdGlvblwiIFtmaWxsZWRdPVwiZmlsbGVkVWlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgW2Vycm9yTWVzc2FnZV09XCJ1aUVycm9yTWVzc2FnZVwiIFtyZXF1aXJlZF09XCJ1aVJlcXVpcmVkRWZmZWN0aXZlXCIgW3Nob3dSZXF1aXJlZE1hcmtdPVwic2hvd1JlcXVpcmVkTWFya1wiXG4gIFtpbnZhbGlkXT1cInVpSW52YWxpZFwiIFtpbnB1dElkXT1cImNvbnRyb2xJZFwiXG4gIFtlcnJvcklkXT1cImVycm9yRWxlbWVudElkXCIgW3Nob3dQcmVmaXhJY29uXT1cInNob3dQcmVmaXhJY29uXCIgW3ByZWZpeEljb25dPVwicHJlZml4SWNvblwiIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgW2NsZWFyQXJpYUxhYmVsXT1cImNsZWFyQXJpYUxhYmVsXCIgW3ZhbHVlQWxpZ25FbmRdPVwiZmFsc2VcIlxuICBbbW9zdHJhck1lbnVDb250ZXh0b109XCJtb3N0cmFyTWVudUNvbnRleHRvXCIgW2NvbnRleHRNZW51SXRlbXNdPVwiY29udGV4dE1lbnVJdGVtc1wiIFtjb250ZXh0TWVudUlkXT1cImNvbnRleHRNZW51SWRcIlxuICAoY2xlYXIpPVwib25DbGVhcigpXCIgKGNvbnRleHRNZW51U2VsZWN0KT1cImNvbnRleHRNZW51U2VsZWN0LmVtaXQoJGV2ZW50KVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwRmllbGRQcmVmaXhdXCIgLz5cbiAgPGRpdiBjbGFzcz1cImRhdGUtZmllbGRfX2RhdGUtd3JhcFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZGF0ZS1maWVsZF9fZGlzcGxheVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7IGRpc3BsYXlUZXh0VWkgfX08L3NwYW4+XG4gICAgPGlucHV0IG1hdElucHV0IGNsYXNzPVwiZGF0ZS1maWVsZF9fZ2hvc3QtaW5wdXRcIiBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIiBbKG5nTW9kZWwpXT1cImlubmVyRGF0ZVwiXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIiAobmdNb2RlbENoYW5nZSk9XCJvblBpY2tlZERhdGUoJGV2ZW50KVwiXG4gICAgICBbbWluXT1cIm1pbkRhdGUgPz8gdW5kZWZpbmVkXCIgW21heF09XCJtYXhEYXRlID8/IHVuZGVmaW5lZFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbcmVxdWlyZWRdPVwidWlSZXF1aXJlZEVmZmVjdGl2ZVwiIFtpZF09XCJjb250cm9sSWRcIiBbYXR0ci5uYW1lXT1cIm5hbWUgfHwgbnVsbFwiIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVBdHRyXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJ1aUludmFsaWRcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cInVpQXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZmxvYXRMYWJlbENhcHRpb24gfHwgJ0RhdGEnXCIgcmVhZG9ubHkgKGNsaWNrKT1cIm9wZW5QaWNrZXIoKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbkdob3N0SW5wdXRLZXlkb3duKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoKVwiIC8+XG4gICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXIgcGFuZWxDbGFzcz1cInVpLWZpZWxkLWRhdGVwaWNrZXItcGFuZWxcIiAvPlxuICA8L2Rpdj5cbjwvYXBwLWJhc2UtZmllbGQ+XG4iXX0=