cilog-lib 1.2.6 → 1.2.7

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.
@@ -12,6 +12,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
12
12
  import { ConfirmationService } from 'primeng/api';
13
13
  import localeFr from '@angular/common/locales/fr';
14
14
  import { CilogEditorComponent } from './views/editor/editor.component';
15
+ import { CilogInputNumberComponent } from './views/cilog-input-number/cilog-input-number.component';
15
16
  import * as i0 from "@angular/core";
16
17
  registerLocaleData(localeFr);
17
18
  export class CilogLibModule {
@@ -20,14 +21,16 @@ CilogLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
20
21
  CilogLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.0", ngImport: i0, type: CilogLibModule, declarations: [CilogLibComponent,
21
22
  CilogMessageComponent,
22
23
  CilogTableComponent,
23
- CilogEditorComponent], imports: [CommonModule,
24
+ CilogEditorComponent,
25
+ CilogInputNumberComponent], imports: [CommonModule,
24
26
  PrimengModule,
25
27
  BrowserModule,
26
28
  BrowserAnimationsModule,
27
29
  FormsModule,
28
30
  ReactiveFormsModule], exports: [CilogMessageComponent,
29
31
  CilogTableComponent,
30
- CilogEditorComponent] });
32
+ CilogEditorComponent,
33
+ CilogInputNumberComponent] });
31
34
  CilogLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CilogLibModule, providers: [
32
35
  CilogMessageService,
33
36
  CilogTableService,
@@ -54,12 +57,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
54
57
  CilogLibComponent,
55
58
  CilogMessageComponent,
56
59
  CilogTableComponent,
57
- CilogEditorComponent
60
+ CilogEditorComponent,
61
+ CilogInputNumberComponent
58
62
  ],
59
63
  exports: [
60
64
  CilogMessageComponent,
61
65
  CilogTableComponent,
62
- CilogEditorComponent
66
+ CilogEditorComponent,
67
+ CilogInputNumberComponent
63
68
  ],
64
69
  providers: [
65
70
  CilogMessageService,
@@ -69,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
69
74
  ]
70
75
  }]
71
76
  }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL2NpbG9nLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFFdkUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7QUE2QjdCLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBakJuQixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixvQkFBb0IsYUFYcEIsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLFdBQVc7UUFDWCxtQkFBbUIsYUFTbkIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixvQkFBb0I7NEdBU2YsY0FBYyxhQVBaO1FBQ1AsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7S0FDNUMsWUF2QkcsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLFdBQVc7UUFDWCxtQkFBbUI7MkZBb0JkLGNBQWM7a0JBM0IxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO3FCQUM1QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBMT0NBTEVfSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2lsb2dNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2lsb2dMaWJDb21wb25lbnQgfSBmcm9tICcuL2NpbG9nLWxpYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDaWxvZ01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ2lsb2dUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2lsb2dUYWJsZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IGxvY2FsZUZyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2ZyJztcbmltcG9ydCB7IENpbG9nRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi92aWV3cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudCc7XHJcblxyXG5yZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRnIpO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgUHJpbWVuZ01vZHVsZSxcclxuICAgICAgICBCcm93c2VyTW9kdWxlLFxyXG4gICAgICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBDaWxvZ0xpYkNvbXBvbmVudCxcclxuICAgICAgICBDaWxvZ01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dUYWJsZUNvbXBvbmVudCxcclxuICAgICAgICBDaWxvZ0VkaXRvckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBDaWxvZ01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dUYWJsZUNvbXBvbmVudCxcclxuICAgICAgICBDaWxvZ0VkaXRvckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIENpbG9nTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgQ2lsb2dUYWJsZVNlcnZpY2UsXHJcbiAgICAgICAgQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICAgICB7IHByb3ZpZGU6IExPQ0FMRV9JRCwgdXNlVmFsdWU6ICdmci1GUicgfSxcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENpbG9nTGliTW9kdWxlIHsgfVxyXG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL2NpbG9nLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7QUFFcEcsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7QUErQjdCLE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBbkJuQixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIseUJBQXlCLGFBWnpCLFlBQVk7UUFDWixhQUFhO1FBQ2IsYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixXQUFXO1FBQ1gsbUJBQW1CLGFBVW5CLHFCQUFxQjtRQUNyQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLHlCQUF5Qjs0R0FTcEIsY0FBYyxhQVBaO1FBQ1AsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUU7S0FDNUMsWUF6QkcsWUFBWTtRQUNaLGFBQWE7UUFDYixhQUFhO1FBQ2IsdUJBQXVCO1FBQ3ZCLFdBQVc7UUFDWCxtQkFBbUI7MkZBc0JkLGNBQWM7a0JBN0IxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUN0QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix5QkFBeUI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQix5QkFBeUI7cUJBQzVCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtxQkFDNUM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENpbG9nTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENpbG9nTGliQ29tcG9uZW50IH0gZnJvbSAnLi9jaWxvZy1saWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQcmltZW5nTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuaW1wb3J0IHsgQ2lsb2dNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENpbG9nVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENpbG9nVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCBsb2NhbGVGciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9mcic7XG5pbXBvcnQgeyBDaWxvZ0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvZWRpdG9yL2VkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2lsb2dJbnB1dE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQnO1xyXG5cclxucmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUZyKTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICAgICAgQnJvd3Nlck1vZHVsZSxcclxuICAgICAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgQ2lsb2dMaWJDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dNZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgICAgIENpbG9nVGFibGVDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dFZGl0b3JDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dJbnB1dE51bWJlckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBDaWxvZ01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgQ2lsb2dUYWJsZUNvbXBvbmVudCxcclxuICAgICAgICBDaWxvZ0VkaXRvckNvbXBvbmVudCxcclxuICAgICAgICBDaWxvZ0lucHV0TnVtYmVyQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQ2lsb2dNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBDaWxvZ1RhYmxlU2VydmljZSxcclxuICAgICAgICBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VWYWx1ZTogJ2ZyLUZSJyB9LFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2lsb2dMaWJNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,179 @@
