@softpak/components 0.0.0-beta.22 → 0.0.0-beta.220

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 (91) hide show
  1. package/esm2022/spx-button/spx-button.component.mjs +18 -5
  2. package/esm2022/spx-change-details/public-api.mjs +2 -0
  3. package/esm2022/spx-change-details/softpak-components-spx-change-details.mjs +5 -0
  4. package/esm2022/spx-change-details/spx-change-details-value.interface.mjs +2 -0
  5. package/esm2022/spx-change-details/spx-change-details.component.mjs +199 -0
  6. package/esm2022/spx-channel-selection/src/spx-channel-selection.component.mjs +1 -1
  7. package/esm2022/spx-channel-selection/src/spx-company-selection.component.mjs +2 -2
  8. package/esm2022/spx-channel-selection/src/spx-welcome.component.mjs +112 -19
  9. package/esm2022/spx-check-digit/spx-check-digit.component.mjs +14 -7
  10. package/esm2022/spx-form-section/spx-form-section.component.mjs +11 -11
  11. package/esm2022/spx-form-view/public-api.mjs +4 -0
  12. package/esm2022/spx-form-view/softpak-components-spx-form-view.mjs +5 -0
  13. package/esm2022/spx-form-view/spx-autocomplete-search.component.mjs +119 -0
  14. package/esm2022/spx-form-view/spx-form-field.interface.mjs +2 -0
  15. package/esm2022/spx-form-view/spx-form-section.interface.mjs +2 -0
  16. package/esm2022/spx-form-view/spx-form-view.component.mjs +268 -0
  17. package/esm2022/spx-inputs/spx-dropdown.component.mjs +94 -0
  18. package/esm2022/spx-inputs/spx-input-box.component.mjs +70 -46
  19. package/esm2022/spx-inputs/spx-input-date.component.mjs +1 -1
  20. package/esm2022/spx-inputs/spx-input-float.component.mjs +10 -5
  21. package/esm2022/spx-inputs/spx-input-number.component.mjs +10 -5
  22. package/esm2022/spx-inputs/spx-input-radio.component.mjs +93 -27
  23. package/esm2022/spx-inputs/spx-input-text.component.mjs +25 -32
  24. package/esm2022/spx-inputs/spx-input-type.enum.mjs +4 -1
  25. package/esm2022/spx-inputs/spx-input.component.mjs +48 -13
  26. package/esm2022/spx-navigation/spx-home-tile.component.mjs +31 -12
  27. package/esm2022/spx-navigation/spx-home-tiles.component.mjs +14 -5
  28. package/esm2022/spx-navigation/spx-navigation-item.interface.mjs +1 -1
  29. package/esm2022/spx-navigation/spx-navigation.component.mjs +11 -5
  30. package/esm2022/spx-number-check/spx-number-check.component.mjs +87 -20
  31. package/esm2022/spx-suggestion/spx-suggestion.component.mjs +28 -10
  32. package/esm2022/spx-update/src/spx-update-info.component.mjs +1 -1
  33. package/esm2022/spx-validation/public-api.mjs +1 -2
  34. package/esm2022/spx-validation/spx-validate-control.component.mjs +8 -3
  35. package/fesm2022/softpak-components-spx-button.mjs +17 -4
  36. package/fesm2022/softpak-components-spx-button.mjs.map +1 -1
  37. package/fesm2022/softpak-components-spx-change-details.mjs +206 -0
  38. package/fesm2022/softpak-components-spx-change-details.mjs.map +1 -0
  39. package/fesm2022/softpak-components-spx-channel-selection.mjs +110 -21
  40. package/fesm2022/softpak-components-spx-channel-selection.mjs.map +1 -1
  41. package/fesm2022/softpak-components-spx-check-digit.mjs +13 -6
  42. package/fesm2022/softpak-components-spx-check-digit.mjs.map +1 -1
  43. package/fesm2022/softpak-components-spx-form-section.mjs +10 -10
  44. package/fesm2022/softpak-components-spx-form-section.mjs.map +1 -1
  45. package/fesm2022/softpak-components-spx-form-view.mjs +385 -0
  46. package/fesm2022/softpak-components-spx-form-view.mjs.map +1 -0
  47. package/fesm2022/softpak-components-spx-inputs.mjs +337 -118
  48. package/fesm2022/softpak-components-spx-inputs.mjs.map +1 -1
  49. package/fesm2022/softpak-components-spx-navigation.mjs +51 -17
  50. package/fesm2022/softpak-components-spx-navigation.mjs.map +1 -1
  51. package/fesm2022/softpak-components-spx-number-check.mjs +86 -19
  52. package/fesm2022/softpak-components-spx-number-check.mjs.map +1 -1
  53. package/fesm2022/softpak-components-spx-suggestion.mjs +27 -9
  54. package/fesm2022/softpak-components-spx-suggestion.mjs.map +1 -1
  55. package/fesm2022/softpak-components-spx-update.mjs +1 -1
  56. package/fesm2022/softpak-components-spx-update.mjs.map +1 -1
  57. package/fesm2022/softpak-components-spx-validation.mjs +8 -28
  58. package/fesm2022/softpak-components-spx-validation.mjs.map +1 -1
  59. package/package.json +29 -16
  60. package/spx-button/spx-button.component.d.ts +4 -2
  61. package/spx-change-details/index.d.ts +5 -0
  62. package/spx-change-details/public-api.d.ts +1 -0
  63. package/spx-change-details/spx-change-details-value.interface.d.ts +7 -0
  64. package/spx-change-details/spx-change-details.component.d.ts +63 -0
  65. package/spx-channel-selection/src/spx-welcome.component.d.ts +37 -8
  66. package/spx-check-digit/spx-check-digit.component.d.ts +3 -1
  67. package/spx-form-view/index.d.ts +5 -0
  68. package/spx-form-view/public-api.d.ts +3 -0
  69. package/spx-form-view/spx-autocomplete-search.component.d.ts +43 -0
  70. package/spx-form-view/spx-form-field.interface.d.ts +18 -0
  71. package/spx-form-view/spx-form-section.interface.d.ts +9 -0
  72. package/spx-form-view/spx-form-view.component.d.ts +48 -0
  73. package/spx-inputs/spx-dropdown.component.d.ts +18 -0
  74. package/spx-inputs/spx-input-box.component.d.ts +14 -7
  75. package/spx-inputs/spx-input-float.component.d.ts +3 -2
  76. package/spx-inputs/spx-input-number.component.d.ts +3 -2
  77. package/spx-inputs/spx-input-radio.component.d.ts +13 -5
  78. package/spx-inputs/spx-input-text.component.d.ts +3 -2
  79. package/spx-inputs/spx-input-type.enum.d.ts +4 -1
  80. package/spx-inputs/spx-input.component.d.ts +11 -3
  81. package/spx-navigation/spx-home-tile.component.d.ts +5 -1
  82. package/spx-navigation/spx-home-tiles.component.d.ts +2 -1
  83. package/spx-navigation/spx-navigation-item.interface.d.ts +1 -0
  84. package/spx-navigation/spx-navigation.component.d.ts +4 -1
  85. package/spx-number-check/spx-number-check.component.d.ts +15 -3
  86. package/spx-suggestion/spx-suggestion.component.d.ts +3 -1
  87. package/spx-validation/public-api.d.ts +0 -1
  88. package/spx-validation/spx-validate-control.component.d.ts +1 -1
  89. package/tailwind.css +1 -1
  90. package/esm2022/spx-validation/spx-validation.module.mjs +0 -28
  91. package/spx-validation/spx-validation.module.d.ts +0 -9
@@ -1,4 +1,4 @@
1
- import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, ContentChild, EventEmitter, Input, Output, ViewChildren } from '@angular/core';
2
2
  import { CommonModule, NgFor } from '@angular/common';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
4
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
@@ -14,11 +14,14 @@ export class SpxNavigationComponent {
14
14
  this.navItems = [];
15
15
  this.spxClick = new EventEmitter();
16
16
  }
17
+ setFocus() {
18
+ this.tiles?.first.setFocus();
19
+ }
17
20
  onNavigate(link) {
18
21
  this.spxClick.emit(link);
19
22
  }
