@haiilo/catalyst-angular 0.15.3 → 1.0.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/CHANGELOG.md +89 -0
- package/karma.conf.js +44 -0
- package/ng-package.json +10 -0
- package/package.json +7 -24
- package/src/index.ts +1 -0
- package/src/lib/catalyst.module.ts +65 -0
- package/src/lib/directives/angular-component-lib/utils.ts +63 -0
- package/src/lib/directives/boolean-value-accessor.ts +27 -0
- package/src/lib/directives/proxies.ts +650 -0
- package/src/lib/directives/radio-value-accessor.ts +24 -0
- package/src/lib/directives/select-value-accessor.ts +24 -0
- package/src/lib/directives/text-value-accessor.ts +24 -0
- package/src/lib/directives/value-accessor.ts +39 -0
- package/{public-api.d.ts → src/public-api.ts} +0 -0
- package/src/test.ts +28 -0
- package/tsconfig.lib.json +20 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/esm2020/haiilo-catalyst-angular.mjs +0 -5
- package/esm2020/lib/catalyst.module.mjs +0 -75
- package/esm2020/lib/directives/angular-component-lib/utils.mjs +0 -53
- package/esm2020/lib/directives/boolean-value-accessor.mjs +0 -38
- package/esm2020/lib/directives/proxies.mjs +0 -621
- package/esm2020/lib/directives/radio-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/select-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/text-value-accessor.mjs +0 -35
- package/esm2020/lib/directives/value-accessor.mjs +0 -40
- package/esm2020/public-api.mjs +0 -8
- package/fesm2015/haiilo-catalyst-angular.mjs +0 -886
- package/fesm2015/haiilo-catalyst-angular.mjs.map +0 -1
- package/fesm2020/haiilo-catalyst-angular.mjs +0 -886
- package/fesm2020/haiilo-catalyst-angular.mjs.map +0 -1
- package/haiilo-catalyst-angular.d.ts +0 -5
- package/lib/catalyst.module.d.ts +0 -16
- package/lib/directives/angular-component-lib/utils.d.ts +0 -9
- package/lib/directives/boolean-value-accessor.d.ts +0 -9
- package/lib/directives/proxies.d.ts +0 -359
- package/lib/directives/radio-value-accessor.d.ts +0 -8
- package/lib/directives/select-value-accessor.d.ts +0 -8
- package/lib/directives/text-value-accessor.d.ts +0 -8
- package/lib/directives/value-accessor.d.ts +0 -18
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
|
|
4
|
+
import { ValueAccessor } from './value-accessor';
|
|
5
|
+
|
|
6
|
+
@Directive({
|
|
7
|
+
/* tslint:disable-next-line:directive-selector */
|
|
8
|
+
selector: 'cat-input, cat-textarea',
|
|
9
|
+
host: {
|
|
10
|
+
'(catChange)': 'handleChangeEvent($event.target.value)'
|
|
11
|
+
},
|
|
12
|
+
providers: [
|
|
13
|
+
{
|
|
14
|
+
provide: NG_VALUE_ACCESSOR,
|
|
15
|
+
useExisting: TextValueAccessor,
|
|
16
|
+
multi: true
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
})
|
|
20
|
+
export class TextValueAccessor extends ValueAccessor {
|
|
21
|
+
constructor(el: ElementRef) {
|
|
22
|
+
super(el);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener } from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
|
|
4
|
+
@Directive({})
|
|
5
|
+
export class ValueAccessor implements ControlValueAccessor {
|
|
6
|
+
|
|
7
|
+
private onChange: (value: any) => void = () => {/**/};
|
|
8
|
+
private onTouched: () => void = () => {/**/};
|
|
9
|
+
protected lastValue: any;
|
|
10
|
+
|
|
11
|
+
constructor(protected el: ElementRef) {}
|
|
12
|
+
|
|
13
|
+
writeValue(value: any) {
|
|
14
|
+
this.el.nativeElement.value = this.lastValue = value == null ? '' : value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
handleChangeEvent(value: any) {
|
|
18
|
+
if (value !== this.lastValue) {
|
|
19
|
+
this.lastValue = value;
|
|
20
|
+
this.onChange(value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@HostListener('focusout')
|
|
25
|
+
_handleBlurEvent() {
|
|
26
|
+
this.onTouched();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
registerOnChange(fn: (value: any) => void) {
|
|
30
|
+
this.onChange = fn;
|
|
31
|
+
}
|
|
32
|
+
registerOnTouched(fn: () => void) {
|
|
33
|
+
this.onTouched = fn;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
setDisabledState(isDisabled: boolean) {
|
|
37
|
+
this.el.nativeElement.disabled = isDisabled;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
File without changes
|
package/src/test.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
|
2
|
+
|
|
3
|
+
import 'zone.js';
|
|
4
|
+
import 'zone.js/testing';
|
|
5
|
+
import { getTestBed } from '@angular/core/testing';
|
|
6
|
+
import {
|
|
7
|
+
BrowserDynamicTestingModule,
|
|
8
|
+
platformBrowserDynamicTesting
|
|
9
|
+
} from '@angular/platform-browser-dynamic/testing';
|
|
10
|
+
|
|
11
|
+
declare const require: {
|
|
12
|
+
context(path: string, deep?: boolean, filter?: RegExp): {
|
|
13
|
+
keys(): string[];
|
|
14
|
+
<T>(id: string): T;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// First, initialize the Angular testing environment.
|
|
19
|
+
getTestBed().initTestEnvironment(
|
|
20
|
+
BrowserDynamicTestingModule,
|
|
21
|
+
platformBrowserDynamicTesting(),
|
|
22
|
+
{ teardown: { destroyAfterEach: true }},
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
// Then we find all the tests.
|
|
26
|
+
const context = require.context('./', true, /\.spec\.ts$/);
|
|
27
|
+
// And load the modules.
|
|
28
|
+
context.keys().map(context);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
2
|
+
{
|
|
3
|
+
"extends": "../../tsconfig.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"outDir": "../../out-tsc/lib",
|
|
6
|
+
"target": "es2015",
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationMap": true,
|
|
9
|
+
"inlineSources": true,
|
|
10
|
+
"types": [],
|
|
11
|
+
"lib": [
|
|
12
|
+
"dom",
|
|
13
|
+
"es2018"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"exclude": [
|
|
17
|
+
"src/test.ts",
|
|
18
|
+
"**/*.spec.ts"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
2
|
+
{
|
|
3
|
+
"extends": "../../tsconfig.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"outDir": "../../out-tsc/spec",
|
|
6
|
+
"types": [
|
|
7
|
+
"jasmine"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"src/test.ts"
|
|
12
|
+
],
|
|
13
|
+
"include": [
|
|
14
|
+
"**/*.spec.ts",
|
|
15
|
+
"**/*.d.ts"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFpaWxvLWNhdGFseXN0LWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jYXRhbHlzdC9zcmMvaGFpaWxvLWNhdGFseXN0LWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, NgModule } from '@angular/core';
|
|
2
|
-
import { CatI18nRegistry, CatIconRegistry } from '@haiilo/catalyst';
|
|
3
|
-
import { defineCustomElements } from '@haiilo/catalyst/loader';
|
|
4
|
-
import * as Components from './directives/proxies';
|
|
5
|
-
import { TextValueAccessor } from "./directives/text-value-accessor";
|
|
6
|
-
import { SelectValueAccessor } from "./directives/select-value-accessor";
|
|
7
|
-
import { RadioValueAccessor } from "./directives/radio-value-accessor";
|
|
8
|
-
import { BooleanValueAccessor } from "./directives/boolean-value-accessor";
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "./directives/proxies";
|
|
11
|
-
const CatComponents = [
|
|
12
|
-
Components.CatAlert,
|
|
13
|
-
Components.CatAvatar,
|
|
14
|
-
Components.CatBadge,
|
|
15
|
-
Components.CatButton,
|
|
16
|
-
Components.CatCard,
|
|
17
|
-
Components.CatCheckbox,
|
|
18
|
-
Components.CatIcon,
|
|
19
|
-
Components.CatInput,
|
|
20
|
-
Components.CatMenu,
|
|
21
|
-
Components.CatModal,
|
|
22
|
-
Components.CatRadio,
|
|
23
|
-
Components.CatRadioGroup,
|
|
24
|
-
Components.CatScrollable,
|
|
25
|
-
Components.CatSelect,
|
|
26
|
-
Components.CatSelectRemote,
|
|
27
|
-
Components.CatSkeleton,
|
|
28
|
-
Components.CatSpinner,
|
|
29
|
-
Components.CatTab,
|
|
30
|
-
Components.CatTabs,
|
|
31
|
-
Components.CatTextarea,
|
|
32
|
-
Components.CatToggle,
|
|
33
|
-
Components.CatTooltip
|
|
34
|
-
];
|
|
35
|
-
const CatDirectives = [
|
|
36
|
-
TextValueAccessor,
|
|
37
|
-
SelectValueAccessor,
|
|
38
|
-
RadioValueAccessor,
|
|
39
|
-
BooleanValueAccessor
|
|
40
|
-
];
|
|
41
|
-
export const CAT_I18N_REGISTRY_TOKEN = new InjectionToken('CAT_I18N_REGISTRY', {
|
|
42
|
-
providedIn: 'root',
|
|
43
|
-
factory: () => CatI18nRegistry.getInstance(),
|
|
44
|
-
});
|
|
45
|
-
export const CAT_ICON_REGISTRY_TOKEN = new InjectionToken('CAT_ICON_REGISTRY', {
|
|
46
|
-
providedIn: 'root',
|
|
47
|
-
factory: () => CatIconRegistry.getInstance(),
|
|
48
|
-
});
|
|
49
|
-
export class CatalystModule {
|
|
50
|
-
static forRoot() {
|
|
51
|
-
defineCustomElements();
|
|
52
|
-
return {
|
|
53
|
-
ngModule: CatalystModule
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
CatalystModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CatalystModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
58
|
-
CatalystModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CatalystModule, declarations: [i1.CatAlert, i1.CatAvatar, i1.CatBadge, i1.CatButton, i1.CatCard, i1.CatCheckbox, i1.CatIcon, i1.CatInput, i1.CatMenu, i1.CatModal, i1.CatRadio, i1.CatRadioGroup, i1.CatScrollable, i1.CatSelect, i1.CatSelectRemote, i1.CatSkeleton, i1.CatSpinner, i1.CatTab, i1.CatTabs, i1.CatTextarea, i1.CatToggle, i1.CatTooltip, TextValueAccessor,
|
|
59
|
-
SelectValueAccessor,
|
|
60
|
-
RadioValueAccessor,
|
|
61
|
-
BooleanValueAccessor], exports: [i1.CatAlert, i1.CatAvatar, i1.CatBadge, i1.CatButton, i1.CatCard, i1.CatCheckbox, i1.CatIcon, i1.CatInput, i1.CatMenu, i1.CatModal, i1.CatRadio, i1.CatRadioGroup, i1.CatScrollable, i1.CatSelect, i1.CatSelectRemote, i1.CatSkeleton, i1.CatSpinner, i1.CatTab, i1.CatTabs, i1.CatTextarea, i1.CatToggle, i1.CatTooltip, TextValueAccessor,
|
|
62
|
-
SelectValueAccessor,
|
|
63
|
-
RadioValueAccessor,
|
|
64
|
-
BooleanValueAccessor] });
|
|
65
|
-
CatalystModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CatalystModule, providers: [], imports: [[]] });
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CatalystModule, decorators: [{
|
|
67
|
-
type: NgModule,
|
|
68
|
-
args: [{
|
|
69
|
-
imports: [],
|
|
70
|
-
declarations: [...CatComponents, ...CatDirectives],
|
|
71
|
-
exports: [...CatComponents, ...CatDirectives],
|
|
72
|
-
providers: []
|
|
73
|
-
}]
|
|
74
|
-
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWx5c3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2F0YWx5c3Qvc3JjL2xpYi9jYXRhbHlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTNFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxTQUFTO0lBQ3BCLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxTQUFTO0lBQ3BCLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxXQUFXO0lBQ3RCLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxhQUFhO0lBQ3hCLFVBQVUsQ0FBQyxhQUFhO0lBQ3hCLFVBQVUsQ0FBQyxTQUFTO0lBQ3BCLFVBQVUsQ0FBQyxlQUFlO0lBQzFCLFVBQVUsQ0FBQyxXQUFXO0lBQ3RCLFVBQVUsQ0FBQyxVQUFVO0lBQ3JCLFVBQVUsQ0FBQyxNQUFNO0lBQ2pCLFVBQVUsQ0FBQyxPQUFPO0lBQ2xCLFVBQVUsQ0FBQyxXQUFXO0lBQ3RCLFVBQVUsQ0FBQyxTQUFTO0lBQ3BCLFVBQVUsQ0FBQyxVQUFVO0NBQ3RCLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRztJQUNwQixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixvQkFBb0I7Q0FDckIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUFrQixtQkFBbUIsRUFBRTtJQUM5RixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRTtDQUM3QyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLEVBQUU7SUFDOUYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUU7Q0FDN0MsQ0FBQyxDQUFDO0FBUUgsTUFBTSxPQUFPLGNBQWM7SUFFekIsTUFBTSxDQUFDLE9BQU87UUFDWixvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZCLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDO0lBQ0osQ0FBQzs7NEdBUFUsY0FBYzs2R0FBZCxjQUFjLDJVQXRCekIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsb0JBQW9CLHVVQUhwQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixvQkFBb0I7NkdBbUJULGNBQWMsYUFGZCxFQUFFLFlBSEosRUFBRTs0RkFLQSxjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsYUFBYSxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxHQUFHLGFBQWEsQ0FBQztvQkFDN0MsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhdEkxOG5SZWdpc3RyeSwgQ2F0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGhhaWlsby9jYXRhbHlzdCc7XG5pbXBvcnQgeyBkZWZpbmVDdXN0b21FbGVtZW50cyB9IGZyb20gJ0BoYWlpbG8vY2F0YWx5c3QvbG9hZGVyJztcbmltcG9ydCAqIGFzIENvbXBvbmVudHMgZnJvbSAnLi9kaXJlY3RpdmVzL3Byb3hpZXMnO1xuaW1wb3J0IHsgVGV4dFZhbHVlQWNjZXNzb3IgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3RleHQtdmFsdWUtYWNjZXNzb3JcIjtcbmltcG9ydCB7IFNlbGVjdFZhbHVlQWNjZXNzb3IgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL3NlbGVjdC12YWx1ZS1hY2Nlc3NvclwiO1xuaW1wb3J0IHsgUmFkaW9WYWx1ZUFjY2Vzc29yIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9yYWRpby12YWx1ZS1hY2Nlc3NvclwiO1xuaW1wb3J0IHsgQm9vbGVhblZhbHVlQWNjZXNzb3IgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL2Jvb2xlYW4tdmFsdWUtYWNjZXNzb3JcIjtcblxuY29uc3QgQ2F0Q29tcG9uZW50cyA9IFtcbiAgQ29tcG9uZW50cy5DYXRBbGVydCxcbiAgQ29tcG9uZW50cy5DYXRBdmF0YXIsXG4gIENvbXBvbmVudHMuQ2F0QmFkZ2UsXG4gIENvbXBvbmVudHMuQ2F0QnV0dG9uLFxuICBDb21wb25lbnRzLkNhdENhcmQsXG4gIENvbXBvbmVudHMuQ2F0Q2hlY2tib3gsXG4gIENvbXBvbmVudHMuQ2F0SWNvbixcbiAgQ29tcG9uZW50cy5DYXRJbnB1dCxcbiAgQ29tcG9uZW50cy5DYXRNZW51LFxuICBDb21wb25lbnRzLkNhdE1vZGFsLFxuICBDb21wb25lbnRzLkNhdFJhZGlvLFxuICBDb21wb25lbnRzLkNhdFJhZGlvR3JvdXAsXG4gIENvbXBvbmVudHMuQ2F0U2Nyb2xsYWJsZSxcbiAgQ29tcG9uZW50cy5DYXRTZWxlY3QsXG4gIENvbXBvbmVudHMuQ2F0U2VsZWN0UmVtb3RlLFxuICBDb21wb25lbnRzLkNhdFNrZWxldG9uLFxuICBDb21wb25lbnRzLkNhdFNwaW5uZXIsXG4gIENvbXBvbmVudHMuQ2F0VGFiLFxuICBDb21wb25lbnRzLkNhdFRhYnMsXG4gIENvbXBvbmVudHMuQ2F0VGV4dGFyZWEsXG4gIENvbXBvbmVudHMuQ2F0VG9nZ2xlLFxuICBDb21wb25lbnRzLkNhdFRvb2x0aXBcbl07XG5cbmNvbnN0IENhdERpcmVjdGl2ZXMgPSBbXG4gIFRleHRWYWx1ZUFjY2Vzc29yLFxuICBTZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICBSYWRpb1ZhbHVlQWNjZXNzb3IsXG4gIEJvb2xlYW5WYWx1ZUFjY2Vzc29yXG5dXG5cbmV4cG9ydCBjb25zdCBDQVRfSTE4Tl9SRUdJU1RSWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDYXRJMThuUmVnaXN0cnk+KCdDQVRfSTE4Tl9SRUdJU1RSWScsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBDYXRJMThuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ0FUX0lDT05fUkVHSVNUUllfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q2F0SWNvblJlZ2lzdHJ5PignQ0FUX0lDT05fUkVHSVNUUlknLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gQ2F0SWNvblJlZ2lzdHJ5LmdldEluc3RhbmNlKCksXG59KTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogWy4uLkNhdENvbXBvbmVudHMsIC4uLkNhdERpcmVjdGl2ZXNdLFxuICBleHBvcnRzOiBbLi4uQ2F0Q29tcG9uZW50cywgLi4uQ2F0RGlyZWN0aXZlc10sXG4gIHByb3ZpZGVyczogW11cbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWx5c3RNb2R1bGUge1xuXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q2F0YWx5c3RNb2R1bGU+IHtcbiAgICBkZWZpbmVDdXN0b21FbGVtZW50cygpO1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQ2F0YWx5c3RNb2R1bGVcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
/* tslint:disable */
|
|
3
|
-
import { fromEvent } from 'rxjs';
|
|
4
|
-
export const proxyInputs = (Cmp, inputs) => {
|
|
5
|
-
const Prototype = Cmp.prototype;
|
|
6
|
-
inputs.forEach(item => {
|
|
7
|
-
Object.defineProperty(Prototype, item, {
|
|
8
|
-
get() {
|
|
9
|
-
return this.el[item];
|
|
10
|
-
},
|
|
11
|
-
set(val) {
|
|
12
|
-
this.z.runOutsideAngular(() => (this.el[item] = val));
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
export const proxyMethods = (Cmp, methods) => {
|
|
18
|
-
const Prototype = Cmp.prototype;
|
|
19
|
-
methods.forEach(methodName => {
|
|
20
|
-
Prototype[methodName] = function () {
|
|
21
|
-
const args = arguments;
|
|
22
|
-
return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
|
|
23
|
-
};
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
export const proxyOutputs = (instance, el, events) => {
|
|
27
|
-
events.forEach(eventName => instance[eventName] = fromEvent(el, eventName));
|
|
28
|
-
};
|
|
29
|
-
export const defineCustomElement = (tagName, customElement) => {
|
|
30
|
-
if (customElement !== undefined &&
|
|
31
|
-
typeof customElements !== 'undefined' &&
|
|
32
|
-
!customElements.get(tagName)) {
|
|
33
|
-
customElements.define(tagName, customElement);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
// tslint:disable-next-line: only-arrow-functions
|
|
37
|
-
export function ProxyCmp(opts) {
|
|
38
|
-
const decorator = function (cls) {
|
|
39
|
-
const { defineCustomElementFn, inputs, methods } = opts;
|
|
40
|
-
if (defineCustomElementFn !== undefined) {
|
|
41
|
-
defineCustomElementFn();
|
|
42
|
-
}
|
|
43
|
-
if (inputs) {
|
|
44
|
-
proxyInputs(cls, inputs);
|
|
45
|
-
}
|
|
46
|
-
if (methods) {
|
|
47
|
-
proxyMethods(cls, methods);
|
|
48
|
-
}
|
|
49
|
-
return cls;
|
|
50
|
-
};
|
|
51
|
-
return decorator;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXRhbHlzdC9zcmMvbGliL2RpcmVjdGl2ZXMvYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFRLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO0lBQ3hELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDaEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDckMsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFRO2dCQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDM0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQ25DLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQ3pDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFPLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO0lBQ3ZFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzlFLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsT0FBZSxFQUFFLGFBQWtCLEVBQUUsRUFBRTtJQUN6RSxJQUNFLGFBQWEsS0FBSyxTQUFTO1FBQzNCLE9BQU8sY0FBYyxLQUFLLFdBQVc7UUFDckMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUM1QjtRQUNBLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQy9DO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsaURBQWlEO0FBQ2pELE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBeUU7SUFDaEcsTUFBTSxTQUFTLEdBQUcsVUFBVSxHQUFRO1FBQ2xDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXhELElBQUkscUJBQXFCLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLHFCQUFxQixFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLE9BQU8sRUFBRTtZQUNYLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgcHJveHlJbnB1dHMgPSAoQ21wOiBhbnksIGlucHV0czogc3RyaW5nW10pID0+IHtcbiAgY29uc3QgUHJvdG90eXBlID0gQ21wLnByb3RvdHlwZTtcbiAgaW5wdXRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFByb3RvdHlwZSwgaXRlbSwge1xuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbFtpdGVtXTtcbiAgICAgIH0sXG4gICAgICBzZXQodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy56LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+ICh0aGlzLmVsW2l0ZW1dID0gdmFsKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3h5TWV0aG9kcyA9IChDbXA6IGFueSwgbWV0aG9kczogc3RyaW5nW10pID0+IHtcbiAgY29uc3QgUHJvdG90eXBlID0gQ21wLnByb3RvdHlwZTtcbiAgbWV0aG9kcy5mb3JFYWNoKG1ldGhvZE5hbWUgPT4ge1xuICAgIFByb3RvdHlwZVttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICByZXR1cm4gdGhpcy56LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgIHRoaXMuZWxbbWV0aG9kTmFtZV0uYXBwbHkodGhpcy5lbCwgYXJncylcbiAgICAgICk7XG4gICAgfTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJveHlPdXRwdXRzID0gKGluc3RhbmNlOiBhbnksIGVsOiBhbnksIGV2ZW50czogc3RyaW5nW10pID0+IHtcbiAgZXZlbnRzLmZvckVhY2goZXZlbnROYW1lID0+IGluc3RhbmNlW2V2ZW50TmFtZV0gPSBmcm9tRXZlbnQoZWwsIGV2ZW50TmFtZSkpO1xufVxuXG5leHBvcnQgY29uc3QgZGVmaW5lQ3VzdG9tRWxlbWVudCA9ICh0YWdOYW1lOiBzdHJpbmcsIGN1c3RvbUVsZW1lbnQ6IGFueSkgPT4ge1xuICBpZiAoXG4gICAgY3VzdG9tRWxlbWVudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgdHlwZW9mIGN1c3RvbUVsZW1lbnRzICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSlcbiAgKSB7XG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGN1c3RvbUVsZW1lbnQpO1xuICB9XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBQcm94eUNtcChvcHRzOiB7IGRlZmluZUN1c3RvbUVsZW1lbnRGbj86ICgpID0+IHZvaWQsIGlucHV0cz86IGFueTsgbWV0aG9kcz86IGFueSB9KSB7XG4gIGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIChjbHM6IGFueSkge1xuICAgIGNvbnN0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudEZuLCBpbnB1dHMsIG1ldGhvZHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoZGVmaW5lQ3VzdG9tRWxlbWVudEZuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlZmluZUN1c3RvbUVsZW1lbnRGbigpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dHMpIHtcbiAgICAgIHByb3h5SW5wdXRzKGNscywgaW5wdXRzKTtcbiAgICB9XG4gICAgaWYgKG1ldGhvZHMpIHtcbiAgICAgIHByb3h5TWV0aG9kcyhjbHMsIG1ldGhvZHMpO1xuICAgIH1cbiAgICByZXR1cm4gY2xzO1xuICB9O1xuICByZXR1cm4gZGVjb3JhdG9yO1xufVxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { ValueAccessor } from './value-accessor';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class BooleanValueAccessor extends ValueAccessor {
|
|
6
|
-
constructor(el) {
|
|
7
|
-
super(el);
|
|
8
|
-
}
|
|
9
|
-
writeValue(value) {
|
|
10
|
-
this.el.nativeElement.checked = this.lastValue = value == null ? false : value;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
BooleanValueAccessor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
-
BooleanValueAccessor.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: BooleanValueAccessor, selector: "cat-checkbox, cat-toggle", host: { listeners: { "catChange": "handleChangeEvent($event.target.value)" } }, providers: [
|
|
15
|
-
{
|
|
16
|
-
provide: NG_VALUE_ACCESSOR,
|
|
17
|
-
useExisting: BooleanValueAccessor,
|
|
18
|
-
multi: true
|
|
19
|
-
}
|
|
20
|
-
], usesInheritance: true, ngImport: i0 });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanValueAccessor, decorators: [{
|
|
22
|
-
type: Directive,
|
|
23
|
-
args: [{
|
|
24
|
-
/* tslint:disable-next-line:directive-selector */
|
|
25
|
-
selector: 'cat-checkbox, cat-toggle',
|
|
26
|
-
host: {
|
|
27
|
-
'(catChange)': 'handleChangeEvent($event.target.value)'
|
|
28
|
-
},
|
|
29
|
-
providers: [
|
|
30
|
-
{
|
|
31
|
-
provide: NG_VALUE_ACCESSOR,
|
|
32
|
-
useExisting: BooleanValueAccessor,
|
|
33
|
-
multi: true
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhdGFseXN0L3NyYy9saWIvZGlyZWN0aXZlcy9ib29sZWFuLXZhbHVlLWFjY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWdCakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFDckQsWUFBWSxFQUFjO1FBQ3hCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRixDQUFDOztrSEFOVSxvQkFBb0I7c0dBQXBCLG9CQUFvQixtSUFScEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7NEZBRVUsb0JBQW9CO2tCQWRoQyxTQUFTO21CQUFDO29CQUNULGlEQUFpRDtvQkFDakQsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSx3Q0FBd0M7cUJBQ3hEO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi92YWx1ZS1hY2Nlc3Nvcic7XG5cbkBEaXJlY3RpdmUoe1xuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGlyZWN0aXZlLXNlbGVjdG9yICovXG4gIHNlbGVjdG9yOiAnY2F0LWNoZWNrYm94LCBjYXQtdG9nZ2xlJyxcbiAgaG9zdDoge1xuICAgICcoY2F0Q2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQudGFyZ2V0LnZhbHVlKSdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogQm9vbGVhblZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWUgPT0gbnVsbCA/IGZhbHNlIDogdmFsdWU7XG4gIH1cbn1cbiJdfQ==
|