lib-portal-angular 0.0.59 → 0.0.61

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,6 +26,11 @@ export * from './lib/components/select/select.component';
26
26
  export * from './lib/components/tables/data-table.component';
27
27
  export * from './lib/components/textarea/textarea.component';
28
28
  export * from './lib/components/tree-node/tree-node.component';
29
+ // Diretivas
30
+ export * from './lib/directive/autofocus-directive/autofocus.directive';
31
+ export * from './lib/directive/cep-mask.directive';
32
+ export * from './lib/directive/cnpj-mask.directive';
33
+ export * from './lib/directive/cpf-mask.directive';
29
34
  // Enums
30
35
  export * from './lib/enum/ButtonClassesEnum';
31
36
  // Módulos
@@ -38,4 +43,4 @@ export * from './lib/components/confirmation/confirmation.service';
38
43
  export * from './lib/components/tables/data-paginate.service';
39
44
  export * from './lib/service/refresh-service.service';
40
45
  export * from './lib/service/route-parameter.service';
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWM7QUFDZCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUUvRCxRQUFRO0FBQ1IsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxVQUFVO0FBQ1YsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFHaEQsVUFBVTtBQUNWLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2ltLWxpYlxuICpcbiAqIEVzdGUgYXJxdWl2byBleHBvcnRhIHRvZG9zIG9zIGNvbXBvbmVudGVzLCBlbnVtcyBlIG3Ds2R1bG9zIG5lY2Vzc8Ohcmlvc1xuICogcGFyYSBxdWUgb3MgY29uc3VtaWRvcmVzIGRhIGJpYmxpb3RlY2EgcG9zc2FtIHV0aWxpesOhLWxvcyBlbSBzdWFzIGFwbGljYcOnw7Vlcy5cbiAqL1xuXG4vLyBDb21wb25lbnRlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWIvdGFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1jdXN0b21lci9zZWFyY2gtY3VzdG9tZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3VzdG9tLXN3aXRjaC9jdXN0b20tc3dpdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FwcC1iYWNrZ3JvdW5kL2FwcC1iYWNrZ3JvdW5kLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Jhc2ljLXJlZ2lzdHJhdGlvbi9iYXNpYy1yZWdpc3RyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29kZS1oaWdobGlnaHQvY29kZS1oaWdobGlnaHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdXN0b20tcGFnaW5hdGlvbi9jdXN0b20tcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZXMvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLW5vZGUvdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5cbi8vIEVudW1zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtL0J1dHRvbkNsYXNzZXNFbnVtJztcblxuLy8gTcOzZHVsb3NcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaWNvbnMvbHVjaWRlLWljb25zLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saWItcG9ydGFsLWFuZ3VsYXIubW9kdWxlJztcblxuXG4vLyBTZXJ2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtcGFnaW5hdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3JlZnJlc2gtc2VydmljZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvcm91dGUtcGFyYW1ldGVyLnNlcnZpY2UnO1xuXG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWM7QUFDZCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnREFBZ0QsQ0FBQztBQUUvRCxZQUFZO0FBQ1osY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxRQUFRO0FBQ1IsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxVQUFVO0FBQ1YsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFHaEQsVUFBVTtBQUNWLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2ltLWxpYlxuICpcbiAqIEVzdGUgYXJxdWl2byBleHBvcnRhIHRvZG9zIG9zIGNvbXBvbmVudGVzLCBlbnVtcyBlIG3Ds2R1bG9zIG5lY2Vzc8Ohcmlvc1xuICogcGFyYSBxdWUgb3MgY29uc3VtaWRvcmVzIGRhIGJpYmxpb3RlY2EgcG9zc2FtIHV0aWxpesOhLWxvcyBlbSBzdWFzIGFwbGljYcOnw7Vlcy5cbiAqL1xuXG4vLyBDb21wb25lbnRlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWIvdGFiLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1jdXN0b21lci9zZWFyY2gtY3VzdG9tZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3VzdG9tLXN3aXRjaC9jdXN0b20tc3dpdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FwcC1iYWNrZ3JvdW5kL2FwcC1iYWNrZ3JvdW5kLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Jhc2ljLXJlZ2lzdHJhdGlvbi9iYXNpYy1yZWdpc3RyYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29kZS1oaWdobGlnaHQvY29kZS1oaWdobGlnaHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdXN0b20tcGFnaW5hdGlvbi9jdXN0b20tcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZXMvZGF0YS10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90cmVlLW5vZGUvdHJlZS1ub2RlLmNvbXBvbmVudCc7XG5cbi8vIERpcmV0aXZhc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL2F1dG9mb2N1cy1kaXJlY3RpdmUvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvY2VwLW1hc2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9jbnBqLW1hc2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9jcGYtbWFzay5kaXJlY3RpdmUnO1xuXG4vLyBFbnVtc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bS9CdXR0b25DbGFzc2VzRW51bSc7XG5cbi8vIE3Ds2R1bG9zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb25zL2x1Y2lkZS1pY29ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGliLXBvcnRhbC1hbmd1bGFyLm1vZHVsZSc7XG5cblxuLy8gU2VydmljZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hbGVydC9ub3RpZmljYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXBhZ2luYXRlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9yZWZyZXNoLXNlcnZpY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3JvdXRlLXBhcmFtZXRlci5zZXJ2aWNlJztcblxuIl19
@@ -1014,6 +1014,154 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1014
1014
  type: Output