20
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNavigationComponent, isStandalone: true, selector: "spx-navigation", inputs: { navItems: "navItems" }, outputs: { spxClick: "spxClick" }, queries: [{ propertyName: "iconTemplateRef", first: true, predicate: ["icon"], descendants: true }], ngImport: i0, template: "<spx-home-tiles>\n <spx-home-tile *ngFor=\"let item of navItems\" (click)=\"onNavigate(item.routerLink)\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\" [spxTitle]=\"item.title | translate | capitalize\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxHomeTilesComponent, selector: "spx-home-tiles" }, { kind: "component", type: SpxHomeTileComponent, selector: "spx-home-tile", inputs: ["spxClass", "spxTitle"] }] }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNavigationComponent, isStandalone: true, selector: "spx-navigation", inputs: { navItems: "navItems" }, outputs: { spxClick: "spxClick" }, queries: [{ propertyName: "iconTemplateRef", first: true, predicate: ["icon"], descendants: true }], viewQueries: [{ propertyName: "tiles", predicate: ["tiles"], descendants: true }], ngImport: i0, template: "<spx-home-tiles>\n <spx-home-tile #tiles *ngFor=\"let item of navItems; let i = index\" (click)=\"onNavigate(item.routerLink)\"\n [spxAutofocus]=\"i === 0\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"\n [spxTitle]=\"item.title | translate | capitalize\"\n [spxSubtitle]=\"item.subtite ? (item.subtite | translate | capitalize) : undefined\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxHomeTilesComponent, selector: "spx-home-tiles", inputs: ["spxCols"] }, { kind: "component", type: SpxHomeTileComponent, selector: "spx-home-tile", inputs: ["spxAutofocus", "spxClass", "spxSubtitle", "spxTitle"] }] }); }
22
25
  }
23
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNavigationComponent, decorators: [{
24
27
  type: Component,
@@ -30,8 +33,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
30
33
  SpxHomeTilesComponent,
31
34
  SpxHomeTileComponent,
32
35
  NgFor,
33
- ], template: "<spx-home-tiles>\n <spx-home-tile *ngFor=\"let item of navItems\" (click)=\"onNavigate(item.routerLink)\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\" [spxTitle]=\"item.title | translate | capitalize\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n" }]
34
- }], ctorParameters: () => [], propDecorators: { iconTemplateRef: [{
36
+ ], template: "<spx-home-tiles>\n <spx-home-tile #tiles *ngFor=\"let item of navItems; let i = index\" (click)=\"onNavigate(item.routerLink)\"\n [spxAutofocus]=\"i === 0\"\n [spxClass]=\"item.tileClasses ? item.tileClasses : undefined\"\n [spxTitle]=\"item.title | translate | capitalize\"\n [spxSubtitle]=\"item.subtite ? (item.subtite | translate | capitalize) : undefined\">\n <fa-icon [icon]=\"item.icon\"></fa-icon>\n </spx-home-tile>\n</spx-home-tiles>\n" }]
37
+ }], ctorParameters: () => [], propDecorators: { tiles: [{
38
+ type: ViewChildren,
39
+ args: ['tiles']
40
+ }], iconTemplateRef: [{
35
41
  type: ContentChild,
36
42
  args: ['icon', { static: false }]
37
43
  }], navItems: [{
@@ -39,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
39
45
  }], spxClick: [{
40
46
  type: Output
41
47
  }] } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1uYXZpZ2F0aW9uL3NweC1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtbmF2aWdhdGlvbi9zcHgtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFnQmpFLE1BQU0sT0FBTyxzQkFBc0I7SUFLakM7UUFIUyxhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUNuQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFHbkUsQ0FBQztJQUVHLFVBQVUsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBVlUsc0JBQXNCO2tHQUF0QixzQkFBc0Isb1BDdkJuQywyVEFNQSwyQ0RRSSxZQUFZLDJKQUNaLGVBQWUsMkZBQ2YsaUJBQWlCLDhSQUNqQixpQkFBaUIsbURBQ2pCLHFCQUFxQiwyREFDckIsb0JBQW9COzsyRkFJWCxzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBRWQsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLEtBQUs7cUJBQ047d0RBR3FDLGVBQWU7c0JBQXBELFlBQVk7dUJBQUMsTUFBTSxFQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDM0IsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNweE5hdmlnYXRpb25JdGVtSSB9IGZyb20gJy4vc3B4LW5hdmlnYXRpb24taXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xuaW1wb3J0IHsgU3B4Q2FwaXRhbGl6ZVBpcGUgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1jYXBpdGFsaXplJztcbmltcG9ydCB7IFNweEhvbWVUaWxlc0NvbXBvbmVudCB9IGZyb20gJy4vc3B4LWhvbWUtdGlsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFNweEhvbWVUaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9zcHgtaG9tZS10aWxlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gICAgU3B4Q2FwaXRhbGl6ZVBpcGUsXG4gICAgU3B4SG9tZVRpbGVzQ29tcG9uZW50LFxuICAgIFNweEhvbWVUaWxlQ29tcG9uZW50LFxuICAgIE5nRm9yLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhOYXZpZ2F0aW9uQ29tcG9uZW50IHtcbiAgQENvbnRlbnRDaGlsZCgnaWNvbicse3N0YXRpYzogZmFsc2V9KSBpY29uVGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBuYXZJdGVtczogU3B4TmF2aWdhdGlvbkl0ZW1JW10gPSBbXTtcbiAgQE91dHB1dCgpIHNweENsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHt9XG5cbiAgcHVibGljIG9uTmF2aWdhdGUobGluazogc3RyaW5nKSB7XG4gICAgdGhpcy5zcHhDbGljay5lbWl0KGxpbmspO1xuICB9XG59XG4iLCI8c3B4LWhvbWUtdGlsZXM+XG4gIDxzcHgtaG9tZS10aWxlICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdkl0ZW1zXCIgKGNsaWNrKT1cIm9uTmF2aWdhdGUoaXRlbS5yb3V0ZXJMaW5rKVwiXG4gICAgW3NweENsYXNzXT1cIml0ZW0udGlsZUNsYXNzZXMgPyBpdGVtLnRpbGVDbGFzc2VzIDogdW5kZWZpbmVkXCIgW3NweFRpdGxlXT1cIml0ZW0udGl0bGUgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCI+XG4gICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5pY29uXCI+PC9mYS1pY29uPlxuICA8L3NweC1ob21lLXRpbGU+XG48L3NweC1ob21lLXRpbGVzPlxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1uYXZpZ2F0aW9uL3NweC1uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtbmF2aWdhdGlvbi9zcHgtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQWdCakUsTUFBTSxPQUFPLHNCQUFzQjtJQU1qQztRQUhTLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBQ25DLGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUduRSxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQWZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHVVQ3ZCbkMsZ2RBU0EsMkNES0ksWUFBWSwySkFDWixlQUFlLDJGQUNmLGlCQUFpQiw4UkFDakIsaUJBQWlCLG1EQUNqQixxQkFBcUIsZ0ZBQ3JCLG9CQUFvQjs7MkZBSVgsc0JBQXNCO2tCQWRsQyxTQUFTOytCQUNFLGdCQUFnQixjQUVkLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixLQUFLO3FCQUNOO3dEQUdzQixLQUFLO3NCQUEzQixZQUFZO3VCQUFDLE9BQU87Z0JBQ2lCLGVBQWU7c0JBQXBELFlBQVk7dUJBQUMsTUFBTSxFQUFDLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDM0IsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTcHhOYXZpZ2F0aW9uSXRlbUkgfSBmcm9tICcuL3NweC1uYXZpZ2F0aW9uLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IFNweENhcGl0YWxpemVQaXBlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtY2FwaXRhbGl6ZSc7XG5pbXBvcnQgeyBTcHhIb21lVGlsZXNDb21wb25lbnQgfSBmcm9tICcuL3NweC1ob21lLXRpbGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcHhIb21lVGlsZUNvbXBvbmVudCB9IGZyb20gJy4vc3B4LWhvbWUtdGlsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcHgtbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIFNweENhcGl0YWxpemVQaXBlLFxuICAgIFNweEhvbWVUaWxlc0NvbXBvbmVudCxcbiAgICBTcHhIb21lVGlsZUNvbXBvbmVudCxcbiAgICBOZ0ZvcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4TmF2aWdhdGlvbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGRyZW4oJ3RpbGVzJykgdGlsZXM/OiBRdWVyeUxpc3Q8U3B4SG9tZVRpbGVDb21wb25lbnQ+O1xuICBAQ29udGVudENoaWxkKCdpY29uJyx7c3RhdGljOiBmYWxzZX0pIGljb25UZW1wbGF0ZVJlZj86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIG5hdkl0ZW1zOiBTcHhOYXZpZ2F0aW9uSXRlbUlbXSA9IFtdO1xuICBAT3V0cHV0KCkgc3B4Q2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICkge31cblxuICBzZXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnRpbGVzPy5maXJzdC5zZXRGb2N1cygpO1xuICB9XG5cbiAgb25OYXZpZ2F0ZShsaW5rOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNweENsaWNrLmVtaXQobGluayk7XG4gIH1cbn1cbiIsIjxzcHgtaG9tZS10aWxlcz5cbiAgPHNweC1ob21lLXRpbGUgI3RpbGVzICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5hdkl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cIm9uTmF2aWdhdGUoaXRlbS5yb3V0ZXJMaW5rKVwiXG4gICAgW3NweEF1dG9mb2N1c109XCJpID09PSAwXCJcbiAgICBbc3B4Q2xhc3NdPVwiaXRlbS50aWxlQ2xhc3NlcyA/IGl0ZW0udGlsZUNsYXNzZXMgOiB1bmRlZmluZWRcIlxuICAgIFtzcHhUaXRsZV09XCJpdGVtLnRpdGxlIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgW3NweFN1YnRpdGxlXT1cIml0ZW0uc3VidGl0ZSA/IChpdGVtLnN1YnRpdGUgfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplKSA6IHVuZGVmaW5lZFwiPlxuICAgIDxmYS1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvZmEtaWNvbj5cbiAgPC9zcHgtaG9tZS10aWxlPlxuPC9zcHgtaG9tZS10aWxlcz5cbiJdfQ==
