@tetacom/ng-components 1.0.36 → 1.0.39
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/assets/icons.svg +503 -657
- package/component/dropdown/dropdown/dropdown.component.d.ts +1 -1
- package/component/expand-card/expand-card/expand-card.component.d.ts +13 -0
- package/component/expand-card/expand-card.module.d.ts +12 -0
- package/component/expand-card/public-api.d.ts +2 -0
- package/component/file-upload/file-upload.module.d.ts +2 -1
- package/component/modal/modal-container/modal-container.component.d.ts +1 -1
- package/component/modal/modal.service.d.ts +1 -1
- package/component/modal/model/i-modal-result.d.ts +2 -1
- package/component/modal/model/modal-instance.d.ts +2 -2
- package/component/public-api.d.ts +2 -0
- package/component/resize-panel/resize-panel/resize-panel.component.d.ts +1 -0
- package/component/table/enum/select-type.enum.d.ts +2 -2
- package/directive/context-menu/context-menu.directive.d.ts +4 -1
- package/directive/drag-drop/drag-container.directive.d.ts +32 -0
- package/directive/drag-drop/drag-drop.module.d.ts +11 -0
- package/directive/drag-drop/drag-drop.service.d.ts +40 -0
- package/directive/drag-drop/drag-placeholder.directive.d.ts +6 -0
- package/directive/drag-drop/drag-preview.directive.d.ts +8 -0
- package/directive/drag-drop/drag.directive.d.ts +31 -0
- package/directive/drag-drop/model/drag-container-instance.d.ts +11 -0
- package/directive/drag-drop/model/drag-instance.d.ts +9 -0
- package/directive/drag-drop/model/drag-process.d.ts +4 -0
- package/directive/drag-drop/model/drag-selection.d.ts +6 -0
- package/directive/drag-drop/model/drop-event.d.ts +8 -0
- package/directive/drag-drop/model/drop-target.d.ts +3 -0
- package/directive/drag-drop/model/point.d.ts +4 -0
- package/directive/drag-drop/model/public-api.d.ts +7 -0
- package/directive/drag-drop/public-api.d.ts +7 -0
- package/directive/let/let.directive.d.ts +18 -0
- package/directive/let/let.module.d.ts +8 -0
- package/directive/let/public-api.d.ts +2 -0
- package/directive/public-api.d.ts +3 -1
- package/directive/scroll-into-view/public-api.d.ts +2 -0
- package/directive/scroll-into-view/scroll-into-view.directive.d.ts +13 -0
- package/directive/scroll-into-view/scroll-into-view.module.d.ts +8 -0
- package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +1 -1
- package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +1 -1
- package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +3 -3
- package/esm2020/component/dropdown/dropdown-base.mjs +3 -4
- package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +36 -0
- package/esm2020/component/expand-card/expand-card.module.mjs +42 -0
- package/esm2020/component/expand-card/public-api.mjs +3 -0
- package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +3 -3
- package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +4 -3
- package/esm2020/component/file-upload/file-upload.module.mjs +5 -4
- package/esm2020/component/modal/modal-container/modal-container.component.mjs +7 -7
- package/esm2020/component/modal/modal.service.mjs +1 -1
- package/esm2020/component/modal/model/i-modal-result.mjs +1 -1
- package/esm2020/component/modal/model/modal-instance.mjs +4 -2
- package/esm2020/component/public-api.mjs +5 -1
- package/esm2020/component/resize-panel/resize-panel/resize-panel.component.mjs +6 -3
- package/esm2020/component/select/select/select.component.mjs +1 -1
- package/esm2020/component/table/enum/select-type.enum.mjs +3 -3
- package/esm2020/component/table/head-cell/head-cell.component.mjs +1 -1
- package/esm2020/component/table/service/table.service.mjs +5 -20
- package/esm2020/component/table/table/table.component.mjs +7 -4
- package/esm2020/component/table/table-body/table-body.component.mjs +4 -4
- package/esm2020/component/table/table-head/table-head.component.mjs +4 -4
- package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +3 -3
- package/esm2020/directive/context-menu/context-menu.directive.mjs +36 -11
- package/esm2020/directive/drag-drop/drag-container.directive.mjs +92 -0
- package/esm2020/directive/drag-drop/drag-drop.module.mjs +41 -0
- package/esm2020/directive/drag-drop/drag-drop.service.mjs +140 -0
- package/esm2020/directive/drag-drop/drag-placeholder.directive.mjs +14 -0
- package/esm2020/directive/drag-drop/drag-preview.directive.mjs +16 -0
- package/esm2020/directive/drag-drop/drag.directive.mjs +128 -0
- package/esm2020/directive/drag-drop/model/drag-container-instance.mjs +8 -0
- package/esm2020/directive/drag-drop/model/drag-instance.mjs +7 -0
- package/esm2020/directive/drag-drop/model/drag-process.mjs +2 -0
- package/esm2020/directive/drag-drop/model/drag-selection.mjs +2 -0
- package/esm2020/directive/drag-drop/model/drop-event.mjs +2 -0
- package/esm2020/directive/drag-drop/model/drop-target.mjs +2 -0
- package/esm2020/directive/drag-drop/model/point.mjs +2 -0
- package/esm2020/directive/drag-drop/model/public-api.mjs +8 -0
- package/esm2020/directive/drag-drop/public-api.mjs +8 -0
- package/esm2020/directive/let/let.directive.mjs +38 -0
- package/esm2020/directive/let/let.module.mjs +25 -0
- package/esm2020/directive/let/public-api.mjs +3 -0
- package/esm2020/directive/public-api.mjs +4 -2
- package/esm2020/directive/scroll-into-view/public-api.mjs +3 -0
- package/esm2020/directive/scroll-into-view/scroll-into-view.directive.mjs +40 -0
- package/esm2020/directive/scroll-into-view/scroll-into-view.module.mjs +25 -0
- package/esm2020/observable/public-api.mjs +2 -0
- package/esm2020/observable/zoneObservable.mjs +15 -0
- package/esm2020/public-api.mjs +3 -1
- package/esm2020/util/forms-util.mjs +7 -1
- package/fesm2015/tetacom-ng-components.mjs +992 -344
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +975 -341
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/observable/public-api.d.ts +1 -0
- package/observable/zoneObservable.d.ts +5 -0
- package/package.json +6 -2
- package/public-api.d.ts +1 -0
- package/style/button.scss +1 -1
- package/style/input.scss +1 -1
- package/style/layout.scss +30 -2
- package/style/list.scss +9 -4
- package/style/modal.scss +2 -0
- package/style/presets/color-presets.scss +77 -79
- package/style/presets/font-presets.scss +21 -21
- package/style/presets/shadow-presets.scss +6 -6
- package/style/radio.scss +2 -2
- package/style/switch.scss +3 -3
- package/style/table.scss +1 -1
- package/style/toolbar.scss +1 -1
- package/style/util/button-util.scss +2 -2
- package/util/forms-util.d.ts +1 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ScrollIntoViewDirective } from './scroll-into-view.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class ScrollIntoViewModule {
|
|
6
|
+
}
|
|
7
|
+
ScrollIntoViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
ScrollIntoViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, declarations: [ScrollIntoViewDirective], imports: [CommonModule], exports: [ScrollIntoViewDirective] });
|
|
9
|
+
ScrollIntoViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, imports: [[
|
|
10
|
+
CommonModule
|
|
11
|
+
]] });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: ScrollIntoViewModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [
|
|
16
|
+
ScrollIntoViewDirective
|
|
17
|
+
], exports: [
|
|
18
|
+
ScrollIntoViewDirective
|
|
19
|
+
],
|
|
20
|
+
imports: [
|
|
21
|
+
CommonModule
|
|
22
|
+
]
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWludG8tdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlL3Njcm9sbC1pbnRvLXZpZXcvc2Nyb2xsLWludG8tdmlldy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7O0FBWXJFLE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixpQkFSN0IsdUJBQXVCLGFBS3ZCLFlBQVksYUFIWix1QkFBdUI7a0hBTWQsb0JBQW9CLFlBSnRCO1lBQ1AsWUFBWTtTQUNiOzJGQUVVLG9CQUFvQjtrQkFWaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osdUJBQXVCO3FCQUN4QixFQUFFLE9BQU8sRUFBRTt3QkFDVix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmV9IGZyb20gJy4vc2Nyb2xsLWludG8tdmlldy5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTY3JvbGxJbnRvVmlld0RpcmVjdGl2ZVxuICBdLCBleHBvcnRzOiBbXG4gICAgU2Nyb2xsSW50b1ZpZXdEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbEludG9WaWV3TW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './zoneObservable';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vYnNlcnZhYmxlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vem9uZU9ic2VydmFibGUnO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Observable, pipe } from 'rxjs';
|
|
2
|
+
export function tetaZoneFull(ngZone) {
|
|
3
|
+
return source => new Observable(subscriber => source.subscribe({
|
|
4
|
+
next: value => ngZone.run(() => subscriber.next(value)),
|
|
5
|
+
error: (error) => ngZone.run(() => subscriber.error(error)),
|
|
6
|
+
complete: () => ngZone.run(() => subscriber.complete()),
|
|
7
|
+
}));
|
|
8
|
+
}
|
|
9
|
+
export function tetaZoneFree(ngZone) {
|
|
10
|
+
return source => new Observable(subscriber => ngZone.runOutsideAngular(() => source.subscribe(subscriber)));
|
|
11
|
+
}
|
|
12
|
+
export function tetaZoneOptimized(ngZone) {
|
|
13
|
+
return pipe(tetaZoneFree(ngZone), tetaZoneFull(ngZone));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZU9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2JzZXJ2YWJsZS96b25lT2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQTJCLFVBQVUsRUFBRSxJQUFJLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFaEUsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUFjO0lBQzVDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FDZCxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUMxQixNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELEtBQUssRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0gsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFJLE1BQWM7SUFDNUMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQzFCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQzdELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE1BQWM7SUFDakQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgcGlwZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXRhWm9uZUZ1bGw8VD4obmdab25lOiBOZ1pvbmUpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gc291cmNlID0+XG4gICAgbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PlxuICAgICAgc291cmNlLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHZhbHVlID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5uZXh0KHZhbHVlKSksXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IHVua25vd24pID0+IG5nWm9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5lcnJvcihlcnJvcikpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gbmdab25lLnJ1bigoKSA9PiBzdWJzY3JpYmVyLmNvbXBsZXRlKCkpLFxuICAgICAgfSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRldGFab25lRnJlZTxUPihuZ1pvbmU6IE5nWm9uZSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gIHJldHVybiBzb3VyY2UgPT5cbiAgICBuZXcgT2JzZXJ2YWJsZShzdWJzY3JpYmVyID0+XG4gICAgICBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRldGFab25lT3B0aW1pemVkPFQ+KG5nWm9uZTogTmdab25lKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIHBpcGUodGV0YVpvbmVGcmVlKG5nWm9uZSksIHRldGFab25lRnVsbChuZ1pvbmUpKTtcbn1cbiJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -20,4 +20,6 @@ export * from './common/public-api';
|
|
|
20
20
|
export * from './util/public-api';
|
|
21
21
|
/* locale */
|
|
22
22
|
export * from './locale/public-api';
|
|
23
|
-
|
|
23
|
+
/* observable util */
|
|
24
|
+
export * from './observable/public-api';
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx3QkFBd0IsQ0FBQztBQUV2Qzs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFFdkM7O0dBRUc7QUFDSCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDOztHQUVHO0FBQ0gsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQzs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFFbEMsWUFBWTtBQUNaLGNBQWMscUJBQXFCLENBQUM7QUFFcEMscUJBQXFCO0FBQ3JCLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBEaXJlY3RpdmVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlL3B1YmxpYy1hcGknO1xuXG4vKipcbiAqIFBpcGVzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vcGlwZS9wdWJsaWMtYXBpJztcblxuLyoqXG4gKiBDb21tb25cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24vcHVibGljLWFwaSc7XG5cbi8qKlxuICogVXRpbFxuICovXG5leHBvcnQgKiBmcm9tICcuL3V0aWwvcHVibGljLWFwaSc7XG5cbi8qIGxvY2FsZSAqL1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGUvcHVibGljLWFwaSc7XG5cbi8qIG9ic2VydmFibGUgdXRpbCAqL1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZhYmxlL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -17,6 +17,12 @@ export class FormsUtil {
|
|
|
17
17
|
return (formGroup.controls[controlName]?.invalid &&
|
|
18
18
|
formGroup.controls[controlName]?.dirty);
|
|
19
19
|
}
|
|
20
|
+
static getControlErrors(formGroup, controlName) {
|
|
21
|
+
if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
|
|
22
|
+
return Object.keys(formGroup.controls[controlName]?.errors);
|
|
23
|
+
}
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
20
26
|
static matchValuesValidator(matchTo) {
|
|
21
27
|
return (control) => !!control.parent &&
|
|
22
28
|
!!control.parent.value &&
|
|
@@ -58,4 +64,4 @@ export class FormsUtil {
|
|
|
58
64
|
return validators;
|
|
59
65
|
}
|
|
60
66
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBRVQsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2dCQUN4QyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7YUFDdkM7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBb0IsRUFBRSxXQUFtQjtRQUMvRCxPQUFPLENBQ0wsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPO1lBQ3hDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFvQixFQUFFLFdBQW1CO1FBQy9ELElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUN0RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUM3RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FDekIsT0FBZTtRQUVmLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFLENBQzNELENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNoQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUN0RCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FDZixLQUFjO1FBRWQsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2hCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJO1lBQ3JCLEtBQUs7WUFDSCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQXNCLEVBQUUsUUFBYTtRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxDQUM3QjtnQkFDRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNuRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTthQUMzQixFQUNELFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQW1CO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNsRDtRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7WUFDM0IsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RhYmxlQ29sdW1ufSBmcm9tICcuLi9jb21wb25lbnQvdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7QXJyYXlVdGlsfSBmcm9tICcuLi9jb21tb24vdXRpbC9hcnJheS11dGlsJztcblxuZXhwb3J0IGNsYXNzIEZvcm1zVXRpbCB7XG4gIHN0YXRpYyB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7b25seVNlbGY6IHRydWV9KTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7b25seVNlbGY6IHRydWV9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmludmFsaWQgJiZcbiAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmRpcnR5XG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGlmIChGb3Jtc1V0aWwuY29udHJvbElzSW52YWxpZChmb3JtR3JvdXAsIGNvbnRyb2xOYW1lKSkge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0/LmVycm9ycyk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHN0YXRpYyBtYXRjaFZhbHVlc1ZhbGlkYXRvcihcbiAgICBtYXRjaFRvOiBzdHJpbmdcbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgPT09IGNvbnRyb2wucGFyZW50LmNvbnRyb2xzW21hdGNoVG9dLnZhbHVlXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtpc01hdGNoaW5nOiBmYWxzZX07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZihcbiAgICB2YWx1ZTogYm9vbGVhblxuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSAhPSBudWxsICYmXG4gICAgICB2YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7aXNNYXRjaGluZzogZmFsc2V9O1xuICB9XG5cbiAgc3RhdGljIGluaXRGb3JtRnJvbUNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZGF0YUl0ZW06IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICBjb25zdCBmbGF0ID0gQXJyYXlVdGlsLmZsYXR0ZW4oY29sdW1ucywgJ2NvbHVtbnMnKTtcbiAgICBmbGF0LmZvckVhY2goKGNvbHVtbjogVGFibGVDb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogZGF0YUl0ZW0gPyBkYXRhSXRlbVtjb2x1bW4ubmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGlzYWJsZWQ6ICFjb2x1bW4uZWRpdGFibGUsXG4gICAgICAgIH0sXG4gICAgICAgIEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbilcbiAgICAgICk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsaWRhdG9ycyhjb2x1bW46IFRhYmxlQ29sdW1uKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtdO1xuICAgIGlmIChjb2x1bW4ucmVxdWlyZWQpIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxufVxuIl19
|