ngx-vector-components 2.12.0 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/assets/styles/_primeng-custom-theme.scss +39 -21
  3. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +2 -2
  4. package/esm2020/lib/components/fields/currency-field/currency-field.component.mjs +11 -3
  5. package/esm2020/lib/components/fields/filters/filters.component.mjs +1 -1
  6. package/esm2020/lib/components/fields/radio-button-field/radio-button-field.component.mjs +6 -3
  7. package/esm2020/lib/components/fields/range-value/range-value.component.mjs +24 -8
  8. package/esm2020/lib/components/fields/text-field/text-field.component.mjs +2 -2
  9. package/esm2020/lib/components/menu/menu.component.mjs +11 -15
  10. package/esm2020/lib/guards/token-is-present.guard.mjs +15 -6
  11. package/esm2020/lib/models/ipInfo.mjs +2 -0
  12. package/esm2020/lib/services/auth.service.mjs +1 -1
  13. package/esm2020/lib/services/geolocation.service.mjs +23 -0
  14. package/esm2020/lib/services/index.mjs +2 -1
  15. package/esm2020/lib/utils/mask.util.mjs +17 -3
  16. package/fesm2015/ngx-vector-components.mjs +104 -39
  17. package/fesm2015/ngx-vector-components.mjs.map +1 -1
  18. package/fesm2020/ngx-vector-components.mjs +104 -39
  19. package/fesm2020/ngx-vector-components.mjs.map +1 -1
  20. package/lib/components/fields/currency-field/currency-field.component.d.ts +4 -1
  21. package/lib/components/fields/radio-button-field/radio-button-field.component.d.ts +2 -1
  22. package/lib/components/fields/range-value/range-value.component.d.ts +3 -2
  23. package/lib/components/menu/menu.component.d.ts +0 -1
  24. package/lib/guards/token-is-present.guard.d.ts +5 -4
  25. package/lib/models/ipInfo.d.ts +6 -0
  26. package/lib/services/auth.service.d.ts +1 -1
  27. package/lib/services/geolocation.service.d.ts +13 -0
  28. package/lib/services/index.d.ts +1 -0
  29. package/lib/utils/mask.util.d.ts +1 -0
  30. package/package.json +7 -6
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class GeolocationService {
6
+ constructor(http, backend) {
7
+ this.http = http;
8
+ this.backend = backend;
9
+ this.customHttpClient = new HttpClient(backend);
10
+ }
11
+ getGeoLoc() {
12
+ return this.customHttpClient.get("http://api.ipify.org/?format=json");
13
+ }
14
+ createUserLoginInfo(userInfo) {
15
+ return this.http.post(`Telemetry/CreateUserLogInfo`, userInfo);
16
+ }
17
+ }
18
+ GeolocationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, deps: [{ token: i1.HttpClient }, { token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ GeolocationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GeolocationService, decorators: [{
21
+ type: Injectable
22
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i1.HttpBackend }]; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2dlb2xvY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUcvRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQW9CLElBQWdCLEVBQVUsT0FBb0I7UUFBOUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFFOUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFSSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFTLG1DQUFtQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFFBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRSxDQUFDOzsrR0FmVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpcEluZm8gfSBmcm9tICcuLi9tb2RlbHMvaXBJbmZvJztcclxuaW1wb3J0IHsgSHR0cEJhY2tlbmQsIEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHZW9sb2NhdGlvblNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGN1c3RvbUh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBiYWNrZW5kOiBIdHRwQmFja2VuZCxcclxuICAgICkgeyBcclxuICAgICAgdGhpcy5jdXN0b21IdHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoYmFja2VuZCk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHZW9Mb2MoKXtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUh0dHBDbGllbnQuZ2V0PGlwSW5mbz4oXCJodHRwOi8vYXBpLmlwaWZ5Lm9yZy8/Zm9ybWF0PWpzb25cIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVXNlckxvZ2luSW5mbyh1c2VySW5mbzogYW55KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgVGVsZW1ldHJ5L0NyZWF0ZVVzZXJMb2dJbmZvYCwgdXNlckluZm8pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -3,9 +3,10 @@ export * from './base-dropdown';
3
3
  export * from './crud-base.service';
4
4
  export * from './enum.service';
5
5
  export * from './error-message.service';
6
+ export * from './geolocation.service';
6
7
  export * from './loading.service';
7
8
  export * from './menu.service';
8
9
  export * from './modal.service';
9
10
  export * from './profile.service';
10
11
  export * from './storage.service';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZHJvcGRvd24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2NydWQtYmFzZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Byb2ZpbGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1kcm9wZG93bic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3J1ZC1iYXNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItbWVzc2FnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW9sb2NhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21lbnUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcHJvZmlsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xyXG4iXX0=
@@ -1,7 +1,9 @@
1
1
  const CPF_PATTERN = '###.###.###-##';
2
2
  const CNPJ_PATTERN = '##.###.###/####-##';
3
3
  const BOLETO_PATTERN = '#####.##### #####.###### #####.###### # ##############';
4
- const POSTALCODE_TEXT_FIELD_PATTERN = '#####-###';
4
+ const POSTALCODE_PATTERN = '#####-###';
5
+ const CELLPHONE_PATTERN = '(##) #####-####';
6
+ const PHONE_PATTERN = '(##) ####-####';
5
7
  export class MaskUtil {
6
8
  static formatDocument(stringValue) {
7
9
  if (!stringValue) {
@@ -16,11 +18,23 @@ export class MaskUtil {
16
18
  return stringValue;
17
19
  }
18
20
  static formatPostalCode(stringValue) {
19
- return this.doMaskString(stringValue, POSTALCODE_TEXT_FIELD_PATTERN);
21
+ return this.doMaskString(stringValue, POSTALCODE_PATTERN);
20
22
  }
21
23
  static formatBoleto(stringValue) {
22
24
  return this.doMaskString(stringValue, BOLETO_PATTERN);
23
25
  }
26
+ static formatPhone(stringValue) {
27
+ if (!stringValue) {
28
+ return '';
29
+ }
30
+ if (stringValue.length === 11) {
31
+ return this.doMaskString(stringValue, CELLPHONE_PATTERN);
32
+ }
33
+ else if (stringValue.length === 10) {
34
+ return this.doMaskString(stringValue, PHONE_PATTERN);
35
+ }
36
+ return stringValue;
37
+ }
24
38
  static doMaskString(str, pattern) {
25
39
  let i = 0;
26
40
  return pattern.replace(/#/g, () => str[i++]);
@@ -32,4 +46,4 @@ MaskUtil.BOLETO_TEXT_FIELD_PATTERN = '99999.99999 99999.999999 99999.999999 9 99
32
46
  MaskUtil.CELLPHONE_TEXT_FIELD_PATTERN = '(99) 99999-9999';
33
47
  MaskUtil.PHONE_TEXT_FIELD_PATTERN = '(99) 9999-9999';
34
48
  MaskUtil.POSTALCODE_TEXT_FIELD_PATTERN = '99999-999';
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvbWFzay51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBQ3JDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sY0FBYyxHQUFHLHdEQUF3RCxDQUFDO0FBQ2hGLE1BQU0sNkJBQTZCLEdBQUcsV0FBVyxDQUFDO0FBRWxELE1BQU0sT0FBTyxRQUFRO0lBUVosTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFtQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDckQ7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQW1CO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQVcsRUFBRSxPQUFlO1FBQ3RELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOztBQWxDYSwrQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxQyxnQ0FBdUIsR0FBRyxvQkFBb0IsQ0FBQztBQUMvQyxrQ0FBeUIsR0FBRyx3REFBd0QsQ0FBQztBQUNyRixxQ0FBNEIsR0FBRyxpQkFBaUIsQ0FBQztBQUNqRCxpQ0FBd0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUM1QyxzQ0FBNkIsR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDUEZfUEFUVEVSTiA9ICcjIyMuIyMjLiMjIy0jIyc7XHJcbmNvbnN0IENOUEpfUEFUVEVSTiA9ICcjIy4jIyMuIyMjLyMjIyMtIyMnO1xyXG5jb25zdCBCT0xFVE9fUEFUVEVSTiA9ICcjIyMjIy4jIyMjIyAjIyMjIy4jIyMjIyMgIyMjIyMuIyMjIyMjICMgIyMjIyMjIyMjIyMjIyMnO1xyXG5jb25zdCBQT1NUQUxDT0RFX1RFWFRfRklFTERfUEFUVEVSTiA9ICcjIyMjIy0jIyMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tVdGlsIHtcclxuICBwdWJsaWMgc3RhdGljIENQRl9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTk5Ljk5OS45OTktOTknO1xyXG4gIHB1YmxpYyBzdGF0aWMgQ05QSl9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTkuOTk5Ljk5OS85OTk5LTk5JztcclxuICBwdWJsaWMgc3RhdGljIEJPTEVUT19URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTk5OTkuOTk5OTkgOTk5OTkuOTk5OTk5IDk5OTk5Ljk5OTk5OSA5IDk5OTk5OTk5OTk5OTk5JztcclxuICBwdWJsaWMgc3RhdGljIENFTExQSE9ORV9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnKDk5KSA5OTk5OS05OTk5JztcclxuICBwdWJsaWMgc3RhdGljIFBIT05FX1RFWFRfRklFTERfUEFUVEVSTiA9ICcoOTkpIDk5OTktOTk5OSc7XHJcbiAgcHVibGljIHN0YXRpYyBQT1NUQUxDT0RFX1RFWFRfRklFTERfUEFUVEVSTiA9ICc5OTk5OS05OTknO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdERvY3VtZW50KHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RyaW5nVmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQ1BGX1BBVFRFUk4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDE0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQ05QSl9QQVRURVJOKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RyaW5nVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdFBvc3RhbENvZGUoc3RyaW5nVmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9NYXNrU3RyaW5nKHN0cmluZ1ZhbHVlLCBQT1NUQUxDT0RFX1RFWFRfRklFTERfUEFUVEVSTik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdEJvbGV0byhzdHJpbmdWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kb01hc2tTdHJpbmcoc3RyaW5nVmFsdWUsIEJPTEVUT19QQVRURVJOKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGRvTWFza1N0cmluZyhzdHI6IHN0cmluZywgcGF0dGVybjogc3RyaW5nKSB7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICByZXR1cm4gcGF0dGVybi5yZXBsYWNlKC8jL2csICgpID0+IHN0cltpKytdKTtcclxuICB9XHJcbn1cclxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvbWFzay51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDO0FBQ3JDLE1BQU0sWUFBWSxHQUFHLG9CQUFvQixDQUFDO0FBQzFDLE1BQU0sY0FBYyxHQUFHLHdEQUF3RCxDQUFDO0FBQ2hGLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7QUFDNUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7QUFFdkMsTUFBTSxPQUFPLFFBQVE7SUFRWixNQUFNLENBQUMsY0FBYyxDQUFDLFdBQW1CO1FBQzlDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNyRDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBbUI7UUFDaEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQW1CO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBbUI7UUFDM0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZTtRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7QUFoRGEsK0JBQXNCLEdBQUcsZ0JBQWdCLENBQUM7QUFDMUMsZ0NBQXVCLEdBQUcsb0JBQW9CLENBQUM7QUFDL0Msa0NBQXlCLEdBQUcsd0RBQXdELENBQUM7QUFDckYscUNBQTRCLEdBQUcsaUJBQWlCLENBQUM7QUFDakQsaUNBQXdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDNUMsc0NBQTZCLEdBQUcsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQ1BGX1BBVFRFUk4gPSAnIyMjLiMjIy4jIyMtIyMnO1xyXG5jb25zdCBDTlBKX1BBVFRFUk4gPSAnIyMuIyMjLiMjIy8jIyMjLSMjJztcclxuY29uc3QgQk9MRVRPX1BBVFRFUk4gPSAnIyMjIyMuIyMjIyMgIyMjIyMuIyMjIyMjICMjIyMjLiMjIyMjIyAjICMjIyMjIyMjIyMjIyMjJztcclxuY29uc3QgUE9TVEFMQ09ERV9QQVRURVJOID0gJyMjIyMjLSMjIyc7XHJcbmNvbnN0IENFTExQSE9ORV9QQVRURVJOID0gJygjIykgIyMjIyMtIyMjIyc7XHJcbmNvbnN0IFBIT05FX1BBVFRFUk4gPSAnKCMjKSAjIyMjLSMjIyMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tVdGlsIHtcclxuICBwdWJsaWMgc3RhdGljIENQRl9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTk5Ljk5OS45OTktOTknO1xyXG4gIHB1YmxpYyBzdGF0aWMgQ05QSl9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTkuOTk5Ljk5OS85OTk5LTk5JztcclxuICBwdWJsaWMgc3RhdGljIEJPTEVUT19URVhUX0ZJRUxEX1BBVFRFUk4gPSAnOTk5OTkuOTk5OTkgOTk5OTkuOTk5OTk5IDk5OTk5Ljk5OTk5OSA5IDk5OTk5OTk5OTk5OTk5JztcclxuICBwdWJsaWMgc3RhdGljIENFTExQSE9ORV9URVhUX0ZJRUxEX1BBVFRFUk4gPSAnKDk5KSA5OTk5OS05OTk5JztcclxuICBwdWJsaWMgc3RhdGljIFBIT05FX1RFWFRfRklFTERfUEFUVEVSTiA9ICcoOTkpIDk5OTktOTk5OSc7XHJcbiAgcHVibGljIHN0YXRpYyBQT1NUQUxDT0RFX1RFWFRfRklFTERfUEFUVEVSTiA9ICc5OTk5OS05OTknO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdERvY3VtZW50KHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RyaW5nVmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQ1BGX1BBVFRFUk4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDE0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQ05QSl9QQVRURVJOKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RyaW5nVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdFBvc3RhbENvZGUoc3RyaW5nVmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9NYXNrU3RyaW5nKHN0cmluZ1ZhbHVlLCBQT1NUQUxDT0RFX1BBVFRFUk4pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBmb3JtYXRCb2xldG8oc3RyaW5nVmFsdWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9NYXNrU3RyaW5nKHN0cmluZ1ZhbHVlLCBCT0xFVE9fUEFUVEVSTik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGZvcm1hdFBob25lKHN0cmluZ1ZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RyaW5nVmFsdWUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDExKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgQ0VMTFBIT05FX1BBVFRFUk4pO1xyXG4gICAgfSBlbHNlIGlmIChzdHJpbmdWYWx1ZS5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRvTWFza1N0cmluZyhzdHJpbmdWYWx1ZSwgUEhPTkVfUEFUVEVSTik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0cmluZ1ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZG9NYXNrU3RyaW5nKHN0cjogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpIHtcclxuICAgIGxldCBpID0gMDtcclxuICAgIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoLyMvZywgKCkgPT4gc3RyW2krK10pO1xyXG4gIH1cclxufVxyXG4iXX0=