@@ -12,9 +12,11 @@ export class SpxNumberCheckComponent {
12
12
  get ctrl4() { return this.form.get('ctrl4'); }
13
13
  constructor(formBuilder) {
14
14
  this.formBuilder = formBuilder;
15
+ this.spxSimpleMode = false;
15
16
  this.spxCancel = new EventEmitter();
16
17
  this.spxConfirm = new EventEmitter();
17
18
  this.severityError = SpxSeverityEnum.error;
19
+ this.severitySuccess = SpxSeverityEnum.success;
18
20
  this.severityWarning = SpxSeverityEnum.warning;
19
21
  this.accepted = false;
20
22
  this.denied = false;
@@ -33,16 +35,55 @@ export class SpxNumberCheckComponent {
33
35
  this.checkPincode();
34
36
  }
35
37
  });
38
+ this.listenToCtrl1 = this.ctrl1.valueChanges.subscribe(value => {
39
+ if (value) {
40
+ this.viewChild2.nativeElement.focus();
41
+ }
42
+ else {
43
+ }
44
+ });
45
+ this.listenToCtrl2 = this.ctrl2.valueChanges.subscribe(value => {
46
+ if (value) {
47
+ this.viewChild3.nativeElement.focus();
48
+ }
49
+ else {
50
+ }
51
+ });
52
+ this.listenToCtrl3 = this.ctrl3.valueChanges.subscribe(value => {
53
+ if (value) {
54
+ this.viewChild4.nativeElement.focus();
55
+ }
56
+ else {
57
+ }
58
+ });
59
+ }
60
+ ngOnChanges(changes) {
61
+ setTimeout(() => {
62
+ if (this?.viewChild1?.nativeElement) {
63
+ this.viewChild1.nativeElement.focus();
64
+ }
65
+ }, 0);
36
66
  }
37
67
  ngOnDestroy() {
38
68
  if (this.listenToTyping) {
39
69
  this.listenToTyping.unsubscribe();
40
70
  }
71
+ if (this.listenToCtrl1) {
72
+ this.listenToCtrl1.unsubscribe();
73
+ }
74
+ if (this.listenToCtrl2) {
75
+ this.listenToCtrl2.unsubscribe();
76
+ }
77
+ if (this.listenToCtrl3) {
78
+ this.listenToCtrl3.unsubscribe();
79
+ }
41
80
  }
42
81
  handleCancel() {
43
- console.log('spxContainerConfirm: spxCancel');
44
82
  this.spxCancel.emit();
45
83
  }
84
+ handleConfirm() {
85
+ this.spxConfirm.emit();
86
+ }
46
87
  handleReset() {
47
88
  this.ctrl1.reset();
48
89
  this.ctrl2.reset();
@@ -80,7 +121,7 @@ export class SpxNumberCheckComponent {
80
121
  return;
81
122
  }
82
123
  else {
83
- setTimeout(() => { element.focus(); });
124
+ // setTimeout(() => { element.focus(); });
84
125
  }
85
126
  }
86
127
  onBackspace(event) {
@@ -90,7 +131,6 @@ export class SpxNumberCheckComponent {
90
131
  if (this.spxPincode === `${this.ctrl1.value}${this.ctrl2.value}${this.ctrl3.value}${this.ctrl4.value}`) {
91
132
  this.accepted = true;
92
133
  setTimeout(() => {
93
- console.log('spxContainerConfirm: spxConfirm');
94
134
  this.spxConfirm.emit();
95
135
  }, 500);
96
136
  }
@@ -99,21 +139,28 @@ export class SpxNumberCheckComponent {
99
139
  }
100
140
  }
101
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
102
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNumberCheckComponent, isStandalone: true, selector: "spx-number-check", inputs: { spxAction: "spxAction", spxPincode: "spxPincode", txtCancel: "txtCancel", txtConfirmMessage: "txtConfirmMessage", txtReset: "txtReset" }, outputs: { spxCancel: "spxCancel", spxConfirm: "spxConfirm" }, host: { listeners: { "spxChange": "handleChangeEvent($event)" } }, viewQueries: [{ propertyName: "viewChild1", first: true, predicate: ["viewChild1"], descendants: true }], ngImport: i0, template: `
103
- <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
104
- <div class="mx-auto mt-16 max-w-96 bg-black rounded-lg">
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxNumberCheckComponent, isStandalone: true, selector: "spx-number-check", inputs: { spxAction: "spxAction", spxSimpleMode: "spxSimpleMode", spxPincode: "spxPincode", txtCancel: "txtCancel", txtConfirm: "txtConfirm", txtConfirmMessage: "txtConfirmMessage", txtReset: "txtReset" }, outputs: { spxCancel: "spxCancel", spxConfirm: "spxConfirm" }, host: { listeners: { "spxChange": "handleChangeEvent($event)" } }, viewQueries: [{ propertyName: "viewChild1", first: true, predicate: ["viewChild1"], descendants: true }, { propertyName: "viewChild2", first: true, predicate: ["viewChild2"], descendants: true }, { propertyName: "viewChild3", first: true, predicate: ["viewChild3"], descendants: true }, { propertyName: "viewChild4", first: true, predicate: ["viewChild4"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
143
+ <div class="fixed top-0 left-0 right-0 bottom-0 z-40 bg-black">
144
+ <div class="mx-auto mt-32 max-w-96 bg-black rounded-lg">
105
145
  <div class="flex flex-col gap-3 p-3">
106
146
  <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
107
147
  <div class="font-bold">{{ this.spxAction }}</div>
108
148
  {{ this.txtConfirmMessage }}
109
149
  </div>
110
- <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
111
- <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
112
- <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
113
- <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
114
- <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
150
+ <form *ngIf="!this.spxSimpleMode" class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
151
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" pattern="[0-9]*" inputmode="numeric" />
152
+ <input #viewChild2 [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
153
+ <input #viewChild3 [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
154
+ <input #viewChild4 [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
115
155
  </form>
116
156
  <spx-button
157
+ *ngIf="this.spxSimpleMode"
158
+ [spxFullWidth]="true"
159
+ [spxSeverity]="this.severitySuccess"
160
+ (spxClick)="this.handleConfirm()"
161
+ >{{ this.txtConfirm }}</spx-button>
162
+ <spx-button
163
+ *ngIf="!this.spxSimpleMode"
117
164
  [spxFullWidth]="true"
118
165
  [spxSeverity]="this.severityWarning"
119
166
  (spxClick)="this.handleReset()"
@@ -126,7 +173,7 @@ export class SpxNumberCheckComponent {
126
173
  </div>
127
174
  </div>
128
175
  </div>
129
- `, isInline: true, dependencies: [{ kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
176
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SpxButtonComponent, selector: "spx-button", inputs: ["spxDisabled", "spxClass", "spxClassObject", "spxForm", "spxFullHeight", "spxFullWidth", "spxSeverity", "spxSize", "spxTabIndex", "spxType"], outputs: ["spxClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
130
177
  }
131
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxNumberCheckComponent, decorators: [{
132
179
  type: Component,
@@ -143,20 +190,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
143
190
  ReactiveFormsModule,
144
191
  ],
145
192
  template: `
146
- <div class="absolute top-0 left-0 right-0 bottom-0 z-40 bg-black/60">
147
- <div class="mx-auto mt-16 max-w-96 bg-black rounded-lg">
193
+ <div class="fixed top-0 left-0 right-0 bottom-0 z-40 bg-black">
194
+ <div class="mx-auto mt-32 max-w-96 bg-black rounded-lg">
148
195
  <div class="flex flex-col gap-3 p-3">
149
196
  <div class="bg-yellow-300 text-black text-center rounded p-3 text-xl">
150
197
  <div class="font-bold">{{ this.spxAction }}</div>
151
198
  {{ this.txtConfirmMessage }}
152
199
  </div>
153
- <form class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
154
- <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" />
155
- <input [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
156
- <input [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
157
- <input [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" [class.bg-red-200]="this.denied" [class.bg-teal-200]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" />
200
+ <form *ngIf="!this.spxSimpleMode" class="block grid grid-cols-4 gap-3" [formGroup]="this.form" (ngSubmit)="null">
201
+ <input #viewChild1 [formControl]="ctrl1" type="text" autofocus class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" pattern="[0-9]*" inputmode="numeric" />
202
+ <input #viewChild2 [formControl]="ctrl2" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
203
+ <input #viewChild3 [formControl]="ctrl3" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
204
+ <input #viewChild4 [formControl]="ctrl4" type="text" class="w-full text-center font-bold text-2xl p-3 rounded-lg focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 text-white bg-neutral-700" [class.bg-red-700]="this.denied" [class.bg-teal-700]="this.accepted" maxlength="1" (keypress)="onDigitInput($event)" (keyup.backspace)="onBackspace($event)" pattern="[0-9]*" inputmode="numeric" />
158
205
  </form>
159
206
  <spx-button
207
+ *ngIf="this.spxSimpleMode"
208
+ [spxFullWidth]="true"
209
+ [spxSeverity]="this.severitySuccess"
210
+ (spxClick)="this.handleConfirm()"
211
+ >{{ this.txtConfirm }}</spx-button>
212
+ <spx-button
213
+ *ngIf="!this.spxSimpleMode"
160
214
  [spxFullWidth]="true"
161
215
  [spxSeverity]="this.severityWarning"
162
216
  (spxClick)="this.handleReset()"
@@ -173,10 +227,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
173
227
  }]
174
228
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { spxAction: [{
175
229
  type: Input
230
+ }], spxSimpleMode: [{
231
+ type: Input
176
232
  }], spxPincode: [{
177
233
  type: Input
178
234
  }], txtCancel: [{
179
235
  type: Input
236
+ }], txtConfirm: [{
237
+ type: Input
180
238
  }], txtConfirmMessage: [{
181
239
  type: Input
182
240
  }], txtReset: [{
@@ -188,5 +246,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
188
246
  }], viewChild1: [{
189
247
  type: ViewChild,
190
248
  args: ['viewChild1']
249
+ }], viewChild2: [{
250
+ type: ViewChild,
251
+ args: ['viewChild2']
252
+ }], viewChild3: [{
253
+ type: ViewChild,
254
+ args: ['viewChild3']
255
+ }], viewChild4: [{
256
+ type: ViewChild,
257
+ args: ['viewChild4']
191
258
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW51bWJlci1jaGVjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LW51bWJlci1jaGVjay9zcHgtbnVtYmVyLWNoZWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUE0Q2xFLE1BQU0sT0FBTyx1QkFBdUI7SUFnQmxDLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBSSxLQUFLLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzFFLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFFMUUsWUFBNkIsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFmM0MsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBUSxD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SCxDQUFDOzhHQTVHVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0Y0E3QnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsNERBL0JDLGtCQUFrQixvT0FDbEIsV0FBVyw4ekJBQ1gsbUJBQW1COzsyRkErQlYsdUJBQXVCO2tCQXpDbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSwyQkFBMkI7cUJBQzNDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxtQkFBbUI7cUJBQ3BCO29CQUNELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2lCQUNGO2dGQUVVLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDa0IsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweFNldmVyaXR5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1udW1iZXItY2hlY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJyhzcHhDaGFuZ2UpJzogJ2hhbmRsZUNoYW5nZUV2ZW50KCRldmVudCknXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBib3R0b20tMCB6LTQwIGJnLWJsYWNrLzYwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBtdC0xNiBtYXgtdy05NiBiZy1ibGFjayByb3VuZGVkLWxnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy15ZWxsb3ctMzAwIHRleHQtYmxhY2sgdGV4dC1jZW50ZXIgcm91bmRlZCBwLTMgdGV4dC14bFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHRoaXMuc3B4QWN0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB7eyB0aGlzLnR4dENvbmZpcm1NZXNzYWdlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGZvcm0gY2xhc3M9XCJibG9jayBncmlkIGdyaWQtY29scy00IGdhcC0zXCIgW2Zvcm1Hcm91cF09XCJ0aGlzLmZvcm1cIiAobmdTdWJtaXQpPVwibnVsbFwiPlxuICAgICAgICAgICAgPGlucHV0ICN2aWV3Q2hpbGQxIFtmb3JtQ29udHJvbF09XCJjdHJsMVwiIHR5cGU9XCJ0ZXh0XCIgYXV0b2ZvY3VzIGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LTJ4bCBwLTMgcm91bmRlZC1sZyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMiBmb2N1czpyaW5nLWJsdWUtNTAwXCIgW2NsYXNzLmJnLXJlZC0yMDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC0yMDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsMlwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJ3LWZ1bGwgdGV4dC1jZW50ZXIgZm9udC1ib2xkIHRleHQtMnhsIHAtMyByb3VuZGVkLWxnIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0yIGZvY3VzOnJpbmctYmx1ZS01MDBcIiBbY2xhc3MuYmctcmVkLTIwMF09XCJ0aGlzLmRlbmllZFwiIFtjbGFzcy5iZy10ZWFsLTIwMF09XCJ0aGlzLmFjY2VwdGVkXCIgbWF4bGVuZ3RoPVwiMVwiIChrZXlwcmVzcyk9XCJvbkRpZ2l0SW5wdXQoJGV2ZW50KVwiIChrZXl1cC5iYWNrc3BhY2UpPVwib25CYWNrc3BhY2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmwzXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMFwiIFtjbGFzcy5iZy1yZWQtMjAwXT1cInRoaXMuZGVuaWVkXCIgW2NsYXNzLmJnLXRlYWwtMjAwXT1cInRoaXMuYWNjZXB0ZWRcIiBtYXhsZW5ndGg9XCIxXCIgKGtleXByZXNzKT1cIm9uRGlnaXRJbnB1dCgkZXZlbnQpXCIgKGtleXVwLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybDRcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LTJ4bCBwLTMgcm91bmRlZC1sZyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMiBmb2N1czpyaW5nLWJsdWUtNTAwXCIgW2NsYXNzLmJnLXJlZC0yMDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC0yMDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8c3B4LWJ1dHRvblxuICAgICAgICAgICAgW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzcHhTZXZlcml0eV09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVSZXNldCgpXCJcbiAgICAgICAgICAgID57eyB0aGlzLnR4dFJlc2V0IH19PC9zcHgtYnV0dG9uPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3NweFNldmVyaXR5XT1cInRoaXMuc2V2ZXJpdHlFcnJvclwiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVDYW5jZWwoKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRDYW5jZWwgfX08L3NweC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweE51bWJlckNoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBzcHhBY3Rpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNweFBpbmNvZGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENhbmNlbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q29uZmlybU1lc3NhZ2UhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFJlc2V0ITogc3RyaW5nO1xuICBAT3V0cHV0KCkgc3B4Q2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzcHhDb25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBWaWV3Q2hpbGQoJ3ZpZXdDaGlsZDEnKSB2aWV3Q2hpbGQxITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgZm9ybSE6IEZvcm1Hcm91cDtcbiAgc2V2ZXJpdHlFcnJvciA9IFNweFNldmVyaXR5RW51bS5lcnJvcjtcbiAgc2V2ZXJpdHlXYXJuaW5nID0gU3B4U2V2ZXJpdHlFbnVtLndhcm5pbmc7XG4gIGFjY2VwdGVkID0gZmFsc2U7XG4gIGRlbmllZCA9IGZhbHNlO1xuICBsaXN0ZW5Ub1R5cGluZz86IFN1YnNjcmlwdGlvbjtcblxuICBnZXQgY3RybDEoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnY3RybDEnKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybDIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnY3RybDInKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybDMoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnY3RybDMnKSBhcyBGb3JtQ29udHJvbDsgfVxuICBnZXQgY3RybDQoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldCgnY3RybDQnKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBjdHJsMTogW251bGwsIFtdXSxcbiAgICAgIGN0cmwyOiBbbnVsbCwgW11dLFxuICAgICAgY3RybDM6IFtudWxsLCBbXV0sXG4gICAgICBjdHJsNDogW251bGwsIFtdXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuVG9UeXBpbmcgPSAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hY2NlcHRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5kZW5pZWQgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmN0cmwxLnZhbHVlICYmIHRoaXMuY3RybDIudmFsdWUgJiYgdGhpcy5jdHJsMy52YWx1ZSAmJiB0aGlzLmN0cmw0LnZhbHVlKSB7XG4gICAgICAgIHRoaXMuY2hlY2tQaW5jb2RlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0ZW5Ub1R5cGluZykge1xuICAgICAgdGhpcy5saXN0ZW5Ub1R5cGluZy51bnN1YnNjcmliZSgpO1xuICAgIH0gXG4gIH1cblxuICBoYW5kbGVDYW5jZWwoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ3NweENvbnRhaW5lckNvbmZpcm06IHNweENhbmNlbCcpO1xuICAgIHRoaXMuc3B4Q2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIGhhbmRsZVJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY3RybDEucmVzZXQoKTtcbiAgICB0aGlzLmN0cmwyLnJlc2V0KCk7XG4gICAgdGhpcy5jdHJsMy5yZXNldCgpO1xuICAgIHRoaXMuY3RybDQucmVzZXQoKTtcbiAgICB0aGlzLnZpZXdDaGlsZDEubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuYWNjZXB0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmRlbmllZCA9IGZhbHNlO1xuICB9XG5cbiAgb25EaWdpdElucHV0KGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgZWxlbWVudDogYW55O1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDAnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQxJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0MicgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDMnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ0JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDYnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ3JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0OCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDknIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkMCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQxJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDInIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkMycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ0JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDUnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNicgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ3JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDgnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkOScpIHtcbiAgICAgICAgZWxlbWVudCA9IGV2ZW50LnNyY0VsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGVsZW1lbnQuZm9jdXMoKTsgfSk7XG4gICAgfVxuICB9XG5cbiAgb25CYWNrc3BhY2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnNyY0VsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZy5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1BpbmNvZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3B4UGluY29kZSA9PT0gYCR7dGhpcy5jdHJsMS52YWx1ZX0ke3RoaXMuY3RybDIudmFsdWV9JHt0aGlzLmN0cmwzLnZhbHVlfSR7dGhpcy5jdHJsNC52YWx1ZX1gKSB7XG4gICAgICB0aGlzLmFjY2VwdGVkID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnc3B4Q29udGFpbmVyQ29uZmlybTogc3B4Q29uZmlybScpO1xuICAgICAgICB0aGlzLnNweENvbmZpcm0uZW1pdCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZW5pZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LW51bWJlci1jaGVjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zb2Z0cGFrL2NvbXBvbmVudHMvc3B4LW51bWJlci1jaGVjay9zcHgtbnVtYmVyLWNoZWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQXVDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBbURsRSxNQUFNLE9BQU8sdUJBQXVCO0lBMEJsQyxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzFFLElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBSSxLQUFLLEtBQWtCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFnQixDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLEtBQUssS0FBa0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUMsQ0FBQyxDQUFDO0lBRTFFLFlBQTZCLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBN0I1QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU1y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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3B4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtYnV0dG9uJztcbmltcG9ydCB7IFNweFNldmVyaXR5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1udW1iZXItY2hlY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJyhzcHhDaGFuZ2UpJzogJ2hhbmRsZUNoYW5nZUV2ZW50KCRldmVudCknXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIFNweEJ1dHRvbkNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgcmlnaHQtMCBib3R0b20tMCB6LTQwIGJnLWJsYWNrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBtdC0zMiBtYXgtdy05NiBiZy1ibGFjayByb3VuZGVkLWxnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zIHAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy15ZWxsb3ctMzAwIHRleHQtYmxhY2sgdGV4dC1jZW50ZXIgcm91bmRlZCBwLTMgdGV4dC14bFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHRoaXMuc3B4QWN0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB7eyB0aGlzLnR4dENvbmZpcm1NZXNzYWdlIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGZvcm0gKm5nSWY9XCIhdGhpcy5zcHhTaW1wbGVNb2RlXCIgY2xhc3M9XCJibG9jayBncmlkIGdyaWQtY29scy00IGdhcC0zXCIgW2Zvcm1Hcm91cF09XCJ0aGlzLmZvcm1cIiAobmdTdWJtaXQpPVwibnVsbFwiPlxuICAgICAgICAgICAgPGlucHV0ICN2aWV3Q2hpbGQxIFtmb3JtQ29udHJvbF09XCJjdHJsMVwiIHR5cGU9XCJ0ZXh0XCIgYXV0b2ZvY3VzIGNsYXNzPVwidy1mdWxsIHRleHQtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LTJ4bCBwLTMgcm91bmRlZC1sZyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1vZmZzZXQtMiBmb2N1czpyaW5nLWJsdWUtNTAwIHRleHQtd2hpdGUgYmctbmV1dHJhbC03MDBcIiBbY2xhc3MuYmctcmVkLTcwMF09XCJ0aGlzLmRlbmllZFwiIFtjbGFzcy5iZy10ZWFsLTcwMF09XCJ0aGlzLmFjY2VwdGVkXCIgbWF4bGVuZ3RoPVwiMVwiIChrZXlwcmVzcyk9XCJvbkRpZ2l0SW5wdXQoJGV2ZW50KVwiIHBhdHRlcm49XCJbMC05XSpcIiBpbnB1dG1vZGU9XCJudW1lcmljXCIgIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDIgW2Zvcm1Db250cm9sXT1cImN0cmwyXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDMgW2Zvcm1Db250cm9sXT1cImN0cmwzXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgICA8aW5wdXQgI3ZpZXdDaGlsZDQgW2Zvcm1Db250cm9sXT1cImN0cmw0XCIgdHlwZT1cInRleHRcIiBjbGFzcz1cInctZnVsbCB0ZXh0LWNlbnRlciBmb250LWJvbGQgdGV4dC0yeGwgcC0zIHJvdW5kZWQtbGcgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlIGJnLW5ldXRyYWwtNzAwXCIgW2NsYXNzLmJnLXJlZC03MDBdPVwidGhpcy5kZW5pZWRcIiBbY2xhc3MuYmctdGVhbC03MDBdPVwidGhpcy5hY2NlcHRlZFwiIG1heGxlbmd0aD1cIjFcIiAoa2V5cHJlc3MpPVwib25EaWdpdElucHV0KCRldmVudClcIiAoa2V5dXAuYmFja3NwYWNlKT1cIm9uQmFja3NwYWNlKCRldmVudClcIiBwYXR0ZXJuPVwiWzAtOV0qXCIgaW5wdXRtb2RlPVwibnVtZXJpY1wiIC8+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRoaXMuc3B4U2ltcGxlTW9kZVwiXG4gICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3NweFNldmVyaXR5XT1cInRoaXMuc2V2ZXJpdHlTdWNjZXNzXCJcbiAgICAgICAgICAgIChzcHhDbGljayk9XCJ0aGlzLmhhbmRsZUNvbmZpcm0oKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRDb25maXJtIH19PC9zcHgtYnV0dG9uPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiF0aGlzLnNweFNpbXBsZU1vZGVcIlxuICAgICAgICAgICAgW3NweEZ1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtzcHhTZXZlcml0eV09XCJ0aGlzLnNldmVyaXR5V2FybmluZ1wiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVSZXNldCgpXCJcbiAgICAgICAgICAgID57eyB0aGlzLnR4dFJlc2V0IH19PC9zcHgtYnV0dG9uPlxuICAgICAgICAgIDxzcHgtYnV0dG9uXG4gICAgICAgICAgICBbc3B4RnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgW3NweFNldmVyaXR5XT1cInRoaXMuc2V2ZXJpdHlFcnJvclwiXG4gICAgICAgICAgICAoc3B4Q2xpY2spPVwidGhpcy5oYW5kbGVDYW5jZWwoKVwiXG4gICAgICAgICAgICA+e3sgdGhpcy50eHRDYW5jZWwgfX08L3NweC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNweE51bWJlckNoZWNrQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNweEFjdGlvbiE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4U2ltcGxlTW9kZSA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhQaW5jb2RlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDYW5jZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbmZpcm0hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dENvbmZpcm1NZXNzYWdlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRSZXNldCE6IHN0cmluZztcbiAgQE91dHB1dCgpIHNweENhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3B4Q29uZmlybTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAVmlld0NoaWxkKCd2aWV3Q2hpbGQxJykgdmlld0NoaWxkMSE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZpZXdDaGlsZDInKSB2aWV3Q2hpbGQyITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndmlld0NoaWxkMycpIHZpZXdDaGlsZDMhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd2aWV3Q2hpbGQ0Jykgdmlld0NoaWxkNCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIHNldmVyaXR5RXJyb3IgPSBTcHhTZXZlcml0eUVudW0uZXJyb3I7XG4gIHNldmVyaXR5U3VjY2VzcyA9IFNweFNldmVyaXR5RW51bS5zdWNjZXNzO1xuICBzZXZlcml0eVdhcm5pbmcgPSBTcHhTZXZlcml0eUVudW0ud2FybmluZztcbiAgYWNjZXB0ZWQgPSBmYWxzZTtcbiAgZGVuaWVkID0gZmFsc2U7XG4gIGxpc3RlblRvQ3RybDE/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDI/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDM/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvQ3RybDQ/OiBTdWJzY3JpcHRpb247XG4gIGxpc3RlblRvVHlwaW5nPzogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBjdHJsMSgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMScpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsMigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMicpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsMygpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsMycpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsNCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KCdjdHJsNCcpIGFzIEZvcm1Db250cm9sOyB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGN0cmwxOiBbbnVsbCwgW11dLFxuICAgICAgY3RybDI6IFtudWxsLCBbXV0sXG4gICAgICBjdHJsMzogW251bGwsIFtdXSxcbiAgICAgIGN0cmw0OiBbbnVsbCwgW11dLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5Ub1R5cGluZyA9ICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmRlbmllZCA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuY3RybDEudmFsdWUgJiYgdGhpcy5jdHJsMi52YWx1ZSAmJiB0aGlzLmN0cmwzLnZhbHVlICYmIHRoaXMuY3RybDQudmFsdWUpIHtcbiAgICAgICAgdGhpcy5jaGVja1BpbmNvZGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMSA9IHRoaXMuY3RybDEudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMiA9IHRoaXMuY3RybDIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQzLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuVG9DdHJsMyA9IHRoaXMuY3RybDMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy52aWV3Q2hpbGQ0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG5cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzPy52aWV3Q2hpbGQxPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgIHRoaXMudmlld0NoaWxkMS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saXN0ZW5Ub1R5cGluZykge1xuICAgICAgdGhpcy5saXN0ZW5Ub1R5cGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5saXN0ZW5Ub0N0cmwxKSB7XG4gICAgICB0aGlzLmxpc3RlblRvQ3RybDEudW5zdWJzY3JpYmUoKTtcbiAgICB9IFxuICAgIGlmICh0aGlzLmxpc3RlblRvQ3RybDIpIHtcbiAgICAgIHRoaXMubGlzdGVuVG9DdHJsMi51bnN1YnNjcmliZSgpO1xuICAgIH0gXG4gICAgaWYgKHRoaXMubGlzdGVuVG9DdHJsMykge1xuICAgICAgdGhpcy5saXN0ZW5Ub0N0cmwzLnVuc3Vic2NyaWJlKCk7XG4gICAgfSBcbiAgfVxuXG4gIGhhbmRsZUNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNweENhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVDb25maXJtKCk6IHZvaWQge1xuICAgIHRoaXMuc3B4Q29uZmlybS5lbWl0KCk7XG4gIH1cblxuICBoYW5kbGVSZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmN0cmwxLnJlc2V0KCk7XG4gICAgdGhpcy5jdHJsMi5yZXNldCgpO1xuICAgIHRoaXMuY3RybDMucmVzZXQoKTtcbiAgICB0aGlzLmN0cmw0LnJlc2V0KCk7XG4gICAgdGhpcy52aWV3Q2hpbGQxLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgdGhpcy5kZW5pZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRGlnaXRJbnB1dChldmVudDogYW55KSB7XG4gICAgbGV0IGVsZW1lbnQ6IGFueTtcbiAgICBpZiAoXG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQwJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0MScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDInIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQzJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDUnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ2JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0RpZ2l0NycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdEaWdpdDgnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnRGlnaXQ5JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDAnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkMScgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQyJyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDMnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNCcgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ1JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDYnIHx8XG4gICAgICBldmVudC5jb2RlID09PSAnTnVtcGFkNycgfHxcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdOdW1wYWQ4JyB8fFxuICAgICAgZXZlbnQuY29kZSA9PT0gJ051bXBhZDknKSB7XG4gICAgICAgIGVsZW1lbnQgPSBldmVudC5zcmNFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4geyBlbGVtZW50LmZvY3VzKCk7IH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQmFja3NwYWNlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5zcmNFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQaW5jb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNweFBpbmNvZGUgPT09IGAke3RoaXMuY3RybDEudmFsdWV9JHt0aGlzLmN0cmwyLnZhbHVlfSR7dGhpcy5jdHJsMy52YWx1ZX0ke3RoaXMuY3RybDQudmFsdWV9YCkge1xuICAgICAgdGhpcy5hY2NlcHRlZCA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zcHhDb25maXJtLmVtaXQoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVuaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -3,14 +3,17 @@ import * as i0 from "@angular/core";
3
3
  export class SpxSuggestionComponent {
4
4
  constructor() {
5
5
  this.spxDisabled = false;
6
+ this.spxFocused = false;
6
7
  this.spxSelected = false;
8
+ this.spxTabbable = false;
7
9
  }
8
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: "spxDisabled", spxSelected: "spxSelected" }, ngImport: i0, template: `<button
10
- class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-ellipsis overflow-hidden whitespace-nowrap text-left truncate"
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: "spxDisabled", spxFocused: "spxFocused", spxSelected: "spxSelected", spxTabbable: "spxTabbable" }, ngImport: i0, template: `<button
12
+ type="button"
13
+ class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none"
11
14
  [class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
12
- [class.focus:ring-sky-200]="!this.spxSelected && !this.spxDisabled"
13
- [class.hover:bg-sky-200]="!this.spxSelected && !this.spxDisabled"
15
+ [class.focus:ring-sky-300]="!this.spxSelected && !this.spxDisabled"
16
+ [class.hover:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
14
17
  [class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
15
18
  [class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
16
19
  [class.bg-gray-400]="this.spxDisabled && this.spxSelected"
@@ -18,7 +21,12 @@ export class SpxSuggestionComponent {
18
21
  [class.opacity-60]="this.spxDisabled"
19
22
  [class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
20
23
  [class.font-bold]="this.spxSelected"
21
- [attr.tabindex]="-1"><ng-content></ng-content></button>`, isInline: true }); }
24
+ [attr.tabindex]="this.spxTabbable && !this.spxDisabled ? 0 : -1"
25
+ [class.ring-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
26
+ [class.ring-offset-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
27
+ [class.ring-blue-500]="this.spxFocused && this.spxTabbable && !this.spxDisabled">
28
+ <div class="text-ellipsis overflow-hidden whitespace-nowrap"><ng-content></ng-content></div>
29
+ </button>`, isInline: true }); }
22
30
  }
23
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxSuggestionComponent, decorators: [{
24
32
  type: Component,
@@ -26,10 +34,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
26
34
  selector: 'spx-suggestion',
27
35
  standalone: true,
28
36
  template: `<button
29
- class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-ellipsis overflow-hidden whitespace-nowrap text-left truncate"
37
+ type="button"
38
+ class="spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none"
30
39
  [class.bg-sky-100]="!this.spxSelected && !this.spxDisabled"
31
- [class.focus:ring-sky-200]="!this.spxSelected && !this.spxDisabled"
32
- [class.hover:bg-sky-200]="!this.spxSelected && !this.spxDisabled"
40
+ [class.focus:ring-sky-300]="!this.spxSelected && !this.spxDisabled"
41
+ [class.hover:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
33
42
  [class.active:bg-sky-300]="!this.spxSelected && !this.spxDisabled"
34
43
  [class.bg-gray-200]="this.spxDisabled && !this.spxSelected"
35
44
  [class.bg-gray-400]="this.spxDisabled && this.spxSelected"
@@ -37,11 +46,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
37
46
  [class.opacity-60]="this.spxDisabled"
38
47
  [class.bg-teal-500]="this.spxSelected && !this.spxDisabled"
39
48
  [class.font-bold]="this.spxSelected"
40
- [attr.tabindex]="-1"><ng-content></ng-content></button>`,
49
+ [attr.tabindex]="this.spxTabbable && !this.spxDisabled ? 0 : -1"
50
+ [class.ring-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
51
+ [class.ring-offset-2]="this.spxFocused && this.spxTabbable && !this.spxDisabled"
52
+ [class.ring-blue-500]="this.spxFocused && this.spxTabbable && !this.spxDisabled">
53
+ <div class="text-ellipsis overflow-hidden whitespace-nowrap"><ng-content></ng-content></div>
54
+ </button>`,
41
55
  }]
42
56
  }], propDecorators: { spxDisabled: [{
43
57
  type: Input
58
+ }], spxFocused: [{
59
+ type: Input
44
60
  }], spxSelected: [{
45
61
  type: Input
62
+ }], spxTabbable: [{
63
+ type: Input
46
64
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXN1Z2dlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1zdWdnZXN0aW9uL3NweC1zdWdnZXN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFtQmpELE1BQU0sT0FBTyxzQkFBc0I7SUFqQm5DO1FBa0JXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0tBQzlCOzhHQUhZLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDhJQWR2Qjs7Ozs7Ozs7Ozs7OzREQVlnRDs7MkZBRS9DLHNCQUFzQjtrQkFqQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OzREQVlnRDtpQkFDM0Q7OEJBRVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtc3VnZ2VzdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgPGJ1dHRvblxuICAgIGNsYXNzPVwic3B4LXN1Z2dlc3Rpb24gYmxvY2sgcm91bmRlZCB0ZXh0LWdyYXktOTAwIHRleHQtc20gcC0zIHctZnVsbCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiB3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWxlZnQgdHJ1bmNhdGVcIlxuICAgIFtjbGFzcy5iZy1za3ktMTAwXT1cIiF0aGlzLnNweFNlbGVjdGVkICYmICF0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuZm9jdXM6cmluZy1za3ktMjAwXT1cIiF0aGlzLnNweFNlbGVjdGVkICYmICF0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuaG92ZXI6Ymctc2t5LTIwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmFjdGl2ZTpiZy1za3ktMzAwXT1cIiF0aGlzLnNweFNlbGVjdGVkICYmICF0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuYmctZ3JheS0yMDBdPVwidGhpcy5zcHhEaXNhYmxlZCAmJiAhdGhpcy5zcHhTZWxlY3RlZFwiXG4gICAgW2NsYXNzLmJnLWdyYXktNDAwXT1cInRoaXMuc3B4RGlzYWJsZWQgJiYgdGhpcy5zcHhTZWxlY3RlZFwiXG4gICAgW2NsYXNzLmN1cnNvci1ub3QtYWxsb3dlZF09XCJ0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3Mub3BhY2l0eS02MF09XCJ0aGlzLnNweERpc2FibGVkXCJcbiAgICBbY2xhc3MuYmctdGVhbC01MDBdPVwidGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmZvbnQtYm9sZF09XCJ0aGlzLnNweFNlbGVjdGVkXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCItMVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2J1dHRvbj5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhTdWdnZXN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4RGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc3B4U2VsZWN0ZWQgPSBmYWxzZTtcbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXN1Z2dlc3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1zdWdnZXN0aW9uL3NweC1zdWdnZXN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF5QmpELE1BQU0sT0FBTyxzQkFBc0I7SUF2Qm5DO1FBd0JXLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FDOUI7OEdBTFksc0JBQXNCO2tHQUF0QixzQkFBc0Isb01BcEJ2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O2NBa0JFOzsyRkFFRCxzQkFBc0I7a0JBdkJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQWtCRTtpQkFDYjs4QkFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtc3VnZ2VzdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic3B4LXN1Z2dlc3Rpb24gYmxvY2sgcm91bmRlZCB0ZXh0LWdyYXktOTAwIHRleHQtc20gcC0zIHctZnVsbCB0ZXh0LWxlZnQgdHJ1bmNhdGUgb3V0bGluZS1ub25lXCJcbiAgICBbY2xhc3MuYmctc2t5LTEwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmZvY3VzOnJpbmctc2t5LTMwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmhvdmVyOmJnLXNreS0zMDBdPVwiIXRoaXMuc3B4U2VsZWN0ZWQgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5hY3RpdmU6Ymctc2t5LTMwMF09XCIhdGhpcy5zcHhTZWxlY3RlZCAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJnLWdyYXktMjAwXT1cInRoaXMuc3B4RGlzYWJsZWQgJiYgIXRoaXMuc3B4U2VsZWN0ZWRcIlxuICAgIFtjbGFzcy5iZy1ncmF5LTQwMF09XCJ0aGlzLnNweERpc2FibGVkICYmIHRoaXMuc3B4U2VsZWN0ZWRcIlxuICAgIFtjbGFzcy5jdXJzb3Itbm90LWFsbG93ZWRdPVwidGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLm9wYWNpdHktNjBdPVwidGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLmJnLXRlYWwtNTAwXT1cInRoaXMuc3B4U2VsZWN0ZWQgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5mb250LWJvbGRdPVwidGhpcy5zcHhTZWxlY3RlZFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGhpcy5zcHhUYWJiYWJsZSAmJiAhdGhpcy5zcHhEaXNhYmxlZCA/IDAgOiAtMVwiXG4gICAgW2NsYXNzLnJpbmctMl09XCJ0aGlzLnNweEZvY3VzZWQgJiYgdGhpcy5zcHhUYWJiYWJsZSAmJiAhdGhpcy5zcHhEaXNhYmxlZFwiXG4gICAgW2NsYXNzLnJpbmctb2Zmc2V0LTJdPVwidGhpcy5zcHhGb2N1c2VkICYmIHRoaXMuc3B4VGFiYmFibGUgJiYgIXRoaXMuc3B4RGlzYWJsZWRcIlxuICAgIFtjbGFzcy5yaW5nLWJsdWUtNTAwXT1cInRoaXMuc3B4Rm9jdXNlZCAmJiB0aGlzLnNweFRhYmJhYmxlICYmICF0aGlzLnNweERpc2FibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtZWxsaXBzaXMgb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuICAgIDwvYnV0dG9uPmAsXG59KVxuZXhwb3J0IGNsYXNzIFNweFN1Z2dlc3Rpb25Db21wb25lbnQge1xuICBASW5wdXQoKSBzcHhEaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBzcHhGb2N1c2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweFNlbGVjdGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNweFRhYmJhYmxlID0gZmFsc2U7XG59XG4iXX0=
@@ -49,7 +49,7 @@ export class SpxUpdateInfoComponent {
49
49
  <spx-input [formControl]="ctrlAppStoreVersion" [spxLabel]="txtAppStoreVersion | capitalize"
50
50
  [spxReadonly]="true"></spx-input>
51
51
  </div>
52
- </form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
52
+ </form>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }] }); }
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxUpdateInfoComponent, decorators: [{
55
55
  type: Component,
@@ -6,5 +6,4 @@ export * from './pattern.validator';
6
6
  export * from './required.validator';
7
7
  export * from './year-and-month.validator';
8
8
  export * from './spx-validate-control.component';
9
- export * from './spx-validation.module';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXgudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF4bGVuZ3RoLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21pbi52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9taW5sZW5ndGgudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcGF0dGVybi52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9yZXF1aXJlZC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi95ZWFyLWFuZC1tb250aC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtdmFsaWRhdGUtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcHgtdmFsaWRhdGlvbi5tb2R1bGUnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWF4LnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL21heGxlbmd0aC52YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9taW4udmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWlubGVuZ3RoLnZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3BhdHRlcm4udmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vcmVxdWlyZWQudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4veWVhci1hbmQtbW9udGgudmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50JztcbiJdfQ==
@@ -1,4 +1,6 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import { Component, Input } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
2
4
  import * as i0 from "@angular/core";
3
5
  import * as i1 from "@angular/common";
4
6
  export class SpxValidateControlComponent {
@@ -48,11 +50,14 @@ export class SpxValidateControlComponent {
48
50
  return this.control.errors && this.control.errors['past'];
49
51
  }
50
52
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidateControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxValidateControlComponent, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
53
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SpxValidateControlComponent, isStandalone: true, selector: "spx-validate-control", inputs: { control: "control", label: "label", submitTried: "submitTried" }, ngImport: i0, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
52
54
  }
53
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SpxValidateControlComponent, decorators: [{
54
56
  type: Component,
55
- args: [{ selector: 'spx-validate-control', template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>" }]
57
+ args: [{ selector: 'spx-validate-control', imports: [
58
+ CommonModule,
59
+ FormsModule,
60
+ ], standalone: true, template: "<ng-container *ngIf=\"control && control.errors && (control.touched || submitTried)\">\n <div *ngIf=\"maxLength\">'{{ label }}' is too long, the maximum length is {{ maxLengthRequiredLength }}.</div>\n <div *ngIf=\"minLength\">'{{ label }}' is too short, the minimum length is {{ minLengthRequiredLength }}.</div>\n <div *ngIf=\"max\">The value of '{{ label }}' is too high, the maximum is {{ maxRequiredMax }}.</div>\n <div *ngIf=\"min\">The value of '{{ label }}' is too low, the minimum is {{ minRequiredMin }}.</div>\n <div *ngIf=\"pattern\">The pattern of '{{ label }}' not valid.</div>\n <div *ngIf=\"required\">'{{ label }}' is required.</div>\n <div *ngIf=\"year\">Please choose a year between 1991 and the current year.</div>\n <div *ngIf=\"yearFuture\">Please choose a year between the current year and 2050.</div>\n <div *ngIf=\"month\">Please choose a valid month (a value between 01 and 12).</div>\n <div *ngIf=\"future\">The selected date may not be in the future.</div>\n <div *ngIf=\"past\">The selected date may not be in the past.</div>\n</ng-container>" }]
56
61
  }], propDecorators: { control: [{
57
62
  type: Input
58
63
  }], label: [{
@@ -60,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
60
65
  }], submitTried: [{
61
66
  type: Input
62
67
  }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9zcHgtdmFsaWRhdGUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBL0RVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLHdJQ1B4Qyw0akNBWWU7OzJGRExGLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBSXZCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3B4LXZhbGlkYXRlLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhWYWxpZGF0ZUNvbnRyb2xDb21wb25lbnQge1xuICBASW5wdXQoKSBjb250cm9sITogQWJzdHJhY3RDb250cm9sO1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgdW5rbm93bjtcbiAgQElucHV0KCkgc3VibWl0VHJpZWQhOiBib29sZWFuO1xuXG4gIGdldCBtYXhMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ107XG4gIH1cblxuICBnZXQgbWF4TGVuZ3RoUmVxdWlyZWRMZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4TGVuZ3RoICYmIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4bGVuZ3RoJ11bJ3JlcXVpcmVkTGVuZ3RoJ107XG4gIH1cblxuICBnZXQgbWluTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbmxlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1pbkxlbmd0aFJlcXVpcmVkTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLm1pbkxlbmd0aCAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbmxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXgnXTtcbiAgfVxuXG4gIGdldCBtYXhSZXF1aXJlZE1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5tYXggJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXgnXVsnbWF4J107XG4gIH1cblxuICBnZXQgbWluKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbiddO1xuICB9XG5cbiAgZ2V0IG1pblJlcXVpcmVkTWluKCkge1xuICAgIHJldHVybiB0aGlzLm1pbiAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21pbiddWydtaW4nXTtcbiAgfVxuXG4gIGdldCBwYXR0ZXJuKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3BhdHRlcm4nXTtcbiAgfVxuXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydyZXF1aXJlZCddO1xuICB9XG5cbiAgZ2V0IHllYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sneWVhciddO1xuICB9XG5cbiAgZ2V0IHllYXJGdXR1cmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sneWVhckZ1dHVyZSddO1xuICB9XG5cbiAgZ2V0IG1vbnRoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21vbnRoJ107XG4gIH1cblxuICBnZXQgZnV0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ2Z1dHVyZSddO1xuICB9XG5cbiAgZ2V0IHBhc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sncGFzdCddO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbCAmJiBjb250cm9sLmVycm9ycyAmJiAoY29udHJvbC50b3VjaGVkIHx8IHN1Ym1pdFRyaWVkKVwiPlxuICA8ZGl2ICpuZ0lmPVwibWF4TGVuZ3RoXCI+J3t7IGxhYmVsIH19JyBpcyB0b28gbG9uZywgdGhlIG1heGltdW0gbGVuZ3RoIGlzIHt7IG1heExlbmd0aFJlcXVpcmVkTGVuZ3RoIH19LjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwibWluTGVuZ3RoXCI+J3t7IGxhYmVsIH19JyBpcyB0b28gc2hvcnQsIHRoZSBtaW5pbXVtIGxlbmd0aCBpcyB7eyBtaW5MZW5ndGhSZXF1aXJlZExlbmd0aCB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIm1heFwiPlRoZSB2YWx1ZSBvZiAne3sgbGFiZWwgfX0nIGlzIHRvbyBoaWdoLCB0aGUgbWF4aW11bSBpcyB7eyBtYXhSZXF1aXJlZE1heCB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIm1pblwiPlRoZSB2YWx1ZSBvZiAne3sgbGFiZWwgfX0nIGlzIHRvbyBsb3csIHRoZSBtaW5pbXVtIGlzIHt7IG1pblJlcXVpcmVkTWluIH19LjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicGF0dGVyblwiPlRoZSBwYXR0ZXJuIG9mICd7eyBsYWJlbCB9fScgbm90IHZhbGlkLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicmVxdWlyZWRcIj4ne3sgbGFiZWwgfX0nIGlzIHJlcXVpcmVkLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwieWVhclwiPlBsZWFzZSBjaG9vc2UgYSB5ZWFyIGJldHdlZW4gMTk5MSBhbmQgdGhlIGN1cnJlbnQgeWVhci48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInllYXJGdXR1cmVcIj5QbGVhc2UgY2hvb3NlIGEgeWVhciBiZXR3ZWVuIHRoZSBjdXJyZW50IHllYXIgYW5kIDIwNTAuPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtb250aFwiPlBsZWFzZSBjaG9vc2UgYSB2YWxpZCBtb250aCAoYSB2YWx1ZSBiZXR3ZWVuIDAxIGFuZCAxMikuPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJmdXR1cmVcIj5UaGUgc2VsZWN0ZWQgZGF0ZSBtYXkgbm90IGJlIGluIHRoZSBmdXR1cmUuPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJwYXN0XCI+VGhlIHNlbGVjdGVkIGRhdGUgbWF5IG5vdCBiZSBpbiB0aGUgcGFzdC48L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LXZhbGlkYXRlLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC12YWxpZGF0aW9uL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NvZnRwYWsvY29tcG9uZW50cy9zcHgtdmFsaWRhdGlvbi9zcHgtdmFsaWRhdGUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFtQixXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzlELE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBL0RVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDRKQ2J4Qyw0akNBWWUsMkNESlgsWUFBWSxrSUFDWixXQUFXOzsyRkFJRiwyQkFBMkI7a0JBVHZDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBRXZCO3dCQUNQLFlBQVk7d0JBQ1osV0FBVztxQkFDWixjQUNXLElBQUk7OEJBR1AsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC12YWxpZGF0ZS1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NweC12YWxpZGF0ZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU3B4VmFsaWRhdGVDb250cm9sQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IHVua25vd247XG4gIEBJbnB1dCgpIHN1Ym1pdFRyaWVkITogYm9vbGVhbjtcblxuICBnZXQgbWF4TGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1heExlbmd0aFJlcXVpcmVkTGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLm1heExlbmd0aCAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddWydyZXF1aXJlZExlbmd0aCddO1xuICB9XG5cbiAgZ2V0IG1pbkxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXTtcbiAgfVxuXG4gIGdldCBtaW5MZW5ndGhSZXF1aXJlZExlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5taW5MZW5ndGggJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXVsncmVxdWlyZWRMZW5ndGgnXTtcbiAgfVxuXG4gIGdldCBtYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4J107XG4gIH1cblxuICBnZXQgbWF4UmVxdWlyZWRNYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMubWF4ICYmIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1snbWF4J11bJ21heCddO1xuICB9XG5cbiAgZ2V0IG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW4nXTtcbiAgfVxuXG4gIGdldCBtaW5SZXF1aXJlZE1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5taW4gJiYgdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW4nXVsnbWluJ107XG4gIH1cblxuICBnZXQgcGF0dGVybigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydwYXR0ZXJuJ107XG4gIH1cblxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5lcnJvcnMgJiYgdGhpcy5jb250cm9sLmVycm9yc1sncmVxdWlyZWQnXTtcbiAgfVxuXG4gIGdldCB5ZWFyKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3llYXInXTtcbiAgfVxuXG4gIGdldCB5ZWFyRnV0dXJlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3llYXJGdXR1cmUnXTtcbiAgfVxuXG4gIGdldCBtb250aCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydtb250aCddO1xuICB9XG5cbiAgZ2V0IGZ1dHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9ycyAmJiB0aGlzLmNvbnRyb2wuZXJyb3JzWydmdXR1cmUnXTtcbiAgfVxuXG4gIGdldCBwYXN0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuZXJyb3JzICYmIHRoaXMuY29udHJvbC5lcnJvcnNbJ3Bhc3QnXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wgJiYgY29udHJvbC5lcnJvcnMgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCBzdWJtaXRUcmllZClcIj5cbiAgPGRpdiAqbmdJZj1cIm1heExlbmd0aFwiPid7eyBsYWJlbCB9fScgaXMgdG9vIGxvbmcsIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyB7eyBtYXhMZW5ndGhSZXF1aXJlZExlbmd0aCB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIm1pbkxlbmd0aFwiPid7eyBsYWJlbCB9fScgaXMgdG9vIHNob3J0LCB0aGUgbWluaW11bSBsZW5ndGggaXMge3sgbWluTGVuZ3RoUmVxdWlyZWRMZW5ndGggfX0uPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtYXhcIj5UaGUgdmFsdWUgb2YgJ3t7IGxhYmVsIH19JyBpcyB0b28gaGlnaCwgdGhlIG1heGltdW0gaXMge3sgbWF4UmVxdWlyZWRNYXggfX0uPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJtaW5cIj5UaGUgdmFsdWUgb2YgJ3t7IGxhYmVsIH19JyBpcyB0b28gbG93LCB0aGUgbWluaW11bSBpcyB7eyBtaW5SZXF1aXJlZE1pbiB9fS48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInBhdHRlcm5cIj5UaGUgcGF0dGVybiBvZiAne3sgbGFiZWwgfX0nIG5vdCB2YWxpZC48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInJlcXVpcmVkXCI+J3t7IGxhYmVsIH19JyBpcyByZXF1aXJlZC48L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInllYXJcIj5QbGVhc2UgY2hvb3NlIGEgeWVhciBiZXR3ZWVuIDE5OTEgYW5kIHRoZSBjdXJyZW50IHllYXIuPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJ5ZWFyRnV0dXJlXCI+UGxlYXNlIGNob29zZSBhIHllYXIgYmV0d2VlbiB0aGUgY3VycmVudCB5ZWFyIGFuZCAyMDUwLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwibW9udGhcIj5QbGVhc2UgY2hvb3NlIGEgdmFsaWQgbW9udGggKGEgdmFsdWUgYmV0d2VlbiAwMSBhbmQgMTIpLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiZnV0dXJlXCI+VGhlIHNlbGVjdGVkIGRhdGUgbWF5IG5vdCBiZSBpbiB0aGUgZnV0dXJlLjwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwicGFzdFwiPlRoZSBzZWxlY3RlZCBkYXRlIG1heSBub3QgYmUgaW4gdGhlIHBhc3QuPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=