@unipin/angular-applet 18.0.3 → 18.1.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.
- package/esm2022/graphql/generated.mjs +246 -1
- package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +3 -3
- package/esm2022/lib/components/forms/currency-input/form-currency-input.component.mjs +45 -39
- package/esm2022/lib/utils/contrast-color-generator/contrast-color-generator.util.mjs +16 -0
- package/esm2022/lib/utils/form-error-message/form-error-message.util.mjs +21 -0
- package/esm2022/lib/utils/format-capitalize/format-capitalize.util.mjs +18 -0
- package/esm2022/lib/utils/index.mjs +4 -2
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/unipin-angular-applet.mjs +329 -43
- package/fesm2022/unipin-angular-applet.mjs.map +1 -1
- package/graphql/generated.d.ts +3637 -200
- package/lib/components/forms/currency-input/form-currency-input.component.d.ts +20 -24
- package/lib/utils/contrast-color-generator/contrast-color-generator.util.d.ts +4 -0
- package/lib/utils/format-capitalize/format-capitalize.util.d.ts +1 -0
- package/lib/utils/index.d.ts +3 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2022/lib/utils/form-error-message.util.mjs +0 -21
- /package/lib/utils/{form-error-message.util.d.ts → form-error-message/form-error-message.util.d.ts} +0 -0
|
@@ -35,7 +35,7 @@ export class AppletContainerComponent {
|
|
|
35
35
|
dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));
|
|
36
36
|
}
|
|
37
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AppletContainerComponent, deps: [{ token: 'APPLET_CONFIG' }, { token: i0.ChangeDetectorRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: AppletContainerComponent, decorators: [{
|
|
41
41
|
type: Component,
|
|
@@ -45,9 +45,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
45
45
|
IonicModule,
|
|
46
46
|
RouterModule,
|
|
47
47
|
CommonModule
|
|
48
|
-
], template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"] }]
|
|
48
|
+
], template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n <div class=\"tenant pt-1 fw-medium\">v{{ config.version }}</div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[i]? 'd-none' : 'd-flex' }}\" title=\"{{ c.label }}\" [routerLink]=\"c.path\" routerLinkActive=\"fw-medium\" *ngFor=\"let c of config.containers; let i = index\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n </div>\n\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" *ngIf=\"config.enabledSetting\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"] }]
|
|
49
49
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
50
50
|
type: Inject,
|
|
51
51
|
args: ['APPLET_CONFIG']
|
|
52
52
|
}] }, { type: i0.ChangeDetectorRef }, { type: i1.PermissionService }] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9hcHBsZXQtY29udGFpbmVyL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvYXBwbGV0LWNvbnRhaW5lci9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQWtCL0MsTUFBTSxPQUFPLHdCQUF3QjtJQXlCbkMsWUFDMkMsTUFPeEMsRUFDa0IsRUFBcUIsRUFDckIsaUJBQW9DO1FBVGQsV0FBTSxHQUFOLE1BQU0sQ0FPOUM7UUFDa0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTVCbEQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFPN0IsYUFBUSxHQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFPdEUsaUJBQVksR0FBWSxLQUFLLENBQUM7SUFlakMsQ0FBQztJQU1FLFFBQVE7UUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBcUIsRUFBRSxFQUFFO1lBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1NLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFPTSxhQUFhLEtBQVUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBUTlELFVBQVU7UUFDZixhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBN0VVLHdCQUF3QixrQkEwQnpCLGVBQWU7a0dBMUJkLHdCQUF3QiwrSEN0QnJDLGd6REFnQ0EsK21DRGZJLFdBQVcsMlNBQ1gsWUFBWSxnZkFDWixZQUFZOzsyRkFHSCx3QkFBd0I7a0JBZnBDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7OzBCQTRCRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL21vZHVsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1hcHBsZXQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwbGV0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBBIGZsYWcgdmFyaWFibGUgdGhhdCB1c2VkIHRvIGNvbnRyb2wgc2lkZWJhci4gV2hlbiBzZXQgdGhlIHRoZSB2YWx1ZSB0byB0cnVlLCB0aGUgY29tcG9uZW50IHdpbGwgb3BlbiB0aGUgc2lkZWJhci5cbiAgICogd2hlbiBzZXQgdGhlIHZhbHVlIHRvIGZhbHNlLCB0aGUgY29tcG9uZW50IHdpbGwgY2xvc2UgdGhlIHNpZGViYXIuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSB0aGF0IHVzZWQgdG8gY29udHJvbCBzaWRlYmFyIG1lbnUuIFdoZW4gc2V0IHZhbHVlIHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBoaWRlIHRoZSBzaWRlYmFyIG1lbnUuXG4gICAqIFdoZW4gc2V0IGZhbHNlLCB0aGUgY29tcG9uZW50IHdpbGwgc2hvdyB0aGUgc2lkZWJhciBtZW51LlxuICAgKiBAdHlwZSB7Ym9vbGVhbltdfVxuICAgKi9cbiAgcHVibGljIGlzSGlkZGVuOiBib29sZWFuW10gPSBBcnJheSh0aGlzLmNvbmZpZy5jb250YWluZXJzLmxlbmd0aCkuZmlsbCh0cnVlKTtcbiAgXG4gIC8qKlxuICAgKiBBIGZsYWcgdmFyaWFibGUgZm9yIGluZGljYXRlcyB3aGV0aGVyIHRoZSBzaWRlYmFyIG1lbnUgaXMgYWN0aXZlIG9yIG5vdCBpbiBtb2JpbGUgdmlldy5cbiAgICogV2hlbiBzZXQgZmFsc2UgdGhlIHNpZGViYXIgbWVudSB3aWxsIGJlIGhpZGRlblxuICAgKiBAdHlwZSB7Ym9vbGVhbltdfVxuICAgKi9cbiAgcHVibGljIGlzTWVudUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3ViITogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc3ViRXZlbnQhOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnQVBQTEVUX0NPTkZJRycpIHB1YmxpYyByZWFkb25seSBjb25maWc6IHtcbiAgICAgIGljb246IHN0cmluZyxcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHRlbmFudE5hbWU6IHN0cmluZyxcbiAgICAgIGVuYWJsZWRTZXR0aW5nOiBib29sZWFuLFxuICAgICAgY29udGFpbmVyczogeyBpY29uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcsIHBhdGg6IGAvJHsgc3RyaW5nIH1gLCBwZXJtTW9kdWxlOiBzdHJpbmcgfVtdLFxuICAgICAgdmVyc2lvbjogc3RyaW5nXG4gICAgfSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cy5cbiAgICogU3Vic2NyaWJlcyB0byBwZXJtaXNzaW9uIGNoYW5nZXMgYW5kIHdpbmRvdyBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICB0aGlzLnN1YiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UucGVybU1vZHVsZXMuc3Vic2NyaWJlKChwZXJtTW9kdWxlczogc3RyaW5nW10pID0+IHtcbiAgICAgIHRoaXMuaXNIaWRkZW4gPSB0aGlzLmNvbmZpZy5jb250YWluZXJzLm1hcCgoeyBwZXJtTW9kdWxlIH0pID0+ICFwZXJtTW9kdWxlcy5pbmNsdWRlcyhwZXJtTW9kdWxlKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YkV2ZW50ID0gZnJvbUV2ZW50KHdpbmRvdywgJ21lbnVFdmVudCcpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc01lbnVBY3RpdmUgPSBldmVudC5kZXRhaWwuaXNBY3RpdmU7XG4gICAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGhhbmRsZSBjb21wb25lbnQgZGVzdHJ1Y3Rpb24uXG4gICAqIENsZWFucyB1cCBzdWJzY3JpcHRpb25zIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YkV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgbWV0aG9kIGlzIGNhbGxlZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIHZhbHVlIG9mIGlzQ29sbGFwc2VkIHRvIGl0cyBvcHBvc2l0ZSB2YWx1ZS4gXG4gICAqIElmIGlzQ29sbGFwc2VkIGlzIGN1cnJlbnRseSB0cnVlLCBpdCB3aWxsIGJlIHNldCB0byBmYWxzZSwgYW5kIGlmIGl0IGlzIGN1cnJlbnRseSBmYWxzZSwgaXQgd2lsbCBiZSBzZXQgdG8gdHJ1ZS4gXG4gICAqIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSB1c2VkIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBhIHNpZGUgbmF2aWdhdGlvbiBtZW51LlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNpZGVuYXYoKTogdm9pZHsgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkOyB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbWVudSBzZWxlY3Rpb24gYnkgZGlzcGF0Y2hpbmcgYSBjdXN0b20gZXZlbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGEgc2lkZWJhciBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqIEl0IGRpc3BhdGNoZXMgYSBjdXN0b20gJ21lbnVFdmVudCcgd2l0aCBkZXRhaWwgaW5kaWNhdGluZyB0aGUgbWVudSBpcyBpbmFjdGl2ZS5cbiAgICogVGhpcyBldmVudCBpcyB0eXBpY2FsbHkgdXNlZCB0byBjbG9zZSB0aGUgc2lkZWJhciBtZW51LlxuICAgKi9cbiAgcHVibGljIHNlbGVjdE1lbnUoKTogdm9pZHtcbiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWVudUV2ZW50JywgeyBkZXRhaWw6IHsgaXNBY3RpdmU6IGZhbHNlIH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2lkZW5hdiBmbGV4LXNocmluay0wIGgtMTAwIHB5LTQgZC1mbGV4IGZsZXgtY29sdW1uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiIFtjbGFzcy5zaG93XT1cImlzTWVudUFjdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lciBweC0zIHBiLTMgYm9yZGVyLWJvdHRvbSBmbGV4LXNocmluay0wIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgZC1ub25lIGQtbWQtZmxleFwiPlxuICAgICAgICA8aW1nIGFsdD1cIkFwcGxldCBJY29uXCIgd2lkdGg9XCI0NHB4XCIgaGVpZ2h0PVwiNDRweFwiIGNsYXNzPVwicm91bmRlZFwiIFtzcmNdPVwiY29uZmlnLmljb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvIHctNzUgcGUtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgZnctbWVkaXVtIHRleHQtdHJ1bmNhdGVcIj57eyBjb25maWcubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbmFudCBwdC0xIGZ3LW1lZGl1bVwiPnZ7eyBjb25maWcudmVyc2lvbiB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsb3NlIGN1cnNvci1wb2ludGVyIHBvc2l0aW9uLWFic29sdXRlIGJvcmRlci0wIHJvdW5kZWQtY2lyY2xlIGQtbm9uZSBkLW1kLWJsb2NrXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVuYXYoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmRcIiBjbGFzcz1cIm10LTFcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBweC0zIHB0LTMgb3ZlcmZsb3cteS1hdXRvIGQtbm9uZSBkLW1kLWJsb2NrXCIgKGNsaWNrKT1cInNlbGVjdE1lbnUoKVwiPlxuICAgICAgICA8YSBjbGFzcz1cIm5hdiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZCBtYi0xIHt7IGlzSGlkZGVuW2ldPyAnZC1ub25lJyA6ICdkLWZsZXgnIH19XCIgdGl0bGU9XCJ7eyBjLmxhYmVsIH19XCIgW3JvdXRlckxpbmtdPVwiYy5wYXRoXCIgcm91dGVyTGlua0FjdGl2ZT1cImZ3LW1lZGl1bVwiICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZy5jb250YWluZXJzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInt7IGMuaWNvbiB9fVwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPnt7IGMubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9hPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgcHgtMyBwdC0zIGJvcmRlci10b3AgZC1ub25lIGQtbWQtYmxvY2tcIiAqbmdJZj1cImNvbmZpZy5lbmFibGVkU2V0dGluZ1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWRlY29yYXRpb24tbm9uZSBnYXAtMiByb3VuZGVkXCIgdGl0bGU9XCJTZXR0aW5nXCIgcm91dGVyTGluaz1cInNldHRpbmdcIiByb3V0ZXJMaW5rQWN0aXZlPVwiZnctbWVkaXVtXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNldHRpbmdzXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+U2V0dGluZzwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9hcHBsZXQtY29udGFpbmVyL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvYXBwbGV0LWNvbnRhaW5lci9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQWtCL0MsTUFBTSxPQUFPLHdCQUF3QjtJQXlCbkMsWUFDMkMsTUFPeEMsRUFDa0IsRUFBcUIsRUFDckIsaUJBQW9DO1FBVGQsV0FBTSxHQUFOLE1BQU0sQ0FPOUM7UUFDa0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTVCbEQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFPN0IsYUFBUSxHQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFPdEUsaUJBQVksR0FBWSxLQUFLLENBQUM7SUFlakMsQ0FBQztJQU1FLFFBQVE7UUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBcUIsRUFBRSxFQUFFO1lBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1NLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFPTSxhQUFhLEtBQVUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBUTlELFVBQVU7UUFDZixhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBN0VVLHdCQUF3QixrQkEwQnpCLGVBQWU7a0dBMUJkLHdCQUF3QiwrSEN0QnJDLHN6REFnQ0EsK21DRGZJLFdBQVcsMlNBQ1gsWUFBWSxnZkFDWixZQUFZOzsyRkFHSCx3QkFBd0I7a0JBZnBDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7OzBCQTRCRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL21vZHVsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1hcHBsZXQtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXBwbGV0Q29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBBIGZsYWcgdmFyaWFibGUgdGhhdCB1c2VkIHRvIGNvbnRyb2wgc2lkZWJhci4gV2hlbiBzZXQgdGhlIHRoZSB2YWx1ZSB0byB0cnVlLCB0aGUgY29tcG9uZW50IHdpbGwgb3BlbiB0aGUgc2lkZWJhci5cbiAgICogd2hlbiBzZXQgdGhlIHZhbHVlIHRvIGZhbHNlLCB0aGUgY29tcG9uZW50IHdpbGwgY2xvc2UgdGhlIHNpZGViYXIuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGlzQ29sbGFwc2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSB0aGF0IHVzZWQgdG8gY29udHJvbCBzaWRlYmFyIG1lbnUuIFdoZW4gc2V0IHZhbHVlIHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBoaWRlIHRoZSBzaWRlYmFyIG1lbnUuXG4gICAqIFdoZW4gc2V0IGZhbHNlLCB0aGUgY29tcG9uZW50IHdpbGwgc2hvdyB0aGUgc2lkZWJhciBtZW51LlxuICAgKiBAdHlwZSB7Ym9vbGVhbltdfVxuICAgKi9cbiAgcHVibGljIGlzSGlkZGVuOiBib29sZWFuW10gPSBBcnJheSh0aGlzLmNvbmZpZy5jb250YWluZXJzLmxlbmd0aCkuZmlsbCh0cnVlKTtcbiAgXG4gIC8qKlxuICAgKiBBIGZsYWcgdmFyaWFibGUgZm9yIGluZGljYXRlcyB3aGV0aGVyIHRoZSBzaWRlYmFyIG1lbnUgaXMgYWN0aXZlIG9yIG5vdCBpbiBtb2JpbGUgdmlldy5cbiAgICogV2hlbiBzZXQgZmFsc2UgdGhlIHNpZGViYXIgbWVudSB3aWxsIGJlIGhpZGRlblxuICAgKiBAdHlwZSB7Ym9vbGVhbltdfVxuICAgKi9cbiAgcHVibGljIGlzTWVudUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc3ViITogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc3ViRXZlbnQhOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnQVBQTEVUX0NPTkZJRycpIHB1YmxpYyByZWFkb25seSBjb25maWc6IHtcbiAgICAgIGljb246IHN0cmluZyxcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHRlbmFudE5hbWU6IHN0cmluZyxcbiAgICAgIGVuYWJsZWRTZXR0aW5nOiBib29sZWFuLFxuICAgICAgY29udGFpbmVyczogeyBpY29uOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcsIHBhdGg6IGAvJHsgc3RyaW5nIH1gLCBwZXJtTW9kdWxlOiBzdHJpbmcgfVtdLFxuICAgICAgdmVyc2lvbjogc3RyaW5nXG4gICAgfSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cy5cbiAgICogU3Vic2NyaWJlcyB0byBwZXJtaXNzaW9uIGNoYW5nZXMgYW5kIHdpbmRvdyBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICB0aGlzLnN1YiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UucGVybU1vZHVsZXMuc3Vic2NyaWJlKChwZXJtTW9kdWxlczogc3RyaW5nW10pID0+IHtcbiAgICAgIHRoaXMuaXNIaWRkZW4gPSB0aGlzLmNvbmZpZy5jb250YWluZXJzLm1hcCgoeyBwZXJtTW9kdWxlIH0pID0+ICFwZXJtTW9kdWxlcy5pbmNsdWRlcyhwZXJtTW9kdWxlKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN1YkV2ZW50ID0gZnJvbUV2ZW50KHdpbmRvdywgJ21lbnVFdmVudCcpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5pc01lbnVBY3RpdmUgPSBldmVudC5kZXRhaWwuaXNBY3RpdmU7XG4gICAgICB0aGlzLmNoLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGhhbmRsZSBjb21wb25lbnQgZGVzdHJ1Y3Rpb24uXG4gICAqIENsZWFucyB1cCBzdWJzY3JpcHRpb25zIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgXG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YkV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiB0aGUgbWV0aG9kIGlzIGNhbGxlZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIHZhbHVlIG9mIGlzQ29sbGFwc2VkIHRvIGl0cyBvcHBvc2l0ZSB2YWx1ZS4gXG4gICAqIElmIGlzQ29sbGFwc2VkIGlzIGN1cnJlbnRseSB0cnVlLCBpdCB3aWxsIGJlIHNldCB0byBmYWxzZSwgYW5kIGlmIGl0IGlzIGN1cnJlbnRseSBmYWxzZSwgaXQgd2lsbCBiZSBzZXQgdG8gdHJ1ZS4gXG4gICAqIFRoaXMgbWV0aG9kIGlzIHR5cGljYWxseSB1c2VkIHRvIHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBhIHNpZGUgbmF2aWdhdGlvbiBtZW51LlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNpZGVuYXYoKTogdm9pZHsgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkOyB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbWVudSBzZWxlY3Rpb24gYnkgZGlzcGF0Y2hpbmcgYSBjdXN0b20gZXZlbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGEgc2lkZWJhciBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqIEl0IGRpc3BhdGNoZXMgYSBjdXN0b20gJ21lbnVFdmVudCcgd2l0aCBkZXRhaWwgaW5kaWNhdGluZyB0aGUgbWVudSBpcyBpbmFjdGl2ZS5cbiAgICogVGhpcyBldmVudCBpcyB0eXBpY2FsbHkgdXNlZCB0byBjbG9zZSB0aGUgc2lkZWJhciBtZW51LlxuICAgKi9cbiAgcHVibGljIHNlbGVjdE1lbnUoKTogdm9pZHtcbiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWVudUV2ZW50JywgeyBkZXRhaWw6IHsgaXNBY3RpdmU6IGZhbHNlIH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2lkZW5hdiBmbGV4LXNocmluay0wIGgtMTAwIHB5LTQgZC1mbGV4IGZsZXgtY29sdW1uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiIFtjbGFzcy5zaG93XT1cImlzTWVudUFjdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lciBweC0zIHBiLTMgYm9yZGVyLWJvdHRvbSBmbGV4LXNocmluay0wIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgZC1ub25lIGQtbWQtZmxleFwiPlxuICAgICAgICA8aW1nIGFsdD1cIkFwcGxldCBJY29uXCIgd2lkdGg9XCI0NHB4XCIgaGVpZ2h0PVwiNDRweFwiIGNsYXNzPVwicm91bmRlZFwiIFtzcmNdPVwiY29uZmlnLmljb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvIHctNzUgcGUtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgZnctbWVkaXVtIHRleHQtdHJ1bmNhdGVcIj57eyBjb25maWcubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbmFudCBwdC0xIGZ3LW1lZGl1bVwiPnZ7eyBjb25maWcudmVyc2lvbiB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLWNsb3NlIGN1cnNvci1wb2ludGVyIHBvc2l0aW9uLWFic29sdXRlIGJvcmRlci0wIHJvdW5kZWQtY2lyY2xlIGQtbm9uZSBkLW1kLWJsb2NrXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVuYXYoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmRcIiBjbGFzcz1cIm10LTFcIiAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBweC0zIHB0LTMgb3ZlcmZsb3cteS1hdXRvIGQtbm9uZSBkLW1kLWJsb2NrXCIgKGNsaWNrKT1cInNlbGVjdE1lbnUoKVwiPlxuICAgICAgICA8YSBjbGFzcz1cIm5hdiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZCBtYi0xIHt7IGlzSGlkZGVuW2ldPyAnZC1ub25lJyA6ICdkLWZsZXgnIH19XCIgdGl0bGU9XCJ7eyBjLmxhYmVsIH19XCIgW3JvdXRlckxpbmtdPVwiYy5wYXRoXCIgcm91dGVyTGlua0FjdGl2ZT1cImZ3LW1lZGl1bVwiICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZy5jb250YWluZXJzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInt7IGMuaWNvbiB9fVwiIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPnt7IGMubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9hPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgcHgtMyBwdC0zIGJvcmRlci10b3AgZC1ub25lIGQtbWQtYmxvY2tcIiAqbmdJZj1cImNvbmZpZy5lbmFibGVkU2V0dGluZ1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJuYXYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB0ZXh0LWRlY29yYXRpb24tbm9uZSBnYXAtMiByb3VuZGVkXCIgdGl0bGU9XCJTZXR0aW5nXCIgcm91dGVyTGluaz1cInNldHRpbmdcIiByb3V0ZXJMaW5rQWN0aXZlPVwiZnctbWVkaXVtXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNldHRpbmdzXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+U2V0dGluZzwvZGl2PlxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIHctMTAwIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Attribute, ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { Subject, catchError, concat, debounceTime, distinctUntilChanged, map, of, switchMap, tap } from 'rxjs';
|
|
5
4
|
import { NgSelectModule } from '@ng-select/ng-select';
|
|
6
5
|
import { getFormErrorMessage } from '../../../utils';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
@@ -10,39 +9,55 @@ import * as i2 from "@angular/common";
|
|
|
10
9
|
import * as i3 from "@angular/forms";
|
|
11
10
|
import * as i4 from "@ng-select/ng-select";
|
|
12
11
|
export class FormCurrencyInputComponent {
|
|
13
|
-
constructor(numberPlaceholder, ch, currencyService) {
|
|
12
|
+
constructor(numberPlaceholder, ch, countryService, currencyService) {
|
|
14
13
|
this.numberPlaceholder = numberPlaceholder;
|
|
15
14
|
this.ch = ch;
|
|
15
|
+
this.countryService = countryService;
|
|
16
16
|
this.currencyService = currencyService;
|
|
17
17
|
this.clearable = true;
|
|
18
18
|
this.isInputNumber = false;
|
|
19
19
|
this.label = 'Currency';
|
|
20
|
-
this.initialItems = [];
|
|
21
20
|
this.numberValue = null;
|
|
22
21
|
this.isNumberDisabled = false;
|
|
23
22
|
this.required = false;
|
|
24
23
|
this.disabled = false;
|
|
25
|
-
this.bindLabel = 'label';
|
|
26
|
-
this.bindValue = 'value';
|
|
27
24
|
this.onChange = new EventEmitter();
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.items$ = this.query$;
|
|
31
|
-
this.isLoading = false;
|
|
25
|
+
this.items = [{ label: 'Hello', value: 'c', data: 'a' }];
|
|
26
|
+
this.isLoading = true;
|
|
32
27
|
this.isTouched = false;
|
|
33
28
|
this.value = null;
|
|
34
29
|
this.decimalLimiter = 0;
|
|
35
30
|
this.changed = (_val) => { };
|
|
36
31
|
this.onTouched = () => { };
|
|
37
32
|
}
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
if (this.label === 'Currency') {
|
|
35
|
+
this.sub = this.currencyService.query().subscribe({
|
|
36
|
+
error: () => {
|
|
37
|
+
this.items = [];
|
|
38
|
+
this.setIsLoading(false);
|
|
39
|
+
},
|
|
40
|
+
next: ({ data: { webConfigMsCurrency: { data } } }) => {
|
|
41
|
+
this.items = data.map((d) => ({ label: `[${d.code}] ${d.name}`, value: d.code, data: d }));
|
|
42
|
+
this.setIsLoading(false);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return;
|
|
43
46
|
}
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
this.isInputNumber = false;
|
|
48
|
+
this.sub = this.countryService.query().subscribe({
|
|
49
|
+
error: () => {
|
|
50
|
+
this.items = [];
|
|
51
|
+
this.setIsLoading(false);
|
|
52
|
+
},
|
|
53
|
+
next: ({ data: { webConfigMsCountry: { data } } }) => {
|
|
54
|
+
this.items = data.map((d) => ({ label: `${d.name}`, value: d.code, data: d }));
|
|
55
|
+
this.setIsLoading(false);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
ngOnDestroy() {
|
|
60
|
+
this.sub?.unsubscribe();
|
|
46
61
|
}
|
|
47
62
|
registerOnChange(fn) { this.changed = fn; }
|
|
48
63
|
registerOnTouched(fn) { this.onTouched = fn; }
|
|
@@ -61,19 +76,16 @@ export class FormCurrencyInputComponent {
|
|
|
61
76
|
change(e) {
|
|
62
77
|
if (this.isInputNumber)
|
|
63
78
|
this.numberValue = null;
|
|
64
|
-
this.onChange.emit({ ccy: e, number: this.numberValue });
|
|
65
|
-
this.initialItems = e;
|
|
66
79
|
if (!this.isTouched) {
|
|
67
80
|
this.onTouched();
|
|
68
81
|
this.isTouched = true;
|
|
69
82
|
}
|
|
70
83
|
if (!this.disabled) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
else
|
|
74
|
-
this.value = e[this.bindValue];
|
|
84
|
+
this.value = e?.value;
|
|
85
|
+
this.selectedItem = e?.data;
|
|
75
86
|
this.changed(this.value);
|
|
76
|
-
this.
|
|
87
|
+
this.onChange.emit({ selectedItem: e, number: this.numberValue });
|
|
88
|
+
this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);
|
|
77
89
|
}
|
|
78
90
|
if (e?.magnifyValue === 1)
|
|
79
91
|
this.decimalLimiter = 0;
|
|
@@ -82,19 +94,19 @@ export class FormCurrencyInputComponent {
|
|
|
82
94
|
}
|
|
83
95
|
numberInput({ value }) {
|
|
84
96
|
this.numberValue = value;
|
|
85
|
-
this.onChange.emit({
|
|
97
|
+
this.onChange.emit({ selectedItem: this.selectedItem, number: value });
|
|
86
98
|
}
|
|
87
99
|
limitDecimal({ charCode, preventDefault, target: { value } }) {
|
|
88
100
|
const reg = this.decimalLimiter > 0 ? new RegExp(`^\\d*(\\.\\d{0,${this.decimalLimiter}})?$`) : /^\d+$/;
|
|
89
101
|
if (!reg.test(value + String.fromCharCode(charCode)))
|
|
90
102
|
preventDefault();
|
|
91
103
|
}
|
|
92
|
-
|
|
93
|
-
|
|
104
|
+
setIsLoading(b) {
|
|
105
|
+
this.isLoading = b;
|
|
106
|
+
this.ch.markForCheck();
|
|
94
107
|
}
|
|
95
|
-
;
|
|
96
|
-
static { this.ɵ
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { clearable: "clearable", isInputNumber: "isInputNumber", label: "label", initialItems: "initialItems", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled", bindLabel: "bindLabel", bindValue: "bindValue" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, deps: [{ token: 'numberPlaceholder', attribute: true }, { token: i0.ChangeDetectorRef }, { token: i1.CountryService }, { token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormCurrencyInputComponent, isStandalone: true, selector: "up-currency-input", inputs: { clearable: "clearable", isInputNumber: "isInputNumber", label: "label", numberValue: "numberValue", isNumberDisabled: "isNumberDisabled", required: "required", disabled: "disabled" }, outputs: { onChange: "onChange" }, host: { classAttribute: "d-block" }, providers: [
|
|
98
110
|
{
|
|
99
111
|
multi: true,
|
|
100
112
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -105,7 +117,7 @@ export class FormCurrencyInputComponent {
|
|
|
105
117
|
provide: NG_VALIDATORS,
|
|
106
118
|
useExisting: FormCurrencyInputComponent
|
|
107
119
|
}
|
|
108
|
-
],
|
|
120
|
+
], ngImport: i0, template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ label }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
109
121
|
}
|
|
110
122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormCurrencyInputComponent, decorators: [{
|
|
111
123
|
type: Component,
|
|
@@ -126,18 +138,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
126
138
|
provide: NG_VALIDATORS,
|
|
127
139
|
useExisting: FormCurrencyInputComponent
|
|
128
140
|
}
|
|
129
|
-
], template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n
|
|
141
|
+
], template: "<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ label }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n<ng-template #inputNumber>\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"!isInputNumber else inputNumber\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n</ng-container>\n\n<label *ngIf=\"errorMsg\" class=\"is-invalid\">{{ errorMsg }}</label>\n", styles: ["ng-select.number{min-width:105px;max-width:105px}\n"] }]
|
|
130
142
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
131
143
|
type: Attribute,
|
|
132
144
|
args: ['numberPlaceholder']
|
|
133
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i1.CurrencyService }], propDecorators: { clearable: [{
|
|
145
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1.CountryService }, { type: i1.CurrencyService }], propDecorators: { clearable: [{
|
|
134
146
|
type: Input
|
|
135
147
|
}], isInputNumber: [{
|
|
136
148
|
type: Input
|
|
137
149
|
}], label: [{
|
|
138
150
|
type: Input
|
|
139
|
-
}], initialItems: [{
|
|
140
|
-
type: Input
|
|
141
151
|
}], numberValue: [{
|
|
142
152
|
type: Input
|
|
143
153
|
}], isNumberDisabled: [{
|
|
@@ -146,11 +156,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
146
156
|
type: Input
|
|
147
157
|
}], disabled: [{
|
|
148
158
|
type: Input
|
|
149
|
-
}], bindLabel: [{
|
|
150
|
-
type: Input
|
|
151
|
-
}], bindValue: [{
|
|
152
|
-
type: Input
|
|
153
159
|
}], onChange: [{
|
|
154
160
|
type: Output
|
|
155
161
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkosT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUE4QnJELE1BQU0sT0FBTywwQkFBMEI7SUE4SnJDLFlBQ3lDLGlCQUF5QixFQUM3QyxFQUFxQixFQUNyQixlQUFnQztRQUZaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixv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O2dCQU9VLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU9VLFFBQVE7c0JBQXZCLEtBQUs7Z0JBT1UsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1XLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgY2F0Y2hFcnJvciwgY29uY2F0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XG5pbXBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ3VycmVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1jdXJyZW5jeS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBcbiAgICBjbGFzczogJ2QtYmxvY2snIFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5nU2VsZWN0TW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtQ3VycmVuY3lJbnB1dENvbXBvbmVudFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ3VycmVuY3lJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uQ2hhbmdlcyB7XG4gIFxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBpcyBjbGVhcmFibGUuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7dHJ1ZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbnVtYmVyIGlucHV0IGZvcm0gaXMgaGlkZSBvciBzaG93LlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlzSW5wdXROdW1iZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGxhYmVsIGlzIHNob3dlZCBhcyBgQ3VycmVuY3lgIG9yIGBDb3VudHJ5YFxuICAgKiBAdHlwZSB7J0NvdW50cnknIHwgJ0N1cnJlbmN5J31cbiAgICogQGRlZmF1bHQgeydDdXJyZW5jeSd9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6ICdDdXJyZW5jeScgfCAnQ291bnRyeScgPSAnQ3VycmVuY3knO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGluaXRpYWwgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHt7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG1hZ25pZnlWYWx1ZTogbnVtYmVyIH1bXX1cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsSXRlbXM6IHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbWFnbmlmeVZhbHVlOiBudW1iZXIgfVtdID0gW107XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIHNldCB0aGUgdmFsdWUgb2YgaW5wdXQgbnVtYmVyIGZpZWxkLlxuICAgKiBAdHlwZSB7bnVtYmVyIHwgbnVsbH1cbiAgICogQGRlZmF1bHQge251bGx9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbnVtYmVyVmFsdWU6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbnVtYmVyIGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlzTnVtYmVyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBpcyByZXF1aXJlZC5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGRpc2FibGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJpbmQgYXMgdGhlIGxhYmVsIGZvciBpdGVtcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7J2xhYmVsJ31cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBiaW5kTGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJpbmQgYXMgdGhlIHZhbHVlIGZvciBpdGVtcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7J3ZhbHVlJ31cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBiaW5kVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSc7XG5cbiAgLyoqXG4gICAqIE91dHB1dCB2YXJpYWJsZSB0byBlbWl0IGNoYW5nZXMgd2hlbiB0aGUgc2VsZWN0IGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8YW55Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjx7IGNjeTogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBtYWduaWZ5VmFsdWU6IG51bWJlciB9IHwgYW55LCBudW1iZXI6IG51bWJlciB8IG51bGwgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgY2N5OiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG1hZ25pZnlWYWx1ZTogbnVtYmVyIH0gfCBhbnksIG51bWJlcjogbnVtYmVyIHwgbnVsbCB9PigpO1xuICBcbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGhhbmRsaW5nIHR5cGVhaGVhZCBldmVudHMgdG8gdHJpZ2dlciBpdGVtIHF1ZXJpZXMgYmFzZWQgb24gdGhlIHNlYXJjaCBrZXl3b3JkLlxuICAgKiBAdHlwZSB7U3ViamVjdDxzdHJpbmc+fVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGVhaGVhZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGZvciBoYW5kbGluZyBpdGVtIHF1ZXJpZXMgYmFzZWQgb24gdGhlIHNlYXJjaCBrZXl3b3JkLlxuICAgKiBAdHlwZSB7T2JzZXJ2YWJsZTxhbnlbXT59XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcXVlcnkkOiBPYnNlcnZhYmxlPGFueVtdPiA9IHRoaXMudHlwZWFoZWFkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICB0YXAoKCkgPT4gdGhpcy5pc0xvYWRpbmcgPSB0cnVlKSxcbiAgICBzd2l0Y2hNYXAoKGs6IHN0cmluZykgPT4gdGhpcy5xdWVyeUZ1bmMoaykucGlwZShcbiAgICAgIG1hcCgocmVzdWx0OiBhbnlbXSkgPT4gcmVzdWx0Lmxlbmd0aCA9PT0gMD8gdGhpcy5pbml0aWFsSXRlbXMgOiByZXN1bHQpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih0aGlzLmluaXRpYWxJdGVtcykpXG4gICAgKSksXG4gICAgdGFwKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpXG4gICk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIGRpc3BsYXlpbmcgaXRlbXMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge09ic2VydmFibGU8YW55W10+fVxuICAgKi9cbiAgcHVibGljIGl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLnF1ZXJ5JDtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGxvYWRpbmcuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHNlbGVjdCBpbnB1dCBoYXMgYmVlbiB0b3VjaGVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgcHVibGljIGlzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge2FueSB8IG51bGx9XG4gICAqIEBkZWZhdWx0IHtudWxsfVxuICAgKi9cbiAgcHVibGljIHZhbHVlOiBhbnkgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQge3VuZGVmaW5lZH1cbiAgICovXG4gIHB1YmxpYyBlcnJvck1zZyE6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZvcm0gY29udHJvbCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cbiAgICovXG4gIHByb3RlY3RlZCBmb3JtQ29udHJvbCE6IEFic3RyYWN0Q29udHJvbDtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBtYXhpbXVtIGRpZ2l0cyBhbGxvd2VkIGJlaGluZCB0aGUgY29tbWEuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IHswfVxuICAgKi9cbiAgcHJvdGVjdGVkIGRlY2ltYWxMaW1pdGVyOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBoYW5kbGUgdmFsdWUgY2hhbmdlcyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7KF92YWw6IGFueSkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBjaGFuZ2VkOiAoX3ZhbDogYW55KSA9PiB2b2lkID0gKF92YWw6IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB0b3VjaCBldmVudHMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUgeygpID0+IHZvaWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEF0dHJpYnV0ZSgnbnVtYmVyUGxhY2Vob2xkZXInKSBwdWJsaWMgbnVtYmVyUGxhY2Vob2xkZXI6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIGNhbGxlZCB3aGVuIGNoYW5nZXMgb2NjdXIgdG8gaW5wdXQgcHJvcGVydGllcy5cbiAgICogVXBkYXRlcyB0aGUgaXRlbXMkIG9ic2VydmFibGUgd2hlbiB0aGUgaW5pdGlhbEl0ZW1zIGlucHV0IGNoYW5nZXMuXG4gICAqIFVwZGF0ZXMgdGhlIGRlY2ltYWxMaW1pdGVyIHRoYXQgaXMgdGhlIG1heGltdW0gZGlnaXRzIGJlaGluZCBjb21tYS5cbiAgICogQ2FsY3VsYXRlIHRoZSB2YWx1ZSBvZiBpbnB1dCBudW1iZXIsIHRoaXMgaXMgdG8gY2FsY3VsYXRlIHRoZSBhY3R1YWwgdmFsdWUgZGl2aWRlZCBieSBtYWduaWZ5VmFsdWUuXG4gICAqIEBwYXJhbSB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlcyAtIE9iamVjdCBjb250YWluaW5nIHRoZSBjaGFuZ2VkIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWR7XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxJdGVtcyddKSB7XG4gICAgICB0aGlzLml0ZW1zJCA9IGNvbmNhdChvZih0aGlzLmluaXRpYWxJdGVtcyksIHRoaXMucXVlcnkkKTtcbiAgICAgIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSB0aGlzLmluaXRpYWxJdGVtc1swXT8ubWFnbmlmeVZhbHVlID09PSAxPyAwIDogTWF0aC5mbG9vcihNYXRoLmxvZzEwKHRoaXMuaW5pdGlhbEl0ZW1zWzBdPy5tYWduaWZ5VmFsdWU/PyAxKSk7XG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gPG51bWJlcj4gdGhpcy5udW1iZXJWYWx1ZSAvIHRoaXMuaW5pdGlhbEl0ZW1zWzBdPy5tYWduaWZ5VmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNJbnB1dE51bWJlcikgdGhpcy5iaW5kTGFiZWwgPSAndmFsdWUnO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHNlbGVjdCBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5jaGFuZ2VkID0gZm47IH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2VsZWN0IGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9IFxuICBcbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0geyp9IHZhbCAtIFRoZSBuZXcgdmFsdWUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lke1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBcbiAgIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGQgLSBUaGUgbmV3IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHBhcmFtIHtBYnN0cmFjdENvbnRyb2x9IGNvbnRyb2wgLSBUaGUgYWJzdHJhY3QgY29udHJvbCByZXByZXNlbnRpbmcgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHsgICAgXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyIGFzIG51bGwgaWYgY3VycmVuY3kgY2hhbmdlZCB0byBwcmV2ZW50IG1pc21hdGNoIGJldHdlZW4gc2VsZWN0ZWQgY3VycmVuY3kgYW5kIHRoZSBudW1iZXIgY29tbWEgYWxsb3dlZCBsaW1pdC5cbiAgICogRW1pdHMgdGhlIG9uQ2hhbmdlIGV2ZW50LCB1cGRhdGVzIHRoZSBpbml0aWFsSXRlbXMsIGFuZCBoYW5kbGVzIHZhbGlkYXRpb24gYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIFNldCB0aGUgZGVjaW1hbExpbWl0ZXIgYmFzZWQgb24gc2VsZWN0ZWQgbWFnbmlmeVZhbHVlXG4gICAqIEBwYXJhbSB7YW55fSBlIC0gVGhlIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG5ldyBzZWxlY3QgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlKGU/OiBhbnkpOiB2b2lke1xuICAgIGlmICh0aGlzLmlzSW5wdXROdW1iZXIpIHRoaXMubnVtYmVyVmFsdWUgPSBudWxsO1xuICAgIFxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGNjeTogZSwgbnVtYmVyOiB0aGlzLm51bWJlclZhbHVlIH0pO1xuICAgIHRoaXMuaW5pdGlhbEl0ZW1zID0gZTtcblxuICAgIGlmICghdGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKCFlKSB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIGVsc2UgdGhpcy52YWx1ZSA9IGVbdGhpcy5iaW5kVmFsdWVdO1xuXG4gICAgICB0aGlzLmNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgICB0aGlzLmVycm9yTXNnID0gZ2V0Rm9ybUVycm9yTWVzc2FnZSh0aGlzLmZvcm1Db250cm9sLmVycm9ycywgJ0N1cnJlbmN5Jyk7XG4gICAgfVxuICAgIFxuICAgIGlmIChlPy5tYWduaWZ5VmFsdWUgPT09IDEpIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSAwO1xuICAgIGVsc2UgdGhpcy5kZWNpbWFsTGltaXRlciA9IE1hdGguZmxvb3IoTWF0aC5sb2cxMChlPy5tYWduaWZ5VmFsdWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgb24gZm9ybSBudW1iZXIgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyVmFsdWUgd2l0aCBjdXJyZW50IHZhbHVlLlxuICAgKiBFbWl0IHRoZSBzZWxlY3RlZCBjdXJyZW5jeSBhbmQgdGhlIG51bWJlciB2YWx1ZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHthbnl9IC0gQ29udGFpbiBgdmFsdWVgIHRoZSB2YWx1ZSBvZiBpbnB1dGVkIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBudW1iZXJJbnB1dCh7IHZhbHVlIH06IGFueSk6IHZvaWR7XG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IGNjeTogdGhpcy5pbml0aWFsSXRlbXMsIG51bWJlcjogdmFsdWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZvcm0gbnVtYmVyIGtleXByZXNzLlxuICAgKiBDb250cm9sbGluZyBpbnB1dCBpbiBhIG51bWJlciBmaWVsZCwgcmVzdHJpY3RpbmcgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkLlxuICAgKiBAcGFyYW0ge2FueX0gLSBDb250YWluXG4gICAqIGNoYXJDb2RlIC0gdGhlIGNoYXJhY3RlciBjb2RlIG9mIHRoZSBrZXkgcHJlc3NlZC5cbiAgICogcHJldmVudERlZmF1bHQgLSB0aGUgZnVuY3Rpb24gdG8gcHJldmVudCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIGV2ZW50LlxuICAgKiB0YXJnZXQudmFsdWUgLSB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAqL1xuICBwdWJsaWMgbGltaXREZWNpbWFsKHsgY2hhckNvZGUsIHByZXZlbnREZWZhdWx0LCB0YXJnZXQ6IHsgdmFsdWUgfX06IGFueSk6IHZvaWR7XG4gICAgY29uc3QgcmVnID0gdGhpcy5kZWNpbWFsTGltaXRlciA+IDA/IG5ldyBSZWdFeHAoYF5cXFxcZCooXFxcXC5cXFxcZHswLCR7IHRoaXMuZGVjaW1hbExpbWl0ZXIgfX0pPyRgKSA6IC9eXFxkKyQvO1xuICAgIGlmICghcmVnLnRlc3QodmFsdWUgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKSkpIHByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBxdWVyeSBvcGVyYXRpb24gdG8gcmV0cmlldmUgY3VycmVuY3kgZGF0YSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5d29yZC5cbiAgICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHF1ZXJpZWQgY3VycmVuY3kgZGF0YS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleXdvcmQgLSBUaGUga2V5d29yZCB1c2VkIGZvciBxdWVyeWluZyBjdXJyZW5jeSBkYXRhLlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHF1ZXJpZWQgY3VycmVuY3kgZGF0YS5cbiAgICovXG4gIHByb3RlY3RlZCBxdWVyeUZ1bmMoa2V5d29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+e1xuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5U2VydmljZS5xdWVyeShrZXl3b3JkKS5waXBlKFxuICAgICAgbWFwKCh7IGRhdGE6IHsgd2ViQ29uZmlnTXNDdXJyZW5jeTogeyBkYXRhIH19fSkgPT4gZGF0YS5tYXAoKHsgY29kZSwgbmFtZSwgbWFnbmlmeVZhbHVlIH06IGFueSkgPT4gKHsgbGFiZWw6IGBbJHsgY29kZSB9XSAkeyBuYW1lIH1gLCB2YWx1ZTogY29kZSwgbWFnbmlmeVZhbHVlIH0pKSlcbiAgICApO1xuICB9O1xufVxuIiwiPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RGb3JtPlxuICAgIDxuZy1zZWxlY3QgXG4gICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMFwiXG4gICAgICAgIFtjbGFzcy5udW1iZXJdPVwiaXNJbnB1dE51bWJlclwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIHR5cGVUb1NlYXJjaFRleHQ9XCJQbGVhc2UgZW50ZXIgMyBvciBtb3JlIGNoYXJhY3RlcnNcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGxhYmVsIH19XCJcbiAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxuICAgICAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gICAgICAgIFttaW5UZXJtTGVuZ3RoXT1cIjNcIlxuICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCJcbiAgICAgICAgW2VkaXRhYmxlU2VhcmNoVGVybV09XCJ0cnVlXCJcbiAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICBbcmVhZG9ubHldPVwiZGlzYWJsZWRcIiBcbiAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgICAgICBbdHlwZWFoZWFkXT1cInR5cGVhaGVhZFwiXG4gICAgICAgIFtpdGVtc109XCJpdGVtcyQgfCBhc3luY1wiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudCk7XCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXNJbnB1dE51bWJlcj8gaS52YWx1ZSA6IGkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0TnVtYmVyPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTEgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RGb3JtXCIgLz5cblxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFtwbGFjZWhvbGRlcl09XCJudW1iZXJQbGFjZWhvbGRlclwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGZsZXgtZ3Jvdy0xXCIgW2Rpc2FibGVkXT1cImlzTnVtYmVyRGlzYWJsZWRcIiBbdmFsdWVdPVwibnVtYmVyVmFsdWVcIiAoa2V5cHJlc3MpPVwibGltaXREZWNpbWFsKCRldmVudClcIiAoaW5wdXQpPVwibnVtYmVySW5wdXQoJGV2ZW50LnRhcmdldClcIj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNJbnB1dE51bWJlciBlbHNlIGlucHV0TnVtYmVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEZvcm1cIiAvPlxuPC9uZy1jb250YWluZXI+XG5cbjxsYWJlbCAqbmdJZj1cImVycm9yTXNnXCIgY2xhc3M9XCJpcy1pbnZhbGlkXCI+e3sgZXJyb3JNc2cgfX08L2xhYmVsPlxuIl19
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY3VycmVuY3ktaW5wdXQvZm9ybS1jdXJyZW5jeS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXlDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUE4QnJELE1BQU0sT0FBTywwQkFBMEI7SUF1SHJDLFlBQ3lDLGlCQUF5QixFQUM3QyxFQUFxQixFQUNyQixjQUE4QixFQUM5QixlQUFnQztRQUhaLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUM3QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBcEhyQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBTzFCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBTy9CLFVB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QUNFLEtBQUssRUFBRSxJQUFJO2dCQUNYLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSwwQkFBMEI7YUFDeEM7WUFDRDtnQkFDRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLDBCQUEwQjthQUN4QztTQUNGLDBCQ2xDSCw2OENBd0NBLDRHRHJCSSxZQUFZLHlTQUNaLFdBQVcsOFZBQ1gsY0FBYzs7MkZBZUwsMEJBQTBCO2tCQTNCdEMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLFNBQVM7cUJBQ2pCLFdBQ1E7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7cUJBQ2YsYUFDVTt3QkFDVDs0QkFDRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLElBQUk7NEJBQ1gsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsNEJBQTRCO3lCQUN4QztxQkFDRjs7MEJBMEhFLFNBQVM7MkJBQUMsbUJBQW1CO29JQWpIaEIsU0FBUztzQkFBeEIsS0FBSztnQkFPVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLEtBQUs7c0JBQXBCLEtBQUs7Z0JBT1UsV0FBVztzQkFBMUIsS0FBSztnQkFPVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBT1UsUUFBUTtzQkFBdkIsS0FBSztnQkFPVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1XLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdHRyaWJ1dGUsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQ291bnRyeSwgQ3VycmVuY3kgfSBmcm9tICdwcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvZ3JhcGhxbC9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgZ2V0Rm9ybUVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IENvdW50cnlTZXJ2aWNlLCBDdXJyZW5jeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWN1cnJlbmN5LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tY3VycmVuY3ktaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWN1cnJlbmN5LWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IFxuICAgIGNsYXNzOiAnZC1ibG9jaycgXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmdTZWxlY3RNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBGb3JtQ3VycmVuY3lJbnB1dENvbXBvbmVudFxuICAgIH0sXG4gICAge1xuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1DdXJyZW5jeUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBcbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgY2xlYXJhYmxlLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge3RydWV9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIG51bWJlciBpbnB1dCBmb3JtIGlzIGhpZGUgb3Igc2hvdy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IHtmYWxzZX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0lucHV0TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBsYWJlbCBpcyBzaG93ZWQgYXMgYEN1cnJlbmN5YCBvciBgQ291bnRyeWBcbiAgICogQHR5cGUgeydDb3VudHJ5JyB8ICdDdXJyZW5jeSd9XG4gICAqIEBkZWZhdWx0IHsnQ3VycmVuY3knfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiAnQ3VycmVuY3knIHwgJ0NvdW50cnknID0gJ0N1cnJlbmN5JztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgdG8gc2V0IHRoZSB2YWx1ZSBvZiBpbnB1dCBudW1iZXIgZmllbGQuXG4gICAqIEB0eXBlIHtudW1iZXIgfCBudWxsfVxuICAgKiBAZGVmYXVsdCB7bnVsbH1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBudW1iZXJWYWx1ZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBudW1iZXIgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaXNOdW1iZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIHJlcXVpcmVkLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQge2ZhbHNlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBzZWxlY3QgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogT3V0cHV0IHZhcmlhYmxlIHRvIGVtaXQgY2hhbmdlcyB3aGVuIHRoZSBzZWxlY3QgaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxhbnk+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHsgc2VsZWN0ZWRJdGVtPzogQ3VycmVuY3kgfCBDb3VudHJ5LCBudW1iZXI6IG51bWJlciB8IG51bGwgfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIGRpc3BsYXlpbmcgaXRlbXMgaW4gdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHR5cGUge09ic2VydmFibGU8YW55W10+fVxuICAgKi9cbiAgcHVibGljIGl0ZW1zOiB7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGRhdGE6IEN1cnJlbmN5IHwgQ291bnRyeSB9W10gPSBbeyBsYWJlbDogJ0hlbGxvJywgdmFsdWU6ICdjJywgZGF0YTogJ2EnIGFzIGFueSB9XTtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGlzIGxvYWRpbmcuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgc2VsZWN0IGlucHV0IGhhcyBiZWVuIHRvdWNoZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCB7ZmFsc2V9XG4gICAqL1xuICBwdWJsaWMgaXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7YW55IHwgbnVsbH1cbiAgICogQGRlZmF1bHQge251bGx9XG4gICAqL1xuICBwdWJsaWMgdmFsdWU6IGFueSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAZGVmYXVsdCB7dW5kZWZpbmVkfVxuICAgKi9cbiAgcHVibGljIGVycm9yTXNnITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7QWJzdHJhY3RDb250cm9sfVxuICAgKi9cbiAgcHJvdGVjdGVkIGZvcm1Db250cm9sITogQWJzdHJhY3RDb250cm9sO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIG1heGltdW0gZGlnaXRzIGFsbG93ZWQgYmVoaW5kIHRoZSBjb21tYS5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQGRlZmF1bHQgezB9XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVjaW1hbExpbWl0ZXI6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGhhbmRsZSB2YWx1ZSBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIEB0eXBlIHsoX3ZhbDogYW55KSA9PiB2b2lkfVxuICAgKi9cbiAgcHJvdGVjdGVkIGNoYW5nZWQ6IChfdmFsOiBhbnkpID0+IHZvaWQgPSAoX3ZhbDogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBpbiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAdHlwZSB7KCkgPT4gdm9pZH1cbiAgICovXG4gIHByb3RlY3RlZCBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBwcm90ZWN0ZWQgc3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtPzogQ3VycmVuY3kgfCBDb3VudHJ5O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ251bWJlclBsYWNlaG9sZGVyJykgcHVibGljIG51bWJlclBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW5jeVNlcnZpY2U6IEN1cnJlbmN5U2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lke1xuICAgIGlmICh0aGlzLmxhYmVsID09PSAnQ3VycmVuY3knKSB7XG4gICAgICB0aGlzLnN1YiA9IHRoaXMuY3VycmVuY3lTZXJ2aWNlLnF1ZXJ5KCkuc3Vic2NyaWJlKHtcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICAgICAgdGhpcy5zZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBuZXh0OiAoeyBkYXRhOiB7IHdlYkNvbmZpZ01zQ3VycmVuY3k6IHsgZGF0YSB9fX0pID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gZGF0YS5tYXAoKGQpID0+ICh7IGxhYmVsOiBgWyR7IGQuY29kZSB9XSAkeyBkLm5hbWUgfWAsIHZhbHVlOiBkLmNvZGUhLCBkYXRhOiBkIH0pKTtcbiAgICAgICAgICB0aGlzLnNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNJbnB1dE51bWJlciA9IGZhbHNlO1xuICAgIHRoaXMuc3ViID0gdGhpcy5jb3VudHJ5U2VydmljZS5xdWVyeSgpLnN1YnNjcmliZSh7XG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gW107XG4gICAgICAgIHRoaXMuc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH0sXG4gICAgICBuZXh0OiAoeyBkYXRhOiB7IHdlYkNvbmZpZ01zQ291bnRyeTogeyBkYXRhIH19fSkgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gZGF0YS5tYXAoKGQpID0+ICh7IGxhYmVsOiBgJHsgZC5uYW1lIH1gLCB2YWx1ZTogZC5jb2RlISwgZGF0YTogZCB9KSk7XG4gICAgICAgIHRoaXMuc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lke1xuICAgIHRoaXMuc3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHNlbGVjdCBpbnB1dCB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0geyhfdmFsOiBhbnkpID0+IHZvaWR9IGZuIC0gQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHsgdGhpcy5jaGFuZ2VkID0gZm47IH1cbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgc2VsZWN0IGlucHV0IGlzIHRvdWNoZWQuXG4gICAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBDYWxsYmFjayBmdW5jdGlvbiBmb3IgdG91Y2ggZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkeyB0aGlzLm9uVG91Y2hlZCA9IGZuOyB9IFxuICBcbiAgLyoqXG4gICAqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0geyp9IHZhbCAtIFRoZSBuZXcgdmFsdWUgdG8gYmUgc2V0LlxuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsOiBhbnkpOiB2b2lke1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBcbiAgIC8qKlxuICAgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgc2VsZWN0IGlucHV0LlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGQgLSBUaGUgbmV3IGRpc2FibGVkIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGU/KGQ6IGJvb2xlYW4pOiB2b2lkeyBcbiAgICB0aGlzLmRpc2FibGVkID0gZDsgXG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHBhcmFtIHtBYnN0cmFjdENvbnRyb2x9IGNvbnRyb2wgLSBUaGUgYWJzdHJhY3QgY29udHJvbCByZXByZXNlbnRpbmcgdGhlIHNlbGVjdCBpbnB1dC5cbiAgICogQHJldHVybnMgeyhWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCl9IC0gVmFsaWRhdGlvbiBlcnJvcnMgaWYgYW55LCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbHsgICAgXG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjaGFuZ2VzIGluIHRoZSBzZWxlY3QgaW5wdXQuXG4gICAqIFNldCB0aGUgbnVtYmVyIGFzIG51bGwgaWYgY3VycmVuY3kgY2hhbmdlZCB0byBwcmV2ZW50IG1pc21hdGNoIGJldHdlZW4gc2VsZWN0ZWQgY3VycmVuY3kgYW5kIHRoZSBudW1iZXIgY29tbWEgYWxsb3dlZCBsaW1pdC5cbiAgICogRW1pdHMgdGhlIG9uQ2hhbmdlIGV2ZW50LCB1cGRhdGVzIHRoZSBpbml0aWFsSXRlbXMsIGFuZCBoYW5kbGVzIHZhbGlkYXRpb24gYmFzZWQgb24gZm9ybSBjb250cm9sIGVycm9ycyBhbmQgbGFiZWwuXG4gICAqIFNldCB0aGUgZGVjaW1hbExpbWl0ZXIgYmFzZWQgb24gc2VsZWN0ZWQgbWFnbmlmeVZhbHVlXG4gICAqIEBwYXJhbSB7YW55fSBlIC0gVGhlIGV2ZW50IGNvbnRhaW5pbmcgdGhlIG5ldyBzZWxlY3QgaW5wdXQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlKGU/OiBhbnkpOiB2b2lke1xuICAgIGlmICh0aGlzLmlzSW5wdXROdW1iZXIpIHRoaXMubnVtYmVyVmFsdWUgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLmlzVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMuaXNUb3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gZT8udmFsdWU7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGU/LmRhdGE7XG5cbiAgICAgIHRoaXMuY2hhbmdlZCh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7IHNlbGVjdGVkSXRlbTogZSwgbnVtYmVyOiB0aGlzLm51bWJlclZhbHVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1zZyA9IGdldEZvcm1FcnJvck1lc3NhZ2UodGhpcy5mb3JtQ29udHJvbC5lcnJvcnMsIHRoaXMubGFiZWwpO1xuICAgIH1cbiAgICBcbiAgICBpZiAoZT8ubWFnbmlmeVZhbHVlID09PSAxKSB0aGlzLmRlY2ltYWxMaW1pdGVyID0gMDtcbiAgICBlbHNlIHRoaXMuZGVjaW1hbExpbWl0ZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nMTAoZT8ubWFnbmlmeVZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZvcm0gbnVtYmVyIGlucHV0LlxuICAgKiBTZXQgdGhlIG51bWJlclZhbHVlIHdpdGggY3VycmVudCB2YWx1ZS5cbiAgICogRW1pdCB0aGUgc2VsZWN0ZWQgY3VycmVuY3kgYW5kIHRoZSBudW1iZXIgdmFsdWUgdG8gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAqIEBwYXJhbSB7YW55fSAtIENvbnRhaW4gYHZhbHVlYCB0aGUgdmFsdWUgb2YgaW5wdXRlZCBudW1iZXIuXG4gICAqL1xuICBwdWJsaWMgbnVtYmVySW5wdXQoeyB2YWx1ZSB9OiBhbnkpOiB2b2lke1xuICAgIHRoaXMubnVtYmVyVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoeyBzZWxlY3RlZEl0ZW06IHRoaXMuc2VsZWN0ZWRJdGVtLCBudW1iZXI6IHZhbHVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCBvbiBmb3JtIG51bWJlciBrZXlwcmVzcy5cbiAgICogQ29udHJvbGxpbmcgaW5wdXQgaW4gYSBudW1iZXIgZmllbGQsIHJlc3RyaWN0aW5nIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgYWxsb3dlZC5cbiAgICogQHBhcmFtIHthbnl9IC0gQ29udGFpblxuICAgKiBjaGFyQ29kZSAtIHRoZSBjaGFyYWN0ZXIgY29kZSBvZiB0aGUga2V5IHByZXNzZWQuXG4gICAqIHByZXZlbnREZWZhdWx0IC0gdGhlIGZ1bmN0aW9uIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBldmVudC5cbiAgICogdGFyZ2V0LnZhbHVlIC0gdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGlucHV0IGZpZWxkLlxuICAgKi9cbiAgcHVibGljIGxpbWl0RGVjaW1hbCh7IGNoYXJDb2RlLCBwcmV2ZW50RGVmYXVsdCwgdGFyZ2V0OiB7IHZhbHVlIH19OiBhbnkpOiB2b2lke1xuICAgIGNvbnN0IHJlZyA9IHRoaXMuZGVjaW1hbExpbWl0ZXIgPiAwPyBuZXcgUmVnRXhwKGBeXFxcXGQqKFxcXFwuXFxcXGR7MCwkeyB0aGlzLmRlY2ltYWxMaW1pdGVyIH19KT8kYCkgOiAvXlxcZCskLztcbiAgICBpZiAoIXJlZy50ZXN0KHZhbHVlICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyQ29kZSkpKSBwcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldElzTG9hZGluZyhiOiBib29sZWFuKTogdm9pZHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGI7XG4gICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtjbGFzcy5yZXF1aXJlZF09XCJyZXF1aXJlZFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RGb3JtPlxuICAgIDxuZy1zZWxlY3QgXG4gICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMFwiXG4gICAgICAgIFtjbGFzcy5udW1iZXJdPVwiaXNJbnB1dE51bWJlclwiXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgIGJpbmRWYWx1ZT1cInZhbHVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBsYWJlbCB9fVwiXG4gICAgICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgIFtyZWFkb25seV09XCJkaXNhYmxlZFwiIFxuICAgICAgICBbbG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudCk7XCJcbiAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXNJbnB1dE51bWJlcj8gaS52YWx1ZSA6IGkubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLWxhYmVsLXRtcCBsZXQtaT1cIml0ZW1cIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGlzSW5wdXROdW1iZXI/IGkudmFsdWUgOiBpLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbnB1dE51bWJlcj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0xIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0Rm9ybVwiIC8+XG5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbcGxhY2Vob2xkZXJdPVwibnVtYmVyUGxhY2Vob2xkZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWdyb3ctMVwiIFtkaXNhYmxlZF09XCJpc051bWJlckRpc2FibGVkXCIgW3ZhbHVlXT1cIm51bWJlclZhbHVlXCIgKGtleXByZXNzKT1cImxpbWl0RGVjaW1hbCgkZXZlbnQpXCIgKGlucHV0KT1cIm51bWJlcklucHV0KCRldmVudC50YXJnZXQpXCI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSW5wdXROdW1iZXIgZWxzZSBpbnB1dE51bWJlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RGb3JtXCIgLz5cbjwvbmctY29udGFpbmVyPlxuXG48bGFiZWwgKm5nSWY9XCJlcnJvck1zZ1wiIGNsYXNzPVwiaXMtaW52YWxpZFwiPnt7IGVycm9yTXNnIH19PC9sYWJlbD5cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function generateContrastColor(str) {
|
|
2
|
+
if (str.length > 8)
|
|
3
|
+
str = str.substring(0, 8);
|
|
4
|
+
let res = '';
|
|
5
|
+
let total = 0;
|
|
6
|
+
for (let i = 0; i < str.length; i++) {
|
|
7
|
+
const c = str.charCodeAt(i).toString(16);
|
|
8
|
+
res += c;
|
|
9
|
+
total += +c;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
background: `#${res}`,
|
|
13
|
+
color: total > 187 ? '#000' : '#fff'
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhc3QtY29sb3ItZ2VuZXJhdG9yLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL3V0aWxzL2NvbnRyYXN0LWNvbG9yLWdlbmVyYXRvci9jb250cmFzdC1jb2xvci1nZW5lcmF0b3IudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBVztJQUMvQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDVCxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTztRQUNMLFVBQVUsRUFBRSxJQUFLLEdBQUksRUFBRTtRQUN2QixLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO0tBQ3BDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGUgcmFuZG9tIGJhY2tncm91bmQgYW5kIHRleHQgY29sb3IgZm9yIGJhZGdlIGJhc2VkIG9uIGdpdmVuIHN0cmluZy4gVGhlIHRleHQgY29sb3IgaGFzIDIgdmFsdWVzLCBlaXRoZXIgd2hpdGUgW2ZvciBkYXJrIGJhY2tncm91bmRdIG9yIGJsYWNrIFtmb3IgbGlnaHQgYmFja2dyb3VuZF0uXG4gKiBUaGUgZ2l2ZW4gc3RyaW5nIHdpbGwgYmUgZGl2aWRlZCBieSA0IFs4IGNoYXJzXSBvciAzIFs2IGNoYXJzXSBncm91cHMgdGhhdCBjb25zaXN0IG9mIDIgY2hhcnMuXG4gKiBUaGUgZmlyc3QgZ3JvdXAgd2lsbCBhY3QgYXMgcmVkIGNvbG9yLlxuICogVGhlIHNlY29uZCBncm91cCB3aWxsIGFjdCBhcyBncmVlbiBjb2xvci5cbiAqIFRoZSB0aGlyZCBncm91cCB3aWxsIGFjdCBhcyBibHVlIGNvbG9yLlxuICogQW5kIHRoZSBmaW5hbCBncm91cCB3aWxsIGFjdCBhcyBvcGFjaXR5IHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIEEgc3RyaW5nIHRoYXQgYWN0cyBhcyB0aGUgcmFuZG9tIHNlZWRlci4gU3RyaW5nIGxlbmd0aCBzaG91bGQgbm90IGV4Y2VlZGluZyA4IGNoYXJhY3RlcnMuIFN0cmluZyBsZW5ndGggd2lsbCBiZSB0cnVuY2F0ZWQgdG8gOCBpZiB0aGUgZ2l2ZW4gc3RyaW5nIGxlbmd0aCBpcyBleGNlZWRpbmcgOCBjaGFycy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IGdlbmVyYXRlZENvbG9yIC0gR2VuZXJhdGVkIHJhbmRvbSBjb2xvciBvYmplY3RcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBnZW5lcmF0ZWRDb2xvci5iYWNrZ3JvdW5kIC0gR2VuZXJhdGVkIGJhY2tncm91bmQgaGV4IGNvbG9yXG4gKiBAcHJvcGVydHkge3N0cmluZ30gZ2VuZXJhdGVkQ29sb3IuY29sb3IgLSBHZW5lcmF0ZWQgdGV4dCBoZXggY29sb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlQ29udHJhc3RDb2xvcihzdHI6IHN0cmluZyk6IHsgYmFja2dyb3VuZDogYCMkeyBzdHJpbmcgfWAsIGNvbG9yOiBgIyR7IHN0cmluZyB9YCB9e1xuICBpZiAoc3RyLmxlbmd0aCA+IDgpIHN0ciA9IHN0ci5zdWJzdHJpbmcoMCwgOCk7XG5cbiAgbGV0IHJlcyA9ICcnO1xuICBsZXQgdG90YWwgPSAwO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHN0ci5jaGFyQ29kZUF0KGkpLnRvU3RyaW5nKDE2KTtcbiAgICBcbiAgICByZXMgKz0gYztcbiAgICB0b3RhbCArPSArYztcbiAgfVxuICByZXR1cm4ge1xuICAgIGJhY2tncm91bmQ6IGAjJHsgcmVzIH1gLFxuICAgIGNvbG9yOiB0b3RhbCA+IDE4Nz8gJyMwMDAnIDogJyNmZmYnXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const errMessage = {
|
|
2
|
+
email: (label) => `${label} is not a valid email`,
|
|
3
|
+
required: (label) => `${label} is required`,
|
|
4
|
+
minlength: (label, length) => `${label} must be at least ${length} characters`,
|
|
5
|
+
maxlength: (label, length) => `${label} must not exceed ${length} characters`,
|
|
6
|
+
max: (label, max) => `${label} value must be lower than ${max}`,
|
|
7
|
+
min: (label, min) => `${label} value must be larger than ${min}`,
|
|
8
|
+
};
|
|
9
|
+
const extraParamKey = {
|
|
10
|
+
minlength: 'requiredLength',
|
|
11
|
+
maxlength: 'requiredLength',
|
|
12
|
+
max: 'max',
|
|
13
|
+
min: 'min'
|
|
14
|
+
};
|
|
15
|
+
export function getFormErrorMessage(err, label) {
|
|
16
|
+
if (!err)
|
|
17
|
+
return '';
|
|
18
|
+
const key = Object.keys(err)[0];
|
|
19
|
+
return errMessage[key](label ?? 'Column', err[key][extraParamKey[key]]);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci1tZXNzYWdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL3V0aWxzL2Zvcm0tZXJyb3ItbWVzc2FnZS9mb3JtLWVycm9yLW1lc3NhZ2UudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsR0FBeUQ7SUFDdkUsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxHQUFJLEtBQU0sdUJBQXVCO0lBQzNELFFBQVEsRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLGNBQWM7SUFDckQsU0FBUyxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLHFCQUFzQixNQUFPLGFBQWE7SUFDbkcsU0FBUyxFQUFFLENBQUMsS0FBYSxFQUFFLE1BQWUsRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLG9CQUFxQixNQUFPLGFBQWE7SUFDbEcsR0FBRyxFQUFFLENBQUMsS0FBYSxFQUFFLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLDZCQUE4QixHQUFJLEVBQUU7SUFDcEYsR0FBRyxFQUFFLENBQUMsS0FBYSxFQUFFLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBSSxLQUFNLDhCQUErQixHQUFJLEVBQUU7Q0FDdEYsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUE0QjtJQUM3QyxTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFNBQVMsRUFBRSxnQkFBZ0I7SUFDM0IsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztDQUNYLENBQUM7QUFRRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBNEIsRUFBRSxLQUFjO0lBQzlFLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUcsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5jb25zdCBlcnJNZXNzYWdlOiB7IFtrOiBzdHJpbmddOiAobDogc3RyaW5nLCBhcmc/OiBudW1iZXIpID0+IHN0cmluZyB9ID0ge1xuICBlbWFpbDogKGxhYmVsOiBzdHJpbmcpID0+IGAkeyBsYWJlbCB9IGlzIG5vdCBhIHZhbGlkIGVtYWlsYCxcbiAgcmVxdWlyZWQ6IChsYWJlbDogc3RyaW5nKSA9PiBgJHsgbGFiZWwgfSBpcyByZXF1aXJlZGAsXG4gIG1pbmxlbmd0aDogKGxhYmVsOiBzdHJpbmcsIGxlbmd0aD86IG51bWJlcikgPT4gYCR7IGxhYmVsIH0gbXVzdCBiZSBhdCBsZWFzdCAkeyBsZW5ndGggfSBjaGFyYWN0ZXJzYCxcbiAgbWF4bGVuZ3RoOiAobGFiZWw6IHN0cmluZywgbGVuZ3RoPzogbnVtYmVyKSA9PiBgJHsgbGFiZWwgfSBtdXN0IG5vdCBleGNlZWQgJHsgbGVuZ3RoIH0gY2hhcmFjdGVyc2AsXG4gIG1heDogKGxhYmVsOiBzdHJpbmcsIG1heD86IG51bWJlcikgPT4gYCR7IGxhYmVsIH0gdmFsdWUgbXVzdCBiZSBsb3dlciB0aGFuICR7IG1heCB9YCxcbiAgbWluOiAobGFiZWw6IHN0cmluZywgbWluPzogbnVtYmVyKSA9PiBgJHsgbGFiZWwgfSB2YWx1ZSBtdXN0IGJlIGxhcmdlciB0aGFuICR7IG1pbiB9YCxcbn07XG5cbmNvbnN0IGV4dHJhUGFyYW1LZXk6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBtaW5sZW5ndGg6ICdyZXF1aXJlZExlbmd0aCcsXG4gIG1heGxlbmd0aDogJ3JlcXVpcmVkTGVuZ3RoJyxcbiAgbWF4OiAnbWF4JyxcbiAgbWluOiAnbWluJ1xufTtcblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgZ2V0IGRldGFpbCBlcnJvciBkZXNjcmlwdGlvbiBiYXNlZCBvbiBwYXJhbSBlcnIuXG4gKiBAcGFyYW0ge1ZhbGlkYXRpb25FcnJvcnMgfCBudWxsfSBlcnIgLSBDb250YWluIGVycm9yIGZyb20gdGhlIGZvcm0gaW5wdXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFiZWwgLSBDb250YWluIGxhYmVsIG5hbWUgb2YgdGhlIGZvcm0gaW5wdXQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBDb250YWluIGVpdGhlciBkZXRhaWwgZXJyb3IgZGVzY3JpcHRpb24gb3IgZW1wdHkgc3RyaW5nICgnJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1FcnJvck1lc3NhZ2UoZXJyOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgbGFiZWw/OiBzdHJpbmcpOiBzdHJpbmd7XG4gIGlmICghZXJyKSByZXR1cm4gJyc7XG5cbiAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMoZXJyKVswXTtcbiAgcmV0dXJuIGVyck1lc3NhZ2Vba2V5XShsYWJlbD8/ICdDb2x1bW4nLCBlcnJba2V5XVtleHRyYVBhcmFtS2V5W2tleV1dKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function formatCapitalize(str, eachWord = false, separator = ' ') {
|
|
2
|
+
if (!str)
|
|
3
|
+
return str;
|
|
4
|
+
if (typeof str === 'string')
|
|
5
|
+
return `${str.at(0).toUpperCase()}${str.substring(1).toLowerCase()}`;
|
|
6
|
+
str[0] = `${str[0].at(0).toUpperCase()}${str[0].substring(1).toLowerCase()}`;
|
|
7
|
+
for (let i = 1; i < str.length; i++) {
|
|
8
|
+
if (!str[i])
|
|
9
|
+
continue;
|
|
10
|
+
if (!eachWord)
|
|
11
|
+
str[i] = str[i].toLowerCase();
|
|
12
|
+
else {
|
|
13
|
+
str[i] = `${str[i].at(0).toUpperCase()}${str[i].substring(1).toLowerCase()}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return str.join(separator);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWNhcGl0YWxpemUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvdXRpbHMvZm9ybWF0LWNhcGl0YWxpemUvZm9ybWF0LWNhcGl0YWxpemUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBc0IsRUFBRSxXQUFvQixLQUFLLEVBQUUsWUFBb0IsR0FBRztJQUN6RyxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3JCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtRQUFFLE9BQU8sR0FBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRyxHQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFHLEVBQUUsQ0FBQztJQUV2RyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxDQUFDLFdBQVcsRUFBRyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFHLEVBQUUsQ0FBQztJQUNsRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQUUsU0FBUztRQUV0QixJQUFJLENBQUMsUUFBUTtZQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDeEMsQ0FBQztZQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQUMsV0FBVyxFQUFHLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUcsRUFBRSxDQUFDO1FBQ3BGLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBjcmVhdGUgYSBjYXBpdGFsaXplIHdvcmQuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdfSBzdHIgLSBXb3JkIHRoYXQgd2FudCB0byBiZSBjYXBpdGFsaXplZC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2VhY2hXb3JkPWZhbHNlXSAtIERldGVybWluZSB3aGV0aGVyIGVhY2ggd29yZCB3aWxsIGJlIGNhcGl0YWxpemUgb3Igbm90IGJ5IGEgY2VydGFpbiBzZXBhcmF0b3IuIElmIHRoZSBmaXJzdCBwYXJhbSBpcyBub3QgYXJyYXksIHRoaXMgcGFyYW1ldGVyIHdpbGwgYmUgaWdub3JlZC4gRGVmYXVsdCB0byBgZmFsc2VgLlxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9XCIgXCJdIC0gQSBzdHJpbmcgdXNlZCB0byBzZXBhcmF0ZSBvbmUgZWxlbWVudCBvZiB0aGUgd29yZHMgZnJvbSB0aGUgbmV4dCBpbiB0aGUgcmVzdWx0aW5nIHN0cmluZy4gSWYgdGhlIGZpcnN0IHBhcmFtIGlzIG5vdCBhcnJheSwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBiZSBpZ25vcmVkLiBJZiBvbWl0dGVkLCB3b3JkcyBhcmUgc2VwYXJhdGVkIHdpdGggYSBzcGFjZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IENhcGl0YWxpemVkIHdvcmQgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDYXBpdGFsaXplKHN0cjogc3RyaW5nIHwgc3RyaW5nW10sIGVhY2hXb3JkOiBib29sZWFuID0gZmFsc2UsIHNlcGFyYXRvcjogc3RyaW5nID0gJyAnKTogc3RyaW5ne1xuICBpZiAoIXN0cikgcmV0dXJuIHN0cjtcbiAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnKSByZXR1cm4gYCR7IHN0ci5hdCgwKSEudG9VcHBlckNhc2UoKSB9JHsgc3RyLnN1YnN0cmluZygxKS50b0xvd2VyQ2FzZSgpIH1gO1xuXG4gIHN0clswXSA9IGAkeyBzdHJbMF0uYXQoMCkhLnRvVXBwZXJDYXNlKCkgfSR7IHN0clswXS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSB9YDtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIXN0cltpXSkgY29udGludWU7XG5cbiAgICBpZiAoIWVhY2hXb3JkKSBzdHJbaV0gPSBzdHJbaV0udG9Mb3dlckNhc2UoKTtcbiAgICBlbHNlIHtcbiAgICAgIHN0cltpXSA9IGAkeyBzdHJbaV0uYXQoMCkhLnRvVXBwZXJDYXNlKCkgfSR7IHN0cltpXS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSB9YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0ci5qb2luKHNlcGFyYXRvcik7XG59XG4iXX0=
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export { formatCapitalize } from './format-capitalize/format-capitalize.util';
|
|
2
|
+
export { getFormErrorMessage } from './form-error-message/form-error-message.util';
|
|
3
|
+
export { generateContrastColor } from './contrast-color-generator/contrast-color-generator.util';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZm9ybWF0Q2FwaXRhbGl6ZSB9IGZyb20gJy4vZm9ybWF0LWNhcGl0YWxpemUvZm9ybWF0LWNhcGl0YWxpemUudXRpbCc7XG5leHBvcnQgeyBnZXRGb3JtRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtLWVycm9yLW1lc3NhZ2UvZm9ybS1lcnJvci1tZXNzYWdlLnV0aWwnO1xuZXhwb3J0IHsgZ2VuZXJhdGVDb250cmFzdENvbG9yIH0gZnJvbSAnLi9jb250cmFzdC1jb2xvci1nZW5lcmF0b3IvY29udHJhc3QtY29sb3ItZ2VuZXJhdG9yLnV0aWwnO1xuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -4,6 +4,6 @@ export { HeaderInterceptor, RefreshTokenInterceptor } from './lib/interceptors';
|
|
|
4
4
|
export { bootstrap, LoadingPage, UnauthorizedPage, PermissionDirective, PermissionGuard, PermissionService, PermissionModule } from './lib/modules';
|
|
5
5
|
export { AuthResolver } from './lib/resolvers';
|
|
6
6
|
export { AuthService, CurrencyService, CountryService, ProfileService } from './lib/services';
|
|
7
|
-
export { getFormErrorMessage } from './lib/utils';
|
|
7
|
+
export { formatCapitalize, generateContrastColor, getFormErrorMessage, } from './lib/utils';
|
|
8
8
|
export { GridApi } from '@ag-grid-community/core';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEVBRXRCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQiw2QkFBNkIsRUFDN0IsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsMEJBQTBCLEVBSzFCLGVBQWUsRUFHZixXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUVyQix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUU5QixnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQzlCLHVCQUF1QixFQUV2QixpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUVuQixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBRXBCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQ0wsU0FBUyxFQUNWLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFNNUIsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsZ0JBQWdCLEVBRWhCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUNiLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLFdBQVcsRUFDWCxlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsT0FBTyxFQUtSLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHVuaXBpbi1hbmd1bGFyXG4gKi9cbmV4cG9ydCB7XG4gIEJ1dHRvbkdyb3VwQ29uZmlnLFxuICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgQnV0dG9uTG9hZGluZ0NvbXBvbmVudCxcblxuICBGb3JtRGF0ZUNvbXBvbmVudCxcbiAgRm9ybUlucHV0Q29tcG9uZW50LFxuICBGb3JtTnVtYmVyQ29tcG9uZW50LFxuICBGb3JtUGFzc3dvcmRDb21wb25lbnQsXG4gIEZvcm1TZWFyY2hhYmxlU2VsZWN0Q29tcG9uZW50LFxuICBGb3JtU2VsZWN0Q29tcG9uZW50LFxuICBGb3JtVGV4dGFyZWFDb21wb25lbnQsXG4gIEZvcm1JbWFnZVBpY2tlckNvbXBvbmVudCxcbiAgRm9ybUN1cnJlbmN5SW5wdXRDb21wb25lbnQsXG4gIFxuICBGaWx0ZXJDb25maWcsXG4gIEZpbHRlckZpZWxkLFxuICBGaWx0ZXJTZWFyY2hFdmVudCxcbiAgRmlsdGVyQ29tcG9uZW50LFxuXG4gIEdyaWRDb25maWcsXG4gIEdyaWRTZXJ2aWNlLFxuICBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgR3JpZFNuYXBzaG90Q29tcG9uZW50LFxuXG4gIEFwcGxldENvbnRhaW5lckNvbXBvbmVudCxcbiAgQ29sdW1uQ29udGFpbmVyQ29tcG9uZW50LFxuICBDb2x1bW5IZWFkZXJDb250YWluZXJDb21wb25lbnQsXG4gIExpc3RDb250YWluZXJDb25maWcsIFxuICBMaXN0UGFnaW5hdGlvbkNvbnRhaW5lckNvbXBvbmVudCwgXG4gIExpc3RTbmFwc2hvdENvbnRhaW5lckNvbXBvbmVudCxcbiAgTW9kYWxDb250YWluZXJDb21wb25lbnQsXG5cbiAgVGFiR3JvdXBDb21wb25lbnQsXG4gIFRhYkNvbnRlbnRDb21wb25lbnQsXG4gIFRhYnNDb21wb25lbnRNb2R1bGUsXG5cbiAgQXVkaXRMaXN0Q29tcG9uZW50LFxuICBBdWRpdERldGFpbENvbXBvbmVudCxcblxuICBBcHByb3ZhbExpc3RDb21wb25lbnQsXG4gIEFwcHJvdmFsRGV0YWlsQ29tcG9uZW50XG59IGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuXG5leHBvcnQge1xuICBBdXRoR3VhcmRcbn0gZnJvbSAnLi9saWIvZ3VhcmRzJztcblxuZXhwb3J0IHtcbiAgSGVhZGVySW50ZXJjZXB0b3IsXG4gIFJlZnJlc2hUb2tlbkludGVyY2VwdG9yXG59IGZyb20gJy4vbGliL2ludGVyY2VwdG9ycyc7XG5cbmV4cG9ydCB7XG4gIFVzZXJcbn0gZnJvbSAnLi9saWIvaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB7IFxuICBib290c3RyYXAsXG5cbiAgTG9hZGluZ1BhZ2UsXG4gIFVuYXV0aG9yaXplZFBhZ2UsXG5cbiAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcbiAgUGVybWlzc2lvbkd1YXJkLFxuICBQZXJtaXNzaW9uU2VydmljZSxcbiAgUGVybWlzc2lvbk1vZHVsZVxufSBmcm9tICcuL2xpYi9tb2R1bGVzJztcblxuZXhwb3J0IHtcbiAgQXV0aFJlc29sdmVyXG59IGZyb20gJy4vbGliL3Jlc29sdmVycyc7XG5cbmV4cG9ydCB7XG4gIEF1dGhTZXJ2aWNlLFxuICBDdXJyZW5jeVNlcnZpY2UsXG4gIENvdW50cnlTZXJ2aWNlLFxuICBQcm9maWxlU2VydmljZVxufSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5cbmV4cG9ydCB7XG4gIGZvcm1hdENhcGl0YWxpemUsXG4gIGdlbmVyYXRlQ29udHJhc3RDb2xvcixcbiAgZ2V0Rm9ybUVycm9yTWVzc2FnZSxcbn0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG5leHBvcnQge1xuICBHcmlkQXBpLFxuICBHcmlkUmVhZHlFdmVudCxcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgVmFsdWVGb3JtYXR0ZXJQYXJhbXMsXG4gIFNlbGVjdGlvbkNoYW5nZWRFdmVudFxufSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5cbmV4cG9ydCB7XG4gIElDZWxsUmVuZGVyZXJBbmd1bGFyQ29tcFxufSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG4iXX0=
|