1015
1015
  }] } });
1016
1016
 
1017
+ class CepMaskDirective {
1018
+ constructor(el, renderer) {
1019
+ this.el = el;
1020
+ this.renderer = renderer;
1021
+ this.enabled = false; // Define como opcional e padrão desabilitado
1022
+ }
1023
+ onInputChange(event) {
1024
+ if (!this.enabled)
1025
+ return; // Não aplica a máscara se não estiver habilitada
1026
+ // Obtém o valor atual e remove todos os caracteres não numéricos
1027
+ let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
1028
+ // Limita o número de caracteres a 8 para CEP
1029
+ if (initialValue.length > 8) {
1030
+ initialValue = initialValue.slice(0, 8);
1031
+ }
1032
+ // Aplica a máscara de CEP
1033
+ const formattedValue = this.formatCep(initialValue);
1034
+ // Atualiza o valor do input se necessário
1035
+ if (formattedValue !== this.el.nativeElement.value) {
1036
+ this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
1037
+ // Dispara um evento de input para atualizar o modelo
1038
+ if (event.target.dispatchEvent) {
1039
+ const newEvent = new Event('input', { bubbles: true });
1040
+ event.target.dispatchEvent(newEvent);
1041
+ }
1042
+ }
1043
+ }
1044
+ formatCep(value) {
1045
+ // Aplica a formatação de CEP: 12345-678
1046
+ return value.replace(/(\d{5})(\d)/, '$1-$2');
1047
+ }
1048
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CepMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1049
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CepMaskDirective, selector: "[cepMask]", inputs: { enabled: ["cepMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
1050
+ }
1051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CepMaskDirective, decorators: [{
1052
+ type: Directive,
1053
+ args: [{
1054
+ selector: '[cepMask]',
1055
+ }]
1056
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
1057
+ type: Input,
1058
+ args: ['cepMask']
1059
+ }], onInputChange: [{
1060
+ type: HostListener,
1061
+ args: ['input', ['$event']]
1062
+ }] } });
1063
+
1064
+ class CnpjMaskDirective {
1065
+ constructor(el, renderer) {
1066
+ this.el = el;
1067
+ this.renderer = renderer;
1068
+ this.enabled = false; // Define como opcional e padrão desabilitado
1069
+ }
1070
+ onInputChange(event) {
1071
+ if (!this.enabled)
1072
+ return; // Não aplica a máscara se não estiver habilitada
1073
+ // Obtém o valor atual e remove todos os caracteres não numéricos
1074
+ let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
1075
+ // Limita o número de caracteres a 14 para CNPJ
1076
+ if (initialValue.length > 14) {
1077
+ initialValue = initialValue.slice(0, 14);
1078
+ }
1079
+ // Aplica a máscara de CNPJ
1080
+ const formattedValue = this.formatCnpj(initialValue);
1081
+ // Atualiza o valor do input se necessário
1082
+ if (formattedValue !== this.el.nativeElement.value) {
1083
+ this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
1084
+ // Dispara um evento de input para atualizar o modelo
1085
+ if (event.target.dispatchEvent) {
1086
+ const newEvent = new Event('input', { bubbles: true });
1087
+ event.target.dispatchEvent(newEvent);
1088
+ }
1089
+ }
1090
+ }
1091
+ formatCnpj(value) {
1092
+ // Aplica a formatação de CNPJ: 12.345.678/0001-00
1093
+ return value
1094
+ .replace(/(\d{2})(\d)/, '$1.$2')
1095
+ .replace(/(\d{3})(\d)/, '$1.$2')
1096
+ .replace(/(\d{3})(\d{4})(\d)/, '$1/$2-$3')
1097
+ .replace(/(\d{4})(\d{2})$/, '$1-$2');
1098
+ }
1099
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CnpjMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CnpjMaskDirective, selector: "[cnpjMask]", inputs: { enabled: ["cnpjMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
1101
+ }
1102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CnpjMaskDirective, decorators: [{
1103
+ type: Directive,
1104
+ args: [{
1105
+ selector: '[cnpjMask]',
1106
+ }]
1107
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
1108
+ type: Input,
1109
+ args: ['cnpjMask']
1110
+ }], onInputChange: [{
1111
+ type: HostListener,
1112
+ args: ['input', ['$event']]
1113
+ }] } });
1114
+
1115
+ class CpfMaskDirective {
1116
+ constructor(el, renderer) {
1117
+ this.el = el;
1118
+ this.renderer = renderer;
1119
+ this.enabled = false; // Define como opcional e padrão desabilitado
1120
+ }
1121
+ onInputChange(event) {
1122
+ if (!this.enabled)
1123
+ return;
1124
+ // Obtém o valor atual e remove todos os caracteres não numéricos
1125
+ let initialValue = this.el.nativeElement.value.replace(/\D/g, '');
1126
+ // Limita o número de caracteres a 11 para CPF
1127
+ if (initialValue.length > 11) {
1128
+ initialValue = initialValue.slice(0, 11);
1129
+ }
1130
+ // Aplica a máscara de CPF
1131
+ const formattedValue = this.formatCpf(initialValue);
1132
+ // Atualiza o valor do input se necessário
1133
+ if (formattedValue !== this.el.nativeElement.value) {
1134
+ this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);
1135
+ // Dispara um evento de input para atualizar o modelo
1136
+ if (event.target.dispatchEvent) {
1137
+ const newEvent = new Event('input', { bubbles: true });
1138
+ event.target.dispatchEvent(newEvent);
1139
+ }
1140
+ }
1141
+ }
1142
+ formatCpf(value) {
1143
+ // Aplica a formatação de CPF: 123.456.789-00
1144
+ return value
1145
+ .replace(/(\d{3})(\d)/, '$1.$2')
1146
+ .replace(/(\d{3})(\d)/, '$1.$2')
1147
+ .replace(/(\d{3})(\d{1,2})$/, '$1-$2');
1148
+ }
1149
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CpfMaskDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1150
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: CpfMaskDirective, selector: "[cpfMask]", inputs: { enabled: ["cpfMask", "enabled"] }, host: { listeners: { "input": "onInputChange($event)" } }, ngImport: i0 }); }
1151
+ }
1152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CpfMaskDirective, decorators: [{
1153
+ type: Directive,
1154
+ args: [{
1155
+ selector: '[cpfMask]',
1156
+ }]
1157
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { enabled: [{
1158
+ type: Input,
1159
+ args: ['cpfMask']
1160
+ }], onInputChange: [{
1161
+ type: HostListener,
1162
+ args: ['input', ['$event']]
1163
+ }] } });
1164
+
1017
1165
  class InputComponent {
1018
1166
  constructor(authService) {
1019
1167
  this.authService = authService;
@@ -1028,6 +1176,11 @@ class InputComponent {
1028
1176
  this.required = false;
1029
1177
  this.pattern = null;
1030
1178
  this.autofocus = false;
1179
+ this.useCpfMask = false;
1180
+ this.useCnpjMask = false;
1181
+ this.useCepMask = false;
1182
+ this.onlyNumbers = false;
1183
+ this.validateInput = false;
1031
1184
  this.labelFontWeight = 400;
1032
1185
  this.inputEvent = new EventEmitter();
1033
1186
  this.changeEvent = new EventEmitter();
@@ -1039,17 +1192,116 @@ class InputComponent {
1039
1192
  this.onChangeCallback = () => { };
1040
1193
  this.onTouchedCallback = () => { };
1041
1194
  this.value = '';
1195
+ this.showErrorModal = false;
1196
+ this.errorMessage = '';
1042
1197
  this.subscriptions = [];
1043
1198
  }
1199
+ getInputType() {
1200
+ return this.onlyNumbers ? 'tel' : this.type;
1201
+ }
1044
1202
  onInput(event) {
1045
1203
  const inputElement = event.target;
1046
- this.value = inputElement.value;
1204
+ let inputValue = inputElement.value;
1205
+ if ((this.onlyNumbers) && !(this.useCpfMask || this.useCnpjMask || this.useCepMask)) {
1206
+ inputValue = inputValue.replace(/\D/g, '');
1207
+ }
1208
+ this.value = inputValue;
1047
1209
  this.onChangeCallback(this.value);
1048
1210
  this.inputEvent.emit(event);
1211
+ // Validar imediatamente após o último caractere numérico para CPF, CNPJ ou CEP
1212
+ const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
1213
+ if (this.validateInput) {
1214
+ if (this.useCpfMask && numericValue.length === 11 && !this.validateCpf(numericValue)) {
1215
+ this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
1216
+ }
1217
+ else if (this.useCnpjMask && numericValue.length === 14 && !this.validateCnpj(numericValue)) {
1218
+ this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');
1219
+ }
1220
+ else if (this.useCepMask && numericValue.length === 8 && !this.validateCep(numericValue)) {
1221
+ this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
1222
+ }
1223
+ }
1224
+ }
1225
+ onKeyDown(event) {
1226
+ if (this.onlyNumbers && !/^\d$/.test(event.key) && event.key !== 'Backspace' && event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {
1227
+ event.preventDefault();
1228
+ }
1049
1229
  }
1050
1230
  onChange(event) {
1231
+ const numericValue = this.value.replace(/\D/g, ''); // Remove todos os caracteres não numéricos
1232
+ // Validação também ocorre no blur para casos onde o input não está completo
1233
+ if (this.validateInput) {
1234
+ if (this.useCpfMask && !this.validateCpf(numericValue)) {
1235
+ this.clearAndShowValidationError('CPF inválido. Por favor, insira um CPF correto.');
1236
+ }
1237
+ else if (this.useCnpjMask && !this.validateCnpj(numericValue)) {
1238
+ this.clearAndShowValidationError('CNPJ inválido. Por favor, insira um CNPJ correto.');
1239
+ }
1240
+ else if (this.useCepMask && !this.validateCep(numericValue)) {
1241
+ this.clearAndShowValidationError('CEP inválido. Por favor, insira um CEP correto.');
1242
+ }
1243
+ }
1051
1244
  this.changeEvent.emit(event);
1052
1245
  }
1246
+ validateCpf(cpf) {
1247
+ if (cpf.length !== 11 || /^(\d)\1+$/.test(cpf))
1248
+ return false;
1249
+ let sum = 0, remainder;
1250
+ for (let i = 1; i <= 9; i++)
1251
+ sum += parseInt(cpf.substring(i - 1, i)) * (11 - i);
1252
+ remainder = (sum * 10) % 11;
1253
+ if (remainder === 10 || remainder === 11)
1254
+ remainder = 0;
1255
+ if (remainder !== parseInt(cpf.substring(9, 10)))
1256
+ return false;
1257
+ sum = 0;
1258
+ for (let i = 1; i <= 10; i++)
1259
+ sum += parseInt(cpf.substring(i - 1, i)) * (12 - i);
1260
+ remainder = (sum * 10) % 11;
1261
+ if (remainder === 10 || remainder === 11)
1262
+ remainder = 0;
1263
+ return remainder === parseInt(cpf.substring(10, 11));
1264
+ }
1265
+ validateCnpj(cnpj) {
1266
+ if (cnpj.length !== 14)
1267
+ return false;
1268
+ let length = cnpj.length - 2;
1269
+ let numbers = cnpj.substring(0, length);
1270
+ let digits = cnpj.substring(length);
1271
+ let sum = 0, pos = length - 7;
1272
+ for (let i = length; i >= 1; i--) {
1273
+ sum += parseInt(numbers.charAt(length - i)) * pos--;
1274
+ if (pos < 2)
1275
+ pos = 9;
1276
+ }
1277
+ let result = sum % 11 < 2 ? 0 : 11 - sum % 11;
1278
+ if (result !== parseInt(digits.charAt(0)))
1279
+ return false;
1280
+ length = length + 1;
1281
+ numbers = cnpj.substring(0, length);
1282
+ sum = 0;
1283
+ pos = length - 7;
1284
+ for (let i = length; i >= 1; i--) {
1285
+ sum += parseInt(numbers.charAt(length - i)) * pos--;
1286
+ if (pos < 2)
1287
+ pos = 9;
1288
+ }
1289
+ result = sum % 11 < 2 ? 0 : 11 - sum % 11;
1290
+ return result === parseInt(digits.charAt(1));
1291
+ }
1292
+ validateCep(cep) {
1293
+ return /^\d{8}$/.test(cep); // Valida apenas números, sem considerar a máscara
1294
+ }
1295
+ clearAndShowValidationError(message) {
1296
+ this.value = ''; // Limpa o valor do ngModel
1297
+ this.onChangeCallback(this.value); // Atualiza o ngModel com o valor limpo
1298
+ this.errorMessage = message;
1299
+ this.showErrorModal = true;
1300
+ }
1301
+ closeModal() {
1302
+ this.showErrorModal = false;
1303
+ this.errorMessage = '';
1304
+ }
1053
1305
  onFocus(event) {
1054
1306
  this.focusEvent.emit(event);
1055
1307
  }
@@ -1090,69 +1342,23 @@ class InputComponent {
1090
1342
  this.subscriptions.forEach(sub => sub.unsubscribe());
1091
1343
  }
1092
1344
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
1093
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
1345
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: InputComponent, selector: "argenta-custom-input", inputs: { label: "label", placeholder: "placeholder", id: "id", type: "type", disabled: "disabled", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", required: "required", pattern: "pattern", autofocus: "autofocus", useCpfMask: "useCpfMask", useCnpjMask: "useCnpjMask", useCepMask: "useCepMask", onlyNumbers: "onlyNumbers", validateInput: "validateInput", labelFontWeight: "labelFontWeight", permissions: "permissions" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", focusEvent: "focusEvent", blurEvent: "blurEvent", keyupEvent: "keyupEvent", keydownEvent: "keydownEvent", keypressEvent: "keypressEvent" }, providers: [
1094
1346
  {
1095
1347
  provide: NG_VALUE_ACCESSOR,
1096
1348
  useExisting: forwardRef(() => InputComponent),
1097
1349
  multi: true
1098
1350
  }
1099
- ], ngImport: i0, template: `
1100
- <div *ngIf="hasPermission()" class="form-group">
1101
- <label [for]="id" [ngClass]="'label-styles'">{{ label }}</label>
1102
- <input [type]="type"
1103
- class="form-control custom-input"
1104
- [id]="id"
1105
- [placeholder]="placeholder"
1106
- [(ngModel)]="value"
1107
- (input)="onInput($event)"
1108
- (change)="onChange($event)"
1109
- (focus)="onFocus($event)"
1110
- (blur)="onBlur($event)"
1111
- (keyup)="keyupEvent.emit($event)"
1112
- (keydown)="keydownEvent.emit($event)"
1113
- (keypress)="keypressEvent.emit($event)"
1114
- [disabled]="disabled"
1115
- [readonly]="readonly"
1116
- [attr.maxlength]="maxlength"
1117
- [attr.minlength]="minlength"
1118
- [required]="required"
1119
- [attr.pattern]="pattern"
1120
- [autofocus]="autofocus">
1121
- </div>
1122
- `, isInline: true, styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1351
+ ], ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <input [type]=\"getInputType()\"\n class=\"form-control custom-input\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (input)=\"onInput($event)\"\n (change)=\"onChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"keyupEvent.emit($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keypress)=\"keypressEvent.emit($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [required]=\"required\"\n [attr.pattern]=\"pattern\"\n [autofocus]=\"autofocus\"\n [cpfMask]=\"useCpfMask\" \n [cnpjMask]=\"useCnpjMask\" \n [cepMask]=\"useCepMask\">\n\n <!-- Modal para exibir mensagens de erro -->\n <div class=\"modal-overlay\" *ngIf=\"showErrorModal\">\n <div class=\"modal-content\">\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\n <p>{{ errorMessage }}</p>\n <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:25px 30px;border-radius:8px;width:360px;text-align:center;position:relative;box-shadow:0 4px 12px #0003}.close{position:absolute;top:10px;right:15px;cursor:pointer;font-size:20px;color:#555;transition:color .3s}.close:hover{color:#f44336}.btn-ok{margin-top:20px;padding:8px 20px;border:none;background-color:#00444c;color:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s,transform .2s}.btn-ok:hover{background-color:#00363d;transform:scale(1.05)}.btn-ok:active{transform:scale(.98)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CepMaskDirective, selector: "[cepMask]", inputs: ["cepMask"] }, { kind: "directive", type: CnpjMaskDirective, selector: "[cnpjMask]", inputs: ["cnpjMask"] }, { kind: "directive", type: CpfMaskDirective, selector: "[cpfMask]", inputs: ["cpfMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1123
1352
  }
1124
1353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InputComponent, decorators: [{
1125
1354
  type: Component,
1126
- args: [{ selector: 'argenta-custom-input', template: `
1127
- <div *ngIf="hasPermission()" class="form-group">
1128
- <label [for]="id" [ngClass]="'label-styles'">{{ label }}</label>
1129
- <input [type]="type"
1130
- class="form-control custom-input"
1131
- [id]="id"
1132
- [placeholder]="placeholder"
1133
- [(ngModel)]="value"
1134
- (input)="onInput($event)"
1135
- (change)="onChange($event)"
1136
- (focus)="onFocus($event)"
1137
- (blur)="onBlur($event)"
1138
- (keyup)="keyupEvent.emit($event)"
1139
- (keydown)="keydownEvent.emit($event)"
1140
- (keypress)="keypressEvent.emit($event)"
1141
- [disabled]="disabled"
1142
- [readonly]="readonly"
1143
- [attr.maxlength]="maxlength"
1144
- [attr.minlength]="minlength"
1145
- [required]="required"
1146
- [attr.pattern]="pattern"
1147
- [autofocus]="autofocus">
1148
- </div>
1149
- `, providers: [
1355
+ args: [{ selector: 'argenta-custom-input', providers: [
1150
1356
  {
1151
1357
  provide: NG_VALUE_ACCESSOR,
1152
1358
  useExisting: forwardRef(() => InputComponent),
1153
1359
  multi: true
1154
1360
  }
1155
- ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}\n"] }]
1361
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" [ngClass]=\"'label-styles'\">{{ label }}</label>\n <input [type]=\"getInputType()\"\n class=\"form-control custom-input\"\n [id]=\"id\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n (input)=\"onInput($event)\"\n (change)=\"onChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (keyup)=\"keyupEvent.emit($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keypress)=\"keypressEvent.emit($event)\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [required]=\"required\"\n [attr.pattern]=\"pattern\"\n [autofocus]=\"autofocus\"\n [cpfMask]=\"useCpfMask\" \n [cnpjMask]=\"useCnpjMask\" \n [cepMask]=\"useCepMask\">\n\n <!-- Modal para exibir mensagens de erro -->\n <div class=\"modal-overlay\" *ngIf=\"showErrorModal\">\n <div class=\"modal-content\">\n <span class=\"close\" (click)=\"closeModal()\">&times;</span>\n <p>{{ errorMessage }}</p>\n <button class=\"btn-ok\" (click)=\"closeModal()\">OK</button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem;font-weight:700}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem;height:46px}.custom-input::placeholder{font-size:14px;color:#d3d3d3}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:700}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:25px 30px;border-radius:8px;width:360px;text-align:center;position:relative;box-shadow:0 4px 12px #0003}.close{position:absolute;top:10px;right:15px;cursor:pointer;font-size:20px;color:#555;transition:color .3s}.close:hover{color:#f44336}.btn-ok{margin-top:20px;padding:8px 20px;border:none;background-color:#00444c;color:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s,transform .2s}.btn-ok:hover{background-color:#00363d;transform:scale(1.05)}.btn-ok:active{transform:scale(.98)}\n"] }]
1156
1362
  }], ctorParameters: function () { return [{ type: AuthService }]; }, propDecorators: { label: [{
1157
1363
  type: Input
1158
1364
  }], placeholder: [{
@@ -1175,6 +1381,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1175
1381
  type: Input
1176
1382
  }], autofocus: [{
1177
1383
  type: Input
1384
+ }], useCpfMask: [{
1385
+ type: Input
1386
+ }], useCnpjMask: [{
1387
+ type: Input
1388
+ }], useCepMask: [{
1389
+ type: Input
1390
+ }], onlyNumbers: [{
1391
+ type: Input
1392
+ }], validateInput: [{
1393
+ type: Input
1178
1394
  }], labelFontWeight: [{
1179
1395
  type: Input
1180
1396
  }], permissions: [{
@@ -2310,6 +2526,9 @@ class ComponentsModule {
2310
2526
  AlertComponent,
2311
2527
  ConfirmationComponent,
2312
2528
  AutofocusDirective,
2529
+ CepMaskDirective,
2530
+ CnpjMaskDirective,
2531
+ CpfMaskDirective,
2313
2532
  CustomPaginationComponent,
2314
2533
  TreeNodeComponent,
2315
2534
  SearchInputComponent,
@@ -2337,6 +2556,10 @@ class ComponentsModule {
2337
2556
  BadgeComponent,
2338
2557
  AlertComponent,
2339
2558
  ConfirmationComponent,
2559
+ AutofocusDirective,
2560
+ CepMaskDirective,
2561
+ CnpjMaskDirective,
2562
+ CpfMaskDirective,
2340
2563
  CustomPaginationComponent,
2341
2564
  TreeNodeComponent,
2342
2565
  SearchInputComponent,
@@ -2373,6 +2596,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2373
2596
  AlertComponent,
2374
2597
  ConfirmationComponent,
2375
2598
  AutofocusDirective,
2599
+ CepMaskDirective,
2600
+ CnpjMaskDirective,
2601
+ CpfMaskDirective,
2376
2602
  CustomPaginationComponent,
2377
2603
  TreeNodeComponent,
2378
2604
  SearchInputComponent,
@@ -2406,6 +2632,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2406
2632
  BadgeComponent,
2407
2633
  AlertComponent,
2408
2634
  ConfirmationComponent,
2635
+ AutofocusDirective,
2636
+ CepMaskDirective,
2637
+ CnpjMaskDirective,
2638
+ CpfMaskDirective,
2409
2639
  CustomPaginationComponent,
2410
2640
  TreeNodeComponent,
2411
2641
  SearchInputComponent,
@@ -2576,5 +2806,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2576
2806
  * Generated bundle index. Do not edit.
2577
2807
  */
2578
2808
 
2579
- export { AlertComponent, AppBackgroundComponent, BadgeComponent, BasicRegistrationComponent, ButtonClasses, ButtonComponent, CardComponent, CheckboxComponent, CodeHighlightComponent, ComponentsModule, ConfirmationComponent, ConfirmationService, CustomPaginationComponent, CustomSwitchComponent, DataPaginateService, DataTableComponent, InputComponent, LibPortalAngularModule, LucideIconsModule, MultiSelectComponent, NotificationService, RadioComponent, RefreshService, RouterParameterService, SearchCustomerComponent, SearchInputComponent, SelectComponent, TabComponent, TextareaComponent, TreeNodeComponent };
2809
+ export { AlertComponent, AppBackgroundComponent, AutofocusDirective, BadgeComponent, BasicRegistrationComponent, ButtonClasses, ButtonComponent, CardComponent, CepMaskDirective, CheckboxComponent, CnpjMaskDirective, CodeHighlightComponent, ComponentsModule, ConfirmationComponent, ConfirmationService, CpfMaskDirective, CustomPaginationComponent, CustomSwitchComponent, DataPaginateService, DataTableComponent, InputComponent, LibPortalAngularModule, LucideIconsModule, MultiSelectComponent, NotificationService, RadioComponent, RefreshService, RouterParameterService, SearchCustomerComponent, SearchInputComponent, SelectComponent, TabComponent, TextareaComponent, TreeNodeComponent };
2580
2810
  //# sourceMappingURL=lib-portal-angular.mjs.map