appproject-components 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/appproject-components.module.mjs +25 -5
- package/esm2020/lib/input-format/input-format.component.mjs +122 -8
- package/esm2020/lib/input-pesquisa/input-pesquisa.component.mjs +531 -0
- package/esm2020/lib/input-select/input-select.component.mjs +80 -0
- package/esm2020/lib/input-valor/input-valor.component.mjs +122 -0
- package/esm2020/lib/model-treeview/model-treeview.component.mjs +14 -0
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/appproject-components.mjs +872 -11
- package/fesm2015/appproject-components.mjs.map +1 -1
- package/fesm2020/appproject-components.mjs +863 -11
- package/fesm2020/appproject-components.mjs.map +1 -1
- package/lib/appproject-components.module.d.ts +9 -5
- package/lib/input-format/input-format.component.d.ts +19 -2
- package/lib/input-pesquisa/input-pesquisa.component.d.ts +65 -0
- package/lib/input-select/input-select.component.d.ts +28 -0
- package/lib/input-valor/input-valor.component.d.ts +25 -0
- package/lib/model-treeview/model-treeview.component.d.ts +8 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -7,6 +7,10 @@ import { IonicModule } from '@ionic/angular';
|
|
|
7
7
|
import { HttpClientModule } from '@angular/common/http';
|
|
8
8
|
import { AppprojectComponentsService } from './appproject-components.service';
|
|
9
9
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
10
|
+
import { InputSelectComponent } from './input-select/input-select.component';
|
|
11
|
+
import { InputPesquisaComponent } from './input-pesquisa/input-pesquisa.component';
|
|
12
|
+
import { ModelTreeviewComponent } from './model-treeview/model-treeview.component';
|
|
13
|
+
import { InputValorComponent } from './input-valor/input-valor.component';
|
|
10
14
|
import * as i0 from "@angular/core";
|
|
11
15
|
export const LibConfigService = new InjectionToken('LibConfig');
|
|
12
16
|
export class AppprojectComponentsModule {
|
|
@@ -26,12 +30,20 @@ export class AppprojectComponentsModule {
|
|
|
26
30
|
AppprojectComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
31
|
AppprojectComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, declarations: [AppprojectComponentsComponent,
|
|
28
32
|
InputTextComponent,
|
|
29
|
-
InputFormatComponent
|
|
33
|
+
InputFormatComponent,
|
|
34
|
+
InputSelectComponent,
|
|
35
|
+
InputPesquisaComponent,
|
|
36
|
+
ModelTreeviewComponent,
|
|
37
|
+
InputValorComponent], imports: [CommonModule,
|
|
30
38
|
HttpClientModule,
|
|
31
39
|
IonicModule,
|
|
32
40
|
ReactiveFormsModule], exports: [AppprojectComponentsComponent,
|
|
33
41
|
InputTextComponent,
|
|
34
|
-
InputFormatComponent
|
|
42
|
+
InputFormatComponent,
|
|
43
|
+
InputSelectComponent,
|
|
44
|
+
InputPesquisaComponent,
|
|
45
|
+
ModelTreeviewComponent,
|
|
46
|
+
InputValorComponent] });
|
|
35
47
|
AppprojectComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: AppprojectComponentsModule, imports: [CommonModule,
|
|
36
48
|
HttpClientModule,
|
|
37
49
|
IonicModule,
|
|
@@ -42,7 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
42
54
|
declarations: [
|
|
43
55
|
AppprojectComponentsComponent,
|
|
44
56
|
InputTextComponent,
|
|
45
|
-
InputFormatComponent
|
|
57
|
+
InputFormatComponent,
|
|
58
|
+
InputSelectComponent,
|
|
59
|
+
InputPesquisaComponent,
|
|
60
|
+
ModelTreeviewComponent,
|
|
61
|
+
InputValorComponent
|
|
46
62
|
],
|
|
47
63
|
imports: [
|
|
48
64
|
CommonModule,
|
|
@@ -53,9 +69,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
53
69
|
exports: [
|
|
54
70
|
AppprojectComponentsComponent,
|
|
55
71
|
InputTextComponent,
|
|
56
|
-
InputFormatComponent
|
|
72
|
+
InputFormatComponent,
|
|
73
|
+
InputSelectComponent,
|
|
74
|
+
InputPesquisaComponent,
|
|
75
|
+
ModelTreeviewComponent,
|
|
76
|
+
InputValorComponent
|
|
57
77
|
],
|
|
58
78
|
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
|
59
79
|
}]
|
|
60
80
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2FwcHByb2plY3QtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBTzFFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFZLFdBQVcsQ0FBQyxDQUFDO0FBNkIzRSxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBaUI7UUFDOUIsT0FBTztZQUNMLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsU0FBUyxFQUFFO2dCQUNULDJCQUEyQjtnQkFDM0I7b0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFBO0lBQ0gsQ0FBQzs7dUhBWlUsMEJBQTBCO3dIQUExQiwwQkFBMEIsaUJBekJuQyw2QkFBNkI7UUFDN0Isa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixtQkFBbUIsYUFHbkIsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsbUJBQW1CLGFBR25CLDZCQUE2QjtRQUM3QixrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLG1CQUFtQjt3SEFJViwwQkFBMEIsWUFoQm5DLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLG1CQUFtQjsyRkFhViwwQkFBMEI7a0JBM0J0QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCw2QkFBNkI7d0JBQzdCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwcHJvamVjdENvbXBvbmVudHNDb21wb25lbnQgfSBmcm9tICcuL2FwcHByb2plY3QtY29tcG9uZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0Rm9ybWF0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1mb3JtYXQvaW5wdXQtZm9ybWF0LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBcHBwcm9qZWN0Q29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuL2FwcHByb2plY3QtY29tcG9uZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbnB1dFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRQZXNxdWlzYUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcGVzcXVpc2EvaW5wdXQtcGVzcXVpc2EuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsVHJlZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLXRyZWV2aWV3L21vZGVsLXRyZWV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFZhbG9yQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC12YWxvci9pbnB1dC12YWxvci5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGliQ29uZmlnIHtcbiAgYXBpVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBMaWJDb25maWdTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPExpYkNvbmZpZz4oJ0xpYkNvbmZpZycpO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBwcm9qZWN0Q29tcG9uZW50c0NvbXBvbmVudCxcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXG4gICAgSW5wdXRGb3JtYXRDb21wb25lbnQsXG4gICAgSW5wdXRTZWxlY3RDb21wb25lbnQsXG4gICAgSW5wdXRQZXNxdWlzYUNvbXBvbmVudCxcbiAgICBNb2RlbFRyZWV2aWV3Q29tcG9uZW50LFxuICAgIElucHV0VmFsb3JDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFwcHByb2plY3RDb21wb25lbnRzQ29tcG9uZW50LFxuICAgIElucHV0VGV4dENvbXBvbmVudCxcbiAgICBJbnB1dEZvcm1hdENvbXBvbmVudCxcbiAgICBJbnB1dFNlbGVjdENvbXBvbmVudCxcbiAgICBJbnB1dFBlc3F1aXNhQ29tcG9uZW50LFxuICAgIE1vZGVsVHJlZXZpZXdDb21wb25lbnQsXG4gICAgSW5wdXRWYWxvckNvbXBvbmVudFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgQXBwcHJvamVjdENvbXBvbmVudHNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IExpYkNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QXBwcHJvamVjdENvbXBvbmVudHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFwcHByb2plY3RDb21wb25lbnRzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEFwcHByb2plY3RDb21wb25lbnRzU2VydmljZSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExpYkNvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,14 +1,128 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { BaseInputComponent } from '../baseInputComponent';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@ionic/angular";
|
|
7
|
+
export class InputFormatComponent extends BaseInputComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super();
|
|
10
|
+
this.formato = null;
|
|
11
|
+
this.keyEnter = null;
|
|
12
|
+
//control value acessor
|
|
13
|
+
this.data = null;
|
|
14
|
+
this.onChange = (data) => { };
|
|
15
|
+
this.onTouch = () => { };
|
|
16
|
+
this.disabled = false;
|
|
17
|
+
this.console = console;
|
|
18
|
+
}
|
|
19
|
+
writeValue(value) {
|
|
20
|
+
//console.log('write value', value);
|
|
21
|
+
this.onChange(value);
|
|
22
|
+
this.data = value;
|
|
23
|
+
}
|
|
24
|
+
registerOnChange(fn) {
|
|
25
|
+
this.onChange = fn;
|
|
26
|
+
}
|
|
27
|
+
registerOnTouched(fn) {
|
|
28
|
+
this.onTouch = fn;
|
|
29
|
+
}
|
|
30
|
+
setDisabledState(isDisabled) {
|
|
31
|
+
this.disabled = this.disabled;
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() { }
|
|
34
|
+
digitarFormatado(event) {
|
|
35
|
+
console.log(event);
|
|
36
|
+
if ((event.keyCode >= 48 && event.keyCode <= 57)
|
|
37
|
+
|| (event.keyCode >= 96 && event.keyCode <= 105)
|
|
38
|
+
|| (event.keyCode == 8)
|
|
39
|
+
|| (event.keyCode == 9)
|
|
40
|
+
|| (event.keyCode == 39)
|
|
41
|
+
|| (event.keyCode == 37)) {
|
|
42
|
+
//console.log(this.formControlName, this.form.get(this.formControlName).value);
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
if (this.form) {
|
|
45
|
+
this.form.patchValue({
|
|
46
|
+
[this.formControlName]: this.formataCampoValor(this.form.get(this.formControlName)?.value, this.formato ?? '', event)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this.data = this.formataCampoValor(this.data ?? '', this.formato ?? '', event);
|
|
51
|
+
this.writeValue(this.data);
|
|
52
|
+
}
|
|
53
|
+
}, 100);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
onKeyEnter() {
|
|
61
|
+
if (this.keyEnter != null) {
|
|
62
|
+
this.keyEnter();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
onBlur() {
|
|
66
|
+
if (this.form) {
|
|
67
|
+
this.form.get(this.formControlName)?.markAsTouched();
|
|
68
|
+
}
|
|
69
|
+
if (this.blur) {
|
|
70
|
+
this.blur(this.blurArgs);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
formataCampoValor(valor, Mascara, evento) {
|
|
74
|
+
console.log(valor);
|
|
75
|
+
if (!valor)
|
|
76
|
+
return null;
|
|
77
|
+
//console.log(evento);
|
|
78
|
+
//if (!this.keypressInteiro(evento))
|
|
79
|
+
// return;
|
|
80
|
+
var boleanoMascara;
|
|
81
|
+
var Digitato = evento != null ? evento.keyCode : 0;
|
|
82
|
+
let exp = /\-|\.|\/|\(|\)| /g;
|
|
83
|
+
let campoSoNumeros = valor.replace(exp, "");
|
|
84
|
+
var posicaoCampo = 0;
|
|
85
|
+
var NovoValorCampo = "";
|
|
86
|
+
var TamanhoMascara = campoSoNumeros.length;
|
|
87
|
+
;
|
|
88
|
+
if (Digitato != 8) { // backspace
|
|
89
|
+
for (let i = 0; i <= TamanhoMascara; i++) {
|
|
90
|
+
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
|
|
91
|
+
|| (Mascara.charAt(i) == "/"));
|
|
92
|
+
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
|
|
93
|
+
|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "));
|
|
94
|
+
if (boleanoMascara) {
|
|
95
|
+
NovoValorCampo += Mascara.charAt(i);
|
|
96
|
+
TamanhoMascara++;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
|
|
100
|
+
posicaoCampo++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return NovoValorCampo;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return valor;
|
|
107
|
+
}
|
|
6
108
|
}
|
|
7
109
|
}
|
|
8
110
|
InputFormatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
-
InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputFormatComponent, selector: "kb-input-format",
|
|
111
|
+
InputFormatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: InputFormatComponent, selector: "kb-input-format", inputs: { formato: "formato", keyEnter: "keyEnter" }, providers: [{
|
|
112
|
+
provide: NG_VALUE_ACCESSOR,
|
|
113
|
+
useExisting: InputFormatComponent,
|
|
114
|
+
multi: true
|
|
115
|
+
}], usesInheritance: true, ngImport: i0, template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n • {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] });
|
|
10
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: InputFormatComponent, decorators: [{
|
|
11
117
|
type: Component,
|
|
12
|
-
args: [{ selector: 'kb-input-format',
|
|
13
|
-
|
|
14
|
-
|
|
118
|
+
args: [{ selector: 'kb-input-format', providers: [{
|
|
119
|
+
provide: NG_VALUE_ACCESSOR,
|
|
120
|
+
useExisting: InputFormatComponent,
|
|
121
|
+
multi: true
|
|
122
|
+
}], template: "<!--\n<div [formGroup]=\"form\">\n-->\n<!--comando --inner-padding-end: utilizado pra remover padding desnecess\u00E1rios-->\n<div>\n <ion-item lines=\"none\" style=\"--background: inherited;--background-focused: transparent;--inner-padding-end: 0px;\"\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\n >\n <ion-label [position]=\"labelPosition\">{{ label }}</ion-label>\n <!-- formControlName={{formControlName}} -->\n <ion-input #inputFormat\n type=\"tel\" \n [placeholder]=\"placeholder\"\n maxlength=\"{{ max }}\" \n (keydown)=\"digitarFormatado($event)\" \n (keyup.enter)=\"onKeyEnter()\"\n (ionBlur)=\"onBlur()\"\n [value]=\"data\"\n (input)=\"writeValue(inputFormat.value)\"\n [disabled]=\"readonly\"></ion-input>\n \n </ion-item>\n \n <div class=\"validation-errors\" *ngIf=\"form\">\n <ng-container *ngFor=\"let validation of validation_messages\">\n <div class=\"error-message\"\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\n • {{ validation.message }}\n </div>\n </ng-container>\n </div>\n </div>", styles: ["@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-shake ion-label{color:red!important}.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid red!important}.has-focus{border:1px solid var(--ion-color-bluetool)}ion-label{margin-bottom:4px!important}ion-input{padding:4px;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:29px}.error-message{font-size:small;color:red;margin-left:15px}.item-inner{padding-right:0!important}\n"] }]
|
|
123
|
+
}], ctorParameters: function () { return []; }, propDecorators: { formato: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], keyEnter: [{
|
|
126
|
+
type: Input
|
|
127
|
+
}] } });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZm9ybWF0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2lucHV0LWZvcm1hdC9pbnB1dC1mb3JtYXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtZm9ybWF0L2lucHV0LWZvcm1hdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFZM0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQTJCMUQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQTFCRCxZQUFPLEdBQWtCLElBQUksQ0FBQztRQUM5QixhQUFRLEdBQW9CLElBQUksQ0FBQztRQUUxQyx1QkFBdUI7UUFDaEIsU0FBSSxHQUFpQixJQUFJLENBQUM7UUFDekIsYUFBUSxHQUFhLENBQUMsSUFBWSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxPQUFPLENBQUM7SUFtQnpCLENBQUM7SUFqQkQsVUFBVSxDQUFDLEtBQW1CO1FBQzVCLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElB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LE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOztpSEFsSFUsb0JBQW9CO3FHQUFwQixvQkFBb0IsZ0dBTnBCLENBQUM7WUFDVixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLGlEQ1pKLGswQ0ErQlE7MkZEakJLLG9CQUFvQjtrQkFWaEMsU0FBUzsrQkFDRSxpQkFBaUIsYUFHaEIsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQzswRUFJTyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZUlucHV0Q29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItaW5wdXQtZm9ybWF0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZvcm1hdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZvcm1hdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0Rm9ybWF0Q29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH1dXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgZm9ybWF0bzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGtleUVudGVyOiBGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xuICBcbiAgLy9jb250cm9sIHZhbHVlIGFjZXNzb3JcbiAgcHVibGljIGRhdGE6IHN0cmluZyB8IGFueSA9IG51bGw7XG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKGRhdGE6IHN0cmluZykgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY29uc29sZSA9IGNvbnNvbGU7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KTogdm9pZCB7XG4gICAgLy9jb25zb2xlLmxvZygnd3JpdGUgdmFsdWUnLCB2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5kYXRhID0gdmFsdWU7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHsgXG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkgeyB9XG5cbiAgZGlnaXRhckZvcm1hdGFkbyhldmVudDogYW55KSB7XG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xuICAgIGlmICgoZXZlbnQua2V5Q29kZSA+PSA0OCAmJiBldmVudC5rZXlDb2RlIDw9IDU3KVxuICAgICB8fCAoZXZlbnQua2V5Q29kZSA+PSA5NiAmJiBldmVudC5rZXlDb2RlIDw9IDEwNSlcbiAgICAgfHwgKGV2ZW50LmtleUNvZGUgPT0gOClcbiAgICAgfHwgKGV2ZW50LmtleUNvZGUgPT0gOSlcbiAgICAgfHwgKGV2ZW50LmtleUNvZGUgPT0gMzkpXG4gICAgIHx8IChldmVudC5rZXlDb2RlID09IDM3KSkge1xuXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuZm9ybUNvbnRyb2xOYW1lLCB0aGlzLmZvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKS52YWx1ZSk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgW3RoaXMuZm9ybUNvbnRyb2xOYW1lXTogdGhpcy5mb3JtYXRhQ2FtcG9WYWxvcih0aGlzLmZvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKT8udmFsdWUsIHRoaXMuZm9ybWF0byA/PyAnJywgZXZlbnQpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5mb3JtYXRhQ2FtcG9WYWxvcih0aGlzLmRhdGEgPz8gJycsIHRoaXMuZm9ybWF0byA/PyAnJywgZXZlbnQpO1xuICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmRhdGEpO1xuICAgICAgICB9XG4gICAgICB9LCAxMDApO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAgICAgICAgXG4gIH1cblxuICBvbktleUVudGVyKCkge1xuICAgIGlmICh0aGlzLmtleUVudGVyICE9IG51bGwpIHtcbiAgICAgIHRoaXMua2V5RW50ZXIoKTtcbiAgICB9XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk/Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmx1cikge1xuICAgICAgdGhpcy5ibHVyKHRoaXMuYmx1ckFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGZvcm1hdGFDYW1wb1ZhbG9yKHZhbG9yOiBzdHJpbmcsIE1hc2NhcmE6IHN0cmluZywgZXZlbnRvOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyh2YWxvcik7XG4gICAgaWYgKCF2YWxvcilcbiAgICAgIHJldHVybiBudWxsO1xuICAgIC8vY29uc29sZS5sb2coZXZlbnRvKTtcblxuICAgIC8vaWYgKCF0aGlzLmtleXByZXNzSW50ZWlybyhldmVudG8pKVxuICAgIC8vICByZXR1cm47XG5cbiAgICB2YXIgYm9sZWFub01hc2NhcmE7XG5cbiAgICB2YXIgRGlnaXRhdG8gPSBldmVudG8gIT0gbnVsbCA/IGV2ZW50by5rZXlDb2RlIDogMDtcbiAgICBsZXQgZXhwID0gL1xcLXxcXC58XFwvfFxcKHxcXCl8IC9nXG4gICAgbGV0IGNhbXBvU29OdW1lcm9zID0gdmFsb3IucmVwbGFjZShleHAsIFwiXCIpO1xuXG4gICAgdmFyIHBvc2ljYW9DYW1wbyA9IDA7XG4gICAgdmFyIE5vdm9WYWxvckNhbXBvID0gXCJcIjtcbiAgICB2YXIgVGFtYW5ob01hc2NhcmEgPSBjYW1wb1NvTnVtZXJvcy5sZW5ndGg7O1xuXG4gICAgaWYgKERpZ2l0YXRvICE9IDgpIHsgLy8gYmFja3NwYWNlIFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gVGFtYW5ob01hc2NhcmE7IGkrKykge1xuICAgICAgICBib2xlYW5vTWFzY2FyYSA9ICgoTWFzY2FyYS5jaGFyQXQoaSkgPT0gXCItXCIpIHx8IChNYXNjYXJhLmNoYXJBdChpKSA9PSBcIi5cIilcbiAgICAgICAgICB8fCAoTWFzY2FyYS5jaGFyQXQoaSkgPT0gXCIvXCIpKVxuICAgICAgICBib2xlYW5vTWFzY2FyYSA9IGJvbGVhbm9NYXNjYXJhIHx8ICgoTWFzY2FyYS5jaGFyQXQoaSkgPT0gXCIoXCIpXG4gICAgICAgICAgfHwgKE1hc2NhcmEuY2hhckF0KGkpID09IFwiKVwiKSB8fCAoTWFzY2FyYS5jaGFyQXQoaSkgPT0gXCIgXCIpKVxuICAgICAgICBpZiAoYm9sZWFub01hc2NhcmEpIHtcbiAgICAgICAgICBOb3ZvVmFsb3JDYW1wbyArPSBNYXNjYXJhLmNoYXJBdChpKTtcbiAgICAgICAgICBUYW1hbmhvTWFzY2FyYSsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIE5vdm9WYWxvckNhbXBvICs9IGNhbXBvU29OdW1lcm9zLmNoYXJBdChwb3NpY2FvQ2FtcG8pO1xuICAgICAgICAgIHBvc2ljYW9DYW1wbysrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gTm92b1ZhbG9yQ2FtcG87XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWxvcjtcbiAgICB9XG4gIH1cbn1cbiIsIjwhLS1cbjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4tLT5cbjwhLS1jb21hbmRvIC0taW5uZXItcGFkZGluZy1lbmQ6IHV0aWxpemFkbyBwcmEgcmVtb3ZlciBwYWRkaW5nIGRlc25lY2Vzc8Ohcmlvcy0tPlxuPGRpdj5cbiAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgc3R5bGU9XCItLWJhY2tncm91bmQ6IGluaGVyaXRlZDstLWJhY2tncm91bmQtZm9jdXNlZDogdHJhbnNwYXJlbnQ7LS1pbm5lci1wYWRkaW5nLWVuZDogMHB4O1wiXG4gICAgW25nQ2xhc3NdPVwiZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LmVycm9ycyAmJiAoZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LmRpcnR5IHx8IGZvcm0/LmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKSA/ICdlcnJvci1zaGFrZScgOiAnJyBcIlxuICAgID5cbiAgICAgIDxpb24tbGFiZWwgW3Bvc2l0aW9uXT1cImxhYmVsUG9zaXRpb25cIj57eyBsYWJlbCB9fTwvaW9uLWxhYmVsPlxuICAgICAgPCEtLSBmb3JtQ29udHJvbE5hbWU9e3tmb3JtQ29udHJvbE5hbWV9fSAtLT5cbiAgICAgIDxpb24taW5wdXQgI2lucHV0Rm9ybWF0XG4gICAgICB0eXBlPVwidGVsXCIgXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgbWF4bGVuZ3RoPVwie3sgbWF4IH19XCIgXG4gICAgICAoa2V5ZG93bik9XCJkaWdpdGFyRm9ybWF0YWRvKCRldmVudClcIiBcbiAgICAgIChrZXl1cC5lbnRlcik9XCJvbktleUVudGVyKClcIlxuICAgICAgKGlvbkJsdXIpPVwib25CbHVyKClcIlxuICAgICAgW3ZhbHVlXT1cImRhdGFcIlxuICAgICAgKGlucHV0KT1cIndyaXRlVmFsdWUoaW5wdXRGb3JtYXQudmFsdWUpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPjwvaW9uLWlucHV0PlxuICBcbiAgICA8L2lvbi1pdGVtPlxuICBcbiAgICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1lcnJvcnNcIiAqbmdJZj1cImZvcm1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtICYmIGZvcm0uZ2V0KGZvcm1Db250cm9sTmFtZSk/Lmhhc0Vycm9yKHZhbGlkYXRpb24udHlwZSkgJiYgKGZvcm0uZ2V0KGZvcm1Db250cm9sTmFtZSk/LmRpcnR5IHx8IGZvcm0uZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQpXCI+XG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+Il19
|