@odx/angular 3.0.0 → 3.2.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 +13 -0
- package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +20 -0
- package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +10 -6
- package/cdk/expandable/lib/directives/index.d.ts +1 -1
- package/cdk/expandable/lib/expandable.module.d.ts +1 -1
- package/cdk/expandable/lib/expandable.tokens.d.ts +2 -1
- package/cdk/expandable/lib/facade/expandable-container.d.ts +6 -3
- package/cdk/expandable/lib/facade/expandable-item.d.ts +6 -3
- package/components/accordion/lib/accordion.component.d.ts +3 -3
- package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +4 -3
- package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +4 -7
- package/components/list/lib/components/list-item/list-item.component.d.ts +1 -1
- package/components/list/lib/list.component.d.ts +3 -4
- package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +4 -3
- package/components/rich-list/lib/rich-list.component.d.ts +3 -4
- package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +59 -0
- package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +27 -10
- package/esm2022/cdk/expandable/lib/directives/index.mjs +2 -2
- package/esm2022/cdk/expandable/lib/expandable.tokens.mjs +2 -1
- package/esm2022/cdk/expandable/lib/facade/expandable-container.mjs +1 -1
- package/esm2022/cdk/expandable/lib/facade/expandable-item.mjs +1 -1
- package/esm2022/components/accordion/lib/accordion.component.mjs +9 -11
- package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +17 -17
- package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +16 -31
- package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +7 -8
- package/esm2022/components/list/lib/list.component.mjs +11 -15
- package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +17 -17
- package/esm2022/components/rich-list/lib/rich-list.component.mjs +9 -12
- package/esm2022/rxjs/index.mjs +2 -1
- package/esm2022/rxjs/lib/from-element-mutation.mjs +10 -0
- package/esm2022/rxjs/lib/from-element-resize.mjs +2 -2
- package/fesm2022/odx-angular-cdk-expandable.mjs +84 -57
- package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
- package/fesm2022/odx-angular-components-accordion.mjs +22 -25
- package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2022/odx-angular-components-list.mjs +26 -47
- package/fesm2022/odx-angular-components-list.mjs.map +1 -1
- package/fesm2022/odx-angular-components-rich-list.mjs +22 -26
- package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
- package/fesm2022/odx-angular-rxjs.mjs +11 -3
- package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
- package/package.json +7 -7
- package/rxjs/index.d.ts +1 -0
- package/rxjs/lib/from-element-mutation.d.ts +2 -0
- package/cdk/expandable/lib/directives/extandable-container.directive.d.ts +0 -13
- package/esm2022/cdk/expandable/lib/directives/extandable-container.directive.mjs +0 -50
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { switchMap, timer, map, takeUntil, startWith, Observable, debounceTime, merge, fromEvent } from 'rxjs';
|
|
2
|
-
import { createResizeObserver } from '@odx/angular/utils';
|
|
2
|
+
import { createMutationObserver, createResizeObserver } from '@odx/angular/utils';
|
|
3
3
|
|
|
4
4
|
function delayUntil(delay, notifier) {
|
|
5
5
|
return (source$) => source$.pipe(switchMap((value) => timer(delay()).pipe(map(() => value), takeUntil(notifier))));
|
|
@@ -9,11 +9,19 @@ function fromQueryList(queryList) {
|
|
|
9
9
|
return queryList.changes.pipe(startWith(queryList));
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
function fromElementMutation$(element, options) {
|
|
13
|
+
return new Observable((observer) => {
|
|
14
|
+
const mutationObserver = createMutationObserver(observer, (events) => events.length > 0);
|
|
15
|
+
observer.add(() => mutationObserver.disconnect());
|
|
16
|
+
mutationObserver.observe(element, options);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
function fromElementResize$(element, debounceDuration = 50) {
|
|
13
21
|
return new Observable((observer) => {
|
|
14
22
|
const resizeObserver = createResizeObserver((events) => {
|
|
15
23
|
if (events.length > 0) {
|
|
16
|
-
observer.next();
|
|
24
|
+
observer.next(events);
|
|
17
25
|
}
|
|
18
26
|
});
|
|
19
27
|
observer.add(() => resizeObserver.disconnect());
|
|
@@ -29,5 +37,5 @@ function fromEvents(target, ...events) {
|
|
|
29
37
|
* Generated bundle index. Do not edit.
|
|
30
38
|
*/
|
|
31
39
|
|
|
32
|
-
export { delayUntil, fromElementResize$, fromEvents, fromQueryList };
|
|
40
|
+
export { delayUntil, fromElementMutation$, fromElementResize$, fromEvents, fromQueryList };
|
|
33
41
|
//# sourceMappingURL=odx-angular-rxjs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/delay-until.ts","../../../../libs/angular/rxjs/src/lib/form-query-list.ts","../../../../libs/angular/rxjs/src/lib/from-element-resize.ts","../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { map, MonoTypeOperatorFunction, Observable, switchMap, takeUntil, timer } from 'rxjs';\n\nexport function delayUntil<T>(delay: () => number, notifier: Observable<unknown>): MonoTypeOperatorFunction<T> {\n return (source$: Observable<T>) =>\n source$.pipe(\n switchMap((value: T) =>\n timer(delay()).pipe(\n map(() => value),\n takeUntil(notifier)\n )\n )\n );\n}\n","import { QueryList } from '@angular/core';\nimport { Observable, startWith } from 'rxjs';\n\nexport function fromQueryList<T>(queryList: QueryList<T>): Observable<QueryList<T>> {\n return queryList.changes.pipe(startWith(queryList));\n}\n","import { createResizeObserver } from '@odx/angular/utils';\nimport { debounceTime, Observable } from 'rxjs';\n\nexport function fromElementResize$(element: Element, debounceDuration = 50): Observable<ResizeObserverEntry[]> {\n return new Observable<ResizeObserverEntry[]>((observer) => {\n const resizeObserver = createResizeObserver((events) => {\n if (events.length > 0) {\n observer.next();\n }\n });\n observer.add(() => resizeObserver.disconnect());\n resizeObserver.observe(element);\n }).pipe(debounceTime(debounceDuration));\n}\n","import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEgB,SAAA,UAAU,CAAI,KAAmB,EAAE,QAA6B,EAAA;AAC9E,IAAA,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,SAAS,CAAC,CAAC,KAAQ,KACjB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CACjB,GAAG,CAAC,MAAM,KAAK,CAAC,EAChB,SAAS,CAAC,QAAQ,CAAC,CACpB,CACF,CACF,CAAC;AACN;;ACTM,SAAU,aAAa,CAAI,SAAuB,EAAA;IACtD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD;;
|
|
1
|
+
{"version":3,"file":"odx-angular-rxjs.mjs","sources":["../../../../libs/angular/rxjs/src/lib/delay-until.ts","../../../../libs/angular/rxjs/src/lib/form-query-list.ts","../../../../libs/angular/rxjs/src/lib/from-element-mutation.ts","../../../../libs/angular/rxjs/src/lib/from-element-resize.ts","../../../../libs/angular/rxjs/src/lib/from-events.ts","../../../../libs/angular/rxjs/src/odx-angular-rxjs.ts"],"sourcesContent":["import { map, MonoTypeOperatorFunction, Observable, switchMap, takeUntil, timer } from 'rxjs';\n\nexport function delayUntil<T>(delay: () => number, notifier: Observable<unknown>): MonoTypeOperatorFunction<T> {\n return (source$: Observable<T>) =>\n source$.pipe(\n switchMap((value: T) =>\n timer(delay()).pipe(\n map(() => value),\n takeUntil(notifier)\n )\n )\n );\n}\n","import { QueryList } from '@angular/core';\nimport { Observable, startWith } from 'rxjs';\n\nexport function fromQueryList<T>(queryList: QueryList<T>): Observable<QueryList<T>> {\n return queryList.changes.pipe(startWith(queryList));\n}\n","import { createMutationObserver } from '@odx/angular/utils';\nimport { Observable } from 'rxjs';\n\nexport function fromElementMutation$(element: Element, options: MutationObserverInit): Observable<MutationRecord> {\n return new Observable<MutationRecord>((observer) => {\n const mutationObserver = createMutationObserver(observer, (events) => events.length > 0);\n observer.add(() => mutationObserver.disconnect());\n mutationObserver.observe(element, options);\n });\n}\n","import { createResizeObserver } from '@odx/angular/utils';\nimport { debounceTime, Observable } from 'rxjs';\n\nexport function fromElementResize$(element: Element, debounceDuration = 50): Observable<ResizeObserverEntry[]> {\n return new Observable<ResizeObserverEntry[]>((observer) => {\n const resizeObserver = createResizeObserver((events) => {\n if (events.length > 0) {\n observer.next(events);\n }\n });\n observer.add(() => resizeObserver.disconnect());\n resizeObserver.observe(element);\n }).pipe(debounceTime(debounceDuration));\n}\n","import { fromEvent, merge, Observable } from 'rxjs';\nimport { HasEventTargetAddRemove } from 'rxjs/internal/observable/fromEvent';\n\nexport function fromEvents<T>(target: HasEventTargetAddRemove<T> | HasEventTargetAddRemove<T>[], ...events: string[]): Observable<T> {\n return merge(...events.map((event) => fromEvent(target, event)));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEgB,SAAA,UAAU,CAAI,KAAmB,EAAE,QAA6B,EAAA;AAC9E,IAAA,OAAO,CAAC,OAAsB,KAC5B,OAAO,CAAC,IAAI,CACV,SAAS,CAAC,CAAC,KAAQ,KACjB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CACjB,GAAG,CAAC,MAAM,KAAK,CAAC,EAChB,SAAS,CAAC,QAAQ,CAAC,CACpB,CACF,CACF,CAAC;AACN;;ACTM,SAAU,aAAa,CAAI,SAAuB,EAAA;IACtD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACtD;;ACFgB,SAAA,oBAAoB,CAAC,OAAgB,EAAE,OAA6B,EAAA;AAClF,IAAA,OAAO,IAAI,UAAU,CAAiB,CAAC,QAAQ,KAAI;AACjD,QAAA,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACzF,QAAQ,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;AAClD,QAAA,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7C,KAAC,CAAC,CAAC;AACL;;SCNgB,kBAAkB,CAAC,OAAgB,EAAE,gBAAgB,GAAG,EAAE,EAAA;AACxE,IAAA,OAAO,IAAI,UAAU,CAAwB,CAAC,QAAQ,KAAI;AACxD,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,MAAM,KAAI;AACrD,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvB,aAAA;AACH,SAAC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,QAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACjC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC1C;;SCVgB,UAAU,CAAI,MAAiE,EAAE,GAAG,MAAgB,EAAA;IAClH,OAAO,KAAK,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE;;ACLA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odx/angular",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"author": "Drägerwerk AG & Co.KGaA",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -259,18 +259,18 @@
|
|
|
259
259
|
"esm": "./esm2022/components/content-box/odx-angular-components-content-box.mjs",
|
|
260
260
|
"default": "./fesm2022/odx-angular-components-content-box.mjs"
|
|
261
261
|
},
|
|
262
|
-
"./components/datepicker": {
|
|
263
|
-
"types": "./components/datepicker/index.d.ts",
|
|
264
|
-
"esm2022": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
|
|
265
|
-
"esm": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
|
|
266
|
-
"default": "./fesm2022/odx-angular-components-datepicker.mjs"
|
|
267
|
-
},
|
|
268
262
|
"./components/dropdown": {
|
|
269
263
|
"types": "./components/dropdown/index.d.ts",
|
|
270
264
|
"esm2022": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
|
|
271
265
|
"esm": "./esm2022/components/dropdown/odx-angular-components-dropdown.mjs",
|
|
272
266
|
"default": "./fesm2022/odx-angular-components-dropdown.mjs"
|
|
273
267
|
},
|
|
268
|
+
"./components/datepicker": {
|
|
269
|
+
"types": "./components/datepicker/index.d.ts",
|
|
270
|
+
"esm2022": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
|
|
271
|
+
"esm": "./esm2022/components/datepicker/odx-angular-components-datepicker.mjs",
|
|
272
|
+
"default": "./fesm2022/odx-angular-components-datepicker.mjs"
|
|
273
|
+
},
|
|
274
274
|
"./components/form-field": {
|
|
275
275
|
"types": "./components/form-field/index.d.ts",
|
|
276
276
|
"esm2022": "./esm2022/components/form-field/odx-angular-components-form-field.mjs",
|
package/rxjs/index.d.ts
CHANGED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ExpandableContainer, ExpandableItem } from '../facade';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class ExpandableContainerDirective implements ExpandableContainer {
|
|
4
|
-
private openItems;
|
|
5
|
-
multiple: boolean;
|
|
6
|
-
close(item: ExpandableItem): void;
|
|
7
|
-
closeAll(): void;
|
|
8
|
-
open(item: ExpandableItem): void;
|
|
9
|
-
hasExpandedItem(): boolean;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ExpandableContainerDirective, never>;
|
|
11
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ExpandableContainerDirective, "[odxExpandableContainer]", never, { "multiple": { "alias": "multiple"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
|
-
static ngAcceptInputType_multiple: unknown;
|
|
13
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { booleanAttribute, Directive, Input } from '@angular/core';
|
|
2
|
-
import { ODX_EXPANDABLE_CONTAINER } from '../expandable.tokens';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ExpandableContainerDirective {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.openItems = {};
|
|
7
|
-
this.multiple = false;
|
|
8
|
-
}
|
|
9
|
-
close(item) {
|
|
10
|
-
delete this.openItems[item.id];
|
|
11
|
-
}
|
|
12
|
-
closeAll() {
|
|
13
|
-
for (const item of Object.values(this.openItems)) {
|
|
14
|
-
item.close();
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
open(item) {
|
|
18
|
-
if (!this.multiple) {
|
|
19
|
-
this.closeAll();
|
|
20
|
-
}
|
|
21
|
-
this.openItems[item.id] = item;
|
|
22
|
-
}
|
|
23
|
-
hasExpandedItem() {
|
|
24
|
-
return Object.values(this.openItems).length > 0;
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: ExpandableContainerDirective, isStandalone: true, selector: "[odxExpandableContainer]", inputs: { multiple: ["multiple", "multiple", booleanAttribute] }, providers: [
|
|
28
|
-
{
|
|
29
|
-
provide: ODX_EXPANDABLE_CONTAINER,
|
|
30
|
-
useExisting: ExpandableContainerDirective,
|
|
31
|
-
},
|
|
32
|
-
], ngImport: i0 }); }
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExpandableContainerDirective, decorators: [{
|
|
35
|
-
type: Directive,
|
|
36
|
-
args: [{
|
|
37
|
-
standalone: true,
|
|
38
|
-
selector: '[odxExpandableContainer]',
|
|
39
|
-
providers: [
|
|
40
|
-
{
|
|
41
|
-
provide: ODX_EXPANDABLE_CONTAINER,
|
|
42
|
-
useExisting: ExpandableContainerDirective,
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
}]
|
|
46
|
-
}], propDecorators: { multiple: [{
|
|
47
|
-
type: Input,
|
|
48
|
-
args: [{ transform: booleanAttribute }]
|
|
49
|
-
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0YW5kYWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9leHBhbmRhYmxlL3NyYy9saWIvZGlyZWN0aXZlcy9leHRhbmRhYmxlLWNvbnRhaW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBYWhFLE1BQU0sT0FBTyw0QkFBNEI7SUFWekM7UUFXVSxjQUFTLEdBQW1DLEVBQUUsQ0FBQztRQUdoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBc0J6QjtJQXBCUSxLQUFLLENBQUMsSUFBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sUUFBUTtRQUNiLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQW9CO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzsrR0F6QlUsNEJBQTRCO21HQUE1Qiw0QkFBNEIseUdBR25CLGdCQUFnQixnQkFWekI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO1NBQ0Y7OzRGQUVVLDRCQUE0QjtrQkFWeEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcsOEJBQThCO3lCQUMxQztxQkFDRjtpQkFDRjs4QkFLUSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPRFhfRVhQQU5EQUJMRV9DT05UQUlORVIgfSBmcm9tICcuLi9leHBhbmRhYmxlLnRva2Vucyc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlQ29udGFpbmVyLCBFeHBhbmRhYmxlSXRlbSB9IGZyb20gJy4uL2ZhY2FkZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhFeHBhbmRhYmxlQ29udGFpbmVyXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9FWFBBTkRBQkxFX0NPTlRBSU5FUixcbiAgICAgIHVzZUV4aXN0aW5nOiBFeHBhbmRhYmxlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVDb250YWluZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBFeHBhbmRhYmxlQ29udGFpbmVyIHtcbiAgcHJpdmF0ZSBvcGVuSXRlbXM6IFJlY29yZDxzdHJpbmcsIEV4cGFuZGFibGVJdGVtPiA9IHt9O1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY2xvc2UoaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICBkZWxldGUgdGhpcy5vcGVuSXRlbXNbaXRlbS5pZF07XG4gIH1cblxuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIE9iamVjdC52YWx1ZXModGhpcy5vcGVuSXRlbXMpKSB7XG4gICAgICBpdGVtLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW4oaXRlbTogRXhwYW5kYWJsZUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuY2xvc2VBbGwoKTtcbiAgICB9XG4gICAgdGhpcy5vcGVuSXRlbXNbaXRlbS5pZF0gPSBpdGVtO1xuICB9XG5cbiAgcHVibGljIGhhc0V4cGFuZGVkSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm9wZW5JdGVtcykubGVuZ3RoID4gMDtcbiAgfVxufVxuIl19
|