otimus-library 0.2.95 → 0.2.97

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 (80) hide show
  1. package/fesm2022/otimus-library.mjs +336 -279
  2. package/fesm2022/otimus-library.mjs.map +1 -1
  3. package/index.d.ts +587 -5
  4. package/package.json +5 -7
  5. package/esm2022/lib/components/oc-accordion/oc-accordion.component.mjs +0 -48
  6. package/esm2022/lib/components/oc-accordion-item/oc-accordion-item.component.mjs +0 -35
  7. package/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +0 -373
  8. package/esm2022/lib/components/oc-badge/oc-badge.component.mjs +0 -30
  9. package/esm2022/lib/components/oc-button-menu/oc-button-menu.component.mjs +0 -45
  10. package/esm2022/lib/components/oc-checkbox/oc-checkbox.component.mjs +0 -140
  11. package/esm2022/lib/components/oc-chip/oc-chip.component.mjs +0 -48
  12. package/esm2022/lib/components/oc-date-select/data/months.json +0 -44
  13. package/esm2022/lib/components/oc-date-select/oc-date-select.component.mjs +0 -128
  14. package/esm2022/lib/components/oc-filter/oc-filter.component.mjs +0 -39
  15. package/esm2022/lib/components/oc-input/oc-input.component.mjs +0 -97
  16. package/esm2022/lib/components/oc-key-value/oc-key-value.component.mjs +0 -31
  17. package/esm2022/lib/components/oc-log/oc-log.component.mjs +0 -22
  18. package/esm2022/lib/components/oc-menu/oc-menu.component.mjs +0 -81
  19. package/esm2022/lib/components/oc-message/oc-message.component.mjs +0 -52
  20. package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +0 -85
  21. package/esm2022/lib/components/oc-modal-footer/oc-modal-footer.component.mjs +0 -23
  22. package/esm2022/lib/components/oc-not-found/oc-not-found.component.mjs +0 -11
  23. package/esm2022/lib/components/oc-pagination/oc-pagination.component.mjs +0 -49
  24. package/esm2022/lib/components/oc-profile/oc-profile.component.mjs +0 -38
  25. package/esm2022/lib/components/oc-progress/oc-progress.component.mjs +0 -35
  26. package/esm2022/lib/components/oc-step/oc-step.component.mjs +0 -58
  27. package/esm2022/lib/components/oc-stepper/oc-stepper.component.mjs +0 -94
  28. package/esm2022/lib/components/oc-tab/oc-tab.component.mjs +0 -20
  29. package/esm2022/lib/components/oc-tabs/oc-tabs.component.mjs +0 -42
  30. package/esm2022/lib/components/oc-toast/oc-toast.component.mjs +0 -17
  31. package/esm2022/lib/components/oc-toggle/oc-toggle.component.mjs +0 -40
  32. package/esm2022/lib/directives/oc-tooltip/oc-tooltip.directive.mjs +0 -160
  33. package/esm2022/lib/interfaces/oc-autocomplete.mjs +0 -2
  34. package/esm2022/lib/interfaces/oc-menu.mjs +0 -2
  35. package/esm2022/lib/interfaces/oc-style-theme.mjs +0 -2
  36. package/esm2022/lib/interfaces/oc-toast.mjs +0 -2
  37. package/esm2022/lib/otimus-library.component.mjs +0 -19
  38. package/esm2022/lib/otimus-library.service.mjs +0 -14
  39. package/esm2022/lib/services/internationalization.service.mjs +0 -68
  40. package/esm2022/lib/services/oc-toast.service.mjs +0 -81
  41. package/esm2022/lib/services/style-theme.service.mjs +0 -21
  42. package/esm2022/otimus-library.mjs +0 -5
  43. package/esm2022/public-api.mjs +0 -34
  44. package/lib/components/oc-accordion/oc-accordion.component.d.ts +0 -18
  45. package/lib/components/oc-accordion-item/oc-accordion-item.component.d.ts +0 -12
  46. package/lib/components/oc-autocomplete/oc-autocomplete.component.d.ts +0 -83
  47. package/lib/components/oc-badge/oc-badge.component.d.ts +0 -11
  48. package/lib/components/oc-button-menu/oc-button-menu.component.d.ts +0 -14
  49. package/lib/components/oc-checkbox/oc-checkbox.component.d.ts +0 -37
  50. package/lib/components/oc-chip/oc-chip.component.d.ts +0 -15
  51. package/lib/components/oc-date-select/oc-date-select.component.d.ts +0 -26
  52. package/lib/components/oc-filter/oc-filter.component.d.ts +0 -17
  53. package/lib/components/oc-input/oc-input.component.d.ts +0 -31
  54. package/lib/components/oc-key-value/oc-key-value.component.d.ts +0 -16
  55. package/lib/components/oc-log/oc-log.component.d.ts +0 -7
  56. package/lib/components/oc-menu/oc-menu.component.d.ts +0 -20
  57. package/lib/components/oc-message/oc-message.component.d.ts +0 -17
  58. package/lib/components/oc-modal/oc-modal.component.d.ts +0 -30
  59. package/lib/components/oc-modal-footer/oc-modal-footer.component.d.ts +0 -8
  60. package/lib/components/oc-not-found/oc-not-found.component.d.ts +0 -5
  61. package/lib/components/oc-pagination/oc-pagination.component.d.ts +0 -14
  62. package/lib/components/oc-profile/oc-profile.component.d.ts +0 -12
  63. package/lib/components/oc-progress/oc-progress.component.d.ts +0 -12
  64. package/lib/components/oc-step/oc-step.component.d.ts +0 -24
  65. package/lib/components/oc-stepper/oc-stepper.component.d.ts +0 -25
  66. package/lib/components/oc-tab/oc-tab.component.d.ts +0 -8
  67. package/lib/components/oc-tabs/oc-tabs.component.d.ts +0 -18
  68. package/lib/components/oc-toast/oc-toast.component.d.ts +0 -8
  69. package/lib/components/oc-toggle/oc-toggle.component.d.ts +0 -14
  70. package/lib/directives/oc-tooltip/oc-tooltip.directive.d.ts +0 -24
  71. package/lib/interfaces/oc-autocomplete.d.ts +0 -9
  72. package/lib/interfaces/oc-menu.d.ts +0 -9
  73. package/lib/interfaces/oc-style-theme.d.ts +0 -2
  74. package/lib/interfaces/oc-toast.d.ts +0 -8
  75. package/lib/otimus-library.component.d.ts +0 -5
  76. package/lib/otimus-library.service.d.ts +0 -6
  77. package/lib/services/internationalization.service.d.ts +0 -17
  78. package/lib/services/oc-toast.service.d.ts +0 -14
  79. package/lib/services/style-theme.service.d.ts +0 -8
  80. package/public-api.d.ts +0 -30
@@ -1,48 +0,0 @@
1
- import { Component, ContentChildren, Input } from '@angular/core';
2
- import { OcAccordionItemComponent } from '../oc-accordion-item/oc-accordion-item.component';
3
- import { CommonModule } from '@angular/common';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../services/style-theme.service";
6
- export class OcAccordionComponent {
7
- constructor(styleThemeService) {
8
- this.styleThemeService = styleThemeService;
9
- this.ocAlternate = true;
10
- this.ocStyle = 'otimus';
11
- }
12
- ngAfterViewInit() {
13
- this.items.forEach((item, i) => {
14
- item.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
15
- item.closeAllItems.subscribe(() => this.closeAllItems());
16
- });
17
- }
18
- closeAllItems() {
19
- if (this.ocAlternate) {
20
- this.items.forEach((item) => (item.ocIsOpen = false));
21
- }
22
- }
23
- alternateToIndex(index) {
24
- this.items.forEach((item, i) => {
25
- if (i === index) {
26
- item.ocIsOpen = true;
27
- return;
28
- }
29
- item.ocIsOpen = false;
30
- });
31
- }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAccordionComponent, deps: [{ token: i1.StyleThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OcAccordionComponent, isStandalone: true, selector: "oc-accordion", inputs: { ocAlternate: "ocAlternate", ocCurrentIndex: "ocCurrentIndex", ocStyle: "ocStyle" }, queries: [{ propertyName: "items", predicate: OcAccordionItemComponent }], ngImport: i0, template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".oc-accordion{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAccordionComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'oc-accordion', standalone: true, imports: [CommonModule, OcAccordionItemComponent], template: "<div>\n <ng-content></ng-content>\n</div>", styles: [".oc-accordion{display:flex;flex-direction:column}\n"] }]
38
- }], ctorParameters: () => [{ type: i1.StyleThemeService }], propDecorators: { items: [{
39
- type: ContentChildren,
40
- args: [OcAccordionItemComponent]
41
- }], ocAlternate: [{
42
- type: Input
43
- }], ocCurrentIndex: [{
44
- type: Input
45
- }], ocStyle: [{
46
- type: Input
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hY2NvcmRpb24vb2MtYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hY2NvcmRpb24vb2MtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUE7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBOzs7QUFXOUMsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUovQyxnQkFBVyxHQUFZLElBQUksQ0FBQTtRQUUzQixZQUFPLEdBQXFCLFFBQVEsQ0FBQTtJQUVjLENBQUM7SUFFNUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUE7WUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDMUQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFBO2dCQUNwQixPQUFNO1lBQ1IsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0E3QlUsb0JBQW9CO21HQUFwQixvQkFBb0IsNExBQ2Qsd0JBQXdCLDZCQ2QzQyw0Q0FFTSw0R0RPTSxZQUFZOzs0RkFJWCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQztzRkFLTixLQUFLO3NCQUEvQyxlQUFlO3VCQUFDLHdCQUF3QjtnQkFDaEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9jQWNjb3JkaW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL29jLWFjY29yZGlvbi1pdGVtL29jLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE9jU3R5bGVUaGVtZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLXN0eWxlLXRoZW1lJ1xuaW1wb3J0IHsgU3R5bGVUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdHlsZS10aGVtZS5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1hY2NvcmRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPY0FjY29yZGlvbkl0ZW1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29jLWFjY29yZGlvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIE9jQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oT2NBY2NvcmRpb25JdGVtQ29tcG9uZW50KSBpdGVtcyE6IFF1ZXJ5TGlzdDxPY0FjY29yZGlvbkl0ZW1Db21wb25lbnQ+XG4gIEBJbnB1dCgpIG9jQWx0ZXJuYXRlOiBib29sZWFuID0gdHJ1ZVxuICBASW5wdXQoKSBvY0N1cnJlbnRJbmRleD86IG51bWJlclxuICBASW5wdXQoKSBvY1N0eWxlOiBPY1N0eWxlVGhlbWVUeXBlID0gJ290aW11cydcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0eWxlVGhlbWVTZXJ2aWNlOiBTdHlsZVRoZW1lU2VydmljZSkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICBpdGVtLm9jU3R5bGUgPSB0aGlzLnN0eWxlVGhlbWVTZXJ2aWNlLmdldFN0eWxlVGhlbWUoKSB8fCB0aGlzLm9jU3R5bGVcbiAgICAgIGl0ZW0uY2xvc2VBbGxJdGVtcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZUFsbEl0ZW1zKCkpXG4gICAgfSlcbiAgfVxuXG4gIGNsb3NlQWxsSXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2NBbHRlcm5hdGUpIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0ub2NJc09wZW4gPSBmYWxzZSkpXG4gICAgfVxuICB9XG5cbiAgYWx0ZXJuYXRlVG9JbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XG4gICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgaXRlbS5vY0lzT3BlbiA9IHRydWVcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpdGVtLm9jSXNPcGVuID0gZmFsc2VcbiAgICB9KVxuICB9XG59XG4iLCI8ZGl2PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=
@@ -1,35 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class OcAccordionItemComponent {
6
- constructor() {
7
- this.ocIsOpen = false;
8
- this.ocTitle = '';
9
- this.ocStyle = 'otimus';
10
- this.closeAllItems = new EventEmitter();
11
- }
12
- toggle() {
13
- if (this.ocIsOpen) {
14
- this.ocIsOpen = !this.ocIsOpen;
15
- return;
16
- }
17
- this.closeAllItems.emit();
18
- this.ocIsOpen = !this.ocIsOpen;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAccordionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcAccordionItemComponent, isStandalone: true, selector: "oc-accordion-item", inputs: { ocIsOpen: "ocIsOpen", ocTitle: "ocTitle", ocStyle: "ocStyle" }, outputs: { closeAllItems: "closeAllItems" }, ngImport: i0, template: "<div class=\"oc-accordion-item\" [ngClass]=\"{\n 'shui': ocStyle === 'shui'\n}\">\n <div class=\"item-header\" [ngClass]=\"{ open: ocIsOpen }\" (click)=\"toggle()\">\n @if (ocTitle) {\n <h3>{{ ocTitle }}</h3>\n } @else {\n <ng-content select=\"[ocHeader]\"></ng-content>\n }\n <span class=\"material-symbols-outlined\" style=\"user-select: none;\">\n keyboard_control_key\n </span>\n </div>\n @if (ocIsOpen) {\n <div class=\"oc-content\" [ngClass]=\"{\n open: ocIsOpen\n }\">\n <ng-content></ng-content>\n </div>\n }\n</div>", styles: [".oc-accordion-item{width:100%}.oc-accordion-item .item-header{cursor:pointer;transition:.1s ease;display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-radius:1rem}.oc-accordion-item .item-header h3{color:#353535;padding:0;margin:0}.oc-accordion-item .item-header span{transition:.3s ease;color:#7e8485}.oc-accordion-item .item-header:hover{background-color:#f8f9ff}.oc-accordion-item .item-header:active{transform:scale(.99)}.oc-accordion-item .item-header.open{background-color:#f8f9ff;border-bottom-left-radius:0;border-bottom-right-radius:0}.oc-accordion-item .item-header.open h3{color:#5505a2}.oc-accordion-item .item-header.open span{color:#00dda3;transform:rotate(180deg)}.oc-accordion-item .closed,.oc-accordion-item closed *{display:none}.oc-accordion-item .oc-content{animation:show-up .15s ease;padding:2rem 1.5rem 2.5rem;border-radius:0 0 16px 16px}.oc-accordion-item .oc-content.open{background-color:#f8f9ff}@keyframes show-up{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.oc-accordion-item.shui{width:100%}.oc-accordion-item.shui .item-header{border-radius:0}.oc-accordion-item.shui .item-header h3{color:#000000bf}.oc-accordion-item.shui .item-header span{color:#7d7d7d}.oc-accordion-item.shui .item-header:hover,.oc-accordion-item.shui .item-header.open{background-color:#f5f5f5}.oc-accordion-item.shui .item-header.open h3{color:#0169b2}.oc-accordion-item.shui .item-header.open span{color:#099}.oc-accordion-item.shui .oc-content{border-radius:0}.oc-accordion-item.shui .oc-content.open{background-color:#f5f5f566}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAccordionItemComponent, decorators: [{
24
- type: Component,
25
- args: [{ selector: 'oc-accordion-item', standalone: true, imports: [CommonModule], template: "<div class=\"oc-accordion-item\" [ngClass]=\"{\n 'shui': ocStyle === 'shui'\n}\">\n <div class=\"item-header\" [ngClass]=\"{ open: ocIsOpen }\" (click)=\"toggle()\">\n @if (ocTitle) {\n <h3>{{ ocTitle }}</h3>\n } @else {\n <ng-content select=\"[ocHeader]\"></ng-content>\n }\n <span class=\"material-symbols-outlined\" style=\"user-select: none;\">\n keyboard_control_key\n </span>\n </div>\n @if (ocIsOpen) {\n <div class=\"oc-content\" [ngClass]=\"{\n open: ocIsOpen\n }\">\n <ng-content></ng-content>\n </div>\n }\n</div>", styles: [".oc-accordion-item{width:100%}.oc-accordion-item .item-header{cursor:pointer;transition:.1s ease;display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-radius:1rem}.oc-accordion-item .item-header h3{color:#353535;padding:0;margin:0}.oc-accordion-item .item-header span{transition:.3s ease;color:#7e8485}.oc-accordion-item .item-header:hover{background-color:#f8f9ff}.oc-accordion-item .item-header:active{transform:scale(.99)}.oc-accordion-item .item-header.open{background-color:#f8f9ff;border-bottom-left-radius:0;border-bottom-right-radius:0}.oc-accordion-item .item-header.open h3{color:#5505a2}.oc-accordion-item .item-header.open span{color:#00dda3;transform:rotate(180deg)}.oc-accordion-item .closed,.oc-accordion-item closed *{display:none}.oc-accordion-item .oc-content{animation:show-up .15s ease;padding:2rem 1.5rem 2.5rem;border-radius:0 0 16px 16px}.oc-accordion-item .oc-content.open{background-color:#f8f9ff}@keyframes show-up{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.oc-accordion-item.shui{width:100%}.oc-accordion-item.shui .item-header{border-radius:0}.oc-accordion-item.shui .item-header h3{color:#000000bf}.oc-accordion-item.shui .item-header span{color:#7d7d7d}.oc-accordion-item.shui .item-header:hover,.oc-accordion-item.shui .item-header.open{background-color:#f5f5f5}.oc-accordion-item.shui .item-header.open h3{color:#0169b2}.oc-accordion-item.shui .item-header.open span{color:#099}.oc-accordion-item.shui .oc-content{border-radius:0}.oc-accordion-item.shui .oc-content.open{background-color:#f5f5f566}\n"] }]
26
- }], propDecorators: { ocIsOpen: [{
27
- type: Input
28
- }], ocTitle: [{
29
- type: Input
30
- }], ocStyle: [{
31
- type: Input
32
- }], closeAllItems: [{
33
- type: Output
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWFjY29yZGlvbi1pdGVtL29jLWFjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hY2NvcmRpb24taXRlbS9vYy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTs7O0FBVXRFLE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRVyxhQUFRLEdBQVksS0FBSyxDQUFBO1FBQ3pCLFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsWUFBTyxHQUFxQixRQUFRLENBQUE7UUFDbkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0tBVzdDO0lBVFcsTUFBTTtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFBO1lBQzlCLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQTtJQUNoQyxDQUFDOytHQWJVLHdCQUF3QjttR0FBeEIsd0JBQXdCLG9NQ1hyQyxzakJBb0JNLDJtRERiTSxZQUFZOzs0RkFJWCx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFLZCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE9jU3R5bGVUaGVtZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLXN0eWxlLXRoZW1lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvYy1hY2NvcmRpb24taXRlbScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vb2MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPY0FjY29yZGlvbkl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKSBvY0lzT3BlbjogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIG9jVGl0bGU6IHN0cmluZyA9ICcnXG4gIEBJbnB1dCgpIG9jU3R5bGU6IE9jU3R5bGVUaGVtZVR5cGUgPSAnb3RpbXVzJ1xuICBAT3V0cHV0KCkgY2xvc2VBbGxJdGVtcyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2NJc09wZW4pIHtcbiAgICAgIHRoaXMub2NJc09wZW4gPSAhdGhpcy5vY0lzT3BlblxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuY2xvc2VBbGxJdGVtcy5lbWl0KClcbiAgICB0aGlzLm9jSXNPcGVuID0gIXRoaXMub2NJc09wZW5cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwib2MtYWNjb3JkaW9uLWl0ZW1cIiBbbmdDbGFzc109XCJ7XG4gICdzaHVpJzogb2NTdHlsZSA9PT0gJ3NodWknXG59XCI+XG4gIDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiIFtuZ0NsYXNzXT1cInsgb3Blbjogb2NJc09wZW4gfVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgIEBpZiAob2NUaXRsZSkge1xuICAgIDxoMz57eyBvY1RpdGxlIH19PC9oMz5cbiAgICB9IEBlbHNlIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2NIZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgIH1cbiAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIiBzdHlsZT1cInVzZXItc2VsZWN0OiBub25lO1wiPlxuICAgICAga2V5Ym9hcmRfY29udHJvbF9rZXlcbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuICBAaWYgKG9jSXNPcGVuKSB7XG4gIDxkaXYgY2xhc3M9XCJvYy1jb250ZW50XCIgW25nQ2xhc3NdPVwie1xuICAgIG9wZW46IG9jSXNPcGVuXG4gIH1cIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICB9XG48L2Rpdj4iXX0=
@@ -1,373 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild, ViewChildren, } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { InternationalizationService } from '../../services/internationalization.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../services/internationalization.service";
7
- import * as i2 from "../../services/style-theme.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@angular/forms";
10
- export class OcAutocompleteComponent {
11
- constructor(renderer, el, translateService, styleThemeService, cdr) {
12
- this.renderer = renderer;
13
- this.el = el;
14
- this.translateService = translateService;
15
- this.styleThemeService = styleThemeService;
16
- this.cdr = cdr;
17
- this._ocData = [];
18
- this.ocSize = 'medium';
19
- this.ocValue = '';
20
- this.ocClearOnChange = false;
21
- this.ocRequired = false;
22
- this.ocAllowNotListedValue = false;
23
- this.ocLoading = false;
24
- this.ocSemanticLike = false; // deprecated. Prefer using ocStyleTheme instead
25
- this.ocStyle = 'otimus';
26
- this.iconSize = 'medium';
27
- this.ocSelectByTyping = true;
28
- this.ocDisabled = false;
29
- this.ocType = 'default';
30
- this.ocHasDeleteButton = false;
31
- this.ocEnableKeyboard = false;
32
- this.ocValueChange = new EventEmitter();
33
- this.ocChange = new EventEmitter();
34
- this.ocCounterSelectChange = new EventEmitter();
35
- this.ocOptionNotFound = new EventEmitter();
36
- this.ocClick = new EventEmitter();
37
- this.hasSuffix = false;
38
- this.hasPrefix = false;
39
- this.isOptionsShown = false;
40
- this.filteredData = [];
41
- this.selectedValue = {
42
- name: '',
43
- value: null,
44
- };
45
- this.selectedIndex = -1;
46
- }
47
- set ocData(value) {
48
- this._ocData = value;
49
- this.filteredData = value;
50
- if (this.ocSelectByTyping && this.ocValue) {
51
- const found = value.find((el) => el.value == this.ocValue);
52
- if (found) {
53
- this.selectedValue = found;
54
- this.ocValue = found.name;
55
- }
56
- }
57
- this.cdr.detectChanges(); // Força a atualização
58
- }
59
- get ocData() {
60
- return this._ocData;
61
- }
62
- get computedWidth() {
63
- return this.ocWidth ? this.ocWidth : null;
64
- }
65
- get computedMinWidth() {
66
- return this.ocMinWidth || '0';
67
- }
68
- get computedMaxWidth() {
69
- return this.ocMaxWidth || '100%';
70
- }
71
- ngOnChanges(changes) {
72
- if (this.ocPrefix) {
73
- this.hasPrefix = true;
74
- }
75
- if (this.ocSuffix) {
76
- this.hasSuffix = true;
77
- }
78
- this.formatOcValueType();
79
- this.loadOptions();
80
- this.cdr.detectChanges();
81
- }
82
- ngOnInit() {
83
- if (this.ocValue === undefined) {
84
- this.ocValue = null;
85
- }
86
- }
87
- ngAfterViewInit() {
88
- this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle;
89
- if (this.ocPrefix) {
90
- this.hasPrefix = true;
91
- }
92
- if (this.ocSuffix) {
93
- this.hasSuffix = true;
94
- }
95
- this.formatOcValueType();
96
- this.loadOptions();
97
- this.translateService.getTranslationsByLanguage();
98
- this.cdr.detectChanges();
99
- }
100
- ngAfterContentChecked() {
101
- if (this.ocPrefix) {
102
- this.hasPrefix = true;
103
- }
104
- if (this.ocSuffix) {
105
- this.hasSuffix = true;
106
- }
107
- }
108
- formatOcValueType() {
109
- if (this.ocValue) {
110
- return `${this.ocValue}`;
111
- }
112
- return null;
113
- }
114
- getTranslation(code) {
115
- return this.translateService.getTranslation(code);
116
- }
117
- loadOptions() {
118
- this.formatOcValueType();
119
- setTimeout(() => {
120
- this.filteredData = this.ocData;
121
- const inputBox = this.el.nativeElement;
122
- if (this.ocSelectByTyping && this.ocValue) {
123
- const found = this.ocData.find((el) => el.value == this.ocValue);
124
- if (found) {
125
- this.selectedValue = found;
126
- this.ocValue = found.name;
127
- }
128
- }
129
- if (inputBox) {
130
- const inputElement = inputBox.querySelector('input');
131
- if (inputElement && !this.ocSemanticLike && ['otimus', 'shui'].includes(this.ocStyle)) {
132
- this.renderer.setAttribute(inputElement, 'placeholder', '');
133
- this.renderer.setAttribute(inputElement, 'required', this.ocRequired.toString());
134
- }
135
- }
136
- }, 50);
137
- }
138
- closeOnClickOut() {
139
- this.renderer.listen('window', 'click', (e) => {
140
- const target = e.target;
141
- const insideCounterSelect = this.ocType === 'counterSelect' && target.closest('.oc-counter-select');
142
- if (this.input && this.options && !insideCounterSelect) {
143
- if (target !== this.input.nativeElement && target !== this.options.nativeElement) {
144
- this.isOptionsShown = false;
145
- this.findByTyping();
146
- }
147
- }
148
- });
149
- }
150
- findByTyping() {
151
- if (!this.ocValue || !this.ocValue?.toString().trim().length) {
152
- this.ocChange.emit(null);
153
- this.ocOptionNotFound.emit();
154
- }
155
- if (!this.ocSelectByTyping) {
156
- return;
157
- }
158
- const foundValue = this.ocData.find((data) => data.name.toString().toLowerCase() === this.ocValue?.toString().toLowerCase() ||
159
- data.value.toString().toLowerCase() === this.ocValue?.toString().toLowerCase());
160
- if (!foundValue) {
161
- this.selectedValue = {
162
- name: '',
163
- value: null,
164
- };
165
- if (!this.ocAllowNotListedValue) {
166
- this.ocValue = '';
167
- }
168
- this.filteredData = this.ocData;
169
- return;
170
- }
171
- this.selectedValue = foundValue;
172
- }
173
- filterData(name) {
174
- this.isOptionsShown = true;
175
- this.filteredData = this.ocData.filter((data) => {
176
- return this.getFormattedName(data.name)?.includes(this.getFormattedName(name));
177
- });
178
- }
179
- getFormattedName(str) {
180
- return str
181
- ?.toLowerCase()
182
- .normalize('NFD')
183
- .replace(/[\u0300-\u036f]/g, ''); // Remove marcas diacríticas
184
- }
185
- toggleOptions() {
186
- this.closeOnClickOut();
187
- this.isOptionsShown = !this.isOptionsShown;
188
- }
189
- selectValue(value) {
190
- const foundValue = this.ocData.find((data) => data.value == value);
191
- if (!foundValue) {
192
- this.selectedValue = {
193
- name: '',
194
- value: null,
195
- };
196
- this.selectedIndex = -1;
197
- this.cdr.detectChanges();
198
- return;
199
- }
200
- if (this.ocType === 'counterSelect') {
201
- foundValue.counter = (foundValue.counter || 0) + 1;
202
- this.emitCounterSelectChange();
203
- return;
204
- }
205
- this.selectedValue = foundValue;
206
- if (this.ocClearOnChange) {
207
- this.ocValue = '';
208
- this.filteredData = this.ocData;
209
- }
210
- else {
211
- this.ocValue = foundValue.name;
212
- }
213
- this.isOptionsShown = false;
214
- this.selectedIndex = this.filteredData.indexOf(foundValue);
215
- this.ocChange.emit(this.selectedValue.value);
216
- this.cdr.detectChanges();
217
- }
218
- clearValue() {
219
- this.selectedValue = {
220
- name: '',
221
- value: null,
222
- };
223
- this.ocValue = '';
224
- this.filteredData = this.ocData;
225
- }
226
- incrementCounter(option) {
227
- if (!option.counter) {
228
- option.counter = 1;
229
- }
230
- else {
231
- option.counter++;
232
- }
233
- this.emitCounterSelectChange();
234
- }
235
- decrementCounter(option) {
236
- if (option.counter && option.counter > 0) {
237
- option.counter--;
238
- this.emitCounterSelectChange();
239
- }
240
- }
241
- emitCounterSelectChange() {
242
- const hasMoreThanZero = this.ocData.filter((data) => !!data.counter);
243
- this.ocCounterSelectChange.emit(hasMoreThanZero);
244
- }
245
- moveSelection(delta) {
246
- this.selectedIndex = Math.max(0, Math.min(this.listOptionsElements.length - 1, this.selectedIndex + delta));
247
- const element = this.listOptionsElements.get(this.selectedIndex)?.nativeElement;
248
- if (element) {
249
- element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
250
- }
251
- }
252
- onKeyDown(event) {
253
- if (this.ocEnableKeyboard) {
254
- const e = event;
255
- if (this.isOptionsShown) {
256
- if (e.key === 'ArrowUp') {
257
- this.moveSelection(-1);
258
- }
259
- else if (e.key === 'ArrowDown') {
260
- this.moveSelection(1);
261
- }
262
- else if (e.key === 'Enter') {
263
- this.selectValue(this.filteredData[this.selectedIndex].value);
264
- }
265
- else {
266
- return;
267
- }
268
- }
269
- e.preventDefault();
270
- e.stopPropagation();
271
- }
272
- }
273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAutocompleteComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.InternationalizationService }, { token: i2.StyleThemeService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: OcAutocompleteComponent, isStandalone: true, selector: "oc-autocomplete", inputs: { ocData: "ocData", ocPlaceholder: "ocPlaceholder", ocError: "ocError", ocSize: "ocSize", ocValue: "ocValue", ocClearOnChange: "ocClearOnChange", ocWidth: "ocWidth", ocMinWidth: "ocMinWidth", ocMaxWidth: "ocMaxWidth", ocOptionsMaxHeight: "ocOptionsMaxHeight", ocOptionsWidth: "ocOptionsWidth", ocRequired: "ocRequired", ocMaxResults: "ocMaxResults", ocAllowNotListedValue: "ocAllowNotListedValue", ocNoAvailableOptionsText: "ocNoAvailableOptionsText", ocTypeForMoreResultsText: "ocTypeForMoreResultsText", ocLoading: "ocLoading", ocSemanticLike: "ocSemanticLike", ocStyle: "ocStyle", ocTabIndex: "ocTabIndex", iconSize: "iconSize", ocSelectByTyping: "ocSelectByTyping", ocDisabled: "ocDisabled", ocType: "ocType", ocHasDeleteButton: "ocHasDeleteButton", ocEnableKeyboard: "ocEnableKeyboard" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange", ocCounterSelectChange: "ocCounterSelectChange", ocOptionNotFound: "ocOptionNotFound", ocClick: "ocClick" }, host: { properties: { "style.width": "this.computedWidth", "style.min-width": "this.computedMinWidth", "style.max-width": "this.computedMaxWidth" } }, providers: [InternationalizationService], queries: [{ propertyName: "ocPrefix", first: true, predicate: ["ocPrefix"], descendants: true }, { propertyName: "ocSuffix", first: true, predicate: ["ocSuffix"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "options", first: true, predicate: ["options"], descendants: true }, { propertyName: "outerDiv", first: true, predicate: ["outerDiv"], descendants: true }, { propertyName: "listOptionsElements", predicate: ["listOptionsRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'oc-input-box': !ocSemanticLike && ocStyle === 'otimus',\n small: ocSize === 'small',\n large: ocSize === 'large',\n error: !!ocError,\n prefix: hasPrefix,\n suffix: hasSuffix || ocHasDeleteButton,\n shui: ocStyle === 'shui',\n 'shui-input-box': ocStyle === 'shui',\n }\"\n>\n <ng-content></ng-content>\n <input\n [placeholder]=\"ocPlaceholder\"\n #input\n (click)=\"toggleOptions(); ocClick.emit()\"\n type=\"text\"\n (input)=\"filterData(ocValue)\"\n [(ngModel)]=\"ocValue\"\n (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\"\n [ngClass]=\"{\n 'semantic-input': ocSemanticLike || ocStyle === 'semantic',\n }\"\n [tabindex]=\"ocTabIndex\"\n [disabled]=\"ocDisabled\"\n (keydown)=\"onKeyDown($event)\"\n />\n @if (!ocSemanticLike && ocStyle !== 'semantic') {\n <label>\n <span [innerHTML]=\"ocPlaceholder\"></span>\n @if (ocRequired) {\n <span class=\"oc color error\">*</span>\n }\n </label>\n }\n <small\n *ngIf=\"ocError\"\n class=\"error-msg\"\n >{{ ocError }}</small\n >\n <ng-content select=\"ocPrefix\"></ng-content>\n @if (ocHasDeleteButton && !ocDisabled) {\n <button\n class=\"oc-has-close-button oc suffix\"\n (click)=\"clearValue()\"\n [disabled]=\"ocDisabled\"\n >\n <span class=\"material-symbols-outlined\">backspace</span>\n </button>\n }\n <ng-content select=\"ocSuffix\"></ng-content>\n\n <div class=\"oc-options-div\">\n @if (isOptionsShown && !ocLoading && !ocDisabled) {\n <ul\n #options\n class=\"oc-options\"\n [ngStyle]=\"{\n 'max-height': ocOptionsMaxHeight,\n width: ocOptionsWidth,\n }\"\n >\n @if (!filteredData.length) {\n <li class=\"no-options\">\n {{ ocNoAvailableOptionsText || 'Nenhum resultado dispon\u00EDvel' }}\n </li>\n } @else {\n @for (data of filteredData; track data.value; let i = $index) {\n @if (!ocMaxResults || i < ocMaxResults) {\n <li class=\"li-option\" #listOptionsRef>\n <button\n type=\"button\"\n (click)=\"selectValue(data.value)\"\n [class.hover]=\"ocType !== 'counterSelect'\"\n [class.highlight]=\"selectedIndex === i\"\n >\n @if (data.icon) {\n <span\n class=\"material-symbols-outlined\"\n [ngStyle]=\"{\n 'font-size': data.iconSize || '1.2rem',\n }\"\n >\n {{ data.icon }}\n </span>\n }\n {{ data.name }}\n </button>\n @if (ocType === 'counterSelect') {\n <div class=\"oc-counter-select\">\n <button\n class=\"subtract\"\n (click)=\"decrementCounter(data)\"\n >\n <span class=\"material-symbols-outlined\">remove</span>\n </button>\n <p class=\"counter\">{{ data.counter || 0 }}</p>\n <button\n class=\"add\"\n (click)=\"incrementCounter(data)\"\n >\n <span class=\"material-symbols-outlined\">add</span>\n </button>\n </div>\n }\n </li>\n }\n }\n @if (ocMaxResults && filteredData.length > ocMaxResults) {\n <li class=\"no-options\">\n {{ ocTypeForMoreResultsText || 'Digite para ver mais resultados' }}\n </li>\n }\n }\n </ul>\n } @else if (isOptionsShown && ocLoading && !ocDisabled) {\n <div class=\"oc-options loader\">\n <span class=\"material-symbols-outlined loading\"> progress_activity </span>\n </div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box label .oc.color.error{font-weight:700;margin-left:.2rem}.oc-input-box.prefix .material-symbols-outlined,.oc-input-box.prefix .oc.suffix{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:1.75rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:1.75rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.oc-input-box.small input,.oc-input-box.small textarea,.oc-input-box.small select{padding:.3rem .7rem;border-radius:.5rem}.oc-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.oc-input-box.small.prefix label{padding:.45rem 2.5rem}.oc-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.oc-input-box.small.suffix label{padding:.45rem .7rem}.oc-input-box.small label{padding:.5rem .7rem}.oc-input-box.small input:focus~label,.oc-input-box.small input:not(:placeholder-shown)~label,.oc-input-box.small textarea:focus~label,.oc-input-box.small textarea:not(:placeholder-shown)~label,.oc-input-box.small select:focus~label,.oc-input-box.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box.large input,.oc-input-box.large textarea,.oc-input-box.large select{padding:1rem;border-radius:1rem}.oc-input-box.large label,.oc-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.oc-input-box.large.prefix input{padding-left:2.5rem}.oc-input-box.large.prefix label{padding:1.1rem 2.5rem}.oc-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.oc-input-box.large.suffix input{padding-right:2.5rem}.oc-input-box.large.suffix label{padding:1.1rem .7rem}.oc-input-box.large input:focus~label,.oc-input-box.large input:not(:placeholder-shown)~label,.oc-input-box.large textarea:focus~label,.oc-input-box.large textarea:not(:placeholder-shown)~label,.oc-input-box.large select:focus~label,.oc-input-box.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.shui-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box{position:relative;margin-top:.5rem}.shui-input-box select *{background-color:#ebebeb}.shui-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#000;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.shui-input-box.prefix{z-index:5}.shui-input-box.prefix .material-symbols-outlined,.shui-input-box.prefix .oc.suffix{padding:.5rem .7rem}.shui-input-box.prefix input{padding-left:1.75rem}.shui-input-box.prefix label{padding:.7rem 2.5rem}.shui-input-box.suffix{z-index:5}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{padding:.5rem .7rem}.shui-input-box.suffix input{padding-right:1.75rem}.shui-input-box.suffix label{padding:.7rem}.shui-input-box input,.shui-input-box textarea,.shui-input-box select{font-size:1rem;background-color:#ebebeb;border:none;outline:none;padding:1rem .9rem .2rem;width:100%;transition:.3s ease;color:#000;font-weight:400;height:41px;min-width:100%}.shui-input-box textarea{height:inherit;padding-top:20px}.shui-input-box input:not(:placeholder-shown)~label,.shui-input-box input:focus~label,.shui-input-box textarea:not(:placeholder-shown)~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{transform:translate(.45rem);background-color:#ebebeb;width:95%;padding:1px 7px 0;font-size:.7rem;font-weight:500}.shui-input-box input:focus~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{color:#0169b2}.shui-input-box:before{display:block;content:\"\";position:absolute;bottom:0;height:1px;width:100%;background-color:#7d7d7d;transition:.4s ease;width:0;background-color:#0169b2}.shui-input-box:focus-within:before{width:100%}.error input,.error textarea,.error select{border:1px solid #e7001d;box-shadow:0 4px 6.1px #a1000014}.error:before{width:0!important}.error small,.error label{color:#ed3a3a!important;font-weight:600}.shui-input-box.small input,.shui-input-box.small textarea,.shui-input-box.small select{max-height:36px;padding-top:1rem}.shui-input-box.small.prefix{z-index:5}.shui-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem;color:#0169b2}.shui-input-box.small.prefix label{padding:.45rem 2.5rem}.shui-input-box.small.suffix{z-index:5}.shui-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem;color:#0169b2}.shui-input-box.small.suffix label{padding:.45rem .7rem}.shui-input-box.large input,.shui-input-box.large textarea,.shui-input-box.large select{height:46px}.shui-input-box.large label{padding:1rem .7rem}.shui-input-box.large.prefix{z-index:5}.shui-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.shui-input-box.large.prefix input{padding-left:2.5rem}.shui-input-box.large.prefix label{padding:1.1rem 2.5rem}.shui-input-box.large.suffix{z-index:5}.shui-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.shui-input-box.large.suffix input{padding-right:2.5rem}.shui-input-box.large.suffix label{padding:1.1rem .7rem}.oc.suffix,.oc.prefix,.material-symbols-outlined{z-index:5!important}.oc-input-box{position:relative}.oc-options-div{position:absolute;width:100%}.oc-has-close-button-input{padding-right:60px}.oc-has-close-button{display:flex;justify-content:center;align-items:center;position:absolute;right:.5rem!important;top:8%;height:84%;width:2.2rem;border:2px solid transparent;border-radius:.5rem;background-color:transparent;padding:0!important;transition:border-color .2s ease,box-shadow .2s ease}.oc-has-close-button:hover{border:2px solid #8f9596;box-shadow:0 4px 8.7px #00000021;cursor:pointer}.oc-has-close-button span{padding:0!important;margin:.3rem}.oc-counter-select{display:flex;gap:.2rem;align-items:center;float:right;max-height:30px}.oc-counter-select .counter{font-size:.9rem;color:#5505a2;font-weight:600;margin:0;padding:0}.oc-counter-select button{display:flex;justify-content:center;align-items:center;text-align:center;max-width:20px}.oc-counter-select .subtract span,.oc-counter-select .add span{font-size:1rem;font-weight:600;text-align:center}.oc-counter-select span{transition:.2s ease}.oc-counter-select .subtract:hover span{color:#ed3a3a!important}.oc-counter-select .add:hover span{color:#00dda3!important}.shui-option-box .oc-counter-select .counter{color:#0169b2}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0;display:flex;justify-content:space-between}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer;display:flex;align-items:center}.oc-options>li button span.material-symbols-outlined{line-height:0;color:#8f9596;margin:0 8px 0 0;padding:0}.oc-options>li button.hover:hover{filter:brightness(.9)}.oc-options>li button.highlight{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}.oc-options.loader{display:flex;align-items:center;justify-content:center}.oc-options.loader span{width:24px;margin:3rem;color:#5505a2}.loading{animation:spinLoad .5s linear infinite}.semantic-input{display:inline-block;width:100%;padding:10px 12px;font-size:14px;line-height:1.5;color:#333;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 2px #22242626;transition:border-color .2s ease,box-shadow .2s ease}.semantic-input:hover{border-color:#b3b3b3}.semantic-input:focus{border-color:#85b7d9;box-shadow:0 0 0 2px #22242626;outline:none}.semantic-input:disabled{background-color:#f9f9f9;color:#b3b3b3;border-color:#ddd;cursor:not-allowed}@keyframes spinLoad{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
275
- }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OcAutocompleteComponent, decorators: [{
277
- type: Component,
278
- args: [{ selector: 'oc-autocomplete', standalone: true, imports: [CommonModule, FormsModule], providers: [InternationalizationService], host: {
279
- '[style.width]': 'computedWidth',
280
- '[style.min-width]': 'computedMinWidth',
281
- '[style.max-width]': 'computedMaxWidth',
282
- }, changeDetection: ChangeDetectionStrategy.Default, template: "<div\n [ngClass]=\"{\n 'oc-input-box': !ocSemanticLike && ocStyle === 'otimus',\n small: ocSize === 'small',\n large: ocSize === 'large',\n error: !!ocError,\n prefix: hasPrefix,\n suffix: hasSuffix || ocHasDeleteButton,\n shui: ocStyle === 'shui',\n 'shui-input-box': ocStyle === 'shui',\n }\"\n>\n <ng-content></ng-content>\n <input\n [placeholder]=\"ocPlaceholder\"\n #input\n (click)=\"toggleOptions(); ocClick.emit()\"\n type=\"text\"\n (input)=\"filterData(ocValue)\"\n [(ngModel)]=\"ocValue\"\n (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\"\n [ngClass]=\"{\n 'semantic-input': ocSemanticLike || ocStyle === 'semantic',\n }\"\n [tabindex]=\"ocTabIndex\"\n [disabled]=\"ocDisabled\"\n (keydown)=\"onKeyDown($event)\"\n />\n @if (!ocSemanticLike && ocStyle !== 'semantic') {\n <label>\n <span [innerHTML]=\"ocPlaceholder\"></span>\n @if (ocRequired) {\n <span class=\"oc color error\">*</span>\n }\n </label>\n }\n <small\n *ngIf=\"ocError\"\n class=\"error-msg\"\n >{{ ocError }}</small\n >\n <ng-content select=\"ocPrefix\"></ng-content>\n @if (ocHasDeleteButton && !ocDisabled) {\n <button\n class=\"oc-has-close-button oc suffix\"\n (click)=\"clearValue()\"\n [disabled]=\"ocDisabled\"\n >\n <span class=\"material-symbols-outlined\">backspace</span>\n </button>\n }\n <ng-content select=\"ocSuffix\"></ng-content>\n\n <div class=\"oc-options-div\">\n @if (isOptionsShown && !ocLoading && !ocDisabled) {\n <ul\n #options\n class=\"oc-options\"\n [ngStyle]=\"{\n 'max-height': ocOptionsMaxHeight,\n width: ocOptionsWidth,\n }\"\n >\n @if (!filteredData.length) {\n <li class=\"no-options\">\n {{ ocNoAvailableOptionsText || 'Nenhum resultado dispon\u00EDvel' }}\n </li>\n } @else {\n @for (data of filteredData; track data.value; let i = $index) {\n @if (!ocMaxResults || i < ocMaxResults) {\n <li class=\"li-option\" #listOptionsRef>\n <button\n type=\"button\"\n (click)=\"selectValue(data.value)\"\n [class.hover]=\"ocType !== 'counterSelect'\"\n [class.highlight]=\"selectedIndex === i\"\n >\n @if (data.icon) {\n <span\n class=\"material-symbols-outlined\"\n [ngStyle]=\"{\n 'font-size': data.iconSize || '1.2rem',\n }\"\n >\n {{ data.icon }}\n </span>\n }\n {{ data.name }}\n </button>\n @if (ocType === 'counterSelect') {\n <div class=\"oc-counter-select\">\n <button\n class=\"subtract\"\n (click)=\"decrementCounter(data)\"\n >\n <span class=\"material-symbols-outlined\">remove</span>\n </button>\n <p class=\"counter\">{{ data.counter || 0 }}</p>\n <button\n class=\"add\"\n (click)=\"incrementCounter(data)\"\n >\n <span class=\"material-symbols-outlined\">add</span>\n </button>\n </div>\n }\n </li>\n }\n }\n @if (ocMaxResults && filteredData.length > ocMaxResults) {\n <li class=\"no-options\">\n {{ ocTypeForMoreResultsText || 'Digite para ver mais resultados' }}\n </li>\n }\n }\n </ul>\n } @else if (isOptionsShown && ocLoading && !ocDisabled) {\n <div class=\"oc-options loader\">\n <span class=\"material-symbols-outlined loading\"> progress_activity </span>\n </div>\n }\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box label .oc.color.error{font-weight:700;margin-left:.2rem}.oc-input-box.prefix .material-symbols-outlined,.oc-input-box.prefix .oc.suffix{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:1.75rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined,.oc-input-box.suffix .oc.suffix{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:1.75rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.oc-input-box.small input,.oc-input-box.small textarea,.oc-input-box.small select{padding:.3rem .7rem;border-radius:.5rem}.oc-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.oc-input-box.small.prefix label{padding:.45rem 2.5rem}.oc-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.oc-input-box.small.suffix label{padding:.45rem .7rem}.oc-input-box.small label{padding:.5rem .7rem}.oc-input-box.small input:focus~label,.oc-input-box.small input:not(:placeholder-shown)~label,.oc-input-box.small textarea:focus~label,.oc-input-box.small textarea:not(:placeholder-shown)~label,.oc-input-box.small select:focus~label,.oc-input-box.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box.large input,.oc-input-box.large textarea,.oc-input-box.large select{padding:1rem;border-radius:1rem}.oc-input-box.large label,.oc-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.oc-input-box.large.prefix input{padding-left:2.5rem}.oc-input-box.large.prefix label{padding:1.1rem 2.5rem}.oc-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.oc-input-box.large.suffix input{padding-right:2.5rem}.oc-input-box.large.suffix label{padding:1.1rem .7rem}.oc-input-box.large input:focus~label,.oc-input-box.large input:not(:placeholder-shown)~label,.oc-input-box.large textarea:focus~label,.oc-input-box.large textarea:not(:placeholder-shown)~label,.oc-input-box.large select:focus~label,.oc-input-box.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.shui-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.shui-input-box{position:relative;margin-top:.5rem}.shui-input-box select *{background-color:#ebebeb}.shui-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#000;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.shui-input-box.prefix{z-index:5}.shui-input-box.prefix .material-symbols-outlined,.shui-input-box.prefix .oc.suffix{padding:.5rem .7rem}.shui-input-box.prefix input{padding-left:1.75rem}.shui-input-box.prefix label{padding:.7rem 2.5rem}.shui-input-box.suffix{z-index:5}.shui-input-box.suffix .material-symbols-outlined,.shui-input-box.suffix .oc.suffix{padding:.5rem .7rem}.shui-input-box.suffix input{padding-right:1.75rem}.shui-input-box.suffix label{padding:.7rem}.shui-input-box input,.shui-input-box textarea,.shui-input-box select{font-size:1rem;background-color:#ebebeb;border:none;outline:none;padding:1rem .9rem .2rem;width:100%;transition:.3s ease;color:#000;font-weight:400;height:41px;min-width:100%}.shui-input-box textarea{height:inherit;padding-top:20px}.shui-input-box input:not(:placeholder-shown)~label,.shui-input-box input:focus~label,.shui-input-box textarea:not(:placeholder-shown)~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{transform:translate(.45rem);background-color:#ebebeb;width:95%;padding:1px 7px 0;font-size:.7rem;font-weight:500}.shui-input-box input:focus~label,.shui-input-box textarea:focus~label,.shui-input-box select:valid~label,.shui-input-box select:focus~label{color:#0169b2}.shui-input-box:before{display:block;content:\"\";position:absolute;bottom:0;height:1px;width:100%;background-color:#7d7d7d;transition:.4s ease;width:0;background-color:#0169b2}.shui-input-box:focus-within:before{width:100%}.error input,.error textarea,.error select{border:1px solid #e7001d;box-shadow:0 4px 6.1px #a1000014}.error:before{width:0!important}.error small,.error label{color:#ed3a3a!important;font-weight:600}.shui-input-box.small input,.shui-input-box.small textarea,.shui-input-box.small select{max-height:36px;padding-top:1rem}.shui-input-box.small.prefix{z-index:5}.shui-input-box.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem;color:#0169b2}.shui-input-box.small.prefix label{padding:.45rem 2.5rem}.shui-input-box.small.suffix{z-index:5}.shui-input-box.small.suffix .material-symbols-outlined{padding:.35rem .7rem;color:#0169b2}.shui-input-box.small.suffix label{padding:.45rem .7rem}.shui-input-box.large input,.shui-input-box.large textarea,.shui-input-box.large select{height:46px}.shui-input-box.large label{padding:1rem .7rem}.shui-input-box.large.prefix{z-index:5}.shui-input-box.large.prefix .material-symbols-outlined{padding:1rem .7rem}.shui-input-box.large.prefix input{padding-left:2.5rem}.shui-input-box.large.prefix label{padding:1.1rem 2.5rem}.shui-input-box.large.suffix{z-index:5}.shui-input-box.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.shui-input-box.large.suffix input{padding-right:2.5rem}.shui-input-box.large.suffix label{padding:1.1rem .7rem}.oc.suffix,.oc.prefix,.material-symbols-outlined{z-index:5!important}.oc-input-box{position:relative}.oc-options-div{position:absolute;width:100%}.oc-has-close-button-input{padding-right:60px}.oc-has-close-button{display:flex;justify-content:center;align-items:center;position:absolute;right:.5rem!important;top:8%;height:84%;width:2.2rem;border:2px solid transparent;border-radius:.5rem;background-color:transparent;padding:0!important;transition:border-color .2s ease,box-shadow .2s ease}.oc-has-close-button:hover{border:2px solid #8f9596;box-shadow:0 4px 8.7px #00000021;cursor:pointer}.oc-has-close-button span{padding:0!important;margin:.3rem}.oc-counter-select{display:flex;gap:.2rem;align-items:center;float:right;max-height:30px}.oc-counter-select .counter{font-size:.9rem;color:#5505a2;font-weight:600;margin:0;padding:0}.oc-counter-select button{display:flex;justify-content:center;align-items:center;text-align:center;max-width:20px}.oc-counter-select .subtract span,.oc-counter-select .add span{font-size:1rem;font-weight:600;text-align:center}.oc-counter-select span{transition:.2s ease}.oc-counter-select .subtract:hover span{color:#ed3a3a!important}.oc-counter-select .add:hover span{color:#00dda3!important}.shui-option-box .oc-counter-select .counter{color:#0169b2}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0;display:flex;justify-content:space-between}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer;display:flex;align-items:center}.oc-options>li button span.material-symbols-outlined{line-height:0;color:#8f9596;margin:0 8px 0 0;padding:0}.oc-options>li button.hover:hover{filter:brightness(.9)}.oc-options>li button.highlight{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}.oc-options.loader{display:flex;align-items:center;justify-content:center}.oc-options.loader span{width:24px;margin:3rem;color:#5505a2}.loading{animation:spinLoad .5s linear infinite}.semantic-input{display:inline-block;width:100%;padding:10px 12px;font-size:14px;line-height:1.5;color:#333;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 2px #22242626;transition:border-color .2s ease,box-shadow .2s ease}.semantic-input:hover{border-color:#b3b3b3}.semantic-input:focus{border-color:#85b7d9;box-shadow:0 0 0 2px #22242626;outline:none}.semantic-input:disabled{background-color:#f9f9f9;color:#b3b3b3;border-color:#ddd;cursor:not-allowed}@keyframes spinLoad{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
283
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.InternationalizationService }, { type: i2.StyleThemeService }, { type: i0.ChangeDetectorRef }], propDecorators: { input: [{
284
- type: ViewChild,
285
- args: ['input']
286
- }], options: [{
287
- type: ViewChild,
288
- args: ['options']
289
- }], outerDiv: [{
290
- type: ViewChild,
291
- args: ['outerDiv']
292
- }], listOptionsElements: [{
293
- type: ViewChildren,
294
- args: ['listOptionsRef']
295
- }], ocPrefix: [{
296
- type: ContentChild,
297
- args: ['ocPrefix']
298
- }], ocSuffix: [{
299
- type: ContentChild,
300
- args: ['ocSuffix']
301
- }], ocData: [{
302
- type: Input
303
- }], ocPlaceholder: [{
304
- type: Input
305
- }], ocError: [{
306
- type: Input
307
- }], ocSize: [{
308
- type: Input
309
- }], ocValue: [{
310
- type: Input
311
- }], ocClearOnChange: [{
312
- type: Input
313
- }], ocWidth: [{
314
- type: Input
315
- }], ocMinWidth: [{
316
- type: Input
317
- }], ocMaxWidth: [{
318
- type: Input
319
- }], ocOptionsMaxHeight: [{
320
- type: Input
321
- }], ocOptionsWidth: [{
322
- type: Input
323
- }], ocRequired: [{
324
- type: Input
325
- }], ocMaxResults: [{
326
- type: Input
327
- }], ocAllowNotListedValue: [{
328
- type: Input
329
- }], ocNoAvailableOptionsText: [{
330
- type: Input
331
- }], ocTypeForMoreResultsText: [{
332
- type: Input
333
- }], ocLoading: [{
334
- type: Input
335
- }], ocSemanticLike: [{
336
- type: Input
337
- }], ocStyle: [{
338
- type: Input
339
- }], ocTabIndex: [{
340
- type: Input
341
- }], iconSize: [{
342
- type: Input
343
- }], ocSelectByTyping: [{
344
- type: Input
345
- }], ocDisabled: [{
346
- type: Input
347
- }], ocType: [{
348
- type: Input
349
- }], ocHasDeleteButton: [{
350
- type: Input
351
- }], ocEnableKeyboard: [{
352
- type: Input
353
- }], ocValueChange: [{
354
- type: Output
355
- }], ocChange: [{
356
- type: Output
357
- }], ocCounterSelectChange: [{
358
- type: Output
359
- }], ocOptionNotFound: [{
360
- type: Output
361
- }], ocClick: [{
362
- type: Output
363
- }], computedWidth: [{
364
- type: HostBinding,
365
- args: ['style.width']
366
- }], computedMinWidth: [{
367
- type: HostBinding,
368
- args: ['style.min-width']
369
- }], computedMaxWidth: [{
370
- type: HostBinding,
371
- args: ['style.max-width']
372
- }] } });
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBR0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUlOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBOzs7Ozs7QUFrQnpGLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFDVSxRQUFtQixFQUNuQixFQUFjLEVBQ2QsZ0JBQTZDLEVBQzdDLGlCQUFvQyxFQUNwQyxHQUFzQjtRQUp0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTZCO1FBQzdDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFXeEIsWUFBTyxHQUF5QixFQUFFLENBQUE7UUF1QmpDLFdBQU0sR0FBaUMsUUFBUSxDQUFBO1FBQy9DLFlBQU8sR0FBUSxFQUFFLENBQUE7UUFDakIsb0JBQWUsR0FBWSxLQUFLLENBQUE7UUFNaEMsZUFBVSxHQUFZLEtBQUssQ0FBQTtRQUUzQiwwQkFBcUIsR0FBWSxLQUFLLENBQUE7UUFHdEMsY0FBUyxHQUFZLEtBQUssQ0FBQTtRQUMxQixtQkFBYyxHQUFZLEtBQUssQ0FBQSxDQUFDLGdEQUFnRDtRQUNoRixZQUFPLEdBQXFCLFFBQVEsQ0FBQTtRQUVwQyxhQUFRLEdBQWlDLFFBQVEsQ0FBQTtRQUNqRCxxQkFBZ0IsR0FBWSxJQUFJLENBQUE7UUFDaEMsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUNsQixXQUFNLEdBQWdDLFNBQVMsQ0FBQTtRQUUvQyxzQkFBaUIsR0FBYSxLQUFLLENBQUE7UUFDbkMscUJBQWdCLEdBQVksS0FBSyxDQUFBO1FBRWhDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQTtRQUMxQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUE7UUFDNUMsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUE7UUFDaEUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUNyQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUV0QyxjQUFTLEdBQVksS0FBSyxDQUFBO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUE7UUFFMUIsbUJBQWMsR0FBWSxLQUFLLENBQUE7UUFDL0IsaUJBQVksR0FBeUIsRUFBRSxDQUFBO1FBQ3ZDLGtCQUFhLEdBQXVCO1lBQ2xDLElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFBO1FBRUQsa0JBQWEsR0FBVyxDQUFDLENBQUMsQ0FBQTtJQTFFdkIsQ0FBQztJQVdKLElBQ0ksTUFBTSxDQUFDLEtBQTJCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1FBRXBCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFBO1FBRXpCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUMxRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFBO2dCQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBLENBQUMsc0JBQXNCO0lBQ2pELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztJQThDRCxJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtJQUMzQyxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQTtJQUMvQixDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQTtJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUN2QixDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRWxCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQTtRQUNyRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUN2QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFDdkIsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNsQixJQUFJLENBQUMsZ0JBQWdCLENBQUMseUJBQXlCLEVBQUUsQ0FBQTtRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQXFCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFFL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUE7WUFFdEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBRWhFLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUE7b0JBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtnQkFDM0IsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBRXBELElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ3RGLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUE7b0JBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO2dCQUNsRixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ25ELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFxQixDQUFBO1lBRXRDLE1BQU0sbUJBQW1CLEdBQ3ZCLElBQUksQ0FBQyxNQUFNLEtBQUssZUFBZSxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtZQUV6RSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3ZELElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNqRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtvQkFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO2dCQUNyQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFBO1FBQzlCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUNqRixDQUFBO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLElBQUksRUFBRSxFQUFFO2dCQUNSLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQTtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFDbkIsQ0FBQztZQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQTtZQUMvQixPQUFNO1FBQ1IsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQTtRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDOUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNoRixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sR0FBRztZQUNSLEVBQUUsV0FBVyxFQUFFO2FBQ2QsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUNoQixPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUEsQ0FBQyw0QkFBNEI7SUFDakUsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFBO1FBRWxFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixJQUFJLEVBQUUsRUFBRTtnQkFDUixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUE7WUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUE7WUFDeEIsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDcEMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2xELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO1lBQzlCLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUE7UUFDL0IsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1FBQ2hDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTtRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRTFELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUE7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDakMsQ0FBQztJQUVTLGdCQUFnQixDQUFDLE1BQTBCO1FBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUE7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxNQUEwQjtRQUNuRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDaEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUI7UUFDckIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDcEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUMzQixDQUFDLEVBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxDQUMxRSxDQUFBO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsYUFBYSxDQUFBO1FBQy9FLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxDQUFDO0lBQ0gsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLEdBQUcsS0FBc0IsQ0FBQTtZQUVoQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3hCLENBQUM7cUJBQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QixDQUFDO3FCQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDL0QsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU07Z0JBQ1IsQ0FBQztZQUNILENBQUM7WUFFRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUE7WUFDbEIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDOytHQXRWVSx1QkFBdUI7bUdBQXZCLHVCQUF1QixvcUNBVnZCLENBQUMsMkJBQTJCLENBQUMsK2tCQy9CMUMsMi9IQTJIQSwycFREN0ZZLFlBQVkscVRBQUUsV0FBVzs7NEZBV3hCLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLGFBQ3pCLENBQUMsMkJBQTJCLENBQUMsUUFDbEM7d0JBQ0osZUFBZSxFQUFFLGVBQWU7d0JBQ2hDLG1CQUFtQixFQUFFLGtCQUFrQjt3QkFDdkMsbUJBQW1CLEVBQUUsa0JBQWtCO3FCQUN4QyxtQkFHZ0IsdUJBQXVCLENBQUMsT0FBTztpTkFhNUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNJLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDRyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ1csbUJBQW1CO3NCQUFsRCxZQUFZO3VCQUFDLGdCQUFnQjtnQkFFSixRQUFRO3NCQUFqQyxZQUFZO3VCQUFDLFVBQVU7Z0JBQ0UsUUFBUTtzQkFBakMsWUFBWTt1QkFBQyxVQUFVO2dCQUlwQixNQUFNO3NCQURULEtBQUs7Z0JBb0JHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQWVILGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsYUFBYTtnQkFNdEIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFNMUIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPY0F1dG9Db21wbGV0ZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLWF1dG9jb21wbGV0ZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBJbnRlcm5hdGlvbmFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnRlcm5hdGlvbmFsaXphdGlvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgT2NTdHlsZVRoZW1lVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb2Mtc3R5bGUtdGhlbWUnXG5pbXBvcnQgeyBTdHlsZVRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0eWxlLXRoZW1lLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29jLWF1dG9jb21wbGV0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbSW50ZXJuYXRpb25hbGl6YXRpb25TZXJ2aWNlXSxcbiAgaG9zdDoge1xuICAgICdbc3R5bGUud2lkdGhdJzogJ2NvbXB1dGVkV2lkdGgnLFxuICAgICdbc3R5bGUubWluLXdpZHRoXSc6ICdjb21wdXRlZE1pbldpZHRoJyxcbiAgICAnW3N0eWxlLm1heC13aWR0aF0nOiAnY29tcHV0ZWRNYXhXaWR0aCcsXG4gIH0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBPY0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25Jbml0XG57XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogSW50ZXJuYXRpb25hbGl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc3R5bGVUaGVtZVNlcnZpY2U6IFN0eWxlVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWZcbiAgQFZpZXdDaGlsZCgnb3B0aW9ucycpIG9wdGlvbnMhOiBFbGVtZW50UmVmXG4gIEBWaWV3Q2hpbGQoJ291dGVyRGl2Jykgb3V0ZXJEaXYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxuICBAVmlld0NoaWxkcmVuKCdsaXN0T3B0aW9uc1JlZicpIGxpc3RPcHRpb25zRWxlbWVudHMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MTElFbGVtZW50Pj5cblxuICBAQ29udGVudENoaWxkKCdvY1ByZWZpeCcpIG9jUHJlZml4OiBhbnlcbiAgQENvbnRlbnRDaGlsZCgnb2NTdWZmaXgnKSBvY1N1ZmZpeDogYW55XG5cbiAgcHJpdmF0ZSBfb2NEYXRhOiBPY0F1dG9Db21wbGV0ZVR5cGVbXSA9IFtdXG4gIEBJbnB1dCgpXG4gIHNldCBvY0RhdGEodmFsdWU6IE9jQXV0b0NvbXBsZXRlVHlwZVtdKSB7XG4gICAgdGhpcy5fb2NEYXRhID0gdmFsdWVcblxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdmFsdWVcblxuICAgIGlmICh0aGlzLm9jU2VsZWN0QnlUeXBpbmcgJiYgdGhpcy5vY1ZhbHVlKSB7XG4gICAgICBjb25zdCBmb3VuZCA9IHZhbHVlLmZpbmQoKGVsKSA9PiBlbC52YWx1ZSA9PSB0aGlzLm9jVmFsdWUpXG4gICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRcbiAgICAgICAgdGhpcy5vY1ZhbHVlID0gZm91bmQubmFtZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSAvLyBGb3LDp2EgYSBhdHVhbGl6YcOnw6NvXG4gIH1cblxuICBnZXQgb2NEYXRhKCk6IE9jQXV0b0NvbXBsZXRlVHlwZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fb2NEYXRhXG4gIH1cbiAgQElucHV0KCkgb2NQbGFjZWhvbGRlcj86IHN0cmluZ1xuICBASW5wdXQoKSBvY0Vycm9yPzogc3RyaW5nXG4gIEBJbnB1dCgpIG9jU2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCAnbWVkaXVtJyA9ICdtZWRpdW0nXG4gIEBJbnB1dCgpIG9jVmFsdWU6IGFueSA9ICcnXG4gIEBJbnB1dCgpIG9jQ2xlYXJPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIG9jV2lkdGg/OiBzdHJpbmdcbiAgQElucHV0KCkgb2NNaW5XaWR0aD86IHN0cmluZ1xuICBASW5wdXQoKSBvY01heFdpZHRoPzogc3RyaW5nXG4gIEBJbnB1dCgpIG9jT3B0aW9uc01heEhlaWdodD86IHN0cmluZ1xuICBASW5wdXQoKSBvY09wdGlvbnNXaWR0aD86IHN0cmluZ1xuICBASW5wdXQoKSBvY1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgb2NNYXhSZXN1bHRzPzogbnVtYmVyXG4gIEBJbnB1dCgpIG9jQWxsb3dOb3RMaXN0ZWRWYWx1ZTogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIG9jTm9BdmFpbGFibGVPcHRpb25zVGV4dD86IHN0cmluZ1xuICBASW5wdXQoKSBvY1R5cGVGb3JNb3JlUmVzdWx0c1RleHQ/OiBzdHJpbmdcbiAgQElucHV0KCkgb2NMb2FkaW5nOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgb2NTZW1hbnRpY0xpa2U6IGJvb2xlYW4gPSBmYWxzZSAvLyBkZXByZWNhdGVkLiBQcmVmZXIgdXNpbmcgb2NTdHlsZVRoZW1lIGluc3RlYWRcbiAgQElucHV0KCkgb2NTdHlsZTogT2NTdHlsZVRoZW1lVHlwZSA9ICdvdGltdXMnXG4gIEBJbnB1dCgpIG9jVGFiSW5kZXg/OiBudW1iZXJcbiAgQElucHV0KCkgaWNvblNpemU6ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJ1xuICBASW5wdXQoKSBvY1NlbGVjdEJ5VHlwaW5nOiBib29sZWFuID0gdHJ1ZVxuICBASW5wdXQoKSBvY0Rpc2FibGVkID0gZmFsc2VcbiAgQElucHV0KCkgb2NUeXBlOiAnY291bnRlclNlbGVjdCcgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCdcblxuICBASW5wdXQoKSBvY0hhc0RlbGV0ZUJ1dHRvbj86IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBvY0VuYWJsZUtleWJvYXJkOiBib29sZWFuID0gZmFsc2VcblxuICBAT3V0cHV0KCkgb2NWYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBvY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKVxuICBAT3V0cHV0KCkgb2NDb3VudGVyU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPY0F1dG9Db21wbGV0ZVR5cGVbXT4oKVxuICBAT3V0cHV0KCkgb2NPcHRpb25Ob3RGb3VuZCA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgb2NDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGhhc1N1ZmZpeDogYm9vbGVhbiA9IGZhbHNlXG4gIGhhc1ByZWZpeDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgaXNPcHRpb25zU2hvd246IGJvb2xlYW4gPSBmYWxzZVxuICBmaWx0ZXJlZERhdGE6IE9jQXV0b0NvbXBsZXRlVHlwZVtdID0gW11cbiAgc2VsZWN0ZWRWYWx1ZTogT2NBdXRvQ29tcGxldGVUeXBlID0ge1xuICAgIG5hbWU6ICcnLFxuICAgIHZhbHVlOiBudWxsLFxuICB9XG5cbiAgc2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTFcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcbiAgZ2V0IGNvbXB1dGVkV2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMub2NXaWR0aCA/IHRoaXMub2NXaWR0aCA6IG51bGxcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcbiAgZ2V0IGNvbXB1dGVkTWluV2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMub2NNaW5XaWR0aCB8fCAnMCdcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJylcbiAgZ2V0IGNvbXB1dGVkTWF4V2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMub2NNYXhXaWR0aCB8fCAnMTAwJSdcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vY1ByZWZpeCkge1xuICAgICAgdGhpcy5oYXNQcmVmaXggPSB0cnVlXG4gICAgfVxuICAgIGlmICh0aGlzLm9jU3VmZml4KSB7XG4gICAgICB0aGlzLmhhc1N1ZmZpeCA9IHRydWVcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1hdE9jVmFsdWVUeXBlKClcbiAgICB0aGlzLmxvYWRPcHRpb25zKClcblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2NWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9jVmFsdWUgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2NTdHlsZSA9IHRoaXMuc3R5bGVUaGVtZVNlcnZpY2UuZ2V0U3R5bGVUaGVtZSgpIHx8IHRoaXMub2NTdHlsZVxuICAgIGlmICh0aGlzLm9jUHJlZml4KSB7XG4gICAgICB0aGlzLmhhc1ByZWZpeCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHRoaXMub2NTdWZmaXgpIHtcbiAgICAgIHRoaXMuaGFzU3VmZml4ID0gdHJ1ZVxuICAgIH1cbiAgICB0aGlzLmZvcm1hdE9jVmFsdWVUeXBlKClcbiAgICB0aGlzLmxvYWRPcHRpb25zKClcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb25zQnlMYW5ndWFnZSgpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2NQcmVmaXgpIHtcbiAgICAgIHRoaXMuaGFzUHJlZml4ID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAodGhpcy5vY1N1ZmZpeCkge1xuICAgICAgdGhpcy5oYXNTdWZmaXggPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgZm9ybWF0T2NWYWx1ZVR5cGUoKSB7XG4gICAgaWYgKHRoaXMub2NWYWx1ZSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMub2NWYWx1ZX1gXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbihjb2RlOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKGNvZGUpXG4gIH1cblxuICBsb2FkT3B0aW9ucygpIHtcbiAgICB0aGlzLmZvcm1hdE9jVmFsdWVUeXBlKClcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5vY0RhdGFcblxuICAgICAgY29uc3QgaW5wdXRCb3ggPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnRcblxuICAgICAgaWYgKHRoaXMub2NTZWxlY3RCeVR5cGluZyAmJiB0aGlzLm9jVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLm9jRGF0YS5maW5kKChlbCkgPT4gZWwudmFsdWUgPT0gdGhpcy5vY1ZhbHVlKVxuXG4gICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kXG4gICAgICAgICAgdGhpcy5vY1ZhbHVlID0gZm91bmQubmFtZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnB1dEJveCkge1xuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dEJveC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpXG5cbiAgICAgICAgaWYgKGlucHV0RWxlbWVudCAmJiAhdGhpcy5vY1NlbWFudGljTGlrZSAmJiBbJ290aW11cycsICdzaHVpJ10uaW5jbHVkZXModGhpcy5vY1N0eWxlKSkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWxlbWVudCwgJ3BsYWNlaG9sZGVyJywgJycpXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbGVtZW50LCAncmVxdWlyZWQnLCB0aGlzLm9jUmVxdWlyZWQudG9TdHJpbmcoKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDUwKVxuICB9XG5cbiAgY2xvc2VPbkNsaWNrT3V0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGNvbnN0IGluc2lkZUNvdW50ZXJTZWxlY3QgPVxuICAgICAgICB0aGlzLm9jVHlwZSA9PT0gJ2NvdW50ZXJTZWxlY3QnICYmIHRhcmdldC5jbG9zZXN0KCcub2MtY291bnRlci1zZWxlY3QnKVxuXG4gICAgICBpZiAodGhpcy5pbnB1dCAmJiB0aGlzLm9wdGlvbnMgJiYgIWluc2lkZUNvdW50ZXJTZWxlY3QpIHtcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50ICYmIHRhcmdldCAhPT0gdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmZpbmRCeVR5cGluZygpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZmluZEJ5VHlwaW5nKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vY1ZhbHVlIHx8ICF0aGlzLm9jVmFsdWU/LnRvU3RyaW5nKCkudHJpbSgpLmxlbmd0aCkge1xuICAgICAgdGhpcy5vY0NoYW5nZS5lbWl0KG51bGwpXG4gICAgICB0aGlzLm9jT3B0aW9uTm90Rm91bmQuZW1pdCgpXG4gICAgfVxuICAgIGlmICghdGhpcy5vY1NlbGVjdEJ5VHlwaW5nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZFZhbHVlID0gdGhpcy5vY0RhdGEuZmluZChcbiAgICAgIChkYXRhKSA9PlxuICAgICAgICBkYXRhLm5hbWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLm9jVmFsdWU/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgICBkYXRhLnZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5vY1ZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKClcbiAgICApXG5cbiAgICBpZiAoIWZvdW5kVmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHtcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLm9jQWxsb3dOb3RMaXN0ZWRWYWx1ZSkge1xuICAgICAgICB0aGlzLm9jVmFsdWUgPSAnJ1xuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kVmFsdWVcbiAgfVxuXG4gIGZpbHRlckRhdGEobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc09wdGlvbnNTaG93biA9IHRydWVcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhLmZpbHRlcigoZGF0YSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0dGVkTmFtZShkYXRhLm5hbWUpPy5pbmNsdWRlcyh0aGlzLmdldEZvcm1hdHRlZE5hbWUobmFtZSkpXG4gICAgfSlcbiAgfVxuXG4gIGdldEZvcm1hdHRlZE5hbWUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHJcbiAgICAgID8udG9Mb3dlckNhc2UoKVxuICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgLy8gUmVtb3ZlIG1hcmNhcyBkaWFjcsOtdGljYXNcbiAgfVxuXG4gIHRvZ2dsZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5jbG9zZU9uQ2xpY2tPdXQoKVxuICAgIHRoaXMuaXNPcHRpb25zU2hvd24gPSAhdGhpcy5pc09wdGlvbnNTaG93blxuICB9XG5cbiAgc2VsZWN0VmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGZvdW5kVmFsdWUgPSB0aGlzLm9jRGF0YS5maW5kKChkYXRhKSA9PiBkYXRhLnZhbHVlID09IHZhbHVlKVxuXG4gICAgaWYgKCFmb3VuZFZhbHVlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gLTFcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMub2NUeXBlID09PSAnY291bnRlclNlbGVjdCcpIHtcbiAgICAgIGZvdW5kVmFsdWUuY291bnRlciA9IChmb3VuZFZhbHVlLmNvdW50ZXIgfHwgMCkgKyAxXG4gICAgICB0aGlzLmVtaXRDb3VudGVyU2VsZWN0Q2hhbmdlKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kVmFsdWVcbiAgICBpZiAodGhpcy5vY0NsZWFyT25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub2NWYWx1ZSA9ICcnXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub2NWYWx1ZSA9IGZvdW5kVmFsdWUubmFtZVxuICAgIH1cblxuICAgIHRoaXMuaXNPcHRpb25zU2hvd24gPSBmYWxzZVxuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZmlsdGVyZWREYXRhLmluZGV4T2YoZm91bmRWYWx1ZSlcblxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpXG5cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIGNsZWFyVmFsdWUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xuICAgICAgbmFtZTogJycsXG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICB9XG4gICAgdGhpcy5vY1ZhbHVlID0gJydcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXG4gIH1cblxuICBwcm90ZWN0ZWQgaW5jcmVtZW50Q291bnRlcihvcHRpb246IE9jQXV0b0NvbXBsZXRlVHlwZSk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uLmNvdW50ZXIpIHtcbiAgICAgIG9wdGlvbi5jb3VudGVyID0gMVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb24uY291bnRlcisrXG4gICAgfVxuICAgIHRoaXMuZW1pdENvdW50ZXJTZWxlY3RDaGFuZ2UoKVxuICB9XG5cbiAgcHJvdGVjdGVkIGRlY3JlbWVudENvdW50ZXIob3B0aW9uOiBPY0F1dG9Db21wbGV0ZVR5cGUpOiB2b2lkIHtcbiAgICBpZiAob3B0aW9uLmNvdW50ZXIgJiYgb3B0aW9uLmNvdW50ZXIgPiAwKSB7XG4gICAgICBvcHRpb24uY291bnRlci0tXG4gICAgICB0aGlzLmVtaXRDb3VudGVyU2VsZWN0Q2hhbmdlKClcbiAgICB9XG4gIH1cblxuICBlbWl0Q291bnRlclNlbGVjdENoYW5nZSgpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNNb3JlVGhhblplcm8gPSB0aGlzLm9jRGF0YS5maWx0ZXIoKGRhdGEpID0+ICEhZGF0YS5jb3VudGVyKVxuICAgIHRoaXMub2NDb3VudGVyU2VsZWN0Q2hhbmdlLmVtaXQoaGFzTW9yZVRoYW5aZXJvKVxuICB9XG5cbiAgbW92ZVNlbGVjdGlvbihkZWx0YTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgTWF0aC5taW4odGhpcy5saXN0T3B0aW9uc0VsZW1lbnRzLmxlbmd0aCAtIDEsIHRoaXMuc2VsZWN0ZWRJbmRleCArIGRlbHRhKVxuICAgIClcblxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxpc3RPcHRpb25zRWxlbWVudHMuZ2V0KHRoaXMuc2VsZWN0ZWRJbmRleCk/Lm5hdGl2ZUVsZW1lbnRcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJywgYmxvY2s6ICduZWFyZXN0JyB9KVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbktleURvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2NFbmFibGVLZXlib2FyZCkge1xuICAgICAgY29uc3QgZSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnRcblxuICAgICAgaWYgKHRoaXMuaXNPcHRpb25zU2hvd24pIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICB0aGlzLm1vdmVTZWxlY3Rpb24oLTEpXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgdGhpcy5tb3ZlU2VsZWN0aW9uKDEpXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdFZhbHVlKHRoaXMuZmlsdGVyZWREYXRhW3RoaXMuc2VsZWN0ZWRJbmRleF0udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnb2MtaW5wdXQtYm94JzogIW9jU2VtYW50aWNMaWtlICYmIG9jU3R5bGUgPT09ICdvdGltdXMnLFxuICAgIHNtYWxsOiBvY1NpemUgPT09ICdzbWFsbCcsXG4gICAgbGFyZ2U6IG9jU2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICBlcnJvcjogISFvY0Vycm9yLFxuICAgIHByZWZpeDogaGFzUHJlZml4LFxuICAgIHN1ZmZpeDogaGFzU3VmZml4IHx8IG9jSGFzRGVsZXRlQnV0dG9uLFxuICAgIHNodWk6IG9jU3R5bGUgPT09ICdzaHVpJyxcbiAgICAnc2h1aS1pbnB1dC1ib3gnOiBvY1N0eWxlID09PSAnc2h1aScsXG4gIH1cIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxpbnB1dFxuICAgIFtwbGFjZWhvbGRlcl09XCJvY1BsYWNlaG9sZGVyXCJcbiAgICAjaW5wdXRcbiAgICAoY2xpY2spPVwidG9nZ2xlT3B0aW9ucygpOyBvY0NsaWNrLmVtaXQoKVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIChpbnB1dCk9XCJmaWx0ZXJEYXRhKG9jVmFsdWUpXCJcbiAgICBbKG5nTW9kZWwpXT1cIm9jVmFsdWVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9jVmFsdWUgPSAkZXZlbnQ7IG9jVmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAnc2VtYW50aWMtaW5wdXQnOiBvY1NlbWFudGljTGlrZSB8fCBvY1N0eWxlID09PSAnc2VtYW50aWMnLFxuICAgIH1cIlxuICAgIFt0YWJpbmRleF09XCJvY1RhYkluZGV4XCJcbiAgICBbZGlzYWJsZWRdPVwib2NEaXNhYmxlZFwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAvPlxuICBAaWYgKCFvY1NlbWFudGljTGlrZSAmJiBvY1N0eWxlICE9PSAnc2VtYW50aWMnKSB7XG4gICAgPGxhYmVsPlxuICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvY1BsYWNlaG9sZGVyXCI+PC9zcGFuPlxuICAgICAgQGlmIChvY1JlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwib2MgY29sb3IgZXJyb3JcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cbiAgPHNtYWxsXG4gICAgKm5nSWY9XCJvY0Vycm9yXCJcbiAgICBjbGFzcz1cImVycm9yLW1zZ1wiXG4gICAgPnt7IG9jRXJyb3IgfX08L3NtYWxsXG4gID5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2NQcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIEBpZiAob2NIYXNEZWxldGVCdXR0b24gJiYgIW9jRGlzYWJsZWQpIHtcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cIm9jLWhhcy1jbG9zZS1idXR0b24gb2Mgc3VmZml4XCJcbiAgICAgIChjbGljayk9XCJjbGVhclZhbHVlKClcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9jRGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPmJhY2tzcGFjZTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgfVxuICA8bmctY29udGVudCBzZWxlY3Q9XCJvY1N1ZmZpeFwiPjwvbmctY29udGVudD5cblxuICA8ZGl2IGNsYXNzPVwib2Mtb3B0aW9ucy1kaXZcIj5cbiAgICBAaWYgKGlzT3B0aW9uc1Nob3duICYmICFvY0xvYWRpbmcgJiYgIW9jRGlzYWJsZWQpIHtcbiAgICAgIDx1bFxuICAgICAgICAjb3B0aW9uc1xuICAgICAgICBjbGFzcz1cIm9jLW9wdGlvbnNcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgJ21heC1oZWlnaHQnOiBvY09wdGlvbnNNYXhIZWlnaHQsXG4gICAgICAgICAgd2lkdGg6IG9jT3B0aW9uc1dpZHRoLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgQGlmICghZmlsdGVyZWREYXRhLmxlbmd0aCkge1xuICAgICAgICAgIDxsaSBjbGFzcz1cIm5vLW9wdGlvbnNcIj5cbiAgICAgICAgICAgIHt7IG9jTm9BdmFpbGFibGVPcHRpb25zVGV4dCB8fCAnTmVuaHVtIHJlc3VsdGFkbyBkaXNwb27DrXZlbCcgfX1cbiAgICAgICAgICA8L2xpPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAZm9yIChkYXRhIG9mIGZpbHRlcmVkRGF0YTsgdHJhY2sgZGF0YS52YWx1ZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBpZiAoIW9jTWF4UmVzdWx0cyB8fCBpIDwgb2NNYXhSZXN1bHRzKSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpLW9wdGlvblwiICNsaXN0T3B0aW9uc1JlZj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RWYWx1ZShkYXRhLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaG92ZXJdPVwib2NUeXBlICE9PSAnY291bnRlclNlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmhpZ2hsaWdodF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBAaWYgKGRhdGEuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZSc6IGRhdGEuaWNvblNpemUgfHwgJzEuMnJlbScsXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLmljb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAge3sgZGF0YS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmIChvY1R5cGUgPT09ICdjb3VudGVyU2VsZWN0Jykge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9jLWNvdW50ZXItc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRyYWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVjcmVtZW50Q291bnRlcihkYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5yZW1vdmU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvdW50ZXJcIj57eyBkYXRhLmNvdW50ZXIgfHwgMCB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRkXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVtZW50Q291bnRlcihkYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj5hZGQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKG9jTWF4UmVzdWx0cyAmJiBmaWx0ZXJlZERhdGEubGVuZ3RoID4gb2NNYXhSZXN1bHRzKSB7XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJuby1vcHRpb25zXCI+XG4gICAgICAgICAgICAgIHt7IG9jVHlwZUZvck1vcmVSZXN1bHRzVGV4dCB8fCAnRGlnaXRlIHBhcmEgdmVyIG1haXMgcmVzdWx0YWRvcycgfX1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3VsPlxuICAgIH0gQGVsc2UgaWYgKGlzT3B0aW9uc1Nob3duICYmIG9jTG9hZGluZyAmJiAhb2NEaXNhYmxlZCkge1xuICAgICAgPGRpdiBjbGFzcz1cIm9jLW9wdGlvbnMgbG9hZGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBsb2FkaW5nXCI+IHByb2dyZXNzX2FjdGl2aXR5IDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==