1
+ import { Component, EventEmitter, forwardRef, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "primeng/inputtext";
6
+ export class CilogInputNumberComponent {
7
+ constructor() {
8
+ this.onInput = new EventEmitter();
9
+ this.onChange = new EventEmitter();
10
+ this.onFocus = new EventEmitter();
11
+ this.onBlur = new EventEmitter();
12
+ this.valueStr = '';
13
+ this.specialKeys = ['Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight'];
14
+ this.onChangeE = (rating) => { };
15
+ this.onTouchedE = () => { };
16
+ }
17
+ ngOnInit() {
18
+ this.regex = new RegExp(`^-?\\d{1,3}(?:\\d{3})*(\\.\\d{0,${this.maxDecimals || Infinity}})?$|^-?\\d{1,3}(?:\\d{3})*\\,\\d{0,${this.maxDecimals || Infinity}}$`);
19
+ }
20
+ onKeyDownEvent(event) {
21
+ if (this.specialKeys.indexOf(event.key) !== -1 || event.key == 'Enter') {
22
+ return;
23
+ }
24
+ let current = this.cilogInputNumber.nativeElement.value;
25
+ const positionStart = this.cilogInputNumber.nativeElement.selectionStart;
26
+ const positionEnd = this.cilogInputNumber.nativeElement.selectionEnd;
27
+ let next = current;
28
+ if (event.key === '.') {
29
+ let positionStartPoint = this.cilogInputNumber.nativeElement.selectionStart;
30
+ next = [current.slice(0, positionStart), ',', current.slice(positionStart)].join('').replace(/\s/g, '');
31
+ if (String(next).match(this.regex)) {
32
+ this.cilogInputNumber.nativeElement.value = (+next.replace(',', '.')).toLocaleString('fr-FR');
33
+ this.onInputEvent();
34
+ }
35
+ else {
36
+ if (current.slice(positionStart)[0] == ',') {
37
+ this.cilogInputNumber.nativeElement.selectionStart = positionStartPoint + 1;
38
+ this.cilogInputNumber.nativeElement.selectionEnd = positionStartPoint + 1;
39
+ }
40
+ }
41
+ event.preventDefault();
42
+ }
43
+ else if (event.key === 'Backspace') {
44
+ if (this.cilogInputNumber.nativeElement.selectionStart != this.cilogInputNumber.nativeElement.selectionEnd) {
45
+ next = [current.slice(0, positionStart), current.slice(positionEnd)].join('').replace(/\s/g, '');
46
+ }
47
+ else {
48
+ next = [current.slice(0, positionStart - 1), current.slice(positionEnd)].join('').replace(/\s/g, '');
49
+ }
50
+ this.checkValue(next);
51
+ }
52
+ else {
53
+ next = [current.slice(0, positionStart), event.key, current.slice(positionStart)].join('').replace(/\s/g, '');
54
+ this.checkValue(next);
55
+ if (event.key === ',' && current.slice(positionStart)[0] == ',') {
56
+ this.cilogInputNumber.nativeElement.selectionStart += 1;
57
+ }
58
+ }
59
+ }
60
+ checkValue(next) {
61
+ if (!String(next).match(this.regex)) {
62
+ if (next != '') {
63
+ event.preventDefault();
64
+ }
65
+ }
66
+ else {
67
+ let number = +(next.replace(',', '.'));
68
+ if (this.min != null && number < this.min) {
69
+ event.preventDefault();
70
+ }
71
+ else if (this.max != null && number > this.max) {
72
+ event.preventDefault();
73
+ }
74
+ }
75
+ }
76
+ onInputEvent() {
77
+ let positionStart = this.cilogInputNumber.nativeElement.selectionStart;
78
+ if (this.cilogInputNumber.nativeElement.value.replace(/\s/g, '') == '' || this.cilogInputNumber.nativeElement.value.replace(/\s/g, '') == '-') {
79
+ this.writeValue(null);
80
+ }
81
+ else {
82
+ this.writeValue(+(this.cilogInputNumber.nativeElement.value.replace(',', '.').replaceAll(/\s/g, '')));
83
+ }
84
+ this.onInput.emit(this.value);
85
+ setTimeout(() => {
86
+ this.cilogInputNumber.nativeElement.selectionStart = positionStart;
87
+ this.cilogInputNumber.nativeElement.selectionEnd = positionStart;
88
+ });
89
+ }
90
+ onChangeEvent() {
91
+ this.onChange.emit(this.value);
92
+ }
93
+ onBlurEvent(event) {
94
+ this.onBlur.emit(this.value);
95
+ }
96
+ onFocusEvent(event) {
97
+ this.onFocus.emit(this.value);
98
+ }
99
+ writeValue(value) {
100
+ this.value = value;
101
+ if (this.value == null) {
102
+ this.valueStr = '';
103
+ }
104
+ else {
105
+ //if (this.maxDecimals != null && this.maxDecimals > -1) {
106
+ // if (this.value.toString().split('.').length == 2 && this.maxDecimals <= this.value.toString().split('.')[1].length) {
107
+ // this.valueStr = this.value.toFixed(this.maxDecimals);
108
+ // this.valueStr = this.valueStr;
109
+ // } else {
110
+ // this.valueStr = this.value.toString();
111
+ // }
112
+ //} else {
113
+ // this.valueStr = this.value.toString();
114
+ //}
115
+ //this.valueStr = this.valueStr.replace('.', ',');
116
+ if (this.maxDecimals != null) {
117
+ this.valueStr = this.value.toLocaleString('fr-FR', { maximumFractionDigits: this.maxDecimals });
118
+ }
119
+ else {
120
+ this.valueStr = this.value.toLocaleString('fr-FR');
121
+ }
122
+ }
123
+ }
124
+ registerOnChange(fn) {
125
+ this.onChangeE = fn;
126
+ }
127
+ registerOnTouched(fn) {
128
+ this.onTouchedE = fn;
129
+ }
130
+ }
131
+ CilogInputNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CilogInputNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
132
+ CilogInputNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: CilogInputNumberComponent, selector: "cilog-input-number", inputs: { min: "min", max: "max", maxDecimals: "maxDecimals", prefixe: "prefixe", suffixe: "suffixe" }, outputs: { onInput: "onInput", onChange: "onChange", onFocus: "onFocus", onBlur: "onBlur" }, host: { listeners: { "keydown": "onKeyDownEvent($event)", "input": "onInputEvent($event)", "change": "onChangeEvent($event)" } }, providers: [
133
+ {
134
+ provide: NG_VALUE_ACCESSOR,
135
+ useExisting: forwardRef(() => CilogInputNumberComponent),
136
+ multi: true
137
+ }
138
+ ], viewQueries: [{ propertyName: "cilogInputNumber", first: true, predicate: ["cilogInputNumber"], descendants: true }], ngImport: i0, template: "<div class=\"input-group w-full\">\r\n\r\n <span class=\"input-group-addon prefixe\"\r\n *ngIf=\"prefixe != null\">\r\n {{ prefixe }}\r\n </span>\r\n\r\n <input #cilogInputNumber\r\n pInputText\r\n type=\"text\"\r\n [value]=\"valueStr\"\r\n (focus)=\"onFocusEvent($event)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n class=\"w-full z-1\"\r\n [ngClass]=\"suffixe != null && prefixe != null ? 'border-noround' : prefixe != null ? 'border-noround-left' : suffixe != null ? 'border-noround-right' : null\" />\r\n\r\n <span class=\"input-group-addon suffixe\"\r\n *ngIf=\"suffixe != null\">\r\n {{ suffixe }}\r\n </span>\r\n\r\n</div>\r\n", styles: [":host ::ng-deep .input-group{display:flex}:host ::ng-deep .input-group-addon{background-color:#fff;border:1px solid #ccc;padding:9px 12px;max-width:5rem;overflow:hidden;font-weight:700}:host ::ng-deep .prefixe{border-radius:4px 0 0 4px;border-right:none}:host ::ng-deep .suffixe{border-radius:0 4px 4px 0;border-left:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]" }] });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CilogInputNumberComponent, decorators: [{
140
+ type: Component,
141
+ args: [{ selector: 'cilog-input-number', providers: [
142
+ {
143
+ provide: NG_VALUE_ACCESSOR,
144
+ useExisting: forwardRef(() => CilogInputNumberComponent),
145
+ multi: true
146
+ }
147
+ ], template: "<div class=\"input-group w-full\">\r\n\r\n <span class=\"input-group-addon prefixe\"\r\n *ngIf=\"prefixe != null\">\r\n {{ prefixe }}\r\n </span>\r\n\r\n <input #cilogInputNumber\r\n pInputText\r\n type=\"text\"\r\n [value]=\"valueStr\"\r\n (focus)=\"onFocusEvent($event)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n class=\"w-full z-1\"\r\n [ngClass]=\"suffixe != null && prefixe != null ? 'border-noround' : prefixe != null ? 'border-noround-left' : suffixe != null ? 'border-noround-right' : null\" />\r\n\r\n <span class=\"input-group-addon suffixe\"\r\n *ngIf=\"suffixe != null\">\r\n {{ suffixe }}\r\n </span>\r\n\r\n</div>\r\n", styles: [":host ::ng-deep .input-group{display:flex}:host ::ng-deep .input-group-addon{background-color:#fff;border:1px solid #ccc;padding:9px 12px;max-width:5rem;overflow:hidden;font-weight:700}:host ::ng-deep .prefixe{border-radius:4px 0 0 4px;border-right:none}:host ::ng-deep .suffixe{border-radius:0 4px 4px 0;border-left:none}\n"] }]
148
+ }], ctorParameters: function () { return []; }, propDecorators: { min: [{
149
+ type: Input
150
+ }], max: [{
151
+ type: Input
152
+ }], maxDecimals: [{
153
+ type: Input
154
+ }], prefixe: [{
155
+ type: Input
156
+ }], suffixe: [{
157
+ type: Input
158
+ }], onInput: [{
159
+ type: Output
160
+ }], onChange: [{
161
+ type: Output
162
+ }], onFocus: [{
163
+ type: Output
164
+ }], onBlur: [{
165
+ type: Output
166
+ }], cilogInputNumber: [{
167
+ type: ViewChild,
168
+ args: ['cilogInputNumber']
169
+ }], onKeyDownEvent: [{
170
+ type: HostListener,
171
+ args: ['keydown', ['$event']]
172
+ }], onInputEvent: [{
173
+ type: HostListener,
174
+ args: ['input', ['$event']]
175
+ }], onChangeEvent: [{
176
+ type: HostListener,
177
+ args: ['change', ['$event']]
178
+ }] } });
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NpbG9nLWxpYi9zcmMvbGliL3ZpZXdzL2NpbG9nLWlucHV0LW51bWJlci9jaWxvZy1pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvY2lsb2ctaW5wdXQtbnVtYmVyL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWN6RSxNQUFNLE9BQU8seUJBQXlCO0lBc0JsQztRQVpVLFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzRCxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUQsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNELFdBQU0sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVwRSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBS2QsZ0JBQVcsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUE0RnZGLGNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLGVBQVUsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUE1RlAsQ0FBQztJQUVqQixRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxt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QjtrQkFackMsU0FBUzsrQkFDSSxvQkFBb0IsYUFHbkI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzBFQU1RLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFJd0IsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFZN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF5RG5DLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0JqQyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NpbG9nLWlucHV0LW51bWJlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NpbG9nLWlucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2lsb2ctaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2lsb2dJbnB1dE51bWJlckNvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaWxvZ0lucHV0TnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICB2YWx1ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgbWluOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBtYXg6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtYXhEZWNpbWFsczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHByZWZpeGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWZmaXhlOiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgb25JbnB1dDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIHZhbHVlU3RyOiBzdHJpbmcgPSAnJztcblxuICAgIEBWaWV3Q2hpbGQoJ2NpbG9nSW5wdXROdW1iZXInKSBjaWxvZ0lucHV0TnVtYmVyOiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSByZWdleDogUmVnRXhwO1xuICAgIHByaXZhdGUgc3BlY2lhbEtleXM6IEFycmF5PHN0cmluZz4gPSBbJ1RhYicsICdFbmQnLCAnSG9tZScsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCddO1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucmVnZXggPSBuZXcgUmVnRXhwKGBeLT9cXFxcZHsxLDN9KD86XFxcXGR7M30pKihcXFxcLlxcXFxkezAsJHt0aGlzLm1heERlY2ltYWxzIHx8IEluZmluaXR5fX0pPyR8Xi0/XFxcXGR7MSwzfSg/OlxcXFxkezN9KSpcXFxcLFxcXFxkezAsJHt0aGlzLm1heERlY2ltYWxzIHx8IEluZmluaXR5fX0kYCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlEb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuc3BlY2lhbEtleXMuaW5kZXhPZihldmVudC5rZXkpICE9PSAtMSB8fCBldmVudC5rZXkgPT0gJ0VudGVyJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGN1cnJlbnQ6IHN0cmluZyA9IHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RhcnQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgcG9zaXRpb25FbmQgPSB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQ7XG5cbiAgICAgICAgbGV0IG5leHQ6IHN0cmluZyA9IGN1cnJlbnQ7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICcuJykge1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uU3RhcnRQb2ludDogbnVtYmVyID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICBuZXh0ID0gW2N1cnJlbnQuc2xpY2UoMCwgcG9zaXRpb25TdGFydCksICcsJywgY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0KV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcbiAgICAgICAgICAgIGlmIChTdHJpbmcobmV4dCkubWF0Y2godGhpcy5yZWdleCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9ICgrbmV4dC5yZXBsYWNlKCcsJywgJy4nKSkudG9Mb2NhbGVTdHJpbmcoJ2ZyLUZSJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uSW5wdXRFdmVudCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LnNsaWNlKHBvc2l0aW9uU3RhcnQpWzBdID09ICcsJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb25TdGFydFBvaW50ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID0gcG9zaXRpb25TdGFydFBvaW50ICsgMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgIT0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IFtjdXJyZW50LnNsaWNlKDAsIHBvc2l0aW9uU3RhcnQpLCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gW2N1cnJlbnQuc2xpY2UoMCwgcG9zaXRpb25TdGFydCAtIDEpLCBjdXJyZW50LnNsaWNlKHBvc2l0aW9uRW5kKV0uam9pbignJykucmVwbGFjZSgvXFxzL2csICcnKTtcclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbHVlKG5leHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IFtjdXJyZW50LnNsaWNlKDAsIHBvc2l0aW9uU3RhcnQpLCBldmVudC5rZXksIGN1cnJlbnQuc2xpY2UocG9zaXRpb25TdGFydCldLmpvaW4oJycpLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVmFsdWUobmV4dCk7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnLCcgJiYgY3VycmVudC5zbGljZShwb3NpdGlvblN0YXJ0KVswXSA9PSAnLCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNpbG9nSW5wdXROdW1iZXIubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCArPSAxO1xyXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja1ZhbHVlKG5leHQ6IHN0cmluZykge1xuICAgICAgICBpZiAoIVN0cmluZyhuZXh0KS5tYXRjaCh0aGlzLnJlZ2V4KSkge1xuICAgICAgICAgICAgaWYgKG5leHQgIT0gJycpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgbnVtYmVyOiBudW1iZXIgPSArKG5leHQucmVwbGFjZSgnLCcsICcuJykpO1xuICAgICAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgbnVtYmVyIDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPSBudWxsICYmIG51bWJlciA+IHRoaXMubWF4KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXG4gICAgb25JbnB1dEV2ZW50KCkge1xyXG4gICAgICAgIGxldCBwb3NpdGlvblN0YXJ0ID0gdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgaWYgKHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykgPT0gJycgfHwgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQudmFsdWUucmVwbGFjZSgvXFxzL2csICcnKSA9PSAnLScpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSgrKHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnZhbHVlLnJlcGxhY2UoJywnLCAnLicpLnJlcGxhY2VBbGwoL1xccy9nLCAnJykpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vbklucHV0LmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2lsb2dJbnB1dE51bWJlci5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gcG9zaXRpb25TdGFydDtcclxuICAgICAgICAgICAgdGhpcy5jaWxvZ0lucHV0TnVtYmVyLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uRW5kID0gcG9zaXRpb25TdGFydDtcclxuICAgICAgICB9KTtcclxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXG4gICAgb25DaGFuZ2VFdmVudCgpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XG5cbiAgICBvbkJsdXJFdmVudChldmVudCkge1xyXG4gICAgICAgIHRoaXMub25CbHVyLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XG5cbiAgICBvbkZvY3VzRXZlbnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLm9uRm9jdXMuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cblxyXG4gICAgb25DaGFuZ2VFID0gKHJhdGluZzogbnVtYmVyKSA9PiB7IH07XHJcblxyXG4gICAgb25Ub3VjaGVkRSA9ICgpID0+IHsgfTtcblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9ICcnO1xyXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvL2lmICh0aGlzLm1heERlY2ltYWxzICE9IG51bGwgJiYgdGhpcy5tYXhEZWNpbWFscyA+IC0xKSB7XG4gICAgICAgICAgICAvLyAgICBpZiAodGhpcy52YWx1ZS50b1N0cmluZygpLnNwbGl0KCcuJykubGVuZ3RoID09IDIgJiYgdGhpcy5tYXhEZWNpbWFscyA8PSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJy4nKVsxXS5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b0ZpeGVkKHRoaXMubWF4RGVjaW1hbHMpO1xuICAgICAgICAgICAgLy8gICAgICAgIHRoaXMudmFsdWVTdHIgPSB0aGlzLnZhbHVlU3RyO1xuICAgICAgICAgICAgLy8gICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAvLyAgICB9XG4gICAgICAgICAgICAvL30gZWxzZSB7XG4gICAgICAgICAgICAvLyAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAvL31cclxuICAgICAgICAgICAgLy90aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZVN0ci5yZXBsYWNlKCcuJywgJywnKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4RGVjaW1hbHMgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZVN0ciA9IHRoaXMudmFsdWUudG9Mb2NhbGVTdHJpbmcoJ2ZyLUZSJywgeyBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IHRoaXMubWF4RGVjaW1hbHMgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlU3RyID0gdGhpcy52YWx1ZS50b0xvY2FsZVN0cmluZygnZnItRlInKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZUUgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkRSA9IGZuO1xyXG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctZnVsbFwiPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gcHJlZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInByZWZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHByZWZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8aW5wdXQgI2NpbG9nSW5wdXROdW1iZXJcclxuICAgICAgICAgICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVN0clwiXHJcbiAgICAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAoYmx1cik9XCJvbkJsdXJFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICBjbGFzcz1cInctZnVsbCB6LTFcIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInN1ZmZpeGUgIT0gbnVsbCAmJiBwcmVmaXhlICE9IG51bGwgPyAnYm9yZGVyLW5vcm91bmQnIDogcHJlZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLWxlZnQnIDogc3VmZml4ZSAhPSBudWxsID8gJ2JvcmRlci1ub3JvdW5kLXJpZ2h0JyA6IG51bGxcIiAvPlxyXG5cclxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYWRkb24gc3VmZml4ZVwiXHJcbiAgICAgICAgICAqbmdJZj1cInN1ZmZpeGUgIT0gbnVsbFwiPlxyXG4gICAgICAgIHt7IHN1ZmZpeGUgfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=