qms-angular 1.1.26 → 1.1.28
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/qms-angular.umd.js +645 -544
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/common/models/qms-flat-node.model.js +1 -1
- package/esm2015/lib/common/models/qms-tree-node.model.js +1 -1
- package/esm2015/lib/common/themes.const.js +2 -1
- package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +3 -3
- package/esm2015/lib/components/breadcrumb/breadcrumb.js +10 -4
- package/esm2015/lib/components/comment/comment.js +17 -11
- package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +9 -2
- package/esm2015/lib/components/qms-nav-drawer/qms-nav-drawer.component.js +3 -3
- package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +3 -3
- package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +9 -2
- package/esm2015/lib/components/related/list-other-related/list-related.component.js +9 -2
- package/esm2015/lib/components/related/model/popup-data.model.js +2 -1
- package/esm2015/lib/components/related/popup/related-popup.component.js +58 -24
- package/esm2015/lib/components/related/risk/analysis/analysis.component.js +9 -2
- package/esm2015/lib/components/related/risk/list/list.component.js +9 -2
- package/esm2015/lib/components/related/risk/result/result.component.js +9 -2
- package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +9 -2
- package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +8 -3
- package/esm2015/lib/components/select-access-dialog/select-access-dialog.component.js +2 -2
- package/esm2015/lib/components/select-department/select-department.component.js +6 -38
- package/esm2015/lib/components/select-department-tree/model/department-paging.model.js +1 -2
- package/esm2015/lib/components/select-department-tree/model/select-department-tree.config.js +2 -5
- package/esm2015/lib/components/select-department-tree/select-department-tree.component.js +114 -164
- package/esm2015/lib/components/select-department-tree/select-department-tree.module.js +2 -4
- package/esm2015/lib/components/select-dialog/select-dialog.js +8 -4
- package/esm2015/lib/components/select-include-children/select-include-children.component.js +3 -3
- package/esm2015/lib/components/select-one/select-one-next.component.js +3 -3
- package/esm2015/lib/components/select-one/select-one.component.js +3 -3
- package/esm2015/lib/components/select-process-document/select-process-document.component.js +3 -3
- package/esm2015/lib/components/tree/basic-tree.component.js +4 -4
- package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +9 -2
- package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +3 -3
- package/esm2015/lib/directives/chips/chip.directive.js +2 -2
- package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +2 -2
- package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +3 -3
- package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +3 -3
- package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +3 -3
- package/esm2015/lib/directives/file-upload/file-upload.directive.js +2 -2
- package/esm2015/lib/directives/search-field.directive.js +2 -2
- package/esm2015/lib/model/en.js +4 -2
- package/esm2015/lib/model/no.js +4 -2
- package/esm2015/lib/pipe/dateFormat.pipe.js +9 -2
- package/esm2015/lib/qms-angular.component.js +9 -2
- package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +10 -1
- package/esm2015/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.js +21 -15
- package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorImageUploadType.const.js +4 -0
- package/esm2015/lib/qms-ckeditor-components/common/enums/ckeditor-bpmn-expand.enum.js +8 -0
- package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +6 -9
- package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +39 -11
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +2 -2
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +53 -56
- package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +9 -4
- package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +28 -11
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +33 -2
- package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.js +6 -2
- package/esm2015/qms-angular.js +11 -11
- package/fesm2015/qms-angular.js +589 -468
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/common/models/qms-flat-node.model.d.ts +0 -1
- package/lib/common/models/qms-tree-node.model.d.ts +0 -1
- package/lib/common/themes.const.d.ts +1 -0
- package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +2 -2
- package/lib/components/breadcrumb/breadcrumb.d.ts +3 -0
- package/lib/components/comment/comment.d.ts +3 -0
- package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +3 -0
- package/lib/components/qms-paginator/qms-paginator.component.d.ts +3 -0
- package/lib/components/related/list-other-related/list-related.component.d.ts +3 -0
- package/lib/components/related/model/popup-data.model.d.ts +2 -0
- package/lib/components/related/popup/related-popup.component.d.ts +13 -2
- package/lib/components/related/risk/analysis/analysis.component.d.ts +3 -0
- package/lib/components/related/risk/list/list.component.d.ts +3 -0
- package/lib/components/related/risk/result/result.component.d.ts +3 -0
- package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +3 -0
- package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +5 -3
- package/lib/components/select-department/select-department.component.d.ts +0 -19
- package/lib/components/select-department-tree/model/select-department-tree.config.d.ts +0 -3
- package/lib/components/select-department-tree/select-department-tree.component.d.ts +23 -51
- package/lib/components/select-dialog/select-dialog.d.ts +2 -1
- package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +3 -0
- package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +1 -1
- package/lib/directives/file-upload/file-upload-display.directive.d.ts +1 -1
- package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +1 -1
- package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +2 -2
- package/lib/model/en.d.ts +2 -0
- package/lib/model/no.d.ts +2 -0
- package/lib/pipe/dateFormat.pipe.d.ts +3 -0
- package/lib/qms-angular.component.d.ts +3 -0
- package/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.d.ts +1 -1
- package/lib/qms-ckeditor-components/common/constants/ckeditorImageUploadType.const.d.ts +3 -0
- package/lib/qms-ckeditor-components/common/enums/ckeditor-bpmn-expand.enum.d.ts +6 -0
- package/lib/qms-ckeditor-components/common/functions/common.function.d.ts +2 -4
- package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -0
- package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -2
- package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +3 -1
- package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +1 -0
- package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +1 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +2 -0
- package/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.d.ts +1 -1
- package/package.json +1 -1
- package/qms-angular.d.ts +10 -10
- package/qms-angular.metadata.json +1 -1
- package/src/assets/jointjs/scss/bpmn.scss +22 -1
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
- package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/anchor/anchorcommand.js +13 -3
- package/src/assets/qms-ckeditor-plugin/src/plugins/anchor/anchorui.js +7 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/bpmndialogcommand.js +12 -3
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +35 -33
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkdialogcommand.js +9 -6
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +28 -14
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkimageediting.js +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkimageui.js +97 -92
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkui.js +40 -28
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/ui/linkformview.js +24 -24
- package/src/assets/qms-ckeditor-plugin/src/plugins/link/utils.js +8 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/table/converters/downcast.js +2 -2
- package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +20 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/video/theme/video.css +1 -1
- package/src/assets/qms-ckeditor-plugin/src/plugins/video/video/videoediting.js +3 -2
- package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/uploadvideocommand.js +1 -1
- package/src/lib/components/related/popup/related-popup.component.scss +19 -0
- package/src/lib/components/select-department/select-department.component.scss +5 -25
- package/src/lib/components/select-department-tree/select-department-tree.component.scss +182 -381
- package/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.scss +4 -0
- package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +4 -0
@@ -1,3 +1,3 @@
|
|
1
1
|
export class QMSFlatNodeTree {
|
2
2
|
}
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWZsYXQtbm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tbW9uL21vZGVscy9xbXMtZmxhdC1ub2RlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0NBZTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFFNU0ZsYXROb2RlVHJlZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZXh0ZXJuYWxOYW1lPzogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIGlzRmlsZTogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgbWFya2VkR2V0Q2hpbGRyZW4/OiBib29sZWFuO1xyXG4gIGl0ZW1JY29uPzogc3RyaW5nO1xyXG4gIGl0ZW1JY29uU3ZnPzogc3RyaW5nO1xyXG4gIGl0ZW1NYXRJY29uPzogc3RyaW5nO1xyXG4gIGlzR3JvdXA/OiBib29sZWFuO1xyXG4gIGdyb3VwSWQ/OiBzdHJpbmc7XHJcbn1cclxuIl19
|
@@ -5,4 +5,4 @@ export class QMSTreeModel {
|
|
5
5
|
this.name = name;
|
6
6
|
}
|
7
7
|
}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXRyZWUtbm9kZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tbW9uL21vZGVscy9xbXMtdHJlZS1ub2RlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCQSxNQUFNLE9BQU8sWUFBWTtJQWV2QixZQUFZLEVBQVUsRUFBRSxRQUFnQixFQUFFLElBQVk7UUFDcEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUU1TVHJlZU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGV4dGVybmFsTmFtZT86IHN0cmluZztcclxuICBwYXJlbnRJZDogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogUU1TVHJlZU5vZGVbXTtcclxuICBpdGVtSWNvbj86IHN0cmluZztcclxuICBpdGVtSWNvblN2Zz86IHN0cmluZztcclxuICBpdGVtTWF0SWNvbj86IHN0cmluZztcclxuICBpc0ZpbGU6IGJvb2xlYW47XHJcbiAgY2hpbGRDb3VudD86IG51bWJlcjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgbWFya2VkR2V0Q2hpbGRyZW4/OiBib29sZWFuO1xyXG4gIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgaXNHcm91cD86IGJvb2xlYW47XHJcbiAgZ3JvdXBJZD86IHN0cmluZztcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNUcmVlTW9kZWwgaW1wbGVtZW50cyBRTVNUcmVlTm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgcGFyZW50SWQ6IHN0cmluZztcclxuICBjaGlsZHJlbj86IFFNU1RyZWVOb2RlW107XHJcbiAgaXRlbUljb24/OiBzdHJpbmc7XHJcbiAgaXRlbUljb25Tdmc/OiBzdHJpbmc7XHJcbiAgaXRlbU1hdEljb24/OiBzdHJpbmc7XHJcbiAgaXNGaWxlOiBib29sZWFuO1xyXG4gIGNoaWxkQ291bnQ/OiBudW1iZXI7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIG1hcmtlZEdldENoaWxkcmVuPzogYm9vbGVhbjtcclxuICB0b29sdGlwPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGlzR3JvdXA/OiBib29sZWFuO1xyXG4gIGdyb3VwSWQ/OiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcGFyZW50SWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLnBhcmVudElkID0gcGFyZW50SWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,3 +1,4 @@
|
|
1
1
|
export const QMS_THEMES = ['qms-theme-default', 'qms-theme-pink'];
|
2
2
|
export const QMS_THEME_DEFAULT = 'qms-theme-default';
|
3
|
-
|
3
|
+
export const QMS_LANGUAGES = ['en', 'no'];
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWVzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21tb24vdGhlbWVzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFFNU19USEVNRVMgPSBbJ3Ftcy10aGVtZS1kZWZhdWx0JywgJ3Ftcy10aGVtZS1waW5rJ107XHJcblxyXG5leHBvcnQgY29uc3QgUU1TX1RIRU1FX0RFRkFVTFQgPSAncW1zLXRoZW1lLWRlZmF1bHQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFFNU19MQU5HVUFHRVMgPSBbJ2VuJywgJ25vJ107Il19
|
@@ -14,8 +14,8 @@ export class QMSBreadcrumbItemDirective {
|
|
14
14
|
}
|
15
15
|
}, 1000);
|
16
16
|
}
|
17
|
-
ngOnChanges() {
|
18
|
-
if (
|
17
|
+
ngOnChanges(changes) {
|
18
|
+
if (changes.isLastItem && JSON.stringify(changes.isLastItem.currentValue) !== JSON.stringify(changes.isLastItem.previousValue)) {
|
19
19
|
this.ele.nativeElement.classList.add('qms-breadcrumb-last-item');
|
20
20
|
}
|
21
21
|
else {
|
@@ -46,4 +46,4 @@ QMSBreadcrumbItemDirective.propDecorators = {
|
|
46
46
|
showTooltipChange: [{ type: Output }],
|
47
47
|
breadcrumbItemText: [{ type: ContentChild, args: ["breadcrumbItemText", { static: false },] }]
|
48
48
|
};
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWItaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFpQixZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBTS9KLE1BQU0sT0FBTywwQkFBMEI7SUFLbkMsWUFBbUIsR0FBZSxFQUFVLFFBQW1CO1FBQTVDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSHRELGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzNCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFHakQsQ0FBQztJQUNELGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtnQkFDeEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUE7Z0JBQ25GLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckM7UUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzVILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUNwRTthQUNJO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUE7YUFDbkU7U0FDSjtJQUNMLENBQUM7OztZQWxDSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjthQUNwQzs7O1lBTGdELFVBQVU7WUFBb0QsU0FBUzs7O3lCQU9uSCxLQUFLOzBCQUNMLEtBQUs7Z0NBQ0wsTUFBTTtpQ0FDTixZQUFZLFNBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBRTVNUb29sVGlwUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3Rvb2x0aXAvdG9vbHRpcC1yZW5kZXJlci5kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1txbXMtYnJlYWRjcnVtYi1pdGVtXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSBpc0xhc3RJdGVtOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd1Rvb2x0aXA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQE91dHB1dCgpIHNob3dUb29sdGlwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQENvbnRlbnRDaGlsZChcImJyZWFkY3J1bWJJdGVtVGV4dFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgYnJlYWRjcnVtYkl0ZW1UZXh0OiBFbGVtZW50UmVmO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZTogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICB9XHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmJyZWFkY3J1bWJJdGVtVGV4dCAmJiB0aGlzLmJyZWFkY3J1bWJJdGVtVGV4dC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC5sZW5ndGggPiAzMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iSXRlbVRleHQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdxbXMtYnJlYWRjcnVtYi1pdGVtLW92ZXJmbG93JylcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Rvb2x0aXBDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5pc0xhc3RJdGVtICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuaXNMYXN0SXRlbS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLmlzTGFzdEl0ZW0ucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5lbGUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdxbXMtYnJlYWRjcnVtYi1sYXN0LWl0ZW0nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgncW1zLWJyZWFkY3J1bWItbGFzdC1pdGVtJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncW1zLWJyZWFkY3J1bWItaXRlbScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0xhc3RJdGVtKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Ftcy1icmVhZGNydW1iLWxhc3QtaXRlbScpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
@@ -1,6 +1,8 @@
|
|
1
1
|
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChildren, ViewEncapsulation } from "@angular/core";
|
2
2
|
import { MatIconRegistry } from "@angular/material/icon";
|
3
3
|
import { DomSanitizer } from "@angular/platform-browser";
|
4
|
+
import { Subject } from "rxjs";
|
5
|
+
import { takeUntil } from "rxjs/operators";
|
4
6
|
import { BREADCRUMB_DROPDOWN_ICON } from "../../common/qms-icon.const";
|
5
7
|
import { TranslateLibraryService } from "../../services/translation-registry.service";
|
6
8
|
import { ItemIconType } from "../related/common/item-icon-type.enum";
|
@@ -27,6 +29,7 @@ export class QMSBreadcrumb {
|
|
27
29
|
this.sideNavNodes = [];
|
28
30
|
this.itemSpace = DropdownBreadCrumbNodeWidth.NORMAL; // width of dropdown node in normal view
|
29
31
|
this.isMobileType = false;
|
32
|
+
this.ngUnsubscribe = new Subject();
|
30
33
|
iconRegistry.addSvgIconLiteral('breadcrumb_dropdown', sanitizer.bypassSecurityTrustHtml(BREADCRUMB_DROPDOWN_ICON));
|
31
34
|
}
|
32
35
|
ngOnChanges(changes) {
|
@@ -37,7 +40,7 @@ export class QMSBreadcrumb {
|
|
37
40
|
}
|
38
41
|
}
|
39
42
|
ngOnInit() {
|
40
|
-
this.trans.getLanguageSubject$.pipe().subscribe((res) => {
|
43
|
+
this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
|
41
44
|
if (res) {
|
42
45
|
this.LANG = this.trans.getObjectLang(res);
|
43
46
|
}
|
@@ -46,6 +49,10 @@ export class QMSBreadcrumb {
|
|
46
49
|
this.itemIconType = ItemIconType;
|
47
50
|
this.initBreadCrumb();
|
48
51
|
}
|
52
|
+
ngOnDestroy() {
|
53
|
+
this.ngUnsubscribe.next();
|
54
|
+
this.ngUnsubscribe.complete();
|
55
|
+
}
|
49
56
|
ngAfterViewInit() {
|
50
57
|
this.buildBreadcrumb();
|
51
58
|
this.cdRef.detectChanges();
|
@@ -109,7 +116,6 @@ export class QMSBreadcrumb {
|
|
109
116
|
}
|
110
117
|
}
|
111
118
|
buildBreadcrumb() {
|
112
|
-
var _a;
|
113
119
|
if (!this.isMobileType && this.ele.nativeElement.offsetWidth) {
|
114
120
|
this.dropdownNodes = [];
|
115
121
|
if (!this.maxLine || this.maxLine < 2) {
|
@@ -120,7 +126,7 @@ export class QMSBreadcrumb {
|
|
120
126
|
}
|
121
127
|
}
|
122
128
|
//show number Items after 3 dot icon
|
123
|
-
if (+this.numDisplayItem && +this.numDisplayItem >= 2 &&
|
129
|
+
if (+this.numDisplayItem && +this.numDisplayItem >= 2 && this.itemNodes.length >= 2) {
|
124
130
|
this.dropdownNodes = [];
|
125
131
|
this.dropdownNodes = this.itemNodes.slice(0, -this.numDisplayItem).reverse();
|
126
132
|
this.itemNodes = [...[], ...this.itemNodes.slice(-this.numDisplayItem)];
|
@@ -192,4 +198,4 @@ QMSBreadcrumb.propDecorators = {
|
|
192
198
|
onItemClick: [{ type: Output }],
|
193
199
|
breadCrumbNodes: [{ type: ViewChildren, args: [QMSBreadcrumbItemDirective, {},] }]
|
194
200
|
};
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUE0QixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVUvRCxNQUFNLE9BQU8sYUFBYTtJQXFCeEIsWUFBb0IsR0FBZSxFQUN6QixZQUE2QixFQUM3QixLQUF3QixFQUN4QixTQUF1QixFQUN4QixLQUE4QjtRQUpuQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENB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aW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IEJSRUFEQ1JVTUJfRFJPUERPV05fSUNPTiB9IGZyb20gXCIuLi8uLi9jb21tb24vcW1zLWljb24uY29uc3RcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJdGVtSWNvblR5cGUgfSBmcm9tIFwiLi4vcmVsYXRlZC9jb21tb24vaXRlbS1pY29uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQgeyBRTVNCcmVhZGNydW1iSXRlbURpcmVjdGl2ZSB9IGZyb20gXCIuL2JyZWFkY3J1bWItaXRlbS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlR5cGUgfSBmcm9tIFwiLi9lbnVtL2JyZWFkY3J1bWItdHlwZVwiO1xyXG5pbXBvcnQgeyBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGggfSBmcm9tIFwiLi9lbnVtL2Ryb3Bkb3duLW5vZGUtd2lkdGguZW51bVwiO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iTm9kZSB9IGZyb20gXCIuL21vZGVsL2JyZWFkY3J1bWItbm9kZS5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtYnJlYWRjcnVtYicsXHJcbiAgdGVtcGxhdGVVcmw6ICdicmVhZGNydW1iLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydicmVhZGNydW1iLnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFFNU0JyZWFkY3J1bWIgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG5vZGVzOiBCcmVhZGNydW1iTm9kZVtdO1xyXG4gIEBJbnB1dCgpIHR5cGU6IEJyZWFkY3J1bWJUeXBlLm5vcm1hbCB8IEJyZWFkY3J1bWJUeXBlLnRhYmxlIHwgQnJlYWRjcnVtYlR5cGUubW9iaWxlID0gQnJlYWRjcnVtYlR5cGUubm9ybWFsO1xyXG4gIEBJbnB1dCgpIG1heExpbmU6IG51bWJlcjtcclxuICBASW5wdXQoKSBudW1EaXNwbGF5SXRlbTogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBvbmx5SXRlbTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkTGFzdEl0ZW06IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBvbkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkcmVuKFFNU0JyZWFkY3J1bWJJdGVtRGlyZWN0aXZlLCB7fSkgYnJlYWRDcnVtYk5vZGVzOiBRdWVyeUxpc3Q8UU1TQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmU+O1xyXG5cclxuICBpc092ZXJmbG93ID0gZmFsc2U7XHJcbiAgZHJvcGRvd25Ob2RlczogQnJlYWRjcnVtYk5vZGVbXSA9IFtdO1xyXG4gIGhvbWVOb2RlOiBCcmVhZGNydW1iTm9kZSA9IG5ldyBCcmVhZGNydW1iTm9kZSgpO1xyXG4gIHByZXZpb3VzTm9kZTogQnJlYWRjcnVtYk5vZGUgPSBuZXcgQnJlYWRjcnVtYk5vZGUoKTtcclxuICBpdGVtTm9kZXM6IEJyZWFkY3J1bWJOb2RlW107XHJcbiAgc2lkZU5hdk5vZGVzOiBCcmVhZGNydW1iTm9kZVtdID0gW107XHJcbiAgaXRlbVNwYWNlOiBudW1iZXIgPSBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGguTk9STUFMOyAvLyB3aWR0aCBvZiBkcm9wZG93biBub2RlIGluIG5vcm1hbCB2aWV3XHJcbiAgaXRlbUljb25UeXBlO1xyXG4gIGlzTW9iaWxlVHlwZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIExBTkc6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGU6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHVibGljIHRyYW5zOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSkge1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdicmVhZGNydW1iX2Ryb3Bkb3duJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEJSRUFEQ1JVTUJfRFJPUERPV05fSUNPTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMubm9kZXMgJiYgdGhpcy5icmVhZENydW1iTm9kZXMgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm5vZGVzLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4uY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWVdO1xyXG4gICAgICB0aGlzLmluaXRCcmVhZENydW1iKCk7XHJcbiAgICAgIHRoaXMuYnVpbGRCcmVhZGNydW1iKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnMuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnMuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzTW9iaWxlVHlwZSA9ICh0aGlzLnR5cGUgPT0gQnJlYWRjcnVtYlR5cGUubW9iaWxlKTtcclxuICAgIHRoaXMuaXRlbUljb25UeXBlID0gSXRlbUljb25UeXBlO1xyXG4gICAgdGhpcy5pbml0QnJlYWRDcnVtYigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5idWlsZEJyZWFkY3J1bWIoKTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tPdmVyZmxvdyh3aWR0aDogbnVtYmVyKSB7XHJcblxyXG4gICAgY29uc3Qgbm9kZVdpZHRocyA9IHRoaXMuYnJlYWRDcnVtYk5vZGVzLm1hcCh4ID0+IHguZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG4gICAgbGV0IGN1cnJlbnRXaWR0aCA9IDA7XHJcbiAgICBub2RlV2lkdGhzLmZvckVhY2god2lkdGggPT4ge1xyXG4gICAgICBjdXJyZW50V2lkdGggKz0gd2lkdGg7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzT3ZlcmZsb3cgPSB3aWR0aCA8IGN1cnJlbnRXaWR0aCAmJiAodGhpcy5pdGVtTm9kZXMubGVuZ3RoID49IHRoaXMubnVtRGlzcGxheUl0ZW0pO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNPdmVyZmxvdykge1xyXG4gICAgICBsZXQgc2NyZWVuV2lkdGggPSB3aWR0aDtcclxuICAgICAgaWYgKHRoaXMudHlwZSAhPT0gJ3RhYmxlJykge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd25Ob2Rlcy5wdXNoKHRoaXMuaG9tZU5vZGUpO1xyXG4gICAgICAgIGN1cnJlbnRXaWR0aCAtPSBub2RlV2lkdGhzWzBdO1xyXG4gICAgICAgIGN1cnJlbnRXaWR0aCArPSB0aGlzLml0ZW1TcGFjZTtcclxuICAgICAgICBzY3JlZW5XaWR0aCAtPSB0aGlzLml0ZW1TcGFjZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjdXJyZW50V2lkdGggKz0gdGhpcy5pdGVtU3BhY2U7XHJcbiAgICAgICAgc2NyZWVuV2lkdGggLT0gbm9kZVdpZHRoc1swXTtcclxuICAgICAgICBzY3JlZW5XaWR0aCAtPSB0aGlzLml0ZW1TcGFjZTtcclxuICAgICAgfVxyXG4gICAgICBub2RlV2lkdGhzLnNoaWZ0KCk7XHJcbiAgICAgIG5vZGVXaWR0aHMuZm9yRWFjaCgoZWxlV2lkdGgsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRXaWR0aCA+IHNjcmVlbldpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLml0ZW1Ob2Rlc1tpbmRleF0uaXNTaG93ID0gaW5kZXggPT0gbm9kZVdpZHRocy5sZW5ndGggLSAxID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pdGVtTm9kZXNbaW5kZXhdLmlzT3ZlcmZsb3cgPSBpbmRleCA9PSBub2RlV2lkdGhzLmxlbmd0aCAtIDEgPyBmYWxzZSA6IHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc092ZXJmbG93O1xyXG4gICAgICAgICAgdGhpcy5kcm9wZG93bk5vZGVzLnB1c2godGhpcy5pdGVtTm9kZXNbaW5kZXhdKTtcclxuICAgICAgICAgIGN1cnJlbnRXaWR0aCAtPSAoZWxlV2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IHRoaXMuZHJvcGRvd25Ob2Rlcy5yZXZlcnNlKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdEJyZWFkQ3J1bWIoKSB7XHJcbiAgICBpZiAodGhpcy5ub2RlcyAmJiB0aGlzLm5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgICAgICAgZWxlLmlzT3ZlcmZsb3cgPSBlbGUuaXNPdmVyZmxvdyA/IGVsZS5pc092ZXJmbG93IDogZmFsc2U7XHJcbiAgICAgICAgZWxlLmlzU2hvdyA9IHRydWU7XHJcbiAgICAgICAgZWxlLmRpc3BsYXlUeXBlID0gdGhpcy5nZXRJdGVtSWNvblR5cGUoZWxlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09ICdtb2JpbGUnKSB7XHJcbiAgICAgICAgdGhpcy5ob21lTm9kZSA9IHRoaXMubm9kZXNbMF07XHJcbiAgICAgICAgdGhpcy5pdGVtTm9kZXMgPSB0aGlzLm5vZGVzLnNsaWNlKDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMucHJldmlvdXNOb2RlID0gdGhpcy5ub2Rlc1t0aGlzLm5vZGVzLmxlbmd0aCA+PSAyID8gdGhpcy5ub2Rlcy5sZW5ndGggLSAyIDogMF07XHJcbiAgICAgICAgdGhpcy5zaWRlTmF2Tm9kZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnNpZGVOYXZOb2RlcyA9IHRoaXMubm9kZXMubGVuZ3RoID49IDIgPyBbLi4udGhpcy5ub2Rlc10gOiBbXTtcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50eXBlID09PSAndGFibGUnKSB7XHJcbiAgICAgIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncW1zLWJyZWFkY3J1bWItdGFibGUnKTtcclxuICAgICAgdGhpcy5pdGVtU3BhY2UgPSBEcm9wZG93bkJyZWFkQ3J1bWJOb2RlV2lkdGguVEFCTEU7ICAvLyB3aWR0aCBvZiBkcm9wZG93biBub2RlIGluIHRhYmxlIHZpZXdcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heExpbmUgJiYgdGhpcy5tYXhMaW5lID4gMSkge1xyXG4gICAgICB0aGlzLmVsZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Ftcy1icmVhZGNydW1iX19tdWx0aS1saW5lJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidWlsZEJyZWFkY3J1bWIoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGVUeXBlICYmIHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XHJcbiAgICAgIGlmICghdGhpcy5tYXhMaW5lIHx8IHRoaXMubWF4TGluZSA8IDIpIHtcclxuICAgICAgICB0aGlzLmNoZWNrT3ZlcmZsb3codGhpcy5lbGUubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiAxLjcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9zaG93IG51bWJlciBJdGVtcyBhZnRlciAzIGRvdCBpY29uXHJcbiAgICBpZiAoK3RoaXMubnVtRGlzcGxheUl0ZW0gJiYgK3RoaXMubnVtRGlzcGxheUl0ZW0gPj0gMiAmJiB0aGlzLml0ZW1Ob2Rlcz8ubGVuZ3RoID49IDIpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IHRoaXMuaXRlbU5vZGVzLnNsaWNlKDAsIC10aGlzLm51bURpc3BsYXlJdGVtKS5yZXZlcnNlKCk7XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gWy4uLltdLCAuLi50aGlzLml0ZW1Ob2Rlcy5zbGljZSgtdGhpcy5udW1EaXNwbGF5SXRlbSldO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93bk5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuaXNPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICAvL2p1c3Qgc2hvdyAxIGl0ZW0gZm9yIG1vYmlsZVxyXG4gICAgaWYgKHRoaXMub25seUl0ZW0pIHtcclxuICAgICAgdGhpcy5pc092ZXJmbG93ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XHJcbiAgICAgIGxldCBpdGVtTm9kZXMgPSBbLi4udGhpcy5pdGVtTm9kZXNdO1xyXG4gICAgICBsZXQgbGFzdEl0ZW0gPSBpdGVtTm9kZXMucG9wKCk7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IFsuLi5pdGVtTm9kZXNdLnJldmVyc2UoKTtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzLnB1c2godGhpcy5ob21lTm9kZSk7XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gW107XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gW2xhc3RJdGVtXTtcclxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSWNvblR5cGUodHJlZUNvbmZpZzogQnJlYWRjcnVtYk5vZGUpIHtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uKSByZXR1cm4gSXRlbUljb25UeXBlLm5hbWU7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGgpIHJldHVybiBJdGVtSWNvblR5cGUucGF0aDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uQmFzZTY0KSByZXR1cm4gSXRlbUljb25UeXBlLmJhc2U2NDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uU3ZnKSByZXR1cm4gSXRlbUljb25UeXBlLnN2ZztcclxuICAgIHJldHVybiBJdGVtSWNvblR5cGUubm9uZTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlUGF0aChub2RlOiBCcmVhZGNydW1iTm9kZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChub2RlLml0ZW1JY29uQmFzZTY0KSBhcyBzdHJpbmc7XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzZWQoZXZlbnQpIHtcclxuICAgIFsuLi5ldmVudC50YXJnZXQuY2hpbGRyZW5dLmZvckVhY2goeCA9PiB4LmNsaWNrKCkpO1xyXG4gIH1cclxuXHJcbiAgb25JdGVtU2VsZWN0KGl0ZW06IEJyZWFkY3J1bWJOb2RlLCBpc0xhc3RJdGVtPzogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzTGFzdEl0ZW0gJiYgdGhpcy5kaXNhYmxlZExhc3RJdGVtKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5vbkl0ZW1DbGljaykge1xyXG4gICAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUE0QixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEwsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVUvRCxNQUFNLE9BQU8sYUFBYTtJQXVCeEIsWUFBb0IsR0FBZSxFQUN6QixZQUE2QixFQUM3QixLQUF3QixFQUN4QixTQUF1QixFQUN4QixLQUE4QjtRQUpuQixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ3pCLGlCQUFZLEdBQVosWUFB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MUIsNjNRQUE4QjtnQkFFOUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFsQnFELFVBQVU7WUFDdkQsZUFBZTtZQURBLGlCQUFpQjtZQUVoQyxZQUFZO1lBSVosdUJBQXVCOzs7b0JBZ0I3QixLQUFLO21CQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO3VCQUNMLEtBQUs7K0JBQ0wsS0FBSzswQkFDTCxNQUFNOzhCQUNOLFlBQVksU0FBQywwQkFBMEIsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkcmVuLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQlJFQURDUlVNQl9EUk9QRE9XTl9JQ09OIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9xbXMtaWNvbi5jb25zdFwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEl0ZW1JY29uVHlwZSB9IGZyb20gXCIuLi9yZWxhdGVkL2NvbW1vbi9pdGVtLWljb24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7IFFNU0JyZWFkY3J1bWJJdGVtRGlyZWN0aXZlIH0gZnJvbSBcIi4vYnJlYWRjcnVtYi1pdGVtLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iVHlwZSB9IGZyb20gXCIuL2VudW0vYnJlYWRjcnVtYi10eXBlXCI7XHJcbmltcG9ydCB7IERyb3Bkb3duQnJlYWRDcnVtYk5vZGVXaWR0aCB9IGZyb20gXCIuL2VudW0vZHJvcGRvd24tbm9kZS13aWR0aC5lbnVtXCI7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJOb2RlIH0gZnJvbSBcIi4vbW9kZWwvYnJlYWRjcnVtYi1ub2RlLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1icmVhZGNydW1iJyxcclxuICB0ZW1wbGF0ZVVybDogJ2JyZWFkY3J1bWIuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2JyZWFkY3J1bWIuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUU1TQnJlYWRjcnVtYiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgbm9kZXM6IEJyZWFkY3J1bWJOb2RlW107XHJcbiAgQElucHV0KCkgdHlwZTogQnJlYWRjcnVtYlR5cGUubm9ybWFsIHwgQnJlYWRjcnVtYlR5cGUudGFibGUgfCBCcmVhZGNydW1iVHlwZS5tb2JpbGUgPSBCcmVhZGNydW1iVHlwZS5ub3JtYWw7XHJcbiAgQElucHV0KCkgbWF4TGluZTogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG51bURpc3BsYXlJdGVtOiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpIG9ubHlJdGVtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWRMYXN0SXRlbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQE91dHB1dCgpIG9uSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGRyZW4oUU1TQnJlYWRjcnVtYkl0ZW1EaXJlY3RpdmUsIHt9KSBicmVhZENydW1iTm9kZXM6IFF1ZXJ5TGlzdDxRTVNCcmVhZGNydW1iSXRlbURpcmVjdGl2ZT47XHJcblxyXG4gIGlzT3ZlcmZsb3cgPSBmYWxzZTtcclxuICBkcm9wZG93bk5vZGVzOiBCcmVhZGNydW1iTm9kZVtdID0gW107XHJcbiAgaG9tZU5vZGU6IEJyZWFkY3J1bWJOb2RlID0gbmV3IEJyZWFkY3J1bWJOb2RlKCk7XHJcbiAgcHJldmlvdXNOb2RlOiBCcmVhZGNydW1iTm9kZSA9IG5ldyBCcmVhZGNydW1iTm9kZSgpO1xyXG4gIGl0ZW1Ob2RlczogQnJlYWRjcnVtYk5vZGVbXTtcclxuICBzaWRlTmF2Tm9kZXM6IEJyZWFkY3J1bWJOb2RlW10gPSBbXTtcclxuICBpdGVtU3BhY2U6IG51bWJlciA9IERyb3Bkb3duQnJlYWRDcnVtYk5vZGVXaWR0aC5OT1JNQUw7IC8vIHdpZHRoIG9mIGRyb3Bkb3duIG5vZGUgaW4gbm9ybWFsIHZpZXdcclxuICBpdGVtSWNvblR5cGU7XHJcbiAgaXNNb2JpbGVUeXBlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgTEFORzogYW55O1xyXG5cclxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGU6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHVibGljIHRyYW5zOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSkge1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdicmVhZGNydW1iX2Ryb3Bkb3duJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEJSRUFEQ1JVTUJfRFJPUERPV05fSUNPTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMubm9kZXMgJiYgdGhpcy5icmVhZENydW1iTm9kZXMgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm5vZGVzLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSBbLi4uY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWVdO1xyXG4gICAgICB0aGlzLmluaXRCcmVhZENydW1iKCk7XHJcbiAgICAgIHRoaXMuYnVpbGRCcmVhZGNydW1iKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnMuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXNNb2JpbGVUeXBlID0gKHRoaXMudHlwZSA9PSBCcmVhZGNydW1iVHlwZS5tb2JpbGUpO1xyXG4gICAgdGhpcy5pdGVtSWNvblR5cGUgPSBJdGVtSWNvblR5cGU7XHJcbiAgICB0aGlzLmluaXRCcmVhZENydW1iKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYnVpbGRCcmVhZGNydW1iKCk7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrT3ZlcmZsb3cod2lkdGg6IG51bWJlcikge1xyXG5cclxuICAgIGNvbnN0IG5vZGVXaWR0aHMgPSB0aGlzLmJyZWFkQ3J1bWJOb2Rlcy5tYXAoeCA9PiB4LmVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKTtcclxuICAgIGxldCBjdXJyZW50V2lkdGggPSAwO1xyXG4gICAgbm9kZVdpZHRocy5mb3JFYWNoKHdpZHRoID0+IHtcclxuICAgICAgY3VycmVudFdpZHRoICs9IHdpZHRoO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pc092ZXJmbG93ID0gd2lkdGggPCBjdXJyZW50V2lkdGggJiYgKHRoaXMuaXRlbU5vZGVzLmxlbmd0aCA+PSB0aGlzLm51bURpc3BsYXlJdGVtKTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzT3ZlcmZsb3cpIHtcclxuICAgICAgbGV0IHNjcmVlbldpZHRoID0gd2lkdGg7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09ICd0YWJsZScpIHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3duTm9kZXMucHVzaCh0aGlzLmhvbWVOb2RlKTtcclxuICAgICAgICBjdXJyZW50V2lkdGggLT0gbm9kZVdpZHRoc1swXTtcclxuICAgICAgICBjdXJyZW50V2lkdGggKz0gdGhpcy5pdGVtU3BhY2U7XHJcbiAgICAgICAgc2NyZWVuV2lkdGggLT0gdGhpcy5pdGVtU3BhY2U7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY3VycmVudFdpZHRoICs9IHRoaXMuaXRlbVNwYWNlO1xyXG4gICAgICAgIHNjcmVlbldpZHRoIC09IG5vZGVXaWR0aHNbMF07XHJcbiAgICAgICAgc2NyZWVuV2lkdGggLT0gdGhpcy5pdGVtU3BhY2U7XHJcbiAgICAgIH1cclxuICAgICAgbm9kZVdpZHRocy5zaGlmdCgpO1xyXG4gICAgICBub2RlV2lkdGhzLmZvckVhY2goKGVsZVdpZHRoLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChjdXJyZW50V2lkdGggPiBzY3JlZW5XaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5pdGVtTm9kZXNbaW5kZXhdLmlzU2hvdyA9IGluZGV4ID09IG5vZGVXaWR0aHMubGVuZ3RoIC0gMSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaXRlbU5vZGVzW2luZGV4XS5pc092ZXJmbG93ID0gaW5kZXggPT0gbm9kZVdpZHRocy5sZW5ndGggLSAxID8gZmFsc2UgOiB0aGlzLml0ZW1Ob2Rlc1tpbmRleF0uaXNPdmVyZmxvdztcclxuICAgICAgICAgIHRoaXMuZHJvcGRvd25Ob2Rlcy5wdXNoKHRoaXMuaXRlbU5vZGVzW2luZGV4XSk7XHJcbiAgICAgICAgICBjdXJyZW50V2lkdGggLT0gKGVsZVdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duTm9kZXMgPSB0aGlzLmRyb3Bkb3duTm9kZXMucmV2ZXJzZSgpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGluaXRCcmVhZENydW1iKCkge1xyXG4gICAgaWYgKHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChlbGUgPT4ge1xyXG4gICAgICAgIGVsZS5pc092ZXJmbG93ID0gZWxlLmlzT3ZlcmZsb3cgPyBlbGUuaXNPdmVyZmxvdyA6IGZhbHNlO1xyXG4gICAgICAgIGVsZS5pc1Nob3cgPSB0cnVlO1xyXG4gICAgICAgIGVsZS5kaXNwbGF5VHlwZSA9IHRoaXMuZ2V0SXRlbUljb25UeXBlKGVsZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy50eXBlICE9PSAnbW9iaWxlJykge1xyXG4gICAgICAgIHRoaXMuaG9tZU5vZGUgPSB0aGlzLm5vZGVzWzBdO1xyXG4gICAgICAgIHRoaXMuaXRlbU5vZGVzID0gdGhpcy5ub2Rlcy5zbGljZSgxKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnByZXZpb3VzTm9kZSA9IHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggPj0gMiA/IHRoaXMubm9kZXMubGVuZ3RoIC0gMiA6IDBdO1xyXG4gICAgICAgIHRoaXMuc2lkZU5hdk5vZGVzID0gW107XHJcbiAgICAgICAgdGhpcy5zaWRlTmF2Tm9kZXMgPSB0aGlzLm5vZGVzLmxlbmd0aCA+PSAyID8gWy4uLnRoaXMubm9kZXNdIDogW107XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RhYmxlJykge1xyXG4gICAgICB0aGlzLmVsZS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Ftcy1icmVhZGNydW1iLXRhYmxlJyk7XHJcbiAgICAgIHRoaXMuaXRlbVNwYWNlID0gRHJvcGRvd25CcmVhZENydW1iTm9kZVdpZHRoLlRBQkxFOyAgLy8gd2lkdGggb2YgZHJvcGRvd24gbm9kZSBpbiB0YWJsZSB2aWV3XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhMaW5lICYmIHRoaXMubWF4TGluZSA+IDEpIHtcclxuICAgICAgdGhpcy5lbGUubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdxbXMtYnJlYWRjcnVtYl9fbXVsdGktbGluZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnVpbGRCcmVhZGNydW1iKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzTW9iaWxlVHlwZSAmJiB0aGlzLmVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IFtdO1xyXG4gICAgICBpZiAoIXRoaXMubWF4TGluZSB8fCB0aGlzLm1heExpbmUgPCAyKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja092ZXJmbG93KHRoaXMuZWxlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tPdmVyZmxvdyh0aGlzLmVsZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICogMS43KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vc2hvdyBudW1iZXIgSXRlbXMgYWZ0ZXIgMyBkb3QgaWNvblxyXG4gICAgaWYgKCt0aGlzLm51bURpc3BsYXlJdGVtICYmICt0aGlzLm51bURpc3BsYXlJdGVtID49IDIgJiYgdGhpcy5pdGVtTm9kZXMubGVuZ3RoID49IDIpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IHRoaXMuaXRlbU5vZGVzLnNsaWNlKDAsIC10aGlzLm51bURpc3BsYXlJdGVtKS5yZXZlcnNlKCk7XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gWy4uLltdLCAuLi50aGlzLml0ZW1Ob2Rlcy5zbGljZSgtdGhpcy5udW1EaXNwbGF5SXRlbSldO1xyXG4gICAgICBpZiAodGhpcy5kcm9wZG93bk5vZGVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuaXNPdmVyZmxvdyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICAvL2p1c3Qgc2hvdyAxIGl0ZW0gZm9yIG1vYmlsZVxyXG4gICAgaWYgKHRoaXMub25seUl0ZW0pIHtcclxuICAgICAgdGhpcy5pc092ZXJmbG93ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzID0gW107XHJcbiAgICAgIGxldCBpdGVtTm9kZXMgPSBbLi4udGhpcy5pdGVtTm9kZXNdO1xyXG4gICAgICBsZXQgbGFzdEl0ZW0gPSBpdGVtTm9kZXMucG9wKCk7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Ob2RlcyA9IFsuLi5pdGVtTm9kZXNdLnJldmVyc2UoKTtcclxuICAgICAgdGhpcy5kcm9wZG93bk5vZGVzLnB1c2godGhpcy5ob21lTm9kZSk7XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gW107XHJcbiAgICAgIHRoaXMuaXRlbU5vZGVzID0gW2xhc3RJdGVtXTtcclxuICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSWNvblR5cGUodHJlZUNvbmZpZzogQnJlYWRjcnVtYk5vZGUpIHtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uKSByZXR1cm4gSXRlbUljb25UeXBlLm5hbWU7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGgpIHJldHVybiBJdGVtSWNvblR5cGUucGF0aDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uQmFzZTY0KSByZXR1cm4gSXRlbUljb25UeXBlLmJhc2U2NDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uU3ZnKSByZXR1cm4gSXRlbUljb25UeXBlLnN2ZztcclxuICAgIHJldHVybiBJdGVtSWNvblR5cGUubm9uZTtcclxuICB9XHJcblxyXG4gIGdldEltYWdlUGF0aChub2RlOiBCcmVhZGNydW1iTm9kZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChub2RlLml0ZW1JY29uQmFzZTY0KSBhcyBzdHJpbmc7XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzZWQoZXZlbnQpIHtcclxuICAgIFsuLi5ldmVudC50YXJnZXQuY2hpbGRyZW5dLmZvckVhY2goeCA9PiB4LmNsaWNrKCkpO1xyXG4gIH1cclxuXHJcbiAgb25JdGVtU2VsZWN0KGl0ZW06IEJyZWFkY3J1bWJOb2RlLCBpc0xhc3RJdGVtPzogYm9vbGVhbikge1xyXG4gICAgaWYgKGlzTGFzdEl0ZW0gJiYgdGhpcy5kaXNhYmxlZExhc3RJdGVtKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5vbkl0ZW1DbGljaykge1xyXG4gICAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
@@ -1,30 +1,36 @@
|
|
1
1
|
// Import the core angular services.
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
|
3
|
+
import { Subject } from "rxjs";
|
4
|
+
import { takeUntil } from "rxjs/operators";
|
3
5
|
import { TranslateLibraryService } from "../../services/translation-registry.service";
|
4
6
|
export class QMSComment {
|
5
7
|
constructor(trans) {
|
6
8
|
this.trans = trans;
|
7
9
|
this.updateLog = new EventEmitter();
|
10
|
+
this.ngUnsubscribe = new Subject();
|
8
11
|
}
|
9
12
|
ngOnChanges(changes) {
|
10
|
-
for (const propName in changes) {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
}
|
13
|
+
// for (const propName in changes) {
|
14
|
+
// const changedProp = changes[propName];
|
15
|
+
// const to = JSON.stringify(changedProp.currentValue);
|
16
|
+
// if (changedProp.isFirstChange()) {
|
17
|
+
// } else {
|
18
|
+
// const from = JSON.stringify(changedProp.previousValue);
|
19
|
+
// }
|
20
|
+
// }
|
19
21
|
// this.sourceLog = changes.sourceLog.currentValue;
|
20
22
|
}
|
21
23
|
ngOnInit() {
|
22
|
-
this.trans.getLanguageSubject$.pipe().subscribe((res) => {
|
24
|
+
this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
|
23
25
|
if (res) {
|
24
26
|
this.LANG = this.trans.getObjectLang(res);
|
25
27
|
}
|
26
28
|
});
|
27
29
|
}
|
30
|
+
ngOnDestroy() {
|
31
|
+
this.ngUnsubscribe.next();
|
32
|
+
this.ngUnsubscribe.complete();
|
33
|
+
}
|
28
34
|
showContent(content) {
|
29
35
|
return content.replace(/(?:\r\n|\r|\n)/g, '<br>');
|
30
36
|
}
|
@@ -65,4 +71,4 @@ QMSComment.propDecorators = {
|
|
65
71
|
sourceLog: [{ type: Input }],
|
66
72
|
updateLog: [{ type: Output }]
|
67
73
|
};
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50L2NvbW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNySixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQVV0RixNQUFNLE9BQU8sVUFBVTtJQVFuQixZQUFtQixLQUE4QjtRQUE5QixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQU52QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl6QyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFHcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixvQ0FBb0M7UUFDcEMsNkNBQTZDO1FBQzdDLDJEQUEyRDtRQUMzRCx5Q0FBeUM7UUFDekMsZUFBZTtRQUNmLGtFQUFrRTtRQUNsRSxRQUFRO1FBQ1IsSUFBSTtRQUNKLG1EQUFtRDtJQUN2RCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRixJQUFJLEdBQUcsRUFBRTtnQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQU87UUFDZixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFVO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFVO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUN6RCxDQUFDOzs7WUF0RUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2Qix3ekRBQTJCO2dCQUUzQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO2dCQUNoQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQVRRLHVCQUF1Qjs7O3dCQVczQixLQUFLO3dCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbXBvcnQgdGhlIGNvcmUgYW5ndWxhciBzZXJ2aWNlcy5cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9ncyB9IGZyb20gXCIuL2NvbW1lbnQtbG9nLm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncW1zLWNvbW1lbnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdjb21tZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2NvbW1lbnQuc2NzcyddLFxyXG4gICAgaG9zdDogeyAnY2xhc3MnOiAncW1zLWNvbW1lbnQnIH0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NvbW1lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBzb3VyY2VMb2c6IExvZ3NbXTtcclxuICAgIEBPdXRwdXQoKSB1cGRhdGVMb2cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgTEFORzogYW55O1xyXG5cclxuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuczogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gZm9yIChjb25zdCBwcm9wTmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IGNoYW5nZWRQcm9wID0gY2hhbmdlc1twcm9wTmFtZV07XHJcbiAgICAgICAgLy8gICAgIGNvbnN0IHRvID0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlZFByb3AuY3VycmVudFZhbHVlKTtcclxuICAgICAgICAvLyAgICAgaWYgKGNoYW5nZWRQcm9wLmlzRmlyc3RDaGFuZ2UoKSkge1xyXG4gICAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgY29uc3QgZnJvbSA9IEpTT04uc3RyaW5naWZ5KGNoYW5nZWRQcm9wLnByZXZpb3VzVmFsdWUpO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIC8vIHRoaXMuc291cmNlTG9nID0gY2hhbmdlcy5zb3VyY2VMb2cuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudHJhbnMuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0NvbnRlbnQoY29udGVudCkge1xyXG4gICAgICAgIHJldHVybiBjb250ZW50LnJlcGxhY2UoLyg/OlxcclxcbnxcXHJ8XFxuKS9nLCAnPGJyPicpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRDb250ZW50KGl0ZW06IExvZ3MpIHtcclxuICAgICAgICBpdGVtLmVkaXRlZENvbnRlbnQgPSBpdGVtLmNvbnRlbnQ7XHJcbiAgICAgICAgaXRlbS5pc0VkaXQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVFZGl0ZWRDb250ZW50KGl0ZW06IExvZ3MpIHtcclxuICAgICAgICBpdGVtLmNvbnRlbnQgPSBpdGVtLmVkaXRlZENvbnRlbnQ7XHJcbiAgICAgICAgaXRlbS5pc0VkaXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxvZy5lbWl0KGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUl0ZW0oaXRlbTogTG9ncykge1xyXG4gICAgICAgIGl0ZW0uaXNEZWxldGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTG9nLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVncmV0SXRlbShpdGVtOiBMb2dzKSB7XHJcbiAgICAgICAgaXRlbS5pc0RlbGV0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTG9nLmVtaXQoaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tJbnZhbGlkQ29udGVudChpdGVtOiBMb2dzKSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZWRpdGVkQ29udGVudC50cmltKCkgPT0gJycgPyB0cnVlIDogZmFsc2VcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|
@@ -1,13 +1,16 @@
|
|
1
1
|
import { Component, Inject, ViewEncapsulation } from "@angular/core";
|
2
2
|
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
|
3
|
+
import { Subject } from "rxjs";
|
4
|
+
import { takeUntil } from "rxjs/operators";
|
3
5
|
import { TranslateLibraryService } from "../../services/translation-registry.service";
|
4
6
|
export class QMSEditFileNameDialog {
|
5
7
|
constructor(dialogRef, trans, data) {
|
6
8
|
this.dialogRef = dialogRef;
|
7
9
|
this.trans = trans;
|
8
10
|
this.data = data;
|
11
|
+
this.ngUnsubscribe = new Subject();
|
9
12
|
this.fileName = this.data;
|
10
|
-
this.trans.getLanguageSubject$.pipe().subscribe((res) => {
|
13
|
+
this.trans.getLanguageSubject$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
|
11
14
|
if (res) {
|
12
15
|
this.LANG = this.trans.getObjectLang(res);
|
13
16
|
}
|
@@ -22,6 +25,10 @@ export class QMSEditFileNameDialog {
|
|
22
25
|
clearInput() {
|
23
26
|
this.fileName = '';
|
24
27
|
}
|
28
|
+
ngOnDestroy() {
|
29
|
+
this.ngUnsubscribe.next();
|
30
|
+
this.ngUnsubscribe.complete();
|
31
|
+
}
|
25
32
|
}
|
26
33
|
QMSEditFileNameDialog.decorators = [
|
27
34
|
{ type: Component, args: [{
|
@@ -36,4 +43,4 @@ QMSEditFileNameDialog.ctorParameters = () => [
|
|
36
43
|
{ type: TranslateLibraryService },
|
37
44
|
{ type: String, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
38
45
|
];
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1maWxlLW5hbWUtZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtZmlsZS1uYW1lLWRpYWxvZy9lZGl0LWZpbGUtbmFtZS1kaWFsb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQVF0RixNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFlBQ1csU0FBOEMsRUFDOUMsS0FBOEIsRUFDTCxJQUFZO1FBRnJDLGNBQVMsR0FBVCxTQUFTLENBQXFDO1FBQzlDLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQ0wsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUpoRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFLaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqRixJQUFJLEdBQUcsRUFBRTtnQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzdDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7O1lBckNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxpb0NBQXlDO2dCQUV6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDeEM7OztZQVZRLFlBQVk7WUFHWix1QkFBdUI7eUNBZXZCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncW1zLWVkaXQtZmlsZS1uYW1lLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXQtZmlsZS1uYW1lLWRpYWxvZy5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydlZGl0LWZpbGUtbmFtZS1kaWFsb2cuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0VkaXRGaWxlTmFtZURpYWxvZyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgTEFORzogYW55O1xyXG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UU1TRWRpdEZpbGVOYW1lRGlhbG9nPixcclxuICAgICAgICBwdWJsaWMgdHJhbnM6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuZGF0YTtcclxuICAgICAgICB0aGlzLnRyYW5zLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFucy5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2F2ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5maWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJJbnB1dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVOYW1lID0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
@@ -38,10 +38,10 @@ export class QMSNavDrawerComponent {
|
|
38
38
|
};
|
39
39
|
}
|
40
40
|
ngOnChanges(changes) {
|
41
|
-
if (changes.treeData) {
|
41
|
+
if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {
|
42
42
|
this.dataSource.data = this.treeData;
|
43
43
|
}
|
44
|
-
if (changes.openNodes) {
|
44
|
+
if (changes.openNodes && JSON.stringify(changes.openNodes.currentValue) !== JSON.stringify(changes.openNodes.previousValue)) {
|
45
45
|
this.findAndExpandNodes();
|
46
46
|
this._activeNode();
|
47
47
|
}
|
@@ -176,4 +176,4 @@ QMSNavDrawerComponent.propDecorators = {
|
|
176
176
|
nodeExpand: [{ type: Output }],
|
177
177
|
onClickNodeEvent: [{ type: Output }]
|
178
178
|
};
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW1CLG1CQUF5QyxFQUFVLEtBQXdCO1FBQTNFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQWhCOUYsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25FLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxV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bXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZsYXROb2RlTmF2RHJhd2VyLCBUcmVlTm9kZU5hdkRyYXdlciB9IGZyb20gJy4vbW9kZWxzL3Ftcy1uYXYtZHJhd2VyLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TVHJlZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtdHJlZS1nbG9iYWwuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncW1zLW5hdi1kcmF3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFFNU05hdkRyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU5vZGVOYXZEcmF3ZXI+ID0gW107XHJcbiAgQElucHV0KCkgb3Blbk5vZGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBub2RlRXhwYW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DbGlja05vZGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGVOYXZEcmF3ZXI+KG5vZGUgPT4gbm9kZS5sZXZlbCwgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUpO1xyXG4gIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcih0aGlzLl90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG4gIGV4cGFuZGluZ05vZGVzOiBGbGF0Tm9kZU5hdkRyYXdlcltdID0gW107XHJcbiAgYWN0aXZlTm9kZTogc3RyaW5nO1xyXG4gIGd1aWRIZWxwZXIgPSB7XHJcbiAgICBlbXB0eTogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCdcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcW1zTmF2RHJhd2VyU2VydmljZTogUU1TVHJlZUdsb2JhbFNlcnZpY2UsIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udmVydFRyZWVEYXRhKHRoaXMudHJlZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgX3RyYW5zZm9ybWVyKG5vZGU6IFRyZWVOb2RlTmF2RHJhd2VyLCBsZXZlbDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBleHBhbmRhYmxlOiAoISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkgfHwgKCEhbm9kZS5jaGlsZENvdW50KSxcclxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICBsZXZlbCxcclxuICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxyXG4gICAgICBpdGVtSWNvbjogbm9kZS5pdGVtSWNvbixcclxuICAgICAgaXRlbU1hdEljb246IG5vZGUuaXRlbU1hdEljb24sXHJcbiAgICAgIGl0ZW1JY29uU3ZnOiBub2RlLml0ZW1JY29uU3ZnLFxyXG4gICAgICBpc0ZpbGU6IG5vZGUuaXNGaWxlLFxyXG4gICAgICBtYXJrZWRHZXRDaGlsZHJlbjogbm9kZS5tYXJrZWRHZXRDaGlsZHJlblxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpID0+IG5vZGUuZXhwYW5kYWJsZTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMudHJlZURhdGEpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnRyZWVEYXRhO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMub3Blbk5vZGVzKSB7XHJcbiAgICAgIHRoaXMuZmluZEFuZEV4cGFuZE5vZGVzKCk7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xbXNOYXZEcmF3ZXJTZXJ2aWNlLmdldEl0ZW1zQ2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgIGxldCBuZXdOb2Rlc0NoaWxkcmVuID0gW107XHJcblxyXG4gICAgICAgIHJlcy5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleChcclxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLmlkID09PSB4LmlkICYmIGl0ZW0ucGFyZW50SWQgPT09IHgucGFyZW50SWQpO1xyXG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBuZXdOb2Rlc0NoaWxkcmVuLnB1c2goeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEFkZCBjaGlsZHJlbiB0byB0cmVlRGF0YVxyXG4gICAgICAgIGlmIChuZXdOb2Rlc0NoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCAuLi5uZXdOb2Rlc0NoaWxkcmVuXTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb252ZXJ0VHJlZURhdGEodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmRBbmRFeHBhbmROb2Rlcyh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMuZm9yRWFjaChub2RlID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZEluZGV4KHggPT4geC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKTtcclxuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2luZGV4XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZU5vZGUoKSB7XHJcbiAgICBjb25zdCBjdXJyTm9kZSA9IHRoaXMub3Blbk5vZGVzW3RoaXMub3Blbk5vZGVzLmxlbmd0aCAtIDFdO1xyXG4gICAgY29uc3QgaWR4UGFyZW50ID0gdGhpcy5vcGVuTm9kZXMubGVuZ3RoID49IDIgPyB0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggLSAyIDogJyc7XHJcbiAgICBjb25zdCBwYXJlbnROb2RlID0gaWR4UGFyZW50ICE9PSAnJyA/IHRoaXMub3Blbk5vZGVzW2lkeFBhcmVudF0gOiAnJztcclxuXHJcbiAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLmdldEFjdGl2ZU5vZGUoY3Vyck5vZGUsIHBhcmVudE5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlTm9kZShpZCwgcGFyZW50SWQpIHtcclxuICAgIGNvbnN0IF9pZCA9IGlkID8gaWQgOiAnJztcclxuICAgIGNvbnN0IF9wYXJlbnRJZCA9IHBhcmVudElkID8gcGFyZW50SWQgOiAnJztcclxuICAgIHJldHVybiBgJHtfaWR9LSR7X3BhcmVudElkfWA7XHJcbiAgfVxyXG5cclxuICBmaW5kQW5kRXhwYW5kTm9kZXMoZXhwYW5kTmV3Q2hpbGQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5vcGVuTm9kZXMuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBlbCkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcclxuXHJcbiAgICAvLyBzY3JvbGwgdG8gc2VsZWN0ZWQgbm9kZVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LXRyZWUtbm9kZS5hY3RpdmUnKTtcclxuICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja05vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShub2RlLmlkLCBub2RlLnBhcmVudElkKTtcclxuICAgIHRoaXMub25DbGlja05vZGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmROb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSB7XHJcbiAgICB0aGlzLm9wZW5Ob2RlcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgdGhpcy5fYWRkRXhwYW5kaW5nTm9kZShub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XHJcbiAgICAgIHRoaXMuX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGUuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghbm9kZS5tYXJrZWRHZXRDaGlsZHJlbikge1xyXG4gICAgICBub2RlLm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoeC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKSB7XHJcbiAgICAgICAgICB4Lm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm5vZGVFeHBhbmQuZW1pdCh7IG5vZGUsIGlzRXhwYW5kOiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hZGRFeHBhbmRpbmdOb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZXhwYW5kaW5nTm9kZXMuc29tZSh4ID0+IHguaWQgPT09IG5vZGUuaWQpKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMucHVzaChub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGluZ05vZGVzID0gdGhpcy5leHBhbmRpbmdOb2Rlcy5maWx0ZXIoeCA9PiB4LmlkICE9PSBub2RlSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VHJlZURhdGEobGlzdCkge1xyXG4gICAgbGV0IG1hcCA9IHt9LCBub2RlLCByb290cyA9IFtdLCBpO1xyXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcclxuICAgICAgbWFwW2Ake2xpc3RbaV0uaWR9LSR7bGlzdFtpXS5wYXJlbnRJZH1gXSA9IGkgLy8gaW5pdGlhbGl6ZSB0aGUgbWFwXHJcbiAgICAgIGxpc3RbaV0uY2hpbGRyZW4gPSBbXTsgLy8gaW5pdGlhbGl6ZSB0aGUgY2hpbGRyZW5cclxuICAgIH1cclxuXHJcblxyXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpICs9IDEpIHtcclxuICAgICAgbm9kZSA9IGxpc3RbaV07XHJcbiAgICAgIGNvbnN0IHN0cktleSA9IGAke2xpc3RbaV0uaWR9LSR7bGlzdFtpXS5wYXJlbnRJZH1gO1xyXG5cclxuICAgICAgaWYgKG5vZGUucGFyZW50SWQgJiYgKG5vZGUucGFyZW50SWQgIT09IHRoaXMuZ3VpZEhlbHBlci5lbXB0eSkgJiYgbGlzdFttYXBbc3RyS2V5XV0pIHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSBsaXN0LmZpbHRlcih4ID0+IHguaWQgPT09IG5vZGUucGFyZW50SWQgJiYgIXguaXNGaWxlKVswXVxyXG4gICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5wdXNoKG5vZGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcm9vdHMucHVzaChub2RlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcm9vdHM7XHJcbiAgfVxyXG5cclxufSJdfQ==
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzlFLE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW1CLG1CQUF5QyxFQUFVLEtBQXdCO1FBQTNFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBc0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQWhCOUYsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELHFCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25FLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxV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LENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEI7U0FFRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7O1lBOUxGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixvMUVBQThDOzthQUUvQzs7O1lBTFEsb0JBQW9CO1lBTHBCLGlCQUFpQjs7O3VCQWV2QixLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsTUFBTTsrQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGbGF0Tm9kZU5hdkRyYXdlciwgVHJlZU5vZGVOYXZEcmF3ZXIgfSBmcm9tICcuL21vZGVscy9xbXMtbmF2LWRyYXdlci5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU1RyZWVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLXRyZWUtZ2xvYmFsLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1uYXYtZHJhd2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNOYXZEcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgdHJlZURhdGE6IEFycmF5PFRyZWVOb2RlTmF2RHJhd2VyPiA9IFtdO1xyXG4gIEBJbnB1dCgpIG9wZW5Ob2Rlczogc3RyaW5nW10gPSBbXTtcclxuICBAT3V0cHV0KCkgbm9kZUV4cGFuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tOb2RlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHJcbiAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEZsYXROb2RlTmF2RHJhd2VyPihub2RlID0+IG5vZGUubGV2ZWwsIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlKTtcclxuICB0cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIodGhpcy5fdHJhbnNmb3JtZXIsIG5vZGUgPT4gbm9kZS5sZXZlbCwgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUsIG5vZGUgPT4gbm9kZS5jaGlsZHJlbik7XHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcclxuICBleHBhbmRpbmdOb2RlczogRmxhdE5vZGVOYXZEcmF3ZXJbXSA9IFtdO1xyXG4gIGFjdGl2ZU5vZGU6IHN0cmluZztcclxuICBndWlkSGVscGVyID0ge1xyXG4gICAgZW1wdHk6ICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHFtc05hdkRyYXdlclNlcnZpY2U6IFFNU1RyZWVHbG9iYWxTZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmNvbnZlcnRUcmVlRGF0YSh0aGlzLnRyZWVEYXRhKTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1lcihub2RlOiBUcmVlTm9kZU5hdkRyYXdlciwgbGV2ZWw6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogKCEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8ICghIW5vZGUuY2hpbGRDb3VudCksXHJcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcclxuICAgICAgbGV2ZWwsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcclxuICAgICAgaXRlbUljb246IG5vZGUuaXRlbUljb24sXHJcbiAgICAgIGl0ZW1NYXRJY29uOiBub2RlLml0ZW1NYXRJY29uLFxyXG4gICAgICBpdGVtSWNvblN2Zzogbm9kZS5pdGVtSWNvblN2ZyxcclxuICAgICAgaXNGaWxlOiBub2RlLmlzRmlsZSxcclxuICAgICAgbWFya2VkR2V0Q2hpbGRyZW46IG5vZGUubWFya2VkR2V0Q2hpbGRyZW5cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSA9PiBub2RlLmV4cGFuZGFibGU7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnRyZWVEYXRhICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy50cmVlRGF0YS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5vcGVuTm9kZXMgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5vcGVuTm9kZXMuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5vcGVuTm9kZXMucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5maW5kQW5kRXhwYW5kTm9kZXMoKTtcclxuICAgICAgdGhpcy5fYWN0aXZlTm9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnFtc05hdkRyYXdlclNlcnZpY2UuZ2V0SXRlbXNDaGlsZHJlbiQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcy5sZW5ndGgpIHtcclxuXHJcbiAgICAgICAgbGV0IG5ld05vZGVzQ2hpbGRyZW4gPSBbXTtcclxuXHJcbiAgICAgICAgcmVzLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudHJlZURhdGEuZmluZEluZGV4KFxyXG4gICAgICAgICAgICBpdGVtID0+IGl0ZW0uaWQgPT09IHguaWQgJiYgaXRlbS5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgIG5ld05vZGVzQ2hpbGRyZW4ucHVzaCh4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gQWRkIGNoaWxkcmVuIHRvIHRyZWVEYXRhXHJcbiAgICAgICAgaWYgKG5ld05vZGVzQ2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVEYXRhID0gWy4uLnRoaXMudHJlZURhdGEsIC4uLm5ld05vZGVzQ2hpbGRyZW5dO1xyXG4gICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmNvbnZlcnRUcmVlRGF0YSh0aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICAgIHRoaXMuZmluZEFuZEV4cGFuZE5vZGVzKHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kSW5kZXgoeCA9PiB4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZlTm9kZSgpIHtcclxuICAgIGNvbnN0IGN1cnJOb2RlID0gdGhpcy5vcGVuTm9kZXNbdGhpcy5vcGVuTm9kZXMubGVuZ3RoIC0gMV07XHJcbiAgICBjb25zdCBpZHhQYXJlbnQgPSB0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggPj0gMiA/IHRoaXMub3Blbk5vZGVzLmxlbmd0aCAtIDIgOiAnJztcclxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBpZHhQYXJlbnQgIT09ICcnID8gdGhpcy5vcGVuTm9kZXNbaWR4UGFyZW50XSA6ICcnO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShjdXJyTm9kZSwgcGFyZW50Tm9kZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmVOb2RlKGlkLCBwYXJlbnRJZCkge1xyXG4gICAgY29uc3QgX2lkID0gaWQgPyBpZCA6ICcnO1xyXG4gICAgY29uc3QgX3BhcmVudElkID0gcGFyZW50SWQgPyBwYXJlbnRJZCA6ICcnO1xyXG4gICAgcmV0dXJuIGAke19pZH0tJHtfcGFyZW50SWR9YDtcclxuICB9XHJcblxyXG4gIGZpbmRBbmRFeHBhbmROb2RlcyhleHBhbmROZXdDaGlsZDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0aGlzLm9wZW5Ob2Rlcy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IGVsKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLnB1c2godGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYWN0aXZlTm9kZSgpO1xyXG5cclxuICAgIC8vIHNjcm9sbCB0byBzZWxlY3RlZCBub2RlXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtdHJlZS1ub2RlLmFjdGl2ZScpO1xyXG4gICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrTm9kZShub2RlOiBGbGF0Tm9kZU5hdkRyYXdlcikge1xyXG4gICAgdGhpcy5hY3RpdmVOb2RlID0gdGhpcy5nZXRBY3RpdmVOb2RlKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpO1xyXG4gICAgdGhpcy5vbkNsaWNrTm9kZUV2ZW50LmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cGFuZE5vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpIHtcclxuICAgIHRoaXMub3Blbk5vZGVzID0gW107XHJcbiAgICBpZiAodGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gICAgICB0aGlzLl9hZGRFeHBhbmRpbmdOb2RlKG5vZGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5jb2xsYXBzZShub2RlKTtcclxuICAgICAgdGhpcy5fcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZS5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFub2RlLm1hcmtlZEdldENoaWxkcmVuKSB7XHJcbiAgICAgIG5vZGUubWFya2VkR2V0Q2hpbGRyZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIGlmICh4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpIHtcclxuICAgICAgICAgIHgubWFya2VkR2V0Q2hpbGRyZW4gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMubm9kZUV4cGFuZC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEV4cGFuZGluZ05vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCkpIHtcclxuICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMgPSB0aGlzLmV4cGFuZGluZ05vZGVzLmZpbHRlcih4ID0+IHguaWQgIT09IG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUcmVlRGF0YShsaXN0KSB7XHJcbiAgICBsZXQgbWFwID0ge30sIG5vZGUsIHJvb3RzID0gW10sIGk7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBtYXBbYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWBdID0gaSAvLyBpbml0aWFsaXplIHRoZSBtYXBcclxuICAgICAgbGlzdFtpXS5jaGlsZHJlbiA9IFtdOyAvLyBpbml0aWFsaXplIHRoZSBjaGlsZHJlblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBub2RlID0gbGlzdFtpXTtcclxuICAgICAgY29uc3Qgc3RyS2V5ID0gYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWA7XHJcblxyXG4gICAgICBpZiAobm9kZS5wYXJlbnRJZCAmJiAobm9kZS5wYXJlbnRJZCAhPT0gdGhpcy5ndWlkSGVscGVyLmVtcHR5KSAmJiBsaXN0W21hcFtzdHJLZXldXSkge1xyXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZmlsdGVyKHggPT4geC5pZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiAheC5pc0ZpbGUpWzBdXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByb290cy5wdXNoKG5vZGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByb290cztcclxuICB9XHJcblxyXG59Il19
|