@ethlete/cdk 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +4 -4
  3. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +37 -7
  4. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +33 -470
  5. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +466 -8
  6. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.mjs +2 -0
  7. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.mjs +2 -0
  8. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +2 -2
  9. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +2 -2
  10. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +1 -2
  11. package/fesm2022/ethlete-cdk.mjs +243 -197
  12. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  13. package/lib/components/button/components/query-button/query-button.component.d.ts +1 -1
  14. package/lib/components/button/directives/query-button/query-button.directive.d.ts +13 -1
  15. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +7 -71
  16. package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +76 -4
  17. package/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.d.ts +1 -0
  18. package/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.d.ts +1 -0
  19. package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +1 -1
  20. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +1 -1
  21. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @ethlete/cdk
2
2
 
3
+ ## 3.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`f38090b3`](https://github.com/ethlete-io/ethdk/commit/f38090b3da0254fedf2bc5cefd3a04d9c040bbe6) Thanks [@TomTomB](https://github.com/TomTomB)! - Add options for skipping query button states
8
+
9
+ ### Patch Changes
10
+
11
+ - [`ce285644`](https://github.com/ethlete-io/ethdk/commit/ce285644202e92b4389a3d0d9166c5f822e7bcbb) Thanks [@TomTomB](https://github.com/TomTomB)! - Cleanup only release
12
+
3
13
  ## 3.3.1
4
14
 
5
15
  ### Patch Changes
@@ -11,15 +11,15 @@ export class QueryButtonComponent {
11
11
  this.queryButton = inject(QueryButtonDirective);
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: QueryButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: QueryButtonComponent, isStandalone: true, selector: "[et-query-button]", host: { classAttribute: "et-query-button" }, hostDirectives: [{ directive: i1.QueryButtonDirective, inputs: ["query", "query"] }, { directive: i2.ButtonDirective, inputs: ["disabled", "disabled", "type", "type", "pressed", "pressed"] }], ngImport: i0, template: "<ng-container *etLet=\"queryButton.showSuccess$ | async as showSuccess\">\n <ng-container *etLet=\"queryButton.showFailure$ | async as showFailure\">\n <span *etQuery=\"queryButton.query$ | async; loading as loading\" class=\"et-button-content et-query-button-content\">\n <span\n [attr.aria-hidden]=\"loading || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content></ng-content>\n </span>\n\n <span *ngIf=\"loading\" class=\"et-query-button-loading\"> </span>\n <span *ngIf=\"loading\" class=\"et-button-text et-query-button-text et-query-button-text--loading\">Loading</span>\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n", styles: [".et-query-button .et-button-content{display:grid}.et-query-button .et-query-button-text,.et-query-button .et-query-button-loading{grid-area:1/1/2/2}.et-query-button.et-query-button--loading .et-query-button-text--default,.et-query-button.et-query-button--success .et-query-button-text--default,.et-query-button.et-query-button--failure .et-query-button-text--default{opacity:0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: QueryDirective, selector: "[etQuery]", inputs: ["etQuery", "etQueryCache"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: QueryButtonComponent, isStandalone: true, selector: "[et-query-button]", host: { classAttribute: "et-query-button" }, hostDirectives: [{ directive: i1.QueryButtonDirective, inputs: ["query", "query", "skipSuccess", "skipSuccess", "skipFailure", "skipFailure", "skipLoading", "skipLoading"] }, { directive: i2.ButtonDirective, inputs: ["disabled", "disabled", "type", "type", "pressed", "pressed"] }], ngImport: i0, template: "<ng-container *etLet=\"queryButton.showSuccess$ | async as showSuccess\">\n <ng-container *etLet=\"queryButton.showFailure$ | async as showFailure\">\n <span *etQuery=\"queryButton.query$ | async; loading as loading\" class=\"et-button-content et-query-button-content\">\n <span\n [attr.aria-hidden]=\"(loading && !queryButton.skipLoading) || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content />\n </span>\n\n <span *ngIf=\"loading && !queryButton.skipLoading\" class=\"et-query-button-loading\"> </span>\n <span\n *ngIf=\"loading && !queryButton.skipLoading\"\n class=\"et-button-text et-query-button-text et-query-button-text--loading\"\n >Loading</span\n >\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n", styles: [".et-query-button .et-button-content{display:grid}.et-query-button .et-query-button-text,.et-query-button .et-query-button-loading{grid-area:1/1/2/2}.et-query-button.et-query-button--loading .et-query-button-text--default,.et-query-button.et-query-button--success .et-query-button-text--default,.et-query-button.et-query-button--failure .et-query-button-text--default{opacity:0;-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: QueryDirective, selector: "[etQuery]", inputs: ["etQuery", "etQueryCache"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: QueryButtonComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: '[et-query-button]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [
19
- { directive: QueryButtonDirective, inputs: ['query'] },
19
+ { directive: QueryButtonDirective, inputs: ['query', 'skipSuccess', 'skipFailure', 'skipLoading'] },
20
20
  { directive: ButtonDirective, inputs: ['disabled', 'type', 'pressed'] },
21
21
  ], imports: [QueryDirective, AsyncPipe, NgIf, LetDirective], host: {
22
22
  class: 'et-query-button',
23
- }, template: "<ng-container *etLet=\"queryButton.showSuccess$ | async as showSuccess\">\n <ng-container *etLet=\"queryButton.showFailure$ | async as showFailure\">\n <span *etQuery=\"queryButton.query$ | async; loading as loading\" class=\"et-button-content et-query-button-content\">\n <span\n [attr.aria-hidden]=\"loading || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content></ng-content>\n </span>\n\n <span *ngIf=\"loading\" class=\"et-query-button-loading\"> </span>\n <span *ngIf=\"loading\" class=\"et-button-text et-query-button-text et-query-button-text--loading\">Loading</span>\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n", styles: [".et-query-button .et-button-content{display:grid}.et-query-button .et-query-button-text,.et-query-button .et-query-button-loading{grid-area:1/1/2/2}.et-query-button.et-query-button--loading .et-query-button-text--default,.et-query-button.et-query-button--success .et-query-button-text--default,.et-query-button.et-query-button--failure .et-query-button-text--default{opacity:0;-webkit-user-select:none;user-select:none}\n"] }]
23
+ }, template: "<ng-container *etLet=\"queryButton.showSuccess$ | async as showSuccess\">\n <ng-container *etLet=\"queryButton.showFailure$ | async as showFailure\">\n <span *etQuery=\"queryButton.query$ | async; loading as loading\" class=\"et-button-content et-query-button-content\">\n <span\n [attr.aria-hidden]=\"(loading && !queryButton.skipLoading) || showSuccess || showFailure ? 'true' : undefined\"\n class=\"et-button-text et-query-button-text et-query-button-text--default\"\n >\n <ng-content />\n </span>\n\n <span *ngIf=\"loading && !queryButton.skipLoading\" class=\"et-query-button-loading\"> </span>\n <span\n *ngIf=\"loading && !queryButton.skipLoading\"\n class=\"et-button-text et-query-button-text et-query-button-text--loading\"\n >Loading</span\n >\n\n <span *ngIf=\"showSuccess\" class=\"et-button-text et-query-button-text et-query-button-text--success\">Success</span>\n <span *ngIf=\"showFailure\" class=\"et-button-text et-query-button-text et-query-button-text--failure\">Failure</span>\n </span>\n </ng-container>\n</ng-container>\n", styles: [".et-query-button .et-button-content{display:grid}.et-query-button .et-query-button-text,.et-query-button .et-query-button-loading{grid-area:1/1/2/2}.et-query-button.et-query-button--loading .et-query-button-text--default,.et-query-button.et-query-button--success .et-query-button-text--default,.et-query-button.et-query-button--failure .et-query-button-text--default{opacity:0;-webkit-user-select:none;user-select:none}\n"] }]
24
24
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vY29tcG9uZW50cy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vY29tcG9uZW50cy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBa0J6RSxNQUFNLE9BQU8sb0JBQW9CO0lBaEJqQztRQWlCWSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3REOzhHQUZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDJUQ3RCakMsbWdDQWtCQSwrZEREWSxjQUFjLHNGQUFFLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxZQUFZOzsyRkFLNUMsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FHakIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGtCQUNyQjt3QkFDZCxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDdEQsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUU7cUJBQ3hFLFdBQ1EsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsUUFDbEQ7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBRdWVyeURpcmVjdGl2ZSB9IGZyb20gJ0BldGhsZXRlL3F1ZXJ5JztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSwgUXVlcnlCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2V0LXF1ZXJ5LWJ1dHRvbl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHsgZGlyZWN0aXZlOiBRdWVyeUJ1dHRvbkRpcmVjdGl2ZSwgaW5wdXRzOiBbJ3F1ZXJ5J10gfSxcbiAgICB7IGRpcmVjdGl2ZTogQnV0dG9uRGlyZWN0aXZlLCBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndHlwZScsICdwcmVzc2VkJ10gfSxcbiAgXSxcbiAgaW1wb3J0czogW1F1ZXJ5RGlyZWN0aXZlLCBBc3luY1BpcGUsIE5nSWYsIExldERpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXF1ZXJ5LWJ1dHRvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5QnV0dG9uQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHF1ZXJ5QnV0dG9uID0gaW5qZWN0KFF1ZXJ5QnV0dG9uRGlyZWN0aXZlKTtcbn1cbiIsIjxuZy1jb250YWluZXIgKmV0TGV0PVwicXVlcnlCdXR0b24uc2hvd1N1Y2Nlc3MkIHwgYXN5bmMgYXMgc2hvd1N1Y2Nlc3NcIj5cbiAgPG5nLWNvbnRhaW5lciAqZXRMZXQ9XCJxdWVyeUJ1dHRvbi5zaG93RmFpbHVyZSQgfCBhc3luYyBhcyBzaG93RmFpbHVyZVwiPlxuICAgIDxzcGFuICpldFF1ZXJ5PVwicXVlcnlCdXR0b24ucXVlcnkkIHwgYXN5bmM7IGxvYWRpbmcgYXMgbG9hZGluZ1wiIGNsYXNzPVwiZXQtYnV0dG9uLWNvbnRlbnQgZXQtcXVlcnktYnV0dG9uLWNvbnRlbnRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImxvYWRpbmcgfHwgc2hvd1N1Y2Nlc3MgfHwgc2hvd0ZhaWx1cmUgPyAndHJ1ZScgOiB1bmRlZmluZWRcIlxuICAgICAgICBjbGFzcz1cImV0LWJ1dHRvbi10ZXh0IGV0LXF1ZXJ5LWJ1dHRvbi10ZXh0IGV0LXF1ZXJ5LWJ1dHRvbi10ZXh0LS1kZWZhdWx0XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImV0LXF1ZXJ5LWJ1dHRvbi1sb2FkaW5nXCI+IDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiZXQtYnV0dG9uLXRleHQgZXQtcXVlcnktYnV0dG9uLXRleHQgZXQtcXVlcnktYnV0dG9uLXRleHQtLWxvYWRpbmdcIj5Mb2FkaW5nPC9zcGFuPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dTdWNjZXNzXCIgY2xhc3M9XCJldC1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dC0tc3VjY2Vzc1wiPlN1Y2Nlc3M8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dGYWlsdXJlXCIgY2xhc3M9XCJldC1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dC0tZmFpbHVyZVwiPkZhaWx1cmU8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vY29tcG9uZW50cy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vY29tcG9uZW50cy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBa0J6RSxNQUFNLE9BQU8sb0JBQW9CO0lBaEJqQztRQWlCWSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3REOzhHQUZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFaQ3RCakMsa25DQXNCQSwrZERMWSxjQUFjLHNGQUFFLFNBQVMsOENBQUUsSUFBSSw2RkFBRSxZQUFZOzsyRkFLNUMsb0JBQW9CO2tCQWhCaEMsU0FBUzsrQkFDRSxtQkFBbUIsY0FHakIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGtCQUNyQjt3QkFDZCxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFBRTt3QkFDbkcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLEVBQUU7cUJBQ3hFLFdBQ1EsQ0FBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsUUFDbEQ7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjtxQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBRdWVyeURpcmVjdGl2ZSB9IGZyb20gJ0BldGhsZXRlL3F1ZXJ5JztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSwgUXVlcnlCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW2V0LXF1ZXJ5LWJ1dHRvbl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlcnktYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHsgZGlyZWN0aXZlOiBRdWVyeUJ1dHRvbkRpcmVjdGl2ZSwgaW5wdXRzOiBbJ3F1ZXJ5JywgJ3NraXBTdWNjZXNzJywgJ3NraXBGYWlsdXJlJywgJ3NraXBMb2FkaW5nJ10gfSxcbiAgICB7IGRpcmVjdGl2ZTogQnV0dG9uRGlyZWN0aXZlLCBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndHlwZScsICdwcmVzc2VkJ10gfSxcbiAgXSxcbiAgaW1wb3J0czogW1F1ZXJ5RGlyZWN0aXZlLCBBc3luY1BpcGUsIE5nSWYsIExldERpcmVjdGl2ZV0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXF1ZXJ5LWJ1dHRvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5QnV0dG9uQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHF1ZXJ5QnV0dG9uID0gaW5qZWN0KFF1ZXJ5QnV0dG9uRGlyZWN0aXZlKTtcbn1cbiIsIjxuZy1jb250YWluZXIgKmV0TGV0PVwicXVlcnlCdXR0b24uc2hvd1N1Y2Nlc3MkIHwgYXN5bmMgYXMgc2hvd1N1Y2Nlc3NcIj5cbiAgPG5nLWNvbnRhaW5lciAqZXRMZXQ9XCJxdWVyeUJ1dHRvbi5zaG93RmFpbHVyZSQgfCBhc3luYyBhcyBzaG93RmFpbHVyZVwiPlxuICAgIDxzcGFuICpldFF1ZXJ5PVwicXVlcnlCdXR0b24ucXVlcnkkIHwgYXN5bmM7IGxvYWRpbmcgYXMgbG9hZGluZ1wiIGNsYXNzPVwiZXQtYnV0dG9uLWNvbnRlbnQgZXQtcXVlcnktYnV0dG9uLWNvbnRlbnRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIihsb2FkaW5nICYmICFxdWVyeUJ1dHRvbi5za2lwTG9hZGluZykgfHwgc2hvd1N1Y2Nlc3MgfHwgc2hvd0ZhaWx1cmUgPyAndHJ1ZScgOiB1bmRlZmluZWRcIlxuICAgICAgICBjbGFzcz1cImV0LWJ1dHRvbi10ZXh0IGV0LXF1ZXJ5LWJ1dHRvbi10ZXh0IGV0LXF1ZXJ5LWJ1dHRvbi10ZXh0LS1kZWZhdWx0XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJsb2FkaW5nICYmICFxdWVyeUJ1dHRvbi5za2lwTG9hZGluZ1wiIGNsYXNzPVwiZXQtcXVlcnktYnV0dG9uLWxvYWRpbmdcIj4gPC9zcGFuPlxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJsb2FkaW5nICYmICFxdWVyeUJ1dHRvbi5za2lwTG9hZGluZ1wiXG4gICAgICAgIGNsYXNzPVwiZXQtYnV0dG9uLXRleHQgZXQtcXVlcnktYnV0dG9uLXRleHQgZXQtcXVlcnktYnV0dG9uLXRleHQtLWxvYWRpbmdcIlxuICAgICAgICA+TG9hZGluZzwvc3BhblxuICAgICAgPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dTdWNjZXNzXCIgY2xhc3M9XCJldC1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dC0tc3VjY2Vzc1wiPlN1Y2Nlc3M8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cInNob3dGYWlsdXJlXCIgY2xhc3M9XCJldC1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dCBldC1xdWVyeS1idXR0b24tdGV4dC0tZmFpbHVyZVwiPkZhaWx1cmU8L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef, inject, Input } from '@angular/core';
1
+ import { booleanAttribute, Directive, ElementRef, inject, Input } from '@angular/core';
2
2
  import { createDestroy, createReactiveBindings } from '@ethlete/core';
