@evotor-dev/ui-kit 6.5.1 → 6.6.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/bundles/evotor-dev-ui-kit.umd.js +263 -109
- package/bundles/evotor-dev-ui-kit.umd.js.map +1 -1
- package/esm2015/lib/components/evo-button/components/evo-button/evo-button.component.js +92 -0
- package/esm2015/lib/components/evo-button/components/evo-button-old/evo-button-old.component.js +96 -0
- package/esm2015/lib/components/evo-button/constants/evo-button-themes-map.js +31 -0
- package/esm2015/lib/components/evo-button/evo-button.module.js +9 -14
- package/esm2015/lib/components/evo-button/public-api.js +4 -2
- package/esm2015/lib/components/evo-button/types/evo-button-color.js +2 -0
- package/esm2015/lib/components/evo-button/types/evo-button-shape.js +2 -0
- package/esm2015/lib/components/evo-button/types/evo-button-size.js +2 -0
- package/esm2015/lib/components/evo-button/types/evo-button-theme-params.js +2 -0
- package/esm2015/lib/components/evo-button/types/evo-button-theme.js +2 -0
- package/esm2015/lib/components/evo-button/types/index.js +6 -0
- package/esm2015/lib/components/evo-loader/evo-circular-loader.component.js +1 -1
- package/esm2015/lib/components/evo-modal/evo-modal.component.js +16 -7
- package/esm2015/lib/components/evo-upload/evo-upload.component.js +3 -3
- package/fesm2015/evotor-dev-ui-kit.js +225 -97
- package/fesm2015/evotor-dev-ui-kit.js.map +1 -1
- package/lib/components/evo-button/components/evo-button/evo-button.component.d.ts +24 -0
- package/lib/components/evo-button/{evo-button.component.d.ts → components/evo-button-old/evo-button-old.component.d.ts} +9 -3
- package/lib/components/evo-button/constants/evo-button-themes-map.d.ts +2 -0
- package/lib/components/evo-button/evo-button.module.d.ts +6 -4
- package/lib/components/evo-button/public-api.d.ts +3 -1
- package/lib/components/evo-button/types/evo-button-color.d.ts +5 -0
- package/lib/components/evo-button/types/evo-button-shape.d.ts +4 -0
- package/lib/components/evo-button/types/evo-button-size.d.ts +5 -0
- package/lib/components/evo-button/types/evo-button-theme-params.d.ts +5 -0
- package/lib/components/evo-button/types/evo-button-theme.d.ts +1 -0
- package/lib/components/evo-button/types/index.d.ts +5 -0
- package/lib/components/evo-modal/evo-modal.component.d.ts +10 -6
- package/package.json +1 -1
- package/styles/components/evo-table.scss +9 -9
- package/styles/mixins.scss +7 -7
- package/esm2015/lib/components/evo-button/evo-button.component.js +0 -87
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { EvoButtonColor, EvoButtonSize, EvoButtonTheme } from '../../types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class EvoButtonComponent {
|
|
5
|
+
private readonly elRef;
|
|
6
|
+
size: EvoButtonSize;
|
|
7
|
+
color: EvoButtonColor;
|
|
8
|
+
/**
|
|
9
|
+
* `theme` is a complex prop, that sets a number of inner parameters, described in `EvoButtonThemeParams`
|
|
10
|
+
*/
|
|
11
|
+
set theme(value: EvoButtonTheme);
|
|
12
|
+
set disabled(value: boolean);
|
|
13
|
+
set loading(value: boolean);
|
|
14
|
+
private shape;
|
|
15
|
+
private _isOutline;
|
|
16
|
+
private _isDisabled;
|
|
17
|
+
private _isLoading;
|
|
18
|
+
constructor(elRef: ElementRef);
|
|
19
|
+
get isLoading(): boolean;
|
|
20
|
+
get buttonClasses(): string[];
|
|
21
|
+
get buttonStyles(): Record<string, string>;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EvoButtonComponent, never>;
|
|
23
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EvoButtonComponent, "button[evoButton], a[evoButton]", never, { "size": "size"; "color": "color"; "theme": "theme"; "disabled": "disabled"; "loading": "loading"; }, {}, never, ["*"]>;
|
|
24
|
+
}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated use EvoButtonComponent
|
|
5
|
+
*/
|
|
3
6
|
export declare enum EvoButtonSizes {
|
|
4
7
|
small = "small",
|
|
5
8
|
large = "large"
|
|
6
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated use EvoButtonColor with EvoButtonTheme
|
|
12
|
+
*/
|
|
7
13
|
export declare enum EvoButtonStyles {
|
|
8
14
|
lined = "lined",
|
|
9
15
|
darkblue = "darkblue",
|
|
@@ -13,7 +19,7 @@ export declare enum EvoButtonStyles {
|
|
|
13
19
|
purple = "purple",
|
|
14
20
|
red = "red"
|
|
15
21
|
}
|
|
16
|
-
export declare class
|
|
22
|
+
export declare class EvoButtonOldComponent {
|
|
17
23
|
private elRef;
|
|
18
24
|
color: EvoButtonStyles;
|
|
19
25
|
size: EvoButtonSizes;
|
|
@@ -28,6 +34,6 @@ export declare class EvoButtonComponent {
|
|
|
28
34
|
get totalStyles(): {
|
|
29
35
|
[styleKey: string]: any;
|
|
30
36
|
};
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EvoButtonOldComponent, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EvoButtonOldComponent, "evo-button, button[evo-button]", never, { "color": "color"; "size": "size"; "disabled": "disabled"; "loading": "loading"; }, {}, never, ["*"]>;
|
|
33
39
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./evo-button.component";
|
|
3
|
-
import * as i2 from "
|
|
4
|
-
import * as i3 from "
|
|
2
|
+
import * as i1 from "./components/evo-button/evo-button.component";
|
|
3
|
+
import * as i2 from "./components/evo-button-old/evo-button-old.component";
|
|
4
|
+
import * as i3 from "@angular/common";
|
|
5
|
+
import * as i4 from "../../evo-ui-kit.module";
|
|
6
|
+
import * as i5 from "../evo-loader/evo-loader.module";
|
|
5
7
|
export declare class EvoButtonModule {
|
|
6
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<EvoButtonModule, never>;
|
|
7
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EvoButtonModule, [typeof i1.EvoButtonComponent], [typeof
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EvoButtonModule, [typeof i1.EvoButtonComponent, typeof i2.EvoButtonOldComponent], [typeof i3.CommonModule, typeof i4.EvoUiKitModule, typeof i5.EvoLoaderModule], [typeof i1.EvoButtonComponent, typeof i2.EvoButtonOldComponent]>;
|
|
8
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<EvoButtonModule>;
|
|
9
11
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type EvoButtonTheme = 'rounded-solid' | 'rounded-outline' | 'rectangle-outline' | 'semi-rectangle-solid';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ElementRef, OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { EvoModalService, EvoModalState } from './evo-modal.service';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
3
|
+
import { Observable, Subscription } from 'rxjs';
|
|
4
|
+
import { EvoButtonColor, EvoButtonTheme } from '../evo-button';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare enum EvoModalCloseTargets {
|
|
6
7
|
BACKGROUND = "background",
|
|
@@ -9,14 +10,17 @@ export declare enum EvoModalCloseTargets {
|
|
|
9
10
|
ESC = "escape"
|
|
10
11
|
}
|
|
11
12
|
export declare class EvoModalComponent implements OnInit, OnDestroy {
|
|
12
|
-
private modalService;
|
|
13
|
-
private elRef;
|
|
13
|
+
private readonly modalService;
|
|
14
|
+
private readonly elRef;
|
|
14
15
|
get id(): string;
|
|
15
16
|
set id(id: string);
|
|
16
17
|
titleText: string;
|
|
17
18
|
acceptText: string;
|
|
18
|
-
acceptButtonColor:
|
|
19
|
+
acceptButtonColor: EvoButtonColor;
|
|
20
|
+
acceptButtonTheme: EvoButtonTheme;
|
|
19
21
|
declineText: string;
|
|
22
|
+
declineButtonColor: EvoButtonColor;
|
|
23
|
+
declineButtonTheme: EvoButtonTheme;
|
|
20
24
|
asyncAccept: () => Observable<any>;
|
|
21
25
|
modalState: EvoModalState;
|
|
22
26
|
isAcceptLoading: boolean;
|
|
@@ -29,9 +33,9 @@ export declare class EvoModalComponent implements OnInit, OnDestroy {
|
|
|
29
33
|
ngOnInit(): void;
|
|
30
34
|
ngOnDestroy(): void;
|
|
31
35
|
onBackgroundClick($event: any): void;
|
|
32
|
-
handleOnClose(agreement: boolean, closeTarget: EvoModalCloseTargets):
|
|
36
|
+
handleOnClose(agreement: boolean, closeTarget: EvoModalCloseTargets): Subscription;
|
|
33
37
|
private subscribeModalEvents;
|
|
34
38
|
private initKeyboardListener;
|
|
35
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<EvoModalComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EvoModalComponent, "evo-modal", never, { "id": "id"; "titleText": "titleText"; "acceptText": "acceptText"; "acceptButtonColor": "acceptButtonColor"; "declineText": "declineText"; "asyncAccept": "asyncAccept"; }, {}, never, ["evo-icon", "*"]>;
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EvoModalComponent, "evo-modal", never, { "id": "id"; "titleText": "titleText"; "acceptText": "acceptText"; "acceptButtonColor": "acceptButtonColor"; "acceptButtonTheme": "acceptButtonTheme"; "declineText": "declineText"; "declineButtonColor": "declineButtonColor"; "declineButtonTheme": "declineButtonTheme"; "asyncAccept": "asyncAccept"; }, {}, never, ["evo-icon", "*"]>;
|
|
37
41
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
@import
|
|
1
|
+
@import '../mixins';
|
|
2
2
|
|
|
3
3
|
@mixin table {
|
|
4
4
|
display: table;
|
|
5
5
|
width: 100%;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
@mixin table-row {
|
|
8
|
+
@mixin table-row($hover: true) {
|
|
9
9
|
display: table-row;
|
|
10
10
|
padding: 16px;
|
|
11
11
|
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
background-color: $color-background-grey;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
&:hover {
|
|
18
|
-
background-color: $color-highlight;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
&_head {
|
|
16
|
+
@if $hover == true {
|
|
22
17
|
&:hover {
|
|
23
|
-
background:
|
|
18
|
+
background-color: $color-highlight;
|
|
19
|
+
}
|
|
20
|
+
&_head {
|
|
21
|
+
&:hover {
|
|
22
|
+
background: none;
|
|
23
|
+
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
package/styles/mixins.scss
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
@import 'variables.scss';
|
|
2
2
|
@import './mixins/media-mixins';
|
|
3
3
|
@import './mixins/evo-input-mixins';
|
|
4
|
-
@import 'mixins/evo-text-caption-mixin';
|
|
5
|
-
@import 'mixins/evo-text-header-mixin';
|
|
6
|
-
@import 'mixins/evo-text-mobile-header-mixin';
|
|
7
|
-
@import 'mixins/evo-text-paragraph-mixin';
|
|
8
|
-
@import 'mixins/evo-text-field-mixin';
|
|
9
|
-
@import 'mixins/evo-text-subtitle-mixin';
|
|
10
|
-
@import 'mixins/evo-text-tips-mixin';
|
|
4
|
+
@import './mixins/evo-text-caption-mixin';
|
|
5
|
+
@import './mixins/evo-text-header-mixin';
|
|
6
|
+
@import './mixins/evo-text-mobile-header-mixin';
|
|
7
|
+
@import './mixins/evo-text-paragraph-mixin';
|
|
8
|
+
@import './mixins/evo-text-field-mixin';
|
|
9
|
+
@import './mixins/evo-text-subtitle-mixin';
|
|
10
|
+
@import './mixins/evo-text-tips-mixin';
|
|
11
11
|
|
|
12
12
|
/* @include clearfix();*/
|
|
13
13
|
@mixin clearfix() {
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../directives/evo-ui-class.directive";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
export var EvoButtonSizes;
|
|
6
|
-
(function (EvoButtonSizes) {
|
|
7
|
-
EvoButtonSizes["small"] = "small";
|
|
8
|
-
EvoButtonSizes["large"] = "large";
|
|
9
|
-
})(EvoButtonSizes || (EvoButtonSizes = {}));
|
|
10
|
-
export var EvoButtonStyles;
|
|
11
|
-
(function (EvoButtonStyles) {
|
|
12
|
-
EvoButtonStyles["lined"] = "lined";
|
|
13
|
-
EvoButtonStyles["darkblue"] = "darkblue";
|
|
14
|
-
EvoButtonStyles["darkblueLined"] = "darkblue-lined";
|
|
15
|
-
EvoButtonStyles["green"] = "green";
|
|
16
|
-
EvoButtonStyles["greenlined"] = "green-lined";
|
|
17
|
-
EvoButtonStyles["purple"] = "purple";
|
|
18
|
-
EvoButtonStyles["red"] = "red";
|
|
19
|
-
})(EvoButtonStyles || (EvoButtonStyles = {}));
|
|
20
|
-
export class EvoButtonComponent {
|
|
21
|
-
constructor(elRef) {
|
|
22
|
-
this.elRef = elRef;
|
|
23
|
-
this._disabled = false;
|
|
24
|
-
this._loading = false;
|
|
25
|
-
}
|
|
26
|
-
set disabled(value) {
|
|
27
|
-
this._disabled = value;
|
|
28
|
-
if (!this.loading) {
|
|
29
|
-
this.elRef.nativeElement.disabled = value;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
set loading(value) {
|
|
33
|
-
this._loading = value;
|
|
34
|
-
if (!this.disabled) {
|
|
35
|
-
this.elRef.nativeElement.disabled = value;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
get disabled() {
|
|
39
|
-
return this._disabled;
|
|
40
|
-
}
|
|
41
|
-
get loading() {
|
|
42
|
-
return this._loading;
|
|
43
|
-
}
|
|
44
|
-
get totalClasses() {
|
|
45
|
-
const classes = [];
|
|
46
|
-
if (this.size) {
|
|
47
|
-
classes.push(this.size);
|
|
48
|
-
}
|
|
49
|
-
if (this.color) {
|
|
50
|
-
classes.push(this.color);
|
|
51
|
-
}
|
|
52
|
-
if (this.loading) {
|
|
53
|
-
classes.push('loading');
|
|
54
|
-
}
|
|
55
|
-
if (this.disabled) {
|
|
56
|
-
classes.push('disabled');
|
|
57
|
-
}
|
|
58
|
-
return classes;
|
|
59
|
-
}
|
|
60
|
-
get totalStyles() {
|
|
61
|
-
const result = {};
|
|
62
|
-
if (this.loading) {
|
|
63
|
-
result['visibility'] = 'hidden';
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
EvoButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
EvoButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: EvoButtonComponent, selector: "evo-button, button[evo-button]", inputs: { color: "color", size: "size", disabled: "disabled", loading: "loading" }, ngImport: i0, template: "<div class=\"evo-button\" [evoUiClass]=\"totalClasses\">\n <span [ngStyle]=\"totalStyles\">\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"loading\" class=\"evo-button__dots\">\n <span class=\"evo-button__dot\"></span>\n <span class=\"evo-button__dot\"></span>\n <span class=\"evo-button__dot\"></span>\n </span>\n</div>\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}.evo-button{display:flex;justify-content:center;align-items:center;min-width:96px;height:40px;padding:0 24px;color:#fff;font-weight:500;font-size:16px;font-family:var(--evo-font-secondary);line-height:1;white-space:nowrap;text-align:center;text-transform:uppercase;background:#F05023 none;border:solid 1px transparent;border-radius:30px;outline:none;cursor:pointer;transition:background-color .3s,color .3s,border .3s;-webkit-user-select:none;user-select:none}.evo-button:hover{color:#fff;background-color:#f3734f}.evo-button:active,.evo-button:focus{color:#fff;background-color:#d8481f;outline:none}.evo-button:disabled,.evo-button_disabled{color:#fff!important;background:rgba(0,0,0,.16)!important;border-color:transparent!important;pointer-events:none}.evo-button_lined{color:#f05023;background-color:#fff;border:1px solid #F05023}.evo-button_lined:hover{color:#fff;background-color:#f05023}.evo-button_lined:active,.evo-button_lined:focus{color:#fff;background-color:#d8481f;border-color:#d8481f}.evo-button_darkblue{background-color:#546e7a}.evo-button_darkblue:hover{background-color:#7596a5}.evo-button_darkblue:active,.evo-button_darkblue:focus{background-color:#283239}.evo-button_darkblue-lined{color:#403c3d;background-color:#fff;border:1px solid #403C3D}.evo-button_darkblue-lined:hover{color:#fff;background-color:#403c3d}.evo-button_darkblue-lined:active,.evo-button_darkblue-lined:focus{color:#fff;background-color:#343031;border-color:#343031}.evo-button_green{background-color:#21c68b}.evo-button_green:hover{background-color:#4cd2a2}.evo-button_green:active,.evo-button_green:focus{background-color:#1c9e6e}.evo-button_green-lined{color:#21c68b;background-color:#fff;border:1px solid #21C68B}.evo-button_green-lined:hover{color:#fff;background-color:#21c68b}.evo-button_green-lined:active,.evo-button_green-lined:focus{color:#fff;background-color:#1c9e6e;border-color:#1c9e6e}.evo-button_red{color:#fff;background-color:#ff1817}.evo-button_red:hover{background-color:#ff4645}.evo-button_red:active,.evo-button_red:focus{background-color:#e51715}.evo-button_purple{background-color:#c72aae}.evo-button_purple:hover{background-color:#d255be}.evo-button_purple:active,.evo-button_purple:focus{background-color:#9f228b}.evo-button_white{background-color:transparent;border:1px solid #FFFFFF}.evo-button_white:hover{color:#403c3d;background-color:#fff}.evo-button_white:active,.evo-button_white:focus{color:#fff;background-color:transparent}.evo-button_small{min-width:72px;height:32px;padding:0 16px;font-size:14px}.evo-button_large{min-width:120px;height:56px;padding:0 40px;font-size:18px}.evo-button_icon{display:inline-flex;align-items:center;padding-right:22px;padding-left:22px}.evo-button_loading{position:relative;pointer-events:none}.evo-button__dots{position:absolute;top:50%;left:50%;margin-top:-5px;margin-left:-30px}.evo-button__dot{float:left;width:10px;height:10px;margin:0 5px;background:currentColor;border-radius:50%;transform:scale(0);animation:evo-fx-blink 1s ease infinite 0ms}.evo-button__dot:nth-child(2){animation:evo-fx-blink 1s ease infinite .3s}.evo-button__dot:nth-child(3){animation:evo-fx-blink 1s ease infinite .6s}:host{display:inline-block;margin:0;padding:0;vertical-align:top;background:none;border:0;outline:none}\n"], directives: [{ type: i1.EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvoButtonComponent, decorators: [{
|
|
71
|
-
type: Component,
|
|
72
|
-
args: [{
|
|
73
|
-
selector: 'evo-button, button[evo-button]',
|
|
74
|
-
templateUrl: './evo-button.component.html',
|
|
75
|
-
styleUrls: ['./evo-button.component.scss'],
|
|
76
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
77
|
-
}]
|
|
78
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { color: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}], size: [{
|
|
81
|
-
type: Input
|
|
82
|
-
}], disabled: [{
|
|
83
|
-
type: Input
|
|
84
|
-
}], loading: [{
|
|
85
|
-
type: Input
|
|
86
|
-
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldm8tdWkta2l0L3NyYy9saWIvY29tcG9uZW50cy9ldm8tYnV0dG9uL2V2by1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWJ1dHRvbi9ldm8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBRXRGLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsaUNBQWUsQ0FBQTtJQUNmLGlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFRWDtBQVJELFdBQVksZUFBZTtJQUN2QixrQ0FBZSxDQUFBO0lBQ2Ysd0NBQXFCLENBQUE7SUFDckIsbURBQWdDLENBQUE7SUFDaEMsa0NBQWUsQ0FBQTtJQUNmLDZDQUEwQixDQUFBO0lBQzFCLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7QUFDZixDQUFDLEVBUlcsZUFBZSxLQUFmLGVBQWUsUUFRMUI7QUFRRCxNQUFNLE9BQU8sa0JBQWtCO0lBdUIzQixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSDdCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUd6QixDQUFDO0lBcEJELElBQWEsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUM3QztJQUNMLENBQUM7SUFRRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM1QjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsTUFBTSxDQUFFLFlBQVksQ0FBRSxHQUFHLFFBQVEsQ0FBQztTQUNyQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dIQWhFUSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwwSkN2Qi9CLG1YQVVBOzRGRGFhLGtCQUFrQjtrQkFOOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBRSw2QkFBNkIsQ0FBRTtvQkFDNUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO2lHQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkFRTyxPQUFPO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGVudW0gRXZvQnV0dG9uU2l6ZXMge1xuICAgIHNtYWxsID0gJ3NtYWxsJyxcbiAgICBsYXJnZSA9ICdsYXJnZScsXG59XG5cbmV4cG9ydCBlbnVtIEV2b0J1dHRvblN0eWxlcyB7XG4gICAgbGluZWQgPSAnbGluZWQnLFxuICAgIGRhcmtibHVlID0gJ2RhcmtibHVlJyxcbiAgICBkYXJrYmx1ZUxpbmVkID0gJ2RhcmtibHVlLWxpbmVkJyxcbiAgICBncmVlbiA9ICdncmVlbicsXG4gICAgZ3JlZW5saW5lZCA9ICdncmVlbi1saW5lZCcsXG4gICAgcHVycGxlID0gJ3B1cnBsZScsXG4gICAgcmVkID0gJ3JlZCcsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXZvLWJ1dHRvbiwgYnV0dG9uW2V2by1idXR0b25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbICcuL2V2by1idXR0b24uY29tcG9uZW50LnNjc3MnIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEV2b0J1dHRvbkNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY29sb3I6IEV2b0J1dHRvblN0eWxlcztcbiAgICBASW5wdXQoKSBzaXplOiBFdm9CdXR0b25TaXplcztcblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuXG4gICAgICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWx1ZTtcblxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICAgIH1cblxuICAgIGdldCB0b3RhbENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLnNpemUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29sb3IpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCh0aGlzLmNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnbG9hZGluZycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxuICAgIGdldCB0b3RhbFN0eWxlcygpOiB7IFsgc3R5bGVLZXk6IHN0cmluZyBdOiBhbnkgfSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJlc3VsdFsgJ3Zpc2liaWxpdHknIF0gPSAnaGlkZGVuJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV2by1idXR0b25cIiBbZXZvVWlDbGFzc109XCJ0b3RhbENsYXNzZXNcIj5cbiAgICA8c3BhbiBbbmdTdHlsZV09XCJ0b3RhbFN0eWxlc1wiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwiZXZvLWJ1dHRvbl9fZG90c1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImV2by1idXR0b25fX2RvdFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8tYnV0dG9uX19kb3RcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXZvLWJ1dHRvbl9fZG90XCI+PC9zcGFuPlxuICAgIDwvc3Bhbj5cbjwvZGl2PlxuIl19
|