@acorex/components 18.14.1-next.3 → 18.14.1-next.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/check-box/lib/check-box.component.d.ts +4 -2
  2. package/common/lib/components/selection-base.component.class.d.ts +1 -0
  3. package/drawer/lib/drawer/drawer-item/drawer.component.d.ts +2 -6
  4. package/esm2022/check-box/lib/check-box.component.mjs +23 -27
  5. package/esm2022/common/lib/classes/components.class.mjs +1 -1
  6. package/esm2022/common/lib/components/selection-base.component.class.mjs +5 -1
  7. package/esm2022/cron-job/lib/cron-job-container/cron-job-container.component.mjs +2 -2
  8. package/esm2022/cron-job/lib/day/day.component.mjs +7 -6
  9. package/esm2022/cron-job/lib/hours/hours.component.mjs +7 -6
  10. package/esm2022/cron-job/lib/minutes/minutes.component.mjs +7 -6
  11. package/esm2022/cron-job/lib/month/month.component.mjs +7 -6
  12. package/esm2022/cron-job/lib/seconds/seconds.component.mjs +7 -6
  13. package/esm2022/cron-job/lib/year/year.component.mjs +7 -6
  14. package/esm2022/drawer/lib/drawer/drawer-item/drawer.component.mjs +6 -9
  15. package/esm2022/form/lib/form.component.mjs +5 -2
  16. package/esm2022/password-box/index.mjs +2 -1
  17. package/esm2022/password-box/lib/password-box.component.mjs +8 -8
  18. package/esm2022/password-box/lib/password-box.module.mjs +6 -4
  19. package/esm2022/password-box/lib/password-strength-validation/password-strength-validation.component.mjs +41 -0
  20. package/esm2022/phone-box/lib/phone-box.component.mjs +17 -5
  21. package/esm2022/select-box/lib/select-box.component.mjs +7 -24
  22. package/esm2022/selection-list/lib/selection-list.component.mjs +4 -4
  23. package/esm2022/side-menu/index.mjs +2 -2
  24. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.component.mjs +81 -0
  25. package/esm2022/side-menu/lib/side-menu.module.mjs +2 -2
  26. package/esm2022/step-wizard/lib/step-wizard-item/step-wizard-item.component.mjs +5 -4
  27. package/esm2022/step-wizard/lib/step-wizard.class.mjs +1 -1
  28. package/esm2022/step-wizard/lib/step-wizard.component.mjs +21 -32
  29. package/fesm2022/acorex-components-check-box.mjs +23 -27
  30. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  31. package/fesm2022/acorex-components-common.mjs +4 -0
  32. package/fesm2022/acorex-components-common.mjs.map +1 -1
  33. package/fesm2022/acorex-components-cron-job.mjs +19 -18
  34. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  35. package/fesm2022/acorex-components-drawer.mjs +6 -9
  36. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  37. package/fesm2022/acorex-components-form.mjs +4 -1
  38. package/fesm2022/acorex-components-form.mjs.map +1 -1
  39. package/fesm2022/acorex-components-password-box.mjs +50 -11
  40. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-phone-box.mjs +16 -4
  42. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  43. package/fesm2022/acorex-components-select-box.mjs +6 -23
  44. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-selection-list.mjs +3 -3
  46. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  47. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  48. package/fesm2022/acorex-components-step-wizard.mjs +24 -34
  49. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  50. package/package.json +1 -1
  51. package/password-box/index.d.ts +1 -0
  52. package/password-box/lib/password-box.component.d.ts +7 -7
  53. package/password-box/lib/password-box.module.d.ts +7 -5
  54. package/password-box/lib/password-strength-validation/password-strength-validation.component.d.ts +12 -0
  55. package/phone-box/lib/phone-box.component.d.ts +4 -2
  56. package/select-box/lib/select-box.component.d.ts +0 -8
  57. package/side-menu/index.d.ts +1 -1
  58. package/side-menu/lib/side-menu.module.d.ts +1 -1
  59. package/step-wizard/lib/step-wizard-item/step-wizard-item.component.d.ts +10 -9
  60. package/step-wizard/lib/step-wizard.class.d.ts +1 -1
  61. package/step-wizard/lib/step-wizard.component.d.ts +7 -13
  62. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +0 -81
  63. /package/side-menu/lib/side-menu-item/{side-menu-item.compoent.d.ts → side-menu-item.component.d.ts} +0 -0
@@ -1,81 +0,0 @@
1
- import { AXClickEvent, MXColorComponent, MXInteractiveComponent } from '@acorex/components/common';
2
- import { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';
3
- import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, ViewEncapsulation, afterNextRender, model, output, signal, } from '@angular/core';
4
- import { classes } from 'polytype';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@acorex/components/common";
7
- import * as i2 from "@acorex/components/loading";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@acorex/core/translation";
10
- export class AXSideMenuItemClickEvent extends AXClickEvent {
11
- constructor() {
12
- super(...arguments);
13
- this.handled = false;
14
- }
15
- }
16
- export class AXSideMenuItemComponent extends classes(MXInteractiveComponent, MXColorComponent) {
17
- constructor(elem) {
18
- super();
19
- this.elem = elem;
20
- this.isLoading = model(false);
21
- this.text = model('');
22
- this.isCollapsed = model(true);
23
- this.active = model(false);
24
- this.onClick = output();
25
- this.hasChild = signal(false);
26
- afterNextRender(() => {
27
- this.hasChild.set(this.elem.nativeElement.getElementsByTagName('ax-side-menu-item').length > 0);
28
- });
29
- }
30
- _handleClickEvent(e) {
31
- if (this.disabled || this.isLoading())
32
- return;
33
- const event = {
34
- component: this,
35
- htmlElement: this.getHostElement(),
36
- nativeEvent: e,
37
- handled: false,
38
- };
39
- this.onClick.emit(event);
40
- if (!event.handled) {
41
- this.toggle();
42
- }
43
- e.stopPropagation();
44
- }
45
- toggle() {
46
- this.isCollapsed.update((prev) => !prev);
47
- }
48
- open() {
49
- this.isCollapsed.set(true);
50
- }
51
- close() {
52
- this.isCollapsed.set(false);
53
- }
54
- get __hostClass() {
55
- return [`ax-${this.color}-solid`];
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXSideMenuItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoading: "isLoadingChange", text: "textChange", isCollapsed: "isCollapsedChange", active: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-title\"></ng-content>\n<div\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if(text()){\n <span>{{text()}}</span>\n }\n <ng-content></ng-content>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if(hasChild() && !isLoading()){\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"></span>\n } @if(isLoading()){\n <ax-loading></ax-loading>\n }\n </div>\n</div>\n\n<div class=\"ax-side-children\" [@collapse]=\"isCollapsed()\">\n @if(isLoading()){\n <p>{{'loading' | translate | async }}</p>\n } @else {\n\n <ng-content select=\"ax-side-menu-item, ng-container\"></ng-content>\n }\n</div>\n\n<ng-content select=\"ax-divider\"></ng-content>\n", dependencies: [{ kind: "directive", type: i1.AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], animations: [
59
- trigger('collapse', [
60
- state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
61
- state('true', style({ height: '0', visibility: 'hidden' })),
62
- transition('false => true', animate(150 + 'ms ease-in')),
63
- transition('true => false', animate(150 + 'ms ease-out')),
64
- ]),
65
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{
68
- type: Component,
69
- args: [{ selector: 'ax-side-menu-item', inputs: ['disabled', 'color'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [
70
- trigger('collapse', [
71
- state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
72
- state('true', style({ height: '0', visibility: 'hidden' })),
73
- transition('false => true', animate(150 + 'ms ease-in')),
74
- transition('true => false', animate(150 + 'ms ease-out')),
75
- ]),
76
- ], host: { ngSkipHydration: 'true' }, template: "<ng-content select=\"ax-title\"></ng-content>\n<div\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if(text()){\n <span>{{text()}}</span>\n }\n <ng-content></ng-content>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if(hasChild() && !isLoading()){\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"></span>\n } @if(isLoading()){\n <ax-loading></ax-loading>\n }\n </div>\n</div>\n\n<div class=\"ax-side-children\" [@collapse]=\"isCollapsed()\">\n @if(isLoading()){\n <p>{{'loading' | translate | async }}</p>\n } @else {\n\n <ng-content select=\"ax-side-menu-item, ng-container\"></ng-content>\n }\n</div>\n\n<ng-content select=\"ax-divider\"></ng-content>\n" }]
77
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { __hostClass: [{
78
- type: HostBinding,
79
- args: ['class']
80
- }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWl0ZW0uY29tcG9lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LWl0ZW0vc2lkZS1tZW51LWl0ZW0uY29tcG9lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LWl0ZW0vc2lkZS1tZW51LWl0ZW0uY29tcG9lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQUVuQyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsWUFBWTtJQUExRDs7UUFDRSxZQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLENBQUM7Q0FBQTtBQWtCRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsT0FBTyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDO0lBYTVGLFlBQW9CLElBQWdCO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVpwQyxjQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLFNBQUksR0FBRyxLQUFL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QUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDLENBQUM7NEJBQ3hELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUMsQ0FBQzt5QkFDMUQsQ0FBQztxQkFDSCxRQUNLLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRTsrRUFrRHJCLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgTVhDb2xvckNvbXBvbmVudCwgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVVUT19TVFlMRSwgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBBWENsaWNrRXZlbnQge1xuICBoYW5kbGVkID0gZmFsc2U7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudS1pdGVtJyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2NvbG9yJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUtaXRlbS5jb21wb2VudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjb2xsYXBzZScsIFtcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFLCB2aXNpYmlsaXR5OiBBVVRPX1NUWUxFIH0pKSxcbiAgICAgIHN0YXRlKCd0cnVlJywgc3R5bGUoeyBoZWlnaHQ6ICcwJywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoMTUwICsgJ21zIGVhc2UtaW4nKSksXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgxNTAgKyAnbXMgZWFzZS1vdXQnKSksXG4gICAgXSksXG4gIF0sXG4gIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW50ZXJhY3RpdmVDb21wb25lbnQsIE1YQ29sb3JDb21wb25lbnQpIHtcbiAgaXNMb2FkaW5nID0gbW9kZWwoZmFsc2UpO1xuXG4gIHRleHQgPSBtb2RlbCgnJyk7XG5cbiAgaXNDb2xsYXBzZWQgPSBtb2RlbCh0cnVlKTtcblxuICBhY3RpdmUgPSBtb2RlbChmYWxzZSk7XG5cbiAgb25DbGljayA9IG91dHB1dDxBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGhhc0NoaWxkID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW06IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuaGFzQ2hpbGQuc2V0KHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdheC1zaWRlLW1lbnUtaXRlbScpLmxlbmd0aCA+IDApO1xuICAgIH0pO1xuICB9XG5cbiAgX2hhbmRsZUNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNMb2FkaW5nKCkpIHJldHVybjtcbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICAgIGhhbmRsZWQ6IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIGlmICghZXZlbnQuaGFuZGxlZCkge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnVwZGF0ZSgocHJldikgPT4gIXByZXYpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KGZhbHNlKTtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbYGF4LSR7dGhpcy5jb2xvcn0tc29saWRgXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG48ZGl2XG4gIFtheFJpcHBsZV1cbiAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuYXgtc3RhdGUtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgKGNsaWNrKT1cIl9oYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuPlxuICA8ZGl2IGNsYXNzPVwiYXgtc3RhcnQtc2lkZVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICBAaWYodGV4dCgpKXtcbiAgICA8c3Bhbj57e3RleHQoKX19PC9zcGFuPlxuICAgIH1cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtZW5kLXNpZGVcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gICAgQGlmKGhhc0NoaWxkKCkgJiYgIWlzTG9hZGluZygpKXtcbiAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLXJpZ2h0IGFycm93LWljb25cIiBbY2xhc3MuYXJyb3ctaWNvbi1leHBhbmRdPVwiIWlzQ29sbGFwc2VkKClcIj48L3NwYW4+XG4gICAgfSBAaWYoaXNMb2FkaW5nKCkpe1xuICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJheC1zaWRlLWNoaWxkcmVuXCIgW0Bjb2xsYXBzZV09XCJpc0NvbGxhcHNlZCgpXCI+XG4gIEBpZihpc0xvYWRpbmcoKSl7XG4gIDxwPnt7J2xvYWRpbmcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gIH0gQGVsc2Uge1xuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXNpZGUtbWVudS1pdGVtLCBuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG4gIH1cbjwvZGl2PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJheC1kaXZpZGVyXCI+PC9uZy1jb250ZW50PlxuIl19