3
3
  import { extractQuery, isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '@ethlete/query';
4
4
  import { BehaviorSubject, combineLatest, map, of, skip, switchMap, takeUntil } from 'rxjs';
@@ -10,6 +10,24 @@ const CLASSES = {
10
10
  failure: 'et-query-button--failure',
11
11
  };
12
12
  export class QueryButtonDirective {
13
+ get skipSuccess() {
14
+ return this._skipSuccess;
15
+ }
16
+ set skipSuccess(value) {
17
+ this._skipSuccess = value;
18
+ }
19
+ get skipFailure() {
20
+ return this._skipFailure;
21
+ }
22
+ set skipFailure(value) {
23
+ this._skipFailure = value;
24
+ }
25
+ get skipLoading() {
26
+ return this._skipLoading;
27
+ }
28
+ set skipLoading(value) {
29
+ this._skipLoading = value;
30
+ }
13
31
  get query() {
14
32
  return this._query$.value;
15
33
  }
@@ -28,7 +46,7 @@ export class QueryButtonDirective {
28
46
  return;
29
47
  }
30
48
  query.state$.pipe(takeUntil(this._destroy$), takeUntil(this._query$.pipe(skip(1)))).subscribe((state) => {
31
- if (isQueryStateLoading(state)) {
49
+ if (isQueryStateLoading(state) && !this._skipLoading) {
32
50
  this.isLoading$.next(true);
33
51
  classList.add(CLASSES.loading);
34
52
  }
@@ -36,11 +54,11 @@ export class QueryButtonDirective {
36
54
  this.isLoading$.next(false);
37
55
  classList.remove(CLASSES.loading);
38
56
  }
39
- if (isQueryStateSuccess(state)) {
57
+ if (isQueryStateSuccess(state) && !this._skipSuccess) {
40
58
  this.showSuccess$.next(true);
41
59
  classList.add(CLASSES.success);
42
60
  }
43
- else if (isQueryStateFailure(state)) {
61
+ else if (isQueryStateFailure(state) && !this._skipFailure) {
44
62
  this.showFailure$.next(true);
45
63
  classList.add(CLASSES.failure);
46
64
  }
@@ -69,6 +87,9 @@ export class QueryButtonDirective {
69
87
  this.showFailure$ = new BehaviorSubject(false);
70
88
  this.didLoadOnce$ = new BehaviorSubject(false);
71
89
  this.isLoading$ = new BehaviorSubject(false);
90
+ this._skipSuccess = false;
91
+ this._skipFailure = false;
92
+ this._skipLoading = false;
72
93
  this._query$ = new BehaviorSubject(null);
73
94
  this._bindings = createReactiveBindings({
74
95
  attribute: ['disabled', 'aria-disabled'],
@@ -95,7 +116,7 @@ export class QueryButtonDirective {
95
116
  this._button._removeDisabledBindings();
96
117
  }
97
118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: QueryButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
98
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: QueryButtonDirective, isStandalone: true, inputs: { query: "query" }, exportAs: ["etQueryButton"], ngImport: i0 }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.0", type: QueryButtonDirective, isStandalone: true, inputs: { skipSuccess: ["skipSuccess", "skipSuccess", booleanAttribute], skipFailure: ["skipFailure", "skipFailure", booleanAttribute], skipLoading: ["skipLoading", "skipLoading", booleanAttribute], query: "query" }, exportAs: ["etQueryButton"], ngImport: i0 }); }
99
120
  }
100
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: QueryButtonDirective, decorators: [{
101
122
  type: Directive,
@@ -103,7 +124,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
103
124
  standalone: true,
104
125
  exportAs: 'etQueryButton',
105
126
  }]
106
- }], ctorParameters: function () { return []; }, propDecorators: { query: [{
127
+ }], ctorParameters: function () { return []; }, propDecorators: { skipSuccess: [{
128
+ type: Input,
129
+ args: [{ transform: booleanAttribute }]
130
+ }], skipFailure: [{
131
+ type: Input,
132
+ args: [{ transform: booleanAttribute }]
133
+ }], skipLoading: [{
134
+ type: Input,
135
+ args: [{ transform: booleanAttribute }]
136
+ }], query: [{
107
137
  type: Input
108
138
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vZGlyZWN0aXZlcy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUdMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFNUMsTUFBTSxPQUFPLEdBQUc7SUFDZCxPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtDQUNwQyxDQUFDO0FBTUYsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUF1QztRQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFFM0QsSUFBSSxJ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SUFBSSxDQUFDLENBQUMsQ0FDeEM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVk7YUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO2dCQUMzQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBRWxCLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxFQUFFO29CQUN6RyxLQUFLLEdBQUcsV0FBVyxDQUFDO2lCQUNyQjtnQkFFRCxPQUFPO29CQUNMLE1BQU0sRUFBRSxJQUFJO29CQUNaLEtBQUs7aUJBQ04sQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUNIO1NBQ0YsQ0FDRixDQUFDO1FBR0EsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBOUdVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZUFBZTtpQkFDMUI7MEVBY0ssS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVEZXN0cm95LCBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzIH0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQge1xuICBBbnlRdWVyeSxcbiAgQW55UXVlcnlDb2xsZWN0aW9uLFxuICBleHRyYWN0UXVlcnksXG4gIGlzUXVlcnlTdGF0ZUZhaWx1cmUsXG4gIGlzUXVlcnlTdGF0ZUxvYWRpbmcsXG4gIGlzUXVlcnlTdGF0ZVN1Y2Nlc3MsXG59IGZyb20gJ0BldGhsZXRlL3F1ZXJ5JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc2tpcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2J1dHRvbic7XG5cbmNvbnN0IENMQVNTRVMgPSB7XG4gIGxvYWRpbmc6ICdldC1xdWVyeS1idXR0b24tLWxvYWRpbmcnLFxuICBzdWNjZXNzOiAnZXQtcXVlcnktYnV0dG9uLS1zdWNjZXNzJyxcbiAgZmFpbHVyZTogJ2V0LXF1ZXJ5LWJ1dHRvbi0tZmFpbHVyZScsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdldFF1ZXJ5QnV0dG9uJyxcbn0pXG5leHBvcnQgY2xhc3MgUXVlcnlCdXR0b25EaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1dHRvbiA9IGluamVjdChCdXR0b25EaXJlY3RpdmUpO1xuXG4gIHByaXZhdGUgX2NsZWFudXBUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBzaG93U3VjY2VzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0ZhaWx1cmUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHJlYWRvbmx5IGRpZExvYWRPbmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICByZWFkb25seSBpc0xvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeSQudmFsdWU7XG4gIH1cbiAgc2V0IHF1ZXJ5KHY6IEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbCkge1xuICAgIHRoaXMuX3F1ZXJ5JC5uZXh0KHYpO1xuXG4gICAgY29uc3QgY2xhc3NMaXN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdDtcblxuICAgIGlmICh0aGlzLl9jbGVhbnVwVGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9jbGVhbnVwVGltZW91dCk7XG4gICAgfVxuXG4gICAgY2xhc3NMaXN0LnJlbW92ZShDTEFTU0VTLnN1Y2Nlc3MpO1xuICAgIGNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NFUy5mYWlsdXJlKTtcbiAgICBjbGFzc0xpc3QucmVtb3ZlKENMQVNTRVMubG9hZGluZyk7XG5cbiAgICB0aGlzLl9iaW5kaW5ncy5yZXNldCgpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBleHRyYWN0UXVlcnkodGhpcy5fcXVlcnkkLnZhbHVlKTtcblxuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBxdWVyeS5zdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLCB0YWtlVW50aWwodGhpcy5fcXVlcnkkLnBpcGUoc2tpcCgxKSkpKS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoaXNRdWVyeVN0YXRlTG9hZGluZyhzdGF0ZSkpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIGNsYXNzTGlzdC5hZGQoQ0xBU1NFUy5sb2FkaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShDTEFTU0VTLmxvYWRpbmcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNRdWVyeVN0YXRlU3VjY2VzcyhzdGF0ZSkpIHtcbiAgICAgICAgdGhpcy5zaG93U3VjY2VzcyQubmV4dCh0cnVlKTtcbiAgICAgICAgY2xhc3NMaXN0LmFkZChDTEFTU0VTLnN1Y2Nlc3MpO1xuICAgICAgfSBlbHNlIGlmIChpc1F1ZXJ5U3RhdGVGYWlsdXJlKHN0YXRlKSkge1xuICAgICAgICB0aGlzLnNob3dGYWlsdXJlJC5uZXh0KHRydWUpO1xuICAgICAgICBjbGFzc0xpc3QuYWRkKENMQVNTRVMuZmFpbHVyZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1F1ZXJ5U3RhdGVTdWNjZXNzKHN0YXRlKSB8fCBpc1F1ZXJ5U3RhdGVGYWlsdXJlKHN0YXRlKSkge1xuICAgICAgICBpZiAoIXRoaXMuZGlkTG9hZE9uY2UkLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5kaWRMb2FkT25jZSQubmV4dCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsZWFudXBUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0ZhaWx1cmUkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NFUy5zdWNjZXNzKTtcbiAgICAgICAgICBjbGFzc0xpc3QucmVtb3ZlKENMQVNTRVMuZmFpbHVyZSk7XG4gICAgICAgIH0sIDMwMDApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGdldCBxdWVyeSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9xdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFueVF1ZXJ5IHwgQW55UXVlcnlDb2xsZWN0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYmluZGluZ3MgPSBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzKFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogWydkaXNhYmxlZCcsICdhcmlhLWRpc2FibGVkJ10sXG4gICAgICBvYnNlcnZhYmxlOiBjb21iaW5lTGF0ZXN0KFt0aGlzLl9idXR0b24uZGlzYWJsZWQkLCB0aGlzLnNob3dGYWlsdXJlJCwgdGhpcy5zaG93U3VjY2VzcyQsIHRoaXMuaXNMb2FkaW5nJF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2Rpc2FibGVkLCBzaG93RmFpbHVyZSwgc2hvd1N1Y2Nlc3MsIGlzTG9hZGluZ10pID0+ICh7XG4gICAgICAgICAgcmVuZGVyOiBkaXNhYmxlZCB8fCBzaG93RmFpbHVyZSB8fCBzaG93U3VjY2VzcyB8fCBpc0xvYWRpbmcsXG4gICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIH0pKSxcbiAgICAgICksXG4gICAgfSxcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6IFsnYXJpYS1saXZlJ10sXG4gICAgICBvYnNlcnZhYmxlOiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5xdWVyeSQucGlwZShcbiAgICAgICAgICBtYXAoKHEpID0+IGV4dHJhY3RRdWVyeShxKSksXG4gICAgICAgICAgc3dpdGNoTWFwKChxKSA9PiBxPy5zdGF0ZSQgPz8gb2YobnVsbCkpLFxuICAgICAgICApLFxuICAgICAgICB0aGlzLmRpZExvYWRPbmNlJCxcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3N0YXRlLCBkaWRMb2FkT25jZV0pID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWUgPSAnb2ZmJztcblxuICAgICAgICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSB8fCBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHN0YXRlKSB8fCBpc1F1ZXJ5U3RhdGVGYWlsdXJlKHN0YXRlKSB8fCBkaWRMb2FkT25jZSkge1xuICAgICAgICAgICAgdmFsdWUgPSAnYXNzZXJ0aXZlJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVuZGVyOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICApLFxuICAgIH0sXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fYnV0dG9uLl9yZW1vdmVEaXNhYmxlZEJpbmRpbmdzKCk7XG4gIH1cbn1cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vZGlyZWN0aXZlcy9xdWVyeS1idXR0b24vcXVlcnktYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUdMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFNUMsTUFBTSxPQUFPLEdBQUc7SUFDZCxPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsT0FBTyxFQUFFLDBCQUEwQjtDQUNwQyxDQUFDO0FBTUYsTUFBTSxPQUFPLG9CQUFvQjtJQVkvQixJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUdELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMs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QyxDQUFDLENBQ0g7U0FDRixDQUNGLENBQUM7UUFHQSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0F6SVUsb0JBQW9CO2tHQUFwQixvQkFBb0IsNEVBWVgsZ0JBQWdCLCtDQVNoQixnQkFBZ0IsK0NBU2hCLGdCQUFnQjs7MkZBOUJ6QixvQkFBb0I7a0JBSmhDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjswRUFjSyxXQUFXO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBVWxDLFdBQVc7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVbEMsV0FBVztzQkFEZCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVVsQyxLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZURlc3Ryb3ksIGNyZWF0ZVJlYWN0aXZlQmluZGluZ3MgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEFueVF1ZXJ5LFxuICBBbnlRdWVyeUNvbGxlY3Rpb24sXG4gIGV4dHJhY3RRdWVyeSxcbiAgaXNRdWVyeVN0YXRlRmFpbHVyZSxcbiAgaXNRdWVyeVN0YXRlTG9hZGluZyxcbiAgaXNRdWVyeVN0YXRlU3VjY2Vzcyxcbn0gZnJvbSAnQGV0aGxldGUvcXVlcnknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mLCBza2lwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vYnV0dG9uJztcblxuY29uc3QgQ0xBU1NFUyA9IHtcbiAgbG9hZGluZzogJ2V0LXF1ZXJ5LWJ1dHRvbi0tbG9hZGluZycsXG4gIHN1Y2Nlc3M6ICdldC1xdWVyeS1idXR0b24tLXN1Y2Nlc3MnLFxuICBmYWlsdXJlOiAnZXQtcXVlcnktYnV0dG9uLS1mYWlsdXJlJyxcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ2V0UXVlcnlCdXR0b24nLFxufSlcbmV4cG9ydCBjbGFzcyBRdWVyeUJ1dHRvbkRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnV0dG9uID0gaW5qZWN0KEJ1dHRvbkRpcmVjdGl2ZSk7XG5cbiAgcHJpdmF0ZSBfY2xlYW51cFRpbWVvdXQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIHJlYWRvbmx5IHNob3dTdWNjZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICByZWFkb25seSBzaG93RmFpbHVyZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlkTG9hZE9uY2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHJlYWRvbmx5IGlzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgZ2V0IHNraXBTdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9za2lwU3VjY2VzcztcbiAgfVxuICBzZXQgc2tpcFN1Y2Nlc3ModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9za2lwU3VjY2VzcyA9IHZhbHVlO1xuICB9XG4gIHByaXZhdGUgX3NraXBTdWNjZXNzID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGdldCBza2lwRmFpbHVyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2tpcEZhaWx1cmU7XG4gIH1cbiAgc2V0IHNraXBGYWlsdXJlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2tpcEZhaWx1cmUgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9za2lwRmFpbHVyZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBnZXQgc2tpcExvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBMb2FkaW5nO1xuICB9XG4gIHNldCBza2lwTG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NraXBMb2FkaW5nID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfc2tpcExvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5JC52YWx1ZTtcbiAgfVxuICBzZXQgcXVlcnkodjogQW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsKSB7XG4gICAgdGhpcy5fcXVlcnkkLm5leHQodik7XG5cbiAgICBjb25zdCBjbGFzc0xpc3QgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xuXG4gICAgaWYgKHRoaXMuX2NsZWFudXBUaW1lb3V0ICE9PSBudWxsKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX2NsZWFudXBUaW1lb3V0KTtcbiAgICB9XG5cbiAgICBjbGFzc0xpc3QucmVtb3ZlKENMQVNTRVMuc3VjY2Vzcyk7XG4gICAgY2xhc3NMaXN0LnJlbW92ZShDTEFTU0VTLmZhaWx1cmUpO1xuICAgIGNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NFUy5sb2FkaW5nKTtcblxuICAgIHRoaXMuX2JpbmRpbmdzLnJlc2V0KCk7XG5cbiAgICBjb25zdCBxdWVyeSA9IGV4dHJhY3RRdWVyeSh0aGlzLl9xdWVyeSQudmFsdWUpO1xuXG4gICAgaWYgKCFxdWVyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHF1ZXJ5LnN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksIHRha2VVbnRpbCh0aGlzLl9xdWVyeSQucGlwZShza2lwKDEpKSkpLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSAmJiAhdGhpcy5fc2tpcExvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIGNsYXNzTGlzdC5hZGQoQ0xBU1NFUy5sb2FkaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShDTEFTU0VTLmxvYWRpbmcpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNRdWVyeVN0YXRlU3VjY2VzcyhzdGF0ZSkgJiYgIXRoaXMuX3NraXBTdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MkLm5leHQodHJ1ZSk7XG4gICAgICAgIGNsYXNzTGlzdC5hZGQoQ0xBU1NFUy5zdWNjZXNzKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkgJiYgIXRoaXMuX3NraXBGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMuc2hvd0ZhaWx1cmUkLm5leHQodHJ1ZSk7XG4gICAgICAgIGNsYXNzTGlzdC5hZGQoQ0xBU1NFUy5mYWlsdXJlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpIHx8IGlzUXVlcnlTdGF0ZUZhaWx1cmUoc3RhdGUpKSB7XG4gICAgICAgIGlmICghdGhpcy5kaWRMb2FkT25jZSQudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmRpZExvYWRPbmNlJC5uZXh0KHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2xlYW51cFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93RmFpbHVyZSQubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaG93U3VjY2VzcyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShDTEFTU0VTLnN1Y2Nlc3MpO1xuICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NFUy5mYWlsdXJlKTtcbiAgICAgICAgfSwgMzAwMCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZ2V0IHF1ZXJ5JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcXVlcnkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QW55UXVlcnkgfCBBbnlRdWVyeUNvbGxlY3Rpb24gfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9iaW5kaW5ncyA9IGNyZWF0ZVJlYWN0aXZlQmluZGluZ3MoXG4gICAge1xuICAgICAgYXR0cmlidXRlOiBbJ2Rpc2FibGVkJywgJ2FyaWEtZGlzYWJsZWQnXSxcbiAgICAgIG9ic2VydmFibGU6IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2J1dHRvbi5kaXNhYmxlZCQsIHRoaXMuc2hvd0ZhaWx1cmUkLCB0aGlzLnNob3dTdWNjZXNzJCwgdGhpcy5pc0xvYWRpbmckXSkucGlwZShcbiAgICAgICAgbWFwKChbZGlzYWJsZWQsIHNob3dGYWlsdXJlLCBzaG93U3VjY2VzcywgaXNMb2FkaW5nXSkgPT4gKHtcbiAgICAgICAgICByZW5kZXI6IGRpc2FibGVkIHx8IHNob3dGYWlsdXJlIHx8IHNob3dTdWNjZXNzIHx8IGlzTG9hZGluZyxcbiAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgfSkpLFxuICAgICAgKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGF0dHJpYnV0ZTogWydhcmlhLWxpdmUnXSxcbiAgICAgIG9ic2VydmFibGU6IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnF1ZXJ5JC5waXBlKFxuICAgICAgICAgIG1hcCgocSkgPT4gZXh0cmFjdFF1ZXJ5KHEpKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKHEpID0+IHE/LnN0YXRlJCA/PyBvZihudWxsKSksXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuZGlkTG9hZE9uY2UkLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbc3RhdGUsIGRpZExvYWRPbmNlXSkgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZSA9ICdvZmYnO1xuXG4gICAgICAgICAgaWYgKGlzUXVlcnlTdGF0ZUxvYWRpbmcoc3RhdGUpIHx8IGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpIHx8IGlzUXVlcnlTdGF0ZUZhaWx1cmUoc3RhdGUpIHx8IGRpZExvYWRPbmNlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9ICdhc3NlcnRpdmUnO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZW5kZXI6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgfSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9idXR0b24uX3JlbW92ZURpc2FibGVkQmluZGluZ3MoKTtcbiAgfVxufVxuIl19