qms-angular 1.0.22 → 1.0.23
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 +63 -22
- package/bundles/qms-angular.umd.js.map +1 -1
- package/esm2015/lib/components/related/model/danger-assessment.model.js +1 -1
- package/esm2015/lib/components/related/model/danger.model.js +1 -1
- package/esm2015/lib/components/related/model/risk-result.model.js +2 -1
- package/esm2015/lib/components/related/popup/related-popup.component.js +50 -18
- package/esm2015/lib/components/related/risk/list/list.component.js +3 -2
- package/esm2015/lib/components/related/risk/result/result.component.js +4 -2
- package/esm2015/lib/components/related/tree/tree.component.js +7 -4
- package/esm2015/lib/model/en.js +2 -1
- package/esm2015/lib/model/no.js +2 -1
- package/fesm2015/qms-angular.js +63 -22
- package/fesm2015/qms-angular.js.map +1 -1
- package/lib/components/related/model/danger-assessment.model.d.ts +1 -0
- package/lib/components/related/model/danger.model.d.ts +1 -0
- package/lib/components/related/model/risk-result.model.d.ts +1 -0
- package/lib/components/related/risk/result/result.component.d.ts +1 -0
- package/lib/model/en.d.ts +1 -0
- package/lib/model/no.d.ts +1 -0
- package/package.json +1 -1
- package/qms-angular.metadata.json +1 -1
@@ -81,6 +81,7 @@
|
|
81
81
|
"MUST_BE_EVALUATED": "Must be evaluated",
|
82
82
|
"ACCEPTED": "Accepted",
|
83
83
|
"ARCHIVED": "Archived",
|
84
|
+
"CAUSE": "Cause",
|
84
85
|
"ERROR": {
|
85
86
|
"SELECT_DANGER": "You must select one or more events"
|
86
87
|
},
|
@@ -189,6 +190,7 @@
|
|
189
190
|
"MUST_BE_EVALUATED": "Må vurderes",
|
190
191
|
"ACCEPTED": "Akseptert",
|
191
192
|
"ARCHIVED": "Arkivert",
|
193
|
+
"CAUSE": "Årsak",
|
192
194
|
"ERROR": {
|
193
195
|
"SELECT_DANGER": "Du må velge en eller flere hendelser"
|
194
196
|
},
|
@@ -3810,7 +3812,10 @@
|
|
3810
3812
|
this.treeData = __spreadArray(__spreadArray([], __read(this.treeData)), [changes.treeData.currentValue]);
|
3811
3813
|
this.initTreeData();
|
3812
3814
|
}
|
3813
|
-
if (changes.selectedData &&
|
3815
|
+
if (changes.selectedData &&
|
3816
|
+
(changes.selectedData.currentValue.length > 0 ||
|
3817
|
+
JSON.stringify(changes.selectedData.currentValue) !==
|
3818
|
+
JSON.stringify(changes.selectedData.previousValue))) {
|
3814
3819
|
this.checkSelected(changes.selectedData.currentValue);
|
3815
3820
|
}
|
3816
3821
|
else {
|
@@ -4010,8 +4015,8 @@
|
|
4010
4015
|
}
|
4011
4016
|
else {
|
4012
4017
|
var descendants = this.treeControl.getDescendants(node).filter(function (item) { return !item.disabled; });
|
4013
|
-
this.checkSelectedSameNode(descendants, this.
|
4014
|
-
this.
|
4018
|
+
this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));
|
4019
|
+
!this.descendantsAllSelected(node)
|
4015
4020
|
? (_a = this.checklistSelection).select.apply(_a, __spreadArray([], __read(descendants))) : (_b = this.checklistSelection).deselect.apply(_b, __spreadArray([], __read(descendants)));
|
4016
4021
|
this.cdRef.markForCheck();
|
4017
4022
|
var allNodeIsParent = this.checklistSelection.selected.every(function (child) { return child.expandable; });
|
@@ -4413,6 +4418,8 @@
|
|
4413
4418
|
this.checkedNodeList = this.checkedNodeList.filter(function (x) { return (x.id !== item.id || x.parentId !== item.parentId); });
|
4414
4419
|
var tempArr = [];
|
4415
4420
|
var tempArrDocument = [];
|
4421
|
+
var newSelectProcessList = [];
|
4422
|
+
var newSelectDocumentList = [];
|
4416
4423
|
this.commonCheckedList.forEach(function (element) {
|
4417
4424
|
_this.checkedNodeList.forEach(function (x) {
|
4418
4425
|
if (element.id === x.id && element.parentId === x.parentId) {
|
@@ -4420,6 +4427,14 @@
|
|
4420
4427
|
}
|
4421
4428
|
});
|
4422
4429
|
});
|
4430
|
+
this.singleProcessList.forEach(function (element) {
|
4431
|
+
_this.checkedNodeList.forEach(function (x) {
|
4432
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
4433
|
+
newSelectProcessList.push(element);
|
4434
|
+
}
|
4435
|
+
});
|
4436
|
+
});
|
4437
|
+
this.singleProcessList = newSelectProcessList;
|
4423
4438
|
this.selectedData = __spreadArray([], __read(tempArr));
|
4424
4439
|
this.documentCheckedList.forEach(function (element) {
|
4425
4440
|
_this.checkedNodeList.forEach(function (x) {
|
@@ -4428,6 +4443,14 @@
|
|
4428
4443
|
}
|
4429
4444
|
});
|
4430
4445
|
});
|
4446
|
+
this.singleDocumentList.forEach(function (element) {
|
4447
|
+
_this.checkedNodeList.forEach(function (x) {
|
4448
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
4449
|
+
newSelectDocumentList.push(element);
|
4450
|
+
}
|
4451
|
+
});
|
4452
|
+
});
|
4453
|
+
this.singleDocumentList = newSelectDocumentList;
|
4431
4454
|
this.selectedData2 = __spreadArray([], __read(tempArrDocument));
|
4432
4455
|
};
|
4433
4456
|
RelatedPopupComponent.prototype.isMatchTrue = function (arr, arr2) {
|
@@ -4663,13 +4686,14 @@
|
|
4663
4686
|
else {
|
4664
4687
|
position = _this.treeData1.findIndex(function (p) { return p.childId === item.id; });
|
4665
4688
|
}
|
4666
|
-
if (position >
|
4689
|
+
if (position > -1) {
|
4667
4690
|
_this.singleProcessList.push({
|
4668
4691
|
moduleId: _this.moduleId,
|
4669
4692
|
id: item.id,
|
4670
4693
|
itemName: item.name,
|
4671
4694
|
itemType: (_this.itemType === 2) ? _this.setTypeProcess(item.expandable) : _this.itemType,
|
4672
|
-
itemNumberId: _this.treeData1[position].displayId.toString()
|
4695
|
+
itemNumberId: _this.treeData1[position].displayId.toString(),
|
4696
|
+
parentId: item.parentId
|
4673
4697
|
});
|
4674
4698
|
}
|
4675
4699
|
}
|
@@ -4706,24 +4730,37 @@
|
|
4706
4730
|
_this.documentCheckedList.push(item);
|
4707
4731
|
}
|
4708
4732
|
if (_this.singleSelectedNode) {
|
4709
|
-
var position =
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4733
|
+
var position = void 0;
|
4734
|
+
if (item.expandable) {
|
4735
|
+
position = _this.treeData2.findIndex(function (p) { return p.rootId === item.id; });
|
4736
|
+
}
|
4737
|
+
else {
|
4738
|
+
position = _this.treeData2.findIndex(function (p) { return p.childId === item.id; });
|
4739
|
+
}
|
4740
|
+
if (position > -1) {
|
4741
|
+
_this.singleDocumentList.push({
|
4742
|
+
moduleId: _this.moduleId,
|
4743
|
+
id: item.id,
|
4744
|
+
itemName: item.name,
|
4745
|
+
itemType: item.expandable ? _this.dataType.folder : _this.dataType.document,
|
4746
|
+
itemNumberId: _this.treeData2[position].displayId.toString(),
|
4747
|
+
parentId: item.parentId
|
4748
|
+
});
|
4749
|
+
}
|
4717
4750
|
}
|
4718
4751
|
if (index < 0 && !item.expandable && !_this.singleSelectedNode) {
|
4719
4752
|
var position = _this.treeData2.findIndex(function (p) { return p.childId === item.id; });
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4753
|
+
if (position > -1) {
|
4754
|
+
_this.checkedNodeList.push({
|
4755
|
+
moduleId: _this.moduleId,
|
4756
|
+
id: item.id,
|
4757
|
+
itemName: item.name,
|
4758
|
+
itemType: _this.dataType.document,
|
4759
|
+
itemNumberId: _this.treeData2[position].displayId.toString(),
|
4760
|
+
parentId: item.parentId,
|
4761
|
+
parentName: _this.treeData2[position].rootName,
|
4762
|
+
});
|
4763
|
+
}
|
4727
4764
|
}
|
4728
4765
|
});
|
4729
4766
|
if (this.singleSelectedNode) {
|
@@ -4912,6 +4949,7 @@
|
|
4912
4949
|
function RiskResult() {
|
4913
4950
|
this.title = '';
|
4914
4951
|
this.results = [];
|
4952
|
+
this.isSimple = 0;
|
4915
4953
|
}
|
4916
4954
|
return RiskResult;
|
4917
4955
|
}());
|
@@ -4928,8 +4966,10 @@
|
|
4928
4966
|
this.data = data;
|
4929
4967
|
this.results = [];
|
4930
4968
|
this.color = Color;
|
4969
|
+
this.isSimple = 0;
|
4931
4970
|
this.title = data.title;
|
4932
4971
|
this.results = data.results;
|
4972
|
+
this.isSimple = data.isSimple || 0;
|
4933
4973
|
}
|
4934
4974
|
RiskResultComponent.prototype.ngOnInit = function () {
|
4935
4975
|
var _this = this;
|
@@ -4947,7 +4987,7 @@
|
|
4947
4987
|
RiskResultComponent.decorators = [
|
4948
4988
|
{ type: i0.Component, args: [{
|
4949
4989
|
selector: 'qms-risk-result',
|
4950
|
-
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ LANG.EVENT }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
4990
|
+
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ isSimple ? LANG.EVENT : LANG.CAUSE }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
4951
4991
|
styles: ["@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format(\"woff2\");unicode-range:U+1f??}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format(\"woff2\");unicode-range:U+0370-03ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFW50bbck.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVZ0b.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.dialog-title{display:flex;justify-content:space-between}.dialog-title h3.title{font-family:Raleway;font-style:normal;font-weight:500;font-size:22px;line-height:26px}.flex-container-header{display:flex;align-items:center;font-size:.75rem;border-radius:4px;line-height:16px}.flex-container-header>div{font-family:Open Sans;font-style:normal;font-weight:600;text-align:left;padding:10px 25px;color:rgba(0,0,0,.6)}.flex-container-header .first{flex:0 1 40%}.flex-container-header .second,.flex-container-header .third{flex:0 1 30%}.flex-container{display:flex;align-items:center;font-size:.875rem;line-height:22px;border-radius:4px;border:1px solid #ddd;min-height:48px;margin-bottom:10px}.flex-container>div{font-family:Open Sans;font-style:normal;text-align:left;padding:10px 25px;color:#323232}.flex-container .first{display:flex;flex:0 1 40%;align-items:center;font-weight:600}.flex-container .second{flex:0 1 30%;font-weight:400}.flex-container .third{display:flex;flex:0 1 30%;align-items:center;font-weight:600;font-size:.75rem}.flex-container .third.text-green,.flex-container .third.text-red,.flex-container .third.text-yellow{font-size:.75rem}.flex-container .third.text-green .mat-icon,.flex-container .third.text-green .material-icons-outlined,.flex-container .third.text-red .mat-icon,.flex-container .third.text-red .material-icons-outlined,.flex-container .third.text-yellow .mat-icon,.flex-container .third.text-yellow .material-icons-outlined{margin-right:1rem}.flex-container .third.text-red{color:#b00020}.flex-container .third.text-yellow{color:#726729}.flex-container .third.text-green{color:#005935}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:flex;text-align:center;margin-right:1rem;width:24px;height:24px;flex:0 0 24px;border-radius:1px}.label-red{background-color:#9e360f;color:#fff}.label-yellow{background-color:#e4cf53;color:rgba(0,0,0,.87)}.label-green{background-color:#00804c;color:#fff}"]
|
4952
4992
|
},] }
|
4953
4993
|
];
|
@@ -5073,7 +5113,8 @@
|
|
5073
5113
|
remain: 0,
|
5074
5114
|
dangers: [],
|
5075
5115
|
folderId: d.folderId,
|
5076
|
-
statusId: d.statusId
|
5116
|
+
statusId: d.statusId,
|
5117
|
+
simple: d.simple
|
5077
5118
|
});
|
5078
5119
|
dangers.forEach(function (d) {
|
5079
5120
|
var index = _this.analysisDanger[i].dangers.findIndex(function (x) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"qms-angular.umd.js","sources":["../../../projects/qms-angular/src/lib/qms-angular.service.ts","../../../projects/qms-angular/src/lib/model/en.ts","../../../projects/qms-angular/src/lib/model/no.ts","../../../projects/qms-angular/src/lib/services/translation-registry.service.ts","../../../projects/qms-angular/src/lib/qms-angular.component.ts","../../../projects/qms-angular/src/lib/components/comment/comment.ts","../../../projects/qms-angular/src/lib/components/dialog/dialog.ts","../../../projects/qms-angular/src/lib/components/suffix-field/suffix-field.directive.ts","../../../projects/qms-angular/src/lib/components/test-only/test-only.component.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-chip-list.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-dropdown.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-trigger.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip-body.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip.directive.ts","../../../projects/qms-angular/src/lib/directives/dropdown-menu/dropdown-item.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/qms-file-upload-attachment.model.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload.directive.ts","../../../projects/qms-angular/src/lib/directives/form.directive.ts","../../../projects/qms-angular/src/lib/directives/margin.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider-lockup.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider.directive.ts","../../../projects/qms-angular/src/lib/directives/scroll-selected/scroll-to-selected.directive.ts","../../../projects/qms-angular/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/qms-angular/src/lib/directives/search-field.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-content.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header-action.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group-advanced.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-label.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block-line.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block.directive.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-image.directive.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-renderer.directive.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/qms-angular/src/lib/components/button/button-toggle.ts","../../../projects/qms-angular/src/lib/components/button/color.ts","../../../projects/qms-angular/src/lib/components/button/button.ts","../../../projects/qms-angular/src/lib/components/button/button.module.ts","../../../projects/qms-angular/src/lib/material-module.ts","../../../projects/qms-angular/src/lib/pipe/dateFormat.pipe.ts","../../../projects/qms-angular/src/lib/shared.module.ts","../../../projects/qms-angular/src/lib/qms-angular.module.ts","../../../projects/qms-angular/src/lib/components/list/list.ts","../../../projects/qms-angular/src/lib/components/list/list.module.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.module.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.ts","../../../projects/qms-angular/src/lib/components/related/common/data-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/content/related-content.component.ts","../../../projects/qms-angular/src/lib/components/related/common/module-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/related.const.ts","../../../projects/qms-angular/src/lib/components/related/model/popup-data.model.ts","../../../projects/qms-angular/src/lib/components/related/service/related-global.service.ts","../../../projects/qms-angular/src/lib/components/related/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/related/common/document-folder-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/item-icon-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-node.model.ts","../../../projects/qms-angular/src/lib/components/related/common/tree.function.ts","../../../projects/qms-angular/src/lib/components/related/tree/tree.component.ts","../../../projects/qms-angular/src/lib/components/related/popup/related-popup.component.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-analysis.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/analysis/analysis.component.ts","../../../projects/qms-angular/src/lib/components/related/common/color.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-result.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/result/result.component.ts","../../../projects/qms-angular/src/lib/components/related/model/sidenav.model.ts","../../../projects/qms-angular/src/lib/components/related/sidenav/sidenav.component.ts","../../../projects/qms-angular/src/lib/components/related/common/action-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/risk/list/list.component.ts","../../../projects/qms-angular/src/lib/components/related/list-other-related/list-related.component.ts","../../../projects/qms-angular/src/lib/components/related/related.module.ts","../../../projects/qms-angular/src/lib/components/related/model/tree.model.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-config.model.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-danger.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor-base.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-parameter.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/module.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-anchor.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/protocol-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/target-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/document-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/tree.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-injector.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-template.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/classes/uploadAdapter.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/common.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.module.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.component.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.module.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.model.ts","../../../projects/qms-angular/src/lib/components/dialog/constant.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.module.ts","../../../projects/qms-angular/src/lib/components/banner/models/qms-banner.model.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.ts","../../../projects/qms-angular/src/lib/components/table/table-action.ts","../../../projects/qms-angular/src/lib/components/table/table.module.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.component.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.module.ts","../../../projects/qms-angular/src/lib/components/snackbar/snackbar.ts","../../../projects/qms-angular/src/public-api.ts","../../../projects/qms-angular/src/qms-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QmsAngularService {\r\n\r\n constructor() { }\r\n}\r\n","export const en = {\r\n \"MY_COMPONENT\": \"My component\",\r\n \"SAVE_BUTTON\": \"Save\",\r\n \"CANCEL_BUTTON\": \"Cancel\",\r\n \"DELETE_MESSAGE_COMMENT\": \"This message has been deleted.\",\r\n \"REGRET\": \"Regret\",\r\n \"EDIT\": \"Edit\",\r\n \"DELETE\": \"Delete\",\r\n \"SAVE\": \"Save\",\r\n \"CANCEL\": \"Cancel\",\r\n \"EDIT_FILE_NAME\": \"Edit file name\",\r\n \"FILE_NAME\": \"File name\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Files you're uploading may not be saved.\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Some files were not added\",\r\n \"YOU_CAN_ONLY_ADD\": \"You can only upload\",\r\n \"SELECT\": \"Select\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DEVIATION\": \"Categories\",\r\n \"CHECKLIST\": \"Checklists\",\r\n \"ASSESSMENT\": \"Assessments\",\r\n \"ADD\": \"Add\",\r\n \"SEARCH\": \"Search\",\r\n \"REGULAR_TITLE\": \"What do you want to include in the risk assessment(s)?\",\r\n \"CAPTION_TITLE\": \"In causal assessments, all causes related to the event are automatically added.\",\r\n \"CAUSAL_ANALYZES\": \"Selected Assessments\",\r\n \"FINISHED\": \"Finished\",\r\n \"PROCESS_ID\": \"Process ID\",\r\n \"DOCUMENT_ID\": \"Document ID\",\r\n \"PROCESS_AREA\": \"Process area\",\r\n \"FOLDER\": \"Folder\",\r\n \"DEVIATION_TYPE\": \"Deviation type\",\r\n \"CHECKLIST_CATEGORY\": \"Categories\",\r\n \"EVENT\": \"Event\",\r\n \"AREA_OF_IMPACT\": \"Consequence Area\",\r\n \"RESULT\": \"Result\",\r\n \"NOT_ACCEPTED\": \"Not accepted\",\r\n \"MUST_BE_EVALUATED\": \"Must be evaluated\",\r\n \"ACCEPTED\": \"Accepted\",\r\n \"ARCHIVED\": \"Archived\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"You must select one or more events\"\r\n },\r\n \"MESSAGE\": {\r\n\r\n }\r\n ,\r\n \"QMSCKEDITOR\": {\r\n \"TEMPLATE\": \"Template\",\r\n \"CONTENT_TEMPLATE\": \"Content Template\",\r\n \"CREATE_NEW_TEMPLATE\": \"Create new tempplate\",\r\n \"UPDATE_TEMPLATE\": \"Update tempplate\",\r\n \"TITLE\": \"Title\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"SAVE\": \"Save\",\r\n \"CHOOSE_TEMPLATE\": \"Please select the template to open in the editor\",\r\n \"REPLACE_CONTENT\": \"Replace actual contents\",\r\n \"SAVED\": \"Saved\",\r\n \"SAVE_FAILED\": \"Save failed\",\r\n \"DELETE\": \"Delete\",\r\n \"DELETED\": \"Deleted\",\r\n \"DELETE_FAILED\": \"Delete failed\",\r\n \"DELETE_TEMPLATE\": \"Delete template\",\r\n \"CHANGE_TEMPLATE\": \"Change template\",\r\n \"CANCEL\": \"Cancel\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Link type\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Link to anchor in the text\",\r\n \"LINK_EMAIL\": \"Email\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anchor in other document\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"New Window (_blank)\",\r\n \"TARGET_TOPMOST\": \"Topmost Window (_top)\",\r\n \"TARGET_SAME\": \"Same Window (_self)\",\r\n \"TARGET_PARENT\": \"Parent Window (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http://\",\r\n \"PROTOCOL_HTTPS\": \"https://\",\r\n \"PROTOCOL_FTP\": \"ftp://\",\r\n \"PROTOCOL_NEW\": \"news://\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Advisory Title\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"Ok\",\r\n \"URL_HEADER\": \"URL information\",\r\n \"ANCHOR_TEXT_HEADER\": \"Select an Anchor\",\r\n \"ANCHOR_BY_NAME\": \"Anchor by name\",\r\n \"EMAIL_HEADER\": \"Email information\",\r\n \"EMAIL_ADDRESS\": \"Address\",\r\n \"EMAIL_SUBJECT\": \"Subject\",\r\n \"EMAIL_BODY\": \"Body\",\r\n \"ANCHOR_ATTACHMENT\": \"Attachments\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Related document\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Add document/ process\",\r\n \"ADD_DOCUMENT\": \"Add document\",\r\n \"ADD\": \"Add\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"UPDATE\": \"Update\",\r\n \"DOCUMENT\": \"Document\",\r\n \"CONFIRM\": \"Confirm\",\r\n \"SEARCH\": \"Search\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Are you sure you want to delete this template?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Are you sure you want to apply this template to the editor?\"\r\n }\r\n}\r\n","export const no = {\r\n \"MY_COMPONENT\": \"Min komponent\",\r\n \"SAVE_BUTTON\": \"Lagre\",\r\n \"CANCEL_BUTTON\": \"Avbryt\",\r\n \"DELETE_MESSAGE_COMMENT\": \"Denne meldingen er slettet.\",\r\n \"REGRET\": \"Angre\",\r\n \"EDIT\": \"Rediger\",\r\n \"DELETE\": \"Slett\",\r\n \"SAVE\": \"Lagre\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"EDIT_FILE_NAME\": \"Rediger filnavn\",\r\n \"FILE_NAME\": \"Filnavn\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Filene du laster opp vil kanskje ikke bli lagret\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Noen filer ble ikke lagt til\",\r\n \"YOU_CAN_ONLY_ADD\": \"Du kan kun laste opp\",\r\n \"SELECT\": \"Velg\",\r\n \"PROCESSES\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"DEVIATION\": \"Kategorier\",\r\n \"CHECKLIST\": \"Sjekklister\",\r\n \"ASSESSMENT\": \"Analyser\",\r\n \"ADD\": \"Legg til\",\r\n \"SEARCH\": \"Søk\",\r\n \"REGULAR_TITLE\": \"Hva ønsker du å inkludere av hendeler i risikoanalysen(e)?\",\r\n \"CAPTION_TITLE\": \"I årsaksanalyser blir automatisk alle årsaker knyttet til hendelsen lagt til.\",\r\n \"CAUSAL_ANALYZES\": \"Valgte Analyser\",\r\n \"FINISHED\": \"Ferdig\",\r\n \"PROCESS_ID\": \"Prosess ID\",\r\n \"DOCUMENT_ID\": \"Dokument ID\",\r\n \"PROCESS_AREA\": \"Prosessområder\",\r\n \"FOLDER\": \"Mappe\",\r\n \"DEVIATION_TYPE\": \"Sakstype\",\r\n \"CHECKLIST_CATEGORY\": \"Kategorier\",\r\n \"EVENT\": \"Hendelse\",\r\n \"AREA_OF_IMPACT\": \"Konsekvensområde\",\r\n \"RESULT\": \"Resultat\",\r\n \"NOT_ACCEPTED\": \"Ikke akseptert\",\r\n \"MUST_BE_EVALUATED\": \"Må vurderes\",\r\n \"ACCEPTED\": \"Akseptert\",\r\n \"ARCHIVED\": \"Arkivert\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"Du må velge en eller flere hendelser\"\r\n },\r\n \"MESSAGE\": {\r\n\r\n },\r\n \"QMSCKEDITOR\": {\r\n \"TEMPLATE\": \"Mal\",\r\n \"CONTENT_TEMPLATE\": \"Innholdsmal\",\r\n \"CREATE_NEW_TEMPLATE\": \"Lag ny mal\",\r\n \"UPDATE_TEMPLATE\": \"Oppdater mal\",\r\n \"TITLE\": \"Tittel\",\r\n \"DESCRIPTION\": \"Beskrivelse\",\r\n \"SAVE\": \"Lagre\",\r\n \"CHOOSE_TEMPLATE\": \"Velg malen du vil åpne i redigeringsprogrammet\",\r\n \"REPLACE_CONTENT\": \"Bytt ut faktisk innhold\",\r\n \"SAVED\": \"Lagret\",\r\n \"SAVE_FAILED\": \"Lagringen mislyktes\",\r\n \"DELETE\": \"Slett\",\r\n \"DELETED\": \"Slettet\",\r\n \"DELETE_FAILED\": \"Sletting mislyktes\",\r\n \"DELETE_TEMPLATE\": \"Slett mal\",\r\n \"CHANGE_TEMPLATE\": \"Endre mal\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Koblingstype\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Lenke til anker i teksten\",\r\n \"LINK_EMAIL\": \"E-post\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anker i annet dokument\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"Nytt vindu (_blank)\",\r\n \"TARGET_TOPMOST\": \"Det øverste vinduet (_top)\",\r\n \"TARGET_SAME\": \"Samme vindu (selv)\",\r\n \"TARGET_PARENT\": \"Overordnet vindu (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http: //\",\r\n \"PROTOCOL_HTTPS\": \"https: //\",\r\n \"PROTOCOL_FTP\": \"ftp: //\",\r\n \"PROTOCOL_NEW\": \"nyheter: //\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Rådgivende tittel\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"OK\",\r\n \"URL_HEADER\": \"URL-informasjon\",\r\n \"ANCHOR_TEXT_HEADER\": \"Velg et anker\",\r\n \"ANCHOR_BY_NAME\": \"Anker ved navn\",\r\n \"EMAIL_HEADER\": \"E-postinformasjon\",\r\n \"EMAIL_ADDRESS\": \"Adresse\",\r\n \"EMAIL_SUBJECT\": \"Emne\",\r\n \"EMAIL_BODY\": \"Kropp\",\r\n \"ANCHOR_ATTACHMENT\": \"Vedlegg\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Beslektet dokument\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Legg til dokument / prosess\",\r\n \"ADD_DOCUMENT\": \"Legg til dokument\",\r\n \"ADD\": \"Legg til\",\r\n \"PROSESSER\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"UPDATE\": \"Oppdater\",\r\n \"DOCUMENT\": \"Dokument\",\r\n \"CONFIRM\": \"Bekreft\",\r\n \"SEARCH\": \"Søk\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Er du sikker på at du vil slette denne malen?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Er du sikker på at du vil bruke denne malen på redaktøren?\"\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { en } from '../model/en';\r\nimport { no } from '../model/no';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateLibraryService {\r\n\r\n getLanguageSubject$ = new BehaviorSubject<any>(null);\r\n private availableLanguages = { en, no };\r\n\r\n constructor() { }\r\n\r\n setLanguage(item: any) {\r\n this.getLanguageSubject$.next(item);\r\n }\r\n\r\n getObjectLang(lang) {\r\n let language = lang && lang.toLowerCase() || 'en';\r\n if (language !== 'en' && language !== 'no') {\r\n language = 'en';\r\n }\r\n return this.availableLanguages[language];\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n@Component({\r\n selector: 'lib-qms-angular',\r\n templateUrl: 'qms-angular.component.html',\r\n styles: []\r\n})\r\nexport class QmsAngularComponent implements OnInit {\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","// Import the core angular services.\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport interface Logs {\r\n user: string,\r\n date: any,\r\n isDraft: boolean,\r\n isEdit: boolean,\r\n content: string,\r\n editedContent: string\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-comment',\r\n templateUrl: 'comment.html',\r\n styleUrls: ['comment.scss'],\r\n host: { 'class': 'qms-comment' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSComment implements OnInit, OnChanges {\r\n @Input() sourceLog: Logs[];\r\n @Output() updateLog = new EventEmitter();\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const propName in changes) {\r\n const changedProp = changes[propName];\r\n const to = JSON.stringify(changedProp.currentValue);\r\n if (changedProp.isFirstChange()) {\r\n console.log('Initial value of');\r\n } else {\r\n const from = JSON.stringify(changedProp.previousValue);\r\n console.log('changed from');\r\n }\r\n }\r\n console.log('value changed', changes.sourceLog.currentValue);\r\n // this.sourceLog = changes.sourceLog.currentValue;\r\n }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n console.log(this.LANG);\r\n\r\n }\r\n });\r\n }\r\n\r\n showContent(content) {\r\n return content.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n }\r\n\r\n editContent(item) {\r\n item.editedContent = item.content;\r\n item.isEdit = true;\r\n }\r\n\r\n saveEditedContent(item) {\r\n item.content = item.editedContent;\r\n item.isEdit = false;\r\n this.updateLog.emit(item);\r\n }\r\n\r\n removeItem(item) {\r\n item.isDelete = true;\r\n this.updateLog.emit(item);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmDialog } from './constant';\r\n\r\n@Component({\r\n selector: 'qms-dialog-confirm',\r\n templateUrl: 'dialog-confirm.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSConfirmDialog implements OnInit, AfterViewInit {\r\n info: ConfirmDialog;\r\n\r\n @ViewChild('actionGroup') actionGroup: ElementRef;\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.orderActionButton();\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private _elRef: ElementRef,\r\n private dialogRef: MatDialogRef<QMSConfirmDialog>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.info = { ...data };\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.orderActionButton();\r\n }\r\n\r\n orderActionButton() {\r\n const divHeight = this.actionGroup.nativeElement.offsetHeight;\r\n document.getElementById('action-btn').style.order = divHeight > 68 ? '1' : '2';\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-dialog-form',\r\n templateUrl: 'dialog-form.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSFormDialog implements OnInit {\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n\r\n","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-suffix]',\r\n})\r\nexport class QMSSuffixDirective {\r\n constructor(private el: ElementRef) {\r\n el.nativeElement.classList.add('qms-suffix');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-suffix-field]',\r\n})\r\nexport class QMSSuffixFieldDirective implements AfterViewChecked {\r\n @ContentChild(QMSSuffixDirective, {static: false}) qmsSuffix: QMSSuffixDirective;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewChecked(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-suffix-field');\r\n }\r\n }\r\n\r\n removeFocus = () => {\r\n this.ele.nativeElement.classList.remove('mat-focused');\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-test-only',\r\n styleUrls: ['./test-only.component.scss'],\r\n templateUrl: './test-only.component.html'\r\n})\r\nexport class TestOnlyComponent {\r\n @Input() text: string = \"\";\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-input-chip-list]',\r\n})\r\nexport class QMSChipInputChipListDirective implements OnInit {\r\n @Input() maxRows: number;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-input-chip-list');\r\n if(this.maxRows && this.maxRows > 0){\r\n this.ele.nativeElement.classList.add(`qms-chip-input-max-${this.maxRows}`)\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input]',\r\n})\r\nexport class QMSChipInputDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-dropdown]',\r\n})\r\nexport class QMSChipInputSelectDropWDownDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-dropdown');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select-trigger]',\r\n})\r\nexport class QMSChipInputSelectTriggerDirective implements OnInit {\r\n public eleSelect: ElementRef;\r\n public autocomplete: MatAutocompleteTrigger;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n click(){\r\n if(this.autocomplete){\r\n if(!this.autocomplete.panelOpen)\r\n this.autocomplete.openPanel();\r\n else\r\n this.autocomplete.closePanel();\r\n }\r\n \r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { QMSChipInputSelectTriggerDirective } from \"./chip-input-select-trigger.directive\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select]',\r\n})\r\nexport class QMSChipInputSelectFieldDirective implements OnInit, AfterViewInit {\r\n @ContentChild(QMSChipInputSelectTriggerDirective, {static: false}) selectTrigger: QMSChipInputSelectTriggerDirective;\r\n @ContentChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.selectTrigger){\r\n this.selectTrigger.autocomplete = this.autocomplete;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-select');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-chip-body]',\r\n})\r\nexport class QMSChipBodyDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-body');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mat-chip[qms-chip]',\r\n})\r\nexport class QMSInputChipDirective implements OnInit, OnChanges {\r\n\r\n @Input() selected: boolean;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-chip-selected');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip');\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-menu-item]',\r\n})\r\nexport class QMSDropdownMenuItem implements OnInit, AfterViewInit, OnChanges{\r\n @ContentChild(\"menuItemContent\", {static: false}) menuItemContent: ElementRef;\r\n @Input() selected: boolean;\r\n \r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n else{\r\n this.ele.nativeElement.classList.remove('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.menuItemContent){\r\n if(this.menuItemContent.nativeElement){\r\n this.menuItemContent.nativeElement.classList.add('qms-dropdown-menu-item__content')\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item');\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n }\r\n}","import { AfterContentChecked, ContentChild, Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-attachment-list]',\r\n})\r\n\r\nexport class QMSAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-display]',\r\n})\r\nexport class QMSFileUploadDisplayDirective implements OnInit, OnChanges{\r\n public eleInput: ElementRef;\r\n public removeInvalid: () => void;\r\n public addInvalid: () => void;\r\n @Input() value;\r\n constructor(public ele: ElementRef, \r\n @Optional() private control: NgControl) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if(this.control){\r\n this.control.control.setValue(this.value? this.value : '');\r\n this.control.control.updateValueAndValidity();\r\n if(this.control.control.valid && this.removeInvalid){\r\n this.removeInvalid();\r\n }\r\n if(this.control.control.invalid && this.addInvalid){\r\n this.addInvalid();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-display]',\r\n})\r\nexport class QMSFileUploadMultipleDisplayDirective implements OnInit{\r\n public eleInput: ElementRef;\r\n @Input() acceptExtension: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n \r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","\r\nexport enum FileErrorType{\r\n noError,\r\n notSupportedExtension,\r\n exceedMaxSize,\r\n}\r\nexport class QMSFileAttachment {\r\n file: File;\r\n fileName: string;\r\n fileContent: string;\r\n fileContentBase64: string;\r\n extension: string;\r\n isSuccessful: boolean;\r\n typeError: FileErrorType;\r\n progress: number;\r\n}","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { QMSUploadFileErrorDialog } from \"../../components/upload-file-error-dialog/upload-file-error-dialog\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-selector]',\r\n})\r\n\r\nexport class QMSFileUploadMultipleSelectorDirective implements OnInit, OnChanges {\r\n @Input() filesForInput: QMSFileAttachment[];\r\n @Output() filesForInputChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n constructor(public ele: ElementRef, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.filesForInput || this.filesForInput.length === 0){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files){\r\n const listFiles: FileList = event.target.files;\r\n let listAttachments : QMSFileAttachment[] = [];\r\n for (let i = 0; i < listFiles.length; i++) {\r\n const file = event.target.files[i];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file; \r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n listAttachments.push(attachment);\r\n }\r\n this.filesForInputChange.emit(listAttachments);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterViewInit, ContentChild, Directive, ElementRef,\r\n HostListener, Input, OnChanges, OnInit } from \"@angular/core\";\r\nimport { QMSFileUploadMultipleDisplayDirective } from \"./file-upload-multiple-display.directive\";\r\nimport { QMSFileUploadMultipleSelectorDirective } from \"./file-upload-multiple-selector.directive\";\r\nimport { ComponentCanDeactivate } from \"./file-upload.directive\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple]',\r\n})\r\nexport class QMSFileUploadMultipleDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadMultipleSelectorDirective, {static: false}) fileSelector: QMSFileUploadMultipleSelectorDirective;\r\n @ContentChild(QMSFileUploadMultipleDisplayDirective, {static: false}) fileDisplay: QMSFileUploadMultipleDisplayDirective;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n \r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollable-attachment-list]',\r\n})\r\n\r\nexport class QMSScrolableAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollable-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n\r\nexport function requiredFileType( types: string[] ) {\r\n return function (control: FormControl) {\r\n const fileName = control.value;\r\n if ( fileName ) {\r\n const extension = fileName.split('.').pop();\r\n const check = types.filter(type => type.toLowerCase() === extension.toLowerCase())\r\n if(check.length === 0){\r\n return {\r\n requiredFileType: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nexport function notExceedSize( size: number ) {\r\n return function (control: FormControl) {\r\n const file = control.value;\r\n if ( file ) {\r\n \r\n if(file.size > size){\r\n return {\r\n notExceedSize: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-selector]',\r\n})\r\n\r\nexport class QMSFileUploadSelectorDirective implements OnInit, OnChanges {\r\n @Input() inputFile: any;\r\n @Output() inputFileChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n public isLoading: boolean;\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.inputFile){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files[0]){\r\n const file = event.target.files[0];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file;\r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n this.inputFileChange.emit(attachment);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterContentChecked, AfterViewInit, ContentChild, Directive, ElementRef,\r\n EventEmitter,\r\n HostListener, Injectable, Input, OnChanges, OnInit, Output, Renderer2, SimpleChanges } from \"@angular/core\";\r\nimport { CanDeactivate } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\nimport { QMSFileUploadDisplayDirective } from \"./file-upload-display.directive\";\r\nimport { QMSFileUploadSelectorDirective } from \"./file-upload-selector.directive\";\r\n\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\r\n}\r\n \r\n@Injectable()\r\nexport class QMSUploadingFileGuard implements CanDeactivate<ComponentCanDeactivate> {\r\n constructor(){}\r\n canDeactivate(component: ComponentCanDeactivate) {\r\n // if there are no pending changes, just allow deactivation; else confirm first\r\n return component.canDeactivate? component.canDeactivate(): true;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload]',\r\n})\r\nexport class QMSFileUploadDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadSelectorDirective, {static: false}) fileSelector: QMSFileUploadSelectorDirective;\r\n @ContentChild(QMSFileUploadDisplayDirective, {static: false}) fileDisplay: QMSFileUploadDisplayDirective;\r\n\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n this.fileDisplay.removeInvalid = this.removeInvalid;\r\n this.fileDisplay.addInvalid = this.addInvalid;\r\n this.fileSelector.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n removeInvalid = () => {\r\n this.ele.nativeElement.classList.remove('mat-form-field-invalid');\r\n }\r\n\r\n addInvalid = () => {\r\n this.ele.nativeElement.classList.add('mat-form-field-invalid');\r\n }\r\n}\r\n","import { AfterContentInit, Directive, ElementRef, Renderer2 } from \"@angular/core\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-form]',\r\n host: { 'class': 'qms-form' }\r\n})\r\nexport class QMSFormFieldDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-textarea]',\r\n host: { 'class': 'qms-form form-textarea' }\r\n})\r\nexport class QMSFormFieldTextareaDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-date]',\r\n host: { 'class': 'qms-form form-datepicker' }\r\n})\r\nexport class QMSFormFieldDatePickerDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\nexport class QMSGroupOptionDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\n\r\nexport class AutocompleteOffDirective {\r\n constructor(private _el: ElementRef) {\r\n this._el.nativeElement.setAttribute('autocomplete', 'off');\r\n this._el.nativeElement.setAttribute('autocorrect', 'off');\r\n this._el.nativeElement.setAttribute('autocapitalize', 'none');\r\n this._el.nativeElement.setAttribute('spellcheck', 'false');\r\n }\r\n}","import { Directive, Input, ElementRef, OnInit, OnDestroy } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-margin]'\r\n})\r\n\r\nexport class MarginDirective implements OnInit {\r\n @Input() dim: string;\r\n @Input() value: string;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dim ?\r\n this.el.nativeElement.style[`margin-${this.dim}`] = `${this.value}px` :\r\n this.value.includes('px')\r\n ? this.el.nativeElement.style[`margin`] = `${this.value}`\r\n : this.el.nativeElement.style[`margin`] = `${this.value}px`;\r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider-lockup]',\r\n})\r\nexport class QMSRangeSliderLockUpDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider-lockup');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider]',\r\n})\r\nexport class QMSRangeSliderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n@Directive({\r\n selector: '[scrollToSelected]'\r\n})\r\nexport class ScrollToSelectedDirective implements OnInit {\r\n @Input() scrollToClass: string;\r\n @HostListener('document:click', ['$event'])\r\n onClick(e) {\r\n const isStepElement = e.currentTarget.activeElement.classList.contains('mat-step-header');\r\n const isStepElementActive = e.currentTarget.activeElement.classList.contains('mat-primary');\r\n if (isStepElement && isStepElementActive) {\r\n this.rerenderView();\r\n }\r\n }\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n rerenderView() {\r\n if (this.el.nativeElement.classList.contains(this.scrollToClass)) {\r\n this.el.nativeElement.scrollIntoView(true, { behavior: 'smooth', block: 'start' });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rerenderView();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollbar]',\r\n})\r\nexport class QMSScrollbarDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollbar');\r\n }\r\n }\r\n}","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, \r\n OnDestroy,\r\n OnInit, Output, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[qms-input-clear]',\r\n})\r\nexport class QMSInputClearDirective {\r\n inputDemo;\r\n inputDemoChange;\r\n constructor(public el: ElementRef) {\r\n el.nativeElement.classList.add('qms-input-clear');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-search-field]',\r\n})\r\nexport class QMSSearchFieldDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-search-field-loading');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-search-field');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-content]',\r\n})\r\nexport class QMSDrawerContentDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-content');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header-action]',\r\n})\r\nexport class QMSDrawerHeaderActionDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header__action');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header]',\r\n})\r\nexport class QMSDrawerHeaderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer]',\r\n})\r\nexport class QMSDrawerDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group-advanced]',\r\n})\r\nexport class QMSTabGroupAdvancedDirective implements OnInit{\r\n @Input() color: string;\r\n @Input() type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced');\r\n if(this.color){\r\n this.ele.nativeElement.classList.add(this.color);\r\n }\r\n if(this.type==='fixed'){\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced-fixed');\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group]',\r\n})\r\nexport class QMSTabGroupDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group');\r\n }\r\n \r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-label]',\r\n})\r\nexport class QMSTabLabelDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-label');\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, Renderer2 } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-text-block-line]'\r\n})\r\nexport class QMSTextBlockLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption-semibold') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption-semibold');\r\n }\r\n else if (this.type == 'caption'){\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'body') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `content size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-text-block-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-text-block]',\r\n})\r\nexport class QMSTextBlockDirective implements OnInit {\r\n\r\n @Input('appearance') appearance: string;\r\n @Input('mode') mode: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-text-block');\r\n if(this.appearance == 'fill'){\r\n this.ele.nativeElement.classList.add('qms-text-block-filled')\r\n }\r\n if(this.mode === 'dark'){\r\n this.ele.nativeElement.classList.add('qms-text-block-dark')\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tooltip-image]',\r\n})\r\nexport class QMSTooltipImageDirective implements OnInit {\r\n @Input('type') type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tooltip-image');\r\n if (this.type) { \r\n this.ele.nativeElement.classList.add(this.type);\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ContentChild, ElementRef, Input, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-tooltip',\r\n templateUrl: './tooltip.html',\r\n styleUrls: ['./tooltip.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n })\r\nexport class QMSToolTipComponent implements OnInit, AfterViewInit {\r\n\r\n /**\r\n * This is simple text which is to be shown in the tooltip\r\n */\r\n @Input() text: string;\r\n @Input() mode: string;\r\n\r\n /**\r\n * This provides finer control on the content to be visible on the tooltip\r\n * This template will be injected in McToolTipRenderer directive in the consumer template\r\n * <ng-template #template>\r\n * content.....\r\n * </ng-template>\r\n */\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @ViewChild('qmsTooltipContainer', {static: false}) qmsTooltipContainer: ElementRef;\r\n constructor(private ele: ElementRef) { }\r\n ngAfterViewInit(): void {\r\n if(this.mode == 'dark'){\r\n this.qmsTooltipContainer.nativeElement.classList.add('qms-tooltip-container-dark')\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}","import { ConnectedPosition, ConnectionPositionPair, Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, TemplateRef } from \"@angular/core\";\r\nimport { QMSToolTipComponent } from \"../../components/tooltip/tooltip\";\r\n\r\n@Directive({\r\n selector: '[qms-tool-tip]'\r\n})\r\nexport class QMSToolTipRendererDirective {\r\n\r\n /**\r\n * This will be used to show tooltip or not\r\n * This can be used to show the tooltip conditionally\r\n */\r\n @Input() showToolTip: boolean = true;\r\n @Input() mode: string;\r\n //If this is specified then specified text will be showin in the tooltip\r\n @Input(`qms-tool-tip`) text: string;\r\n\r\n //If this is specified then specified template will be rendered in the tooltip\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @Input() position: string;\r\n private _overlayRef: OverlayRef;\r\n\r\n constructor(private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef) { }\r\n\r\n /**\r\n * Init life cycle event handler\r\n */\r\n ngOnInit() {\r\n\r\n if (!this.showToolTip) {\r\n return;\r\n }\r\n\r\n let positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n }]);\r\n switch (this.position) {\r\n case 'left': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: -10,\r\n }]);\r\n break;\r\n }\r\n case 'right': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: 10,\r\n }]);\r\n break;\r\n }\r\n case 'top': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -10,\r\n offsetX: 0,\r\n }]);\r\n break;\r\n }\r\n case 'bottom': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 10,\r\n offsetX: 0\r\n }]);\r\n break;\r\n }\r\n }\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy });\r\n }\r\n\r\n /**\r\n * This method will be called whenever mouse enters in the Host element\r\n * i.e. where this directive is applied\r\n * This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay\r\n */\r\n @HostListener('focus')\r\n @HostListener('mouseenter')\r\n show() {\r\n //attach the component if it has not already attached to the overlay\r\n if (this.text && this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef<QMSToolTipComponent>\r\n = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));\r\n tooltipRef.instance.text = this.text;\r\n if (this.mode) {\r\n tooltipRef.instance.mode = this.mode;\r\n }\r\n tooltipRef.instance.contentTemplate = this.contentTemplate;\r\n }\r\n }\r\n\r\n /**\r\n * This method will be called when mouse goes out of the host element\r\n * i.e. where this directive is applied\r\n * This method will close the tooltip by detaching the overlay from the view\r\n */\r\n @HostListener('focusout')\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * Destroy lifecycle event handler\r\n * This method will make sure to close the tooltip\r\n * It will be needed in case when app is navigating to different page\r\n * and user is still seeing the tooltip; In that case we do not want to hang around the\r\n * tooltip after the page [on which tooltip visible] is destroyed\r\n */\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * This method will close the tooltip by detaching the component from the overlay\r\n */\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n Inject,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n CanDisableRipple,\r\n mixinDisableRipple,\r\n} from '@angular/material/core';\r\n\r\n\r\n\r\nexport type ButtonToggleAppearance = 'standard' | 'active' | 'dark';\r\n\r\nexport interface ButtonToggleDefaultOptions {\r\n appearance?: ButtonToggleAppearance;\r\n}\r\n\r\n\r\nexport const BUTTON_TOGGLE_DEFAULT_OPTIONS =\r\n new InjectionToken<ButtonToggleDefaultOptions>('BUTTON_TOGGLE_DEFAULT_OPTIONS');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP =\r\n new InjectionToken<QMSButtonToggleGroup>('QMSButtonToggleGroup');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSButtonToggleGroup),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueIdCounter = 0;\r\n\r\n\r\nexport class ButtonToggleChange {\r\n constructor(\r\n public source: QMSButtonToggle,\r\n public value: any) { }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'qms-button-toggle-group',\r\n providers: [\r\n BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\r\n { provide: BUTTON_TOGGLE_GROUP, useExisting: QMSButtonToggleGroup },\r\n ],\r\n host: {\r\n 'role': 'group',\r\n 'class': 'qms-button-toggle-group',\r\n '[attr.aria-disabled]': 'disabled',\r\n '[class.qms-button-toggle-vertical]': 'vertical',\r\n '[class.qms-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-group-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-group-appearance-dark]': 'appearance === \"dark\"',\r\n },\r\n exportAs: 'qmsButtonToggleGroup',\r\n})\r\nexport class QMSButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\r\n private _vertical = false;\r\n private _disabled = false;\r\n private _selectionModel: SelectionModel<QMSButtonToggle>;\r\n\r\n private _rawValue: any;\r\n\r\n _controlValueAccessorChangeFn: (value: any) => void = () => { };\r\n\r\n _onTouched: () => any = () => { };\r\n\r\n @ContentChildren(forwardRef(() => QMSButtonToggle), {\r\n descendants: true\r\n }) _buttonToggles: QueryList<QMSButtonToggle>;\r\n\r\n\r\n @Input() appearance: ButtonToggleAppearance;\r\n\r\n @Input()\r\n get name(): string { return this._name; }\r\n set name(value: string) {\r\n this._name = value;\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => {\r\n toggle.name = this._name;\r\n toggle._markForCheck();\r\n });\r\n }\r\n }\r\n private _name = `qms-button-toggle-group-${uniqueIdCounter++}`;\r\n\r\n\r\n @Input()\r\n get vertical(): boolean { return this._vertical; }\r\n set vertical(value: boolean) {\r\n this._vertical = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n @Input()\r\n get value(): any {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n\r\n return selected[0] ? selected[0].value : undefined;\r\n }\r\n set value(newValue: any) {\r\n this._setSelectionByValue(newValue);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n\r\n @Output() readonly valueChange = new EventEmitter<any>();\r\n\r\n\r\n get selected(): QMSButtonToggle | QMSButtonToggle[] {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n return (selected[0] || null);\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\r\n }\r\n }\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n this._selectionModel = new SelectionModel<QMSButtonToggle>(false, undefined, false);\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\r\n }\r\n\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._controlValueAccessorChangeFn = fn;\r\n }\r\n\r\n\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n _emitChangeEvent(): void {\r\n const selected = this.selected;\r\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\r\n const event = new ButtonToggleChange(source!, this.value);\r\n this._controlValueAccessorChangeFn(event.value);\r\n this.change.emit(event);\r\n }\r\n\r\n _syncButtonToggle(toggle: QMSButtonToggle,\r\n select: boolean,\r\n isUserInput = false,\r\n deferEvents = false) {\r\n\r\n if (this.selected && !toggle.checked) {\r\n (this.selected as QMSButtonToggle).checked = false;\r\n }\r\n\r\n if (this._selectionModel) {\r\n if (select) {\r\n this._selectionModel.select(toggle);\r\n } else {\r\n this._selectionModel.deselect(toggle);\r\n }\r\n } else {\r\n deferEvents = true;\r\n }\r\n\r\n\r\n if (deferEvents) {\r\n Promise.resolve().then(() => this._updateModelValue(isUserInput));\r\n } else {\r\n this._updateModelValue(isUserInput);\r\n }\r\n }\r\n\r\n\r\n _isSelected(toggle: QMSButtonToggle) {\r\n return this._selectionModel && this._selectionModel.isSelected(toggle);\r\n }\r\n\r\n\r\n _isPrechecked(toggle: QMSButtonToggle) {\r\n if (typeof this._rawValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n return toggle.value === this._rawValue;\r\n }\r\n\r\n\r\n private _setSelectionByValue(value: any | any[]) {\r\n this._rawValue = value;\r\n\r\n if (!this._buttonToggles) {\r\n return;\r\n }\r\n\r\n this._clearSelection();\r\n this._selectValue(value);\r\n }\r\n\r\n\r\n private _clearSelection() {\r\n this._selectionModel.clear();\r\n this._buttonToggles.forEach(toggle => toggle.checked = false);\r\n }\r\n\r\n\r\n private _selectValue(value: any) {\r\n const correspondingOption = this._buttonToggles.find(toggle => {\r\n return toggle.value != null && toggle.value === value;\r\n });\r\n\r\n if (correspondingOption) {\r\n correspondingOption.checked = true;\r\n this._selectionModel.select(correspondingOption);\r\n }\r\n }\r\n\r\n private _updateModelValue(isUserInput: boolean) {\r\n if (isUserInput) {\r\n this._emitChangeEvent();\r\n }\r\n\r\n\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_multiple: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n}\r\n\r\n\r\nconst _ButtonToggleBase = mixinDisableRipple(class { });\r\n\r\n\r\n@Component({\r\n selector: 'qms-button-toggle',\r\n templateUrl: 'button-toggle.html',\r\n styleUrls: ['button-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'qmsButtonToggle',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['disableRipple'],\r\n host: {\r\n '[class.qms-button-toggle-standalone]': '!buttonToggleGroup',\r\n '[class.qms-button-toggle-checked]': 'checked',\r\n '[class.qms-button-toggle-disabled]': 'disabled',\r\n '[class.qms-button-toggle-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-appearance-dark]': 'appearance === \"dark\"',\r\n 'class': 'qms-button-toggle',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.id]': 'id',\r\n '[attr.name]': 'null',\r\n '(focus)': 'focus()',\r\n 'role': 'presentation',\r\n }\r\n})\r\nexport class QMSButtonToggle extends _ButtonToggleBase implements OnInit, AfterViewInit,\r\n CanDisableRipple, OnDestroy {\r\n\r\n private _checked = false;\r\n\r\n\r\n @Input('aria-label') ariaLabel: string;\r\n\r\n\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n\r\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\r\n\r\n\r\n buttonToggleGroup: QMSButtonToggleGroup;\r\n\r\n\r\n get buttonId(): string { return `${this.id}-button`; }\r\n\r\n\r\n @Input() id: string;\r\n\r\n\r\n @Input() name: string;\r\n\r\n\r\n @Input() value: any;\r\n\r\n\r\n @Input() tabIndex: number | null;\r\n\r\n\r\n @Input()\r\n get appearance(): ButtonToggleAppearance {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\r\n }\r\n set appearance(value: ButtonToggleAppearance) {\r\n this._appearance = value;\r\n }\r\n private _appearance: ButtonToggleAppearance;\r\n\r\n\r\n @Input()\r\n get checked(): boolean {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\r\n }\r\n set checked(value: boolean) {\r\n const newValue = coerceBooleanProperty(value);\r\n\r\n if (newValue !== this._checked) {\r\n this._checked = newValue;\r\n\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\r\n }\r\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\r\n private _disabled: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(@Optional() @Inject(BUTTON_TOGGLE_GROUP) toggleGroup: QMSButtonToggleGroup,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _elementRef: ElementRef<HTMLElement>,\r\n private _focusMonitor: FocusMonitor,\r\n @Attribute('tabindex') defaultTabIndex: string,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n super();\r\n\r\n const parsedTabIndex = Number(defaultTabIndex);\r\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\r\n this.buttonToggleGroup = toggleGroup;\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n const group = this.buttonToggleGroup;\r\n this.id = this.id || `qms-button-toggle-${uniqueIdCounter++}`;\r\n\r\n this.name = group.name;\r\n\r\n if (group) {\r\n if (group._isPrechecked(this)) {\r\n this.checked = true;\r\n } else if (group._isSelected(this) !== this._checked) {\r\n group._syncButtonToggle(this, this._checked);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n const group = this.buttonToggleGroup;\r\n\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n\r\n if (group && group._isSelected(this)) {\r\n group._syncButtonToggle(this, false, false, true);\r\n }\r\n }\r\n\r\n focus(options?: FocusOptions): void {\r\n this._buttonElement.nativeElement.focus(options);\r\n }\r\n\r\n _onButtonClick() {\r\n\r\n if (!this._checked) {\r\n this._checked = true;\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\r\n this.buttonToggleGroup._onTouched();\r\n }\r\n }\r\n this.change.emit(new ButtonToggleChange(this, this.value));\r\n }\r\n\r\n\r\n _markForCheck() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n static ngAcceptInputType_disableRipple: BooleanInput;\r\n}","import { ElementRef } from '@angular/core';\r\n\r\nexport type Constructor<T> = new (...args: any[]) => T;\r\n\r\nexport type ThemePalette = 'primary' | 'secondary' | 'light' | 'dark' | undefined;\r\n\r\n/** @docs-private */\r\nexport interface CanColor {\r\n /** Theme color palette for the component. */\r\n color: ThemePalette;\r\n\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: ThemePalette | undefined;\r\n}\r\n\r\n/** @docs-private */\r\nexport type CanColorCtor = Constructor<CanColor>;\r\n\r\n/** @docs-private */\r\nexport interface HasElementRef {\r\n _elementRef: ElementRef;\r\n}\r\n\r\n///** Mixin to augment a directive with a `color` property. */\r\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\r\n return class extends base {\r\n private _color: ThemePalette;\r\n defaultColor = defaultColor;\r\n\r\n get color(): ThemePalette { return this._color; }\r\n set color(value: ThemePalette) {\r\n const colorPalette = value || this.defaultColor;\r\n if (colorPalette !== this._color) {\r\n if (this._color) {\r\n this._elementRef.nativeElement.classList.remove(`qms-${this._color}`);\r\n }\r\n if (colorPalette) {\r\n this._elementRef.nativeElement.classList.add(`qms-${colorPalette}`);\r\n }\r\n\r\n this._color = colorPalette;\r\n }\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n // Set the default color that can be specified from the mixin.\r\n this.color = defaultColor;\r\n }\r\n };\r\n}\r\n","import { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n Optional,\r\n Inject,\r\n Input,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport {\r\n CanColor,\r\n CanColorCtor,\r\n mixinColor,\r\n} from './color';\r\nimport {\r\n CanDisable,\r\n CanDisableCtor,\r\n mixinDisabled,\r\n} from '@angular/material/core';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\nconst DEFAULT_ROUND_BUTTON_COLOR = 'primary';\r\n\r\n/**\r\n * List of classes to add to QMSButton instances based on host attributes to\r\n * style as different variants.\r\n */\r\nconst BUTTON_HOST_ATTRIBUTES = [\r\n 'qms-btn',\r\n 'qms-btn-lg',\r\n 'qms-btn-outlined',\r\n 'qms-btn-outlined-lg',\r\n 'qms-btn-text',\r\n 'qms-btn-text-lg',\r\n 'qms-btn-fab',\r\n 'qms-btn-fab-sm',\r\n 'qms-btn-fab-ext',\r\n 'qms-btn-fab-outlined',\r\n 'qms-btn-fab-outlined-sm',\r\n 'qms-btn-fab-outlined-ext'\r\n];\r\n\r\nclass QMSButtonBase {\r\n constructor(public _elementRef: ElementRef) { }\r\n}\r\n\r\nconst _QMSButtonMixinBase: CanDisableCtor & CanColorCtor &\r\n typeof QMSButtonBase = mixinColor(mixinDisabled(QMSButtonBase));\r\n\r\n\r\n/**\r\n * QMS design button.\r\n */\r\n@Component({\r\n selector: `button[qms-btn], button[qms-btn-lg], button[qms-btn-outlined],\r\n button[qms-btn-outlined-lg], button[qms-btn-text], button[qms-btn-text-lg],\r\n button[qms-btn-fab],button[qms-btn-fab-sm],button[qms-btn-fab-ext],\r\n button[qms-btn-fab-outlined],button[qms-btn-fab-outlined-sm],button[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton',\r\n host: {\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n inputs: ['disabled', 'color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButton extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n\r\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\r\n if (this._hasHostAttributes(attr)) {\r\n (this._getHostElement() as HTMLElement).classList.add(attr);\r\n }\r\n }\r\n\r\n elementRef.nativeElement.classList.add('qms-btn-base');\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Material design anchor button.\r\n */\r\n@Component({\r\n selector: `a[qms-btn], a[qms-btn-lg], a[qms-btn-outlined],\r\n a[qms-btn-outlined-lg], a[qms-btn-text], a[qms-btn-text-lg],\r\n a[qms-btn-fab], a[qms-btn-fab-sm], a[qms-btn-fab-ext],\r\n a[qms-btn-fab-outlined],a[qms-btn-fab-outlined-sm],a[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton, qmsAnchor',\r\n host: {\r\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.aria-disabled]': 'disabled.toString()',\r\n '(click)': '_haltDisabledEvents($event)',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n inputs: ['disabled', 'color'],\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSAnchor extends QMSButton {\r\n @Input() tabIndex: number;\r\n\r\n constructor(\r\n focusMonitor: FocusMonitor,\r\n elementRef: ElementRef,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode: string) {\r\n super(elementRef, focusMonitor, animationMode);\r\n }\r\n\r\n _haltDisabledEvents(event: Event) {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: `button[qms-btn-icon]`,\r\n exportAs: 'qmsButtonIcon',\r\n host: {\r\n 'class': 'qms-btn-icon',\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled',\r\n '[class.active-icon]': 'type',\r\n },\r\n templateUrl: 'button-icon.html',\r\n styleUrls: ['button-icon.scss'],\r\n inputs: ['disabled', 'color', 'type'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButtonIcon extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n @Input('type') type: string;\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n this.renderer.addClass(this._elementRef.nativeElement, 'active-icon');\r\n }\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSButtonToggle, QMSButtonToggleGroup } from './button-toggle';\r\nimport { QMSAnchor, QMSButton, QMSButtonIcon } from './button';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonIcon,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup\r\n ],\r\n declarations: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup,\r\n QMSButtonIcon\r\n ],\r\n})\r\nexport class QMSButtonModule { }\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { QMSButtonModule } from './components/button/button.module';\r\n\r\n@NgModule({\r\n exports: [\r\n MatInputModule,\r\n MatCardModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n QMSButtonModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedMaterialModule { }","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { TranslateLibraryService } from '../services/translation-registry.service';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n constructor(private trans: TranslateLibraryService) {\r\n\r\n }\r\n\r\n transform(value: Date, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n\r\n let valueFormat = '';\r\n let langCode = '';\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n langCode = res || 'en';\r\n });\r\n\r\n\r\n switch (langCode) {\r\n case 'en':\r\n valueFormat = 'MM/DD/YYYY hh:mm';\r\n break;\r\n case 'no':\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n default:\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n }\r\n\r\n return moment(value).format(valueFormat);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n\r\n@NgModule({})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders<SharedModule> {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [TranslateLibraryService, QMSUploadingFileGuard]\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';\r\nimport { QMSComment } from './components/comment/comment';\r\nimport { QMSConfirmDialog, QMSFormDialog } from './components/dialog/dialog';\r\nimport { QMSSuffixDirective, QMSSuffixFieldDirective } from './components/suffix-field/suffix-field.directive';\r\nimport { TestOnlyComponent } from './components/test-only/test-only.component';\r\nimport { QMSChipInputChipListDirective } from './directives/chip-input/chip-input-chip-list.directive';\r\nimport { QMSChipInputDirective } from './directives/chip-input/chip-input-field.directive';\r\nimport { QMSChipInputSelectDropWDownDirective } from './directives/chip-input/chip-input-select-dropdown.directive';\r\nimport { QMSChipInputSelectFieldDirective } from './directives/chip-input/chip-input-select-field.directive';\r\nimport { QMSChipInputSelectTriggerDirective } from './directives/chip-input/chip-input-select-trigger.directive';\r\nimport { QMSChipBodyDirective } from './directives/chips/chip-body.directive';\r\nimport { QMSInputChipDirective } from './directives/chips/chip.directive';\r\nimport { QMSDropdownMenuItem } from './directives/dropdown-menu/dropdown-item.directive';\r\nimport { QMSAttachmentListDirective } from './directives/file-upload/file-upload-attachment-list.directive';\r\nimport { QMSFileUploadDisplayDirective } from './directives/file-upload/file-upload-display.directive';\r\nimport { QMSFileUploadMultipleDisplayDirective } from './directives/file-upload/file-upload-multiple-display.directive';\r\nimport { QMSFileUploadMultipleSelectorDirective } from './directives/file-upload/file-upload-multiple-selector.directive';\r\nimport { QMSFileUploadMultipleDirective } from './directives/file-upload/file-upload-multiple.directive';\r\nimport { QMSScrolableAttachmentListDirective } from './directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nimport { QMSFileUploadSelectorDirective } from './directives/file-upload/file-upload-selector.directive';\r\nimport { QMSFileUploadDirective, QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport {\r\n AutocompleteOffDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective\r\n} from './directives/form.directive';\r\nimport { MarginDirective } from './directives/margin.directive';\r\nimport { QMSRangeSliderLockUpDirective } from './directives/range-slider/range-slider-lockup.directive';\r\nimport { QMSRangeSliderDirective } from './directives/range-slider/range-slider.directive';\r\nimport { ScrollToSelectedDirective } from './directives/scroll-selected/scroll-to-selected.directive';\r\nimport { QMSScrollbarDirective } from './directives/scrollbar/scrollbar.directive';\r\nimport {\r\n QMSInputClearDirective,\r\n QMSSearchFieldDirective\r\n} from './directives/search-field.directive';\r\nimport { QMSDrawerContentDirective } from \"./directives/side-sheet/drawer-content.directive\";\r\nimport { QMSDrawerHeaderActionDirective } from \"./directives/side-sheet/drawer-header-action.directive\";\r\nimport { QMSDrawerHeaderDirective } from \"./directives/side-sheet/drawer-header.directive\";\r\nimport { QMSDrawerDirective } from \"./directives/side-sheet/drawer.directive\";\r\nimport { QMSTabGroupAdvancedDirective } from \"./directives/tab/tab-group-advanced.directive\";\r\nimport { QMSTabGroupDirective } from \"./directives/tab/tab-group.directive\";\r\nimport { QMSTabLabelDirective } from \"./directives/tab/tab-label.directive\";\r\nimport { QMSTextBlockLine } from \"./directives/text-block/text-block-line.directive\";\r\nimport { QMSTextBlockDirective } from \"./directives/text-block/text-block.directive\";\r\nimport { QMSTooltipImageDirective } from './directives/tooltip/tooltip-image.directive';\r\nimport { QMSToolTipRendererDirective } from \"./directives/tooltip/tooltip-renderer.directive\";\r\nimport { SharedMaterialModule } from './material-module';\r\nimport { DateFormatPipe } from './pipe/dateFormat.pipe';\r\nimport { QmsAngularComponent } from './qms-angular.component';\r\nimport { SharedModule } from './shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsAngularComponent,\r\n TestOnlyComponent,\r\n MarginDirective,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n QMSFormFieldTextareaDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSFormFieldDatePickerDirective,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n SharedMaterialModule\r\n ],\r\n exports: [\r\n QmsAngularComponent,\r\n MarginDirective,\r\n TestOnlyComponent,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'fill' } },\r\n { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'none' } },\r\n QMSUploadingFileGuard\r\n ],\r\n // entryComponents: []\r\n})\r\nexport class QmsAngularModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { setLines } from '@angular/material/core';\r\n\r\n\r\n@Directive({\r\n selector: '[leading-icon]',\r\n host: { 'class': 'leading-icon' }\r\n})\r\nexport class QMSListLeadingIcon { }\r\n\r\n@Directive({\r\n selector: '[qms-line]'\r\n})\r\nexport class QMSListLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'subtitle') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `subtitle size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-list-header]',\r\n host: { 'class': 'qms-list-header' }\r\n})\r\nexport class QMSListHeader {\r\n\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion]',\r\n host: { 'class': 'qms-expansion' }\r\n})\r\nexport class QMSListExpansion implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n // setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion-header]',\r\n host: { 'class': 'qms-expansion-header' }\r\n})\r\nexport class QMSListExpansionHeader implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @HostListener('click', ['$event']) onClick($event) {\r\n const qmsList = document.querySelectorAll('.qms-expansion-header');\r\n [].forEach.call(qmsList, (el) => {\r\n el.classList.remove('active-item');\r\n });\r\n this.renderer.addClass(this.elRef.nativeElement, 'active-item');\r\n }\r\n\r\n ngAfterContentInit() {\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'qms-list',\r\n templateUrl: 'list.html',\r\n styleUrls: ['list.scss'],\r\n host: { 'class': 'qms-list' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSList implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-list-item',\r\n templateUrl: 'list-item.html',\r\n styleUrls: ['list.scss'],\r\n host: {\r\n 'class': 'qms-list-item',\r\n '[class.qms-list-item-disabled]': 'disabled',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSListItem implements AfterViewInit {\r\n @Input('type') type: string;\r\n get disabled() { return this._disabled }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n private _disabled = false;\r\n\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n // this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'qms-list-item image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, 'image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, this.type);\r\n }\r\n\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatExpansionModule, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS } from '@angular/material/expansion';\r\n\r\nimport {\r\n QMSList, QMSListItem, QMSListLeadingIcon, QMSListLine,\r\n QMSListHeader, QMSListExpansion, QMSListExpansionHeader\r\n} from './list';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule,\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n declarations: [\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n useValue: {\r\n expandedHeight: '*',\r\n collapsedHeight: '*'\r\n }\r\n }\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSListModule { }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewEncapsulation } from \"@angular/core\";\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\n@Component({\r\n selector: 'qms-rich-text',\r\n templateUrl: 'rich-text.html',\r\n styleUrls: ['rich-text.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSRichText implements OnInit, AfterViewInit, ControlValueAccessor, Validator {\r\n\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Input('placeholder') placeholder: string;\r\n\r\n public _value: string;\r\n\r\n public Editor = [];\r\n\r\n public configEditor = {\r\n placeholder: 'Placeholder',\r\n toolbar: {\r\n items: [\r\n 'undo',\r\n 'redo',\r\n '|',\r\n 'alignment',\r\n '|',\r\n 'bold',\r\n 'italic',\r\n 'strikethrough',\r\n 'underline',\r\n '|',\r\n 'bulletedList',\r\n 'numberedList',\r\n '|',\r\n 'insertTable',\r\n \"blockQuote\",\r\n '|',\r\n 'heading'\r\n ]\r\n },\r\n alignment: {\r\n options: ['left', 'right', 'center', 'justify']\r\n },\r\n };\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n onChange: (_value: any) => void;\r\n onTouched: () => void;\r\n\r\n writeValue(obj: any): void {\r\n this._value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit() {\r\n this.configEditor.placeholder = this.placeholder;\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this._value && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n public onReady(editor) {\r\n if (this._value) {\r\n editor.setData(this._value);\r\n }\r\n this.initEditor(editor);\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n }\r\n\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSRichText } from './rich-text';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSRichText,\r\n ],\r\n declarations: [\r\n QMSRichText,\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSRichTextModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\n@Component({\r\n selector: 'qms-edit-file-name-dialog',\r\n templateUrl: 'edit-file-name-dialog.html',\r\n styleUrls: ['edit-file-name-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSEditFileNameDialog {\r\n fileName: string;\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSEditFileNameDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: string) {\r\n this.fileName = this.data;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n saveChanges(): void {\r\n this.dialogRef.close(this.fileName);\r\n }\r\n\r\n clearInput(): void {\r\n this.fileName = '';\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSEditFileNameDialog } from \"./edit-file-name-dialog\";\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSEditFileNameDialog\r\n ],\r\n declarations: [\r\n QMSEditFileNameDialog\r\n ],\r\n})\r\nexport class QMSEditFileNameDialogModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport class UploadErrorData {\r\n fileNames: string[];\r\n acceptedExtension: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'qms-upload-file-error-dialog',\r\n templateUrl: 'upload-file-error-dialog.html',\r\n styleUrls: ['upload-file-error-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSUploadFileErrorDialog {\r\n unsupportedFiles: string[];\r\n supportedExtensions: string[];\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSUploadFileErrorDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: UploadErrorData) {\r\n this.unsupportedFiles = this.data.fileNames;\r\n this.supportedExtensions = this.data.acceptedExtension;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n ok(): void {\r\n this.dialogRef.close(null);\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSUploadFileErrorDialog } from \"./upload-file-error-dialog\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSUploadFileErrorDialog\r\n ],\r\n declarations: [\r\n QMSUploadFileErrorDialog\r\n ],\r\n})\r\nexport class QMSUploadFileErrorDialogModule { }","export enum DataType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4,\r\n deviation = 5,\r\n checklist = 6,\r\n risk = 7,\r\n deviationType = 8,\r\n checklistCategory = 9,\r\n riskFolder = 10\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { SelectedNode } from \"../model/selected-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-content',\r\n templateUrl: './related-content.component.html',\r\n styleUrls: ['./related-content.component.scss']\r\n})\r\nexport class RelatedContentComponent implements OnInit {\r\n LANG: any;\r\n @Input() header: string;\r\n @Input() contents: Array<SelectedNode> = [];\r\n\r\n dataType = DataType;\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n ngOnInit(): void {\r\n this.LANG = '';\r\n }\r\n\r\n removeContent(content: SelectedNode) {\r\n const index = this.contents.findIndex(x => {\r\n return x.id === content.id;\r\n });\r\n if (index >= 0) {\r\n this.contents.splice(index, 1);\r\n }\r\n }\r\n}\r\n","export enum ModuleType {\r\n documentProcess = 1,\r\n deviation = 2,\r\n checklist = 3,\r\n risk = 4\r\n}\r\n","export class RelatedConst {\r\n public static IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';\r\n public static HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';\r\n public static SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\nexport class PopupData {\r\n moduleId: number;\r\n moduleName: string;\r\n treeData1: Array<TreeModel>;\r\n treeData2: Array<TreeModel>;\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n selectedNode?: Array<any>;\r\n disabledList?: Array<any>;\r\n disabledList2?: Array<any>;\r\n\r\n constructor() {\r\n this.moduleId = 0;\r\n this.moduleName = '';\r\n this.treeData1 = [];\r\n this.treeData2 = [];\r\n this.selectedNode = [];\r\n this.disabledList = [];\r\n this.disabledList2 = [];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IRelated } from \"../model/related-data.model\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class QMSRelatedGlobalService {\r\n searchRelated = new BehaviorSubject<IRelated[]>([]);\r\n\r\n constructor() { }\r\n\r\n setSearchRelated(result: IRelated[]) {\r\n this.searchRelated.next(result);\r\n }\r\n}\r\n ","export const PROCESS_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V9H5V19H15V21H21V15H15V17H7V9H9V7H15V9H21V3H15V5H9V3H3ZM7 5V7H5V5H7ZM19 5V7H17V5H19ZM19 19V17H17V19H19Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H13C11.8954 11 11 11.8954 11 13V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DOCUMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20L4.01 4C4.01 2.9 4.9 2 6 2ZM6 4V20H18V9H13V4H6Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEVIATION_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 21.5L12 2.5L23 21.5H1ZM19.53 19.5L12 6.49L4.47 19.5H19.53ZM11 16.5V18.5H13V16.5H11ZM11 10.5H13V14.5H11V10.5Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const CHECKLIST_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3 13H5V11H3V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 17H5V15H3V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 9H5V7H3V9Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 13H21V11H7V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 17H21V15H7V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 7V9H21V7H7Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const RISK_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V21H21V3H3ZM11 19H5V13H11V19ZM5 11H11V5H5V11ZM19 19H13V13H19V19ZM13 11H19V5H13V11Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4ZM11.17 8L9.17 6H4V18H20V8H11.17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6H12L10.59 4.59Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H17C13.6863 11 11 13.6863 11 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>`;\r\n\r\nexport const REGIONAL_FOLDER_OUTLINED_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H12V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const REGIONAL_FOLDER_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H18C14.6863 11 12 13.6863 12 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\n\r\nexport const KEYBOARD_UP_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"/></svg>\r\n`;\r\n\r\nexport const KEYBOARD_DOWN_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\r\n`;\r\n","export enum DocumentNodeType {\r\n Document = 1,\r\n LinkDocument = 2,\r\n FileDocument = 3,\r\n ShortcutDocument = 4,\r\n Folder = 5, // Level 2\r\n TopFolder = 6, // Level 1\r\n DepartmentFolder = 7,\r\n RegionalFolder = 8\r\n}","export enum ItemIconType {\r\n none = 0,\r\n name = 1,\r\n path = 2,\r\n base64 = 3,\r\n svg = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n}\r\n","import { TreeNode } from '../model/tree-node.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\nlet objData = {};\r\nlet json = JSON;\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const keyObj = json.parse(key);\r\n node.id = keyObj[\"id\"];\r\n node.name = keyObj[\"name\"];\r\n node.parentId = keyObj[\"parentId\"]\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: TreeModel[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: TreeModel[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n let parentKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId\r\n }\r\n objParent[json.stringify(parentKey)] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n let key = {\r\n id: parent[0].rootId,\r\n name: parent[0].rootName,\r\n parentId: \"\"\r\n }\r\n // add node to tree\r\n objData[json.stringify(key)] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: TreeModel[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n let nodeKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: id\r\n }\r\n processNode[json.stringify(nodeKey)] = null;\r\n this.findChild(item.rootId, processNode, array);\r\n\r\n let key = {\r\n id: item.rootId,\r\n name: item.subName,\r\n parentId: id\r\n }\r\n objParent[json.stringify(key)] = { ...objParent[json.stringify(key)], ...processNode };\r\n });\r\n}\r\n\r\nconst TreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default TreeFunctions;\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { ItemIconType } from '../common/item-icon-type.enum';\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport TreeFunctions from '../common/tree.function';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n parentId?: string;\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n}\r\n\r\ninterface ICheckedNode {\r\n id: string;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-tree',\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TreeComponent implements OnInit, OnChanges {\r\n @Input() treeData: Array<TreeModel> = [];\r\n @Input() treeConfig: TreeConfig;\r\n @Input() selectedData: Array<TreeFlatNode> = [];\r\n @Input() selectedRiskData: any = [];\r\n @Input() disabledList: any = [];\r\n @Output() selectNodeEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() selectFolderEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() checkBoxEvent: EventEmitter<TreeFlatNode[]> = new EventEmitter();\r\n @Output() childCheckedEvent: EventEmitter<ICheckedNode> = new EventEmitter();\r\n\r\n listParentObj = {};\r\n filterData: TreeModel[] = [];\r\n treeObject: object;\r\n arrIndex: string[] = [];\r\n checkedNodeList: Array<TreeFlatNode> = [];\r\n useExpandFeature = true;\r\n allowSelectFolder = false;\r\n areaOfCurrentProcess = '';\r\n showCheckBox = false;\r\n allowMultipleCheck = true;\r\n singleSelectedNode = false;\r\n onlyCheckBoxForChild = false;\r\n itemIconType = ItemIconType;\r\n displayType = 1;\r\n openIcon = '';\r\n openIconColor = '#1954A9';\r\n closeIcon = '';\r\n closeIconColor = '#000000';\r\n itemIcon = '';\r\n itemIconSvg = '';\r\n itemIconPath = '';\r\n itemIconBase64 = '';\r\n moduleId: number;\r\n\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n isChecked = false;\r\n checklistSelection: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private domSanitizer: DomSanitizer,\r\n private iconRegistry: MatIconRegistry) {\r\n iconRegistry.addSvgIconLiteral('process', domSanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area_outlined', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('document', domSanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n iconRegistry.addSvgIconLiteral('checklist', domSanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n iconRegistry.addSvgIconLiteral('deviation', domSanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n iconRegistry.addSvgIconLiteral('risk', domSanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('folder', domSanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('folder_outlined', domSanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('local_folder', domSanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('local_folder_outlined', domSanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('enterprise_folder', domSanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('enterprise_folder_outlined', domSanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('regional_folder', domSanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('regional_folder_outlined', domSanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('department_folder', domSanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('department_folder_outlined', domSanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('keyboard_up', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_UP_ICON));\r\n iconRegistry.addSvgIconLiteral('keyboard_down', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_DOWN_ICON));\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {\r\n this.treeData = [...this.treeData, changes.treeData.currentValue];\r\n this.initTreeData();\r\n }\r\n\r\n if (changes.selectedData && JSON.stringify(changes.selectedData.currentValue) !== JSON.stringify(changes.selectedData.previousValue)) {\r\n this.checkSelected(changes.selectedData.currentValue);\r\n } else {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.checklistSelection.deselect(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTreeData();\r\n }\r\n\r\n initTreeData() {\r\n this.treeData.forEach(item => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentObj[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentObj[item.rootId] = 1;\r\n }\r\n });\r\n\r\n if (this.treeConfig.showCheckBox) {\r\n this.filterData = this.treeData;\r\n }\r\n else {\r\n this.filterData = this.treeData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n }\r\n\r\n this.treeObject = TreeFunctions.buildObjectTree(this.filterData);\r\n this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject, 0).map(element => {\r\n const item = this.sortDataTree(element);\r\n element = null;\r\n element = { ...{}, ...item };\r\n return element;\r\n });\r\n\r\n this.useExpandFeature = !this.treeConfig.showCheckBox;\r\n this.allowSelectFolder = this.treeConfig.allowSelectFolder;\r\n this.areaOfCurrentProcess = this.treeConfig.areaOfCurrentProcess;\r\n this.showCheckBox = this.treeConfig.showCheckBox;\r\n this.onlyCheckBoxForChild = this.treeConfig.onlyCheckBoxForChild;\r\n this.moduleId = this.treeConfig.moduleId;\r\n this.openIcon = this.treeConfig.openIcon;\r\n this.openIconColor = this.treeConfig.openIconColor ? this.treeConfig.openIconColor : this.openIconColor;\r\n this.closeIcon = this.treeConfig.closeIcon;\r\n this.closeIconColor = this.treeConfig.closeIconColor ? this.treeConfig.closeIconColor : this.closeIconColor;\r\n this.itemIcon = this.treeConfig.itemIcon;\r\n this.itemIconSvg = this.treeConfig.itemIconSvg;\r\n this.itemIconPath = this.treeConfig.itemIconPath;\r\n this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n this.allowMultipleCheck = this.treeConfig.allowMultipleCheck;\r\n this.singleSelectedNode = this.treeConfig.singleSelectedNode;\r\n this.checklistSelection = new SelectionModel<TreeFlatNode>(this.allowMultipleCheck); /* true: multiple */\r\n\r\n this.displayType = this.getItemIconType(this.treeConfig);\r\n\r\n // Expand child node tree\r\n if (this.treeConfig.expandAll) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n // Risk Tree\r\n if (this.selectedRiskData.length) {\r\n const selectedData = [];\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.selectedRiskData.forEach(x => {\r\n const index = selectedData.findIndex(el => el.id === x.rootId);\r\n if (x.rootId === this.treeControl.dataNodes[i].id && index < 0) {\r\n selectedData.push(this.treeControl.dataNodes[i]);\r\n }\r\n });\r\n }\r\n\r\n this.checkSelected(selectedData);\r\n this.checkBoxEvent.emit(selectedData);\r\n }\r\n\r\n // Disable List\r\n if (this.disabledList.length) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.disabledList.forEach(x => {\r\n if (x.id === this.treeControl.dataNodes[i].id \r\n && (!x.parentId || x.parentId === this.treeControl.dataNodes[i].parentId)) {\r\n this.treeControl.dataNodes[i].disabled = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n sortDataTree(obj) {\r\n if (obj.children) {\r\n let child = [];\r\n const leafNode = obj.children.filter(x => !x.children);\r\n const subFolderNode = obj.children.filter(x => x.children);\r\n subFolderNode.forEach((element, index) => {\r\n let el = element;\r\n this.sortDataTree(el);\r\n child.push(el);\r\n });\r\n\r\n leafNode.forEach(element => {\r\n let el = element;\r\n child.push(el);\r\n });\r\n obj.children = child;\r\n }\r\n return obj;\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n }\r\n\r\n checkSelected(itemSelected: TreeFlatNode[]) {\r\n setTimeout(() => {\r\n if (!this.treeControl['dataNodes']) return;\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n this.checklistSelection.deselect(tree);\r\n\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (tree.id === element.id && tree.parentId === element.parentId && !tree.disabled) {\r\n this.checklistSelection.select(tree);\r\n }\r\n }\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n checkSelectedSameNode(itemSelected: TreeFlatNode[], flag: boolean) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (element.id && tree.id === element.id \r\n && tree.parentId === element.parentId && !tree.disabled) {\r\n flag ? this.checklistSelection.select(tree) : this.checklistSelection.deselect(tree);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n private getItemIconType(treeConfig: TreeConfig) {\r\n if (treeConfig.itemIcon && treeConfig.itemIcon.length) return this.itemIconType.name;\r\n if (treeConfig.itemIconPath && treeConfig.itemIconPath.length) return this.itemIconType.path;\r\n if (treeConfig.itemIconBase64 && treeConfig.itemIconBase64.length) return this.itemIconType.base64;\r\n if (treeConfig.itemIconSvg && treeConfig.itemIconSvg.length) return this.itemIconType.svg;\r\n return this.itemIconType.none;\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild,\r\n parentId: node.parentId,\r\n disabled: false\r\n };\r\n };\r\n\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: TreeFlatNode): boolean {\r\n\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n if (!descendants.length) {\r\n return this.checklistSelection.isSelected(node);\r\n }\r\n const selected = this.checklistSelection.isSelected(node);\r\n\r\n const allSelected = descendants.every(child => this.checklistSelection.isSelected(child));\r\n if (!selected && allSelected) {\r\n this.checklistSelection.select(node);\r\n this.cdRef.markForCheck();\r\n }\r\n return allSelected;\r\n\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: TreeFlatNode): boolean {\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(node: TreeFlatNode): void {\r\n // tree have duplicate node\r\n if (this.treeConfig.canHaveDupId) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id \r\n && this.treeControl.dataNodes[i].parentId === node.parentId \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n } else {\r\n this.checklistSelection.toggle(node);\r\n }\r\n\r\n\r\n // process/ document single selected\r\n if (this.singleSelectedNode) {\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n } else {\r\n const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);\r\n\r\n this.checkSelectedSameNode(descendants, this.checklistSelection.isSelected(node));\r\n\r\n this.checklistSelection.isSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n this.cdRef.markForCheck();\r\n\r\n const allNodeIsParent = this.checklistSelection.selected.every(child => child.expandable);\r\n if (allNodeIsParent) {\r\n this.checklistSelection.selected.forEach(element => {\r\n this.checklistSelection.deselect(element);\r\n });\r\n }\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n\r\n }\r\n\r\n todoChildSelectionToggle(node: TreeFlatNode): void {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id \r\n && this.treeControl.dataNodes[i].parentId === node.parentId \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n // this.checklistSelection.toggle(node);\r\n this.cdRef.markForCheck();\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n }\r\n\r\n public todoItemSelectionById(ids: any[]): void {\r\n ids.forEach(\r\n id => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === id \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n public todoItemSelection(nodes: TreeNode[]): void{\r\n nodes.forEach(\r\n node => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id &&\r\n this.treeControl.dataNodes[i].parentId === node.parentId && \r\n !this.treeControl.dataNodes[i].disabled) {\r\n if(!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n\r\n this.selectNodeEvent.emit(node);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n this.arrIndex.push(node.id);\r\n\r\n const childArray = this.treeData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = '0';\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName, parentId: rootId });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n\r\n getNodeIcon(node: TreeFlatNode) {\r\n if (this.openIcon && this.closeIcon) {\r\n return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;\r\n }\r\n switch (this.moduleId) {\r\n case DataType.document: {\r\n const nodeData = this.treeData.filter(x => { return x.rootId === node.id; });\r\n if (nodeData.length > 0) {\r\n switch (nodeData[0].levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';\r\n case DocumentNodeType.RegionalFolder:\r\n return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';\r\n case DocumentNodeType.TopFolder:\r\n return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';\r\n case DocumentNodeType.Folder:\r\n return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';\r\n }\r\n }\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n case DataType.process:\r\n return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n }\r\n\r\n getItemIcon() {\r\n switch (this.moduleId) {\r\n case DataType.document:\r\n return 'document';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, OnDestroy, ViewChild, ViewEncapsulation, AfterViewChecked, QueryList, ViewChildren } from '@angular/core';\r\nimport { Component, HostListener, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { ModuleType } from '../common/module-type.enum';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport { PopupData } from '../model/popup-data.model';\r\nimport { IRelated, RelatedItem } from '../model/related-data.model';\r\nimport { SelectedNode } from '../model/selected-node.model';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\nimport { QMSRelatedGlobalService } from '../service/related-global.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { CHECKLIST_ICON, DEVIATION_ICON, DOCUMENT_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { TreeComponent } from '../tree/tree.component';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { TreeNode } from '../../../qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model';\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-related-popup',\r\n templateUrl: './related-popup.component.html',\r\n styleUrls: ['./related-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedPopupComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n ngUnsubscribe = new Subject<void>();\r\n\r\n LANG: any;\r\n moduleId = 0;\r\n moduleName = '';\r\n treeData1: Array<TreeModel> = [];\r\n treeData2: Array<TreeModel> = [];\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n\r\n checkedNodeList: Array<SelectedNode> = [];\r\n selectedNode: Array<SelectedNode> = [];\r\n selectedData: Array<TreeFlatNode> = [];\r\n selectedData2: Array<TreeFlatNode> = [];\r\n\r\n commonCheckedList: Array<TreeFlatNode> = [];\r\n documentCheckedList: Array<TreeFlatNode> = [];\r\n singleProcessList: Array<SelectedNode> = [];\r\n singleDocumentList: Array<SelectedNode> = [];\r\n\r\n module = ModuleType;\r\n dataType = DataType;\r\n itemType = 0;\r\n selectedRiskData: any = [];\r\n disabledList: any = [];\r\n disabledList2: any = [];\r\n\r\n isDocumentExpanded = true;\r\n isCommonExpanded = true;\r\n singleSelectedNode = false;\r\n\r\n myControl = new FormControl();\r\n filteredOptions: IRelated[] = [];\r\n isInputValue = false;\r\n onSearch = new EventEmitter();\r\n @ViewChildren(TreeComponent, {}) dataTrees: QueryList<TreeComponent>;\r\n\r\n @ViewChild('autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true })\r\n autoComplete: MatAutocompleteTrigger;\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RelatedPopupComponent>,\r\n public globalService: QMSRelatedGlobalService,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer,\r\n @Inject(MAT_DIALOG_DATA) public data: PopupData\r\n ) {\r\n this.moduleId = data.moduleId;\r\n this.moduleName = data.moduleName;\r\n this.treeData1 = data.treeData1;\r\n this.treeData2 = data.treeData2;\r\n this.treeConfig1 = data.treeConfig1;\r\n this.treeConfig2 = data.treeConfig2;\r\n this.selectedRiskData = data?.selectedNode || [];\r\n this.singleSelectedNode = data.treeConfig1.singleSelectedNode;\r\n this.disabledList = data.disabledList || [];\r\n this.disabledList2 = data.disabledList2 || [];\r\n iconRegistry.addSvgIconLiteral('process', sanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area', sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area_outlined', sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n iconRegistry.addSvgIconLiteral('document', sanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n iconRegistry.addSvgIconLiteral('checklist', sanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n iconRegistry.addSvgIconLiteral('deviation', sanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n iconRegistry.addSvgIconLiteral('risk', sanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n this.globalService.setSearchRelated([]);\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res && res.length) {\r\n this.filteredOptions = res;\r\n }\r\n });\r\n\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.onSearchRelated(val);\r\n });\r\n\r\n this.itemType = this.getDataTypeId(this.moduleId);\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n this.autoComplete.openPanel();\r\n this.setResultHeight();\r\n } else if (this.autoComplete) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n getDataTypeId(moduleId: number) {\r\n let itemType;\r\n switch (moduleId) {\r\n case ModuleType.documentProcess:\r\n itemType = this.dataType.process;\r\n break;\r\n case ModuleType.deviation:\r\n itemType = this.dataType.deviation;\r\n break;\r\n case ModuleType.checklist:\r\n itemType = this.dataType.checklist;\r\n break;\r\n case ModuleType.risk:\r\n itemType = this.dataType.risk;\r\n break;\r\n default:\r\n itemType = this.dataType.document;\r\n break;\r\n }\r\n return itemType;\r\n }\r\n\r\n removeCheckedNodeList(item: TreeFlatNode) {\r\n this.selectedData = [];\r\n this.selectedData2 = [];\r\n\r\n this.checkedNodeList = this.checkedNodeList.filter(x => (x.id !== item.id || x.parentId !== item.parentId));\r\n const tempArr = [];\r\n const tempArrDocument = [];\r\n\r\n this.commonCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n tempArr.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.selectedData = [...tempArr];\r\n\r\n this.documentCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n tempArrDocument.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.selectedData2 = [...tempArrDocument];\r\n\r\n }\r\n\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n setResultHeight(arr?: IRelated[]) {\r\n let maxHeight = 484;\r\n const popup_content = document.getElementsByClassName('qmslib_related_popup_content')[0] as HTMLElement;\r\n const line__divider = document.getElementsByClassName('line__divider')[0] as HTMLElement;\r\n if (popup_content && line__divider) {\r\n maxHeight = this.getOffsetHeight(popup_content, true) + this.getOffsetHeight(line__divider, true) * 2;\r\n }\r\n\r\n const contentResult = document.getElementsByClassName('cdk-virtual-scroll-content-wrapper')[0] as HTMLElement;\r\n const viewreports = document.getElementsByClassName('related-viewport')[0] as HTMLElement;\r\n\r\n if (viewreports) {\r\n if (contentResult.offsetHeight <= maxHeight) {\r\n viewreports.style.height = `${contentResult.offsetHeight}px`;\r\n }\r\n else {\r\n viewreports.style.height = `${maxHeight}px`;\r\n }\r\n }\r\n }\r\n onSearchRelated(_val: any) {\r\n this.filteredOptions = [];\r\n if (typeof (_val) === 'object') {\r\n return;\r\n }\r\n else if (typeof (_val) === 'string') {\r\n if (!!_val) {\r\n this.onSearch.emit(_val);\r\n }\r\n }\r\n }\r\n\r\n getModuleFilteredOptions(moduleId: number) {\r\n return this.filteredOptions.filter(x => x.itemType === moduleId);\r\n }\r\n\r\n showSearchResult() {\r\n this.autoComplete.openPanel();\r\n }\r\n\r\n displayRelated(related?: IRelated): string | undefined {\r\n return related ? related.itemName : undefined;\r\n }\r\n\r\n selectRelated(item: IRelated) {\r\n let index = -1;\r\n this.selectedNode = [];\r\n if (this.treeConfig1.showCheckBox) {\r\n index = this.checkedNodeList.findIndex(x => {\r\n return x.id === item.id && x.parentId === item.parentId;\r\n });\r\n }\r\n\r\n if (index < 0) {\r\n let position = -1;\r\n let node: any;\r\n let typeId: number;\r\n\r\n if (item.itemType === this.dataType.document) {\r\n // document\r\n position = this.treeData2.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = this.dataType.document;\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n else if (item.itemType === this.dataType.folder) {\r\n position = this.treeData2.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = item.itemType;\r\n if (position >= 0) {\r\n if (this.treeConfig2.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviationType\r\n || item.itemType === this.dataType.checklistCategory\r\n || item.itemType === this.dataType.riskFolder) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n this.selectNodeRecursive(this.treeData1[position], item.itemType);\r\n }\r\n else if (item.itemType === this.dataType.area) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = item.itemType;\r\n\r\n if (position >= 0) {\r\n if (this.treeConfig1.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviation ||\r\n item.itemType === this.dataType.checklist) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id && x.rootId === item.parentId;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n const treeNode = {\r\n id: node.childId,\r\n name: node.childName,\r\n children: [],\r\n parentId: node.rootId\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelection([treeNode]);\r\n }\r\n else {\r\n // process, deviation, checklist,...\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n }\r\n }\r\n }\r\n\r\n selectNodeRecursive(item: TreeModel, itemType: DataType) {\r\n let position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.rootId;\r\n });\r\n\r\n if (position >= 0) {\r\n\r\n const node = {\r\n id: item.rootId,\r\n name: item.rootName,\r\n children: []\r\n }\r\n\r\n let nodeChildren: TreeNode[] = this.treeData1.\r\n filter(x => x.rootId === item.rootId).\r\n map(x => {\r\n return {\r\n id: x.childId,\r\n name: item.childName,\r\n children: [],\r\n parentId: item.rootId\r\n };\r\n });\r\n let nodeSubfolders: TreeModel[] = this.treeData1.\r\n filter(x => x.parentId === item.rootId)\r\n\r\n if (this.treeConfig1.showCheckBox) {\r\n nodeChildren.forEach(x => {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString()\r\n });\r\n });\r\n }\r\n else {\r\n nodeChildren.forEach(x => {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString()\r\n });\r\n });\r\n }\r\n\r\n this.dataTrees.toArray()[0].todoItemSelection([node].concat(nodeChildren));\r\n if (nodeSubfolders) {\r\n nodeSubfolders.forEach(folder => {\r\n this.selectNodeRecursive(folder, itemType);\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n\r\n setTypeProcess(expand) {\r\n return expand ? this.dataType.area : this.dataType.process;\r\n }\r\n\r\n getCommonCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.commonCheckedList = [];\r\n this.singleProcessList = [];\r\n this.checkedNodeList = [...this.singleDocumentList];\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id && x.parentId === item.parentId);\r\n\r\n if (item.id && index < 0) {\r\n this.commonCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if(item.expandable){\r\n position = this.treeData1.findIndex(p => p.rootId === item.id);\r\n }\r\n else{\r\n position = this.treeData1.findIndex(p => p.childId === item.id);\r\n }\r\n if(position > 0){\r\n this.singleProcessList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,\r\n itemNumberId: this.treeData1[position].displayId.toString()\r\n });\r\n }\r\n }\r\n\r\n\r\n if (item.id && index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData1.findIndex(p => p.childId === item.id && p.rootId === item.parentId);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.itemType,\r\n parentId: item.parentId,\r\n parentName: this.treeData1[position].rootName,\r\n itemNumberId: this.treeData1[position].displayId.toString()\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleProcessList];\r\n }\r\n }\r\n }\r\n\r\n getDocumentCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.documentCheckedList = [];\r\n this.singleDocumentList = [];\r\n this.checkedNodeList = [...this.singleProcessList];\r\n\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id);\r\n\r\n if (item.id && index < 0) {\r\n this.documentCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n const position = this.treeData2.findIndex(p => p.childId === item.id);\r\n this.singleDocumentList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: item.expandable ? this.dataType.folder : this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString()\r\n });\r\n }\r\n\r\n\r\n if (index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData2.findIndex(p => p.childId === item.id);\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString()\r\n });\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleDocumentList];\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n };\r\n\r\n onAddClick() {\r\n // if (this.treeConfig1.showCheckBox) {\r\n this.dialogRef.close(this.checkedNodeList);\r\n // }\r\n // else {\r\n // this.dialogRef.close(this.selectedNode);\r\n // }\r\n }\r\n\r\n getOffsetHeight(element: HTMLElement, includeMargin: boolean): number {\r\n let elmHeight = 0, elmMargin = 0;\r\n\r\n elmHeight = element.offsetHeight;\r\n if (includeMargin) {\r\n const style = window.getComputedStyle(element);\r\n elmMargin = parseFloat(style.marginTop.replace('px', '')) + parseFloat(style.marginBottom.replace('px', ''));\r\n }\r\n\r\n return (elmHeight + elmMargin);\r\n }\r\n\r\n getItemChipName(item: SelectedNode) {\r\n if(item.itemType === DataType.checklist || item.itemType === DataType.deviation){\r\n return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;\r\n }\r\n return item.itemName;\r\n }\r\n\r\n isEllipsisActive(e: HTMLElement): boolean {\r\n return e ? (e.clientWidth < e.scrollWidth) : false;\r\n }\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\n\r\nexport class RiskAnalysis {\r\n title: string;\r\n dangers: Array<TreeModel>;\r\n dangerConfig: TreeConfig;\r\n selectedDangers: any;\r\n disabledList?: Array<any>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.dangers = [];\r\n this.selectedDangers = [];\r\n this.disabledList = [];\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { DataType } from \"../../common/data-type.enum\";\r\nimport { AnalysisDanger } from \"../../model/analysis-danger.model\";\r\nimport { RiskAnalysis } from \"../../model/risk-analysis.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\nimport { TreeModel } from \"../../model/tree.model\";\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-risk-analysis',\r\n templateUrl: './analysis.component.html',\r\n styleUrls: ['./analysis.component.scss']\r\n})\r\nexport class RiskAnalysisComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n dangers: Array<TreeModel> = [];\r\n dangerConfig: TreeConfig;\r\n analysisDanger: Array<AnalysisDanger> = [];;\r\n\r\n selectedData = [];\r\n nodeCheckedItem = [];\r\n disabledList = [];\r\n\r\n riskData: Array<any> = [];\r\n riskConfig: TreeConfig;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef<RiskAnalysisComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskAnalysis\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.title = this.data.title;\r\n this.dangers = this.data.dangers;\r\n this.dangerConfig = this.data.dangerConfig;\r\n this.selectedData = [...this.data.selectedDangers];\r\n this.disabledList = this.data.disabledList || [];\r\n\r\n // cheat not null when selected\r\n if (this.data.selectedDangers.length) {\r\n this.analysisDanger.push({\r\n analysisId: 1,\r\n analysisName: 'string',\r\n dangerId: 1,\r\n dangerName: 'string',\r\n });\r\n }\r\n\r\n this.riskConfig = {\r\n allowSelectFolder: false,\r\n areaOfCurrentProcess: '',\r\n showCheckBox: true,\r\n allowMultipleCheck: true,\r\n onlyCheckBoxForChild: false,\r\n moduleId: DataType.risk,\r\n openIcon: 'keyboard_arrow_up',\r\n openIconColor: '#1954A9',\r\n closeIcon: 'keyboard_arrow_down',\r\n closeIconColor: '',\r\n itemIcon: 'border_all',\r\n itemIconPath: '',\r\n itemIconBase64: '',\r\n singleSelectedNode: false,\r\n canHaveDupId: false\r\n };\r\n }\r\n\r\n toggleChileNode(list: Array<TreeFlatNode>) {\r\n this.analysisDanger = [];\r\n this.nodeCheckedItem = [];\r\n\r\n\r\n if (list.length) {\r\n this.dangers.forEach(el => {\r\n list.forEach(x => {\r\n if (x.id === el.childId) {\r\n // keep array node selected\r\n this.nodeCheckedItem.push(x);\r\n // create format show analysis \r\n this.analysisDanger.push({\r\n analysisId: +el.rootId,\r\n analysisName: el.rootName,\r\n dangerId: +el.childId,\r\n dangerName: el.childName\r\n })\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onFinishClick(): void {\r\n const data = {\r\n 'nodeSelected': this.nodeCheckedItem,\r\n 'analysisData': this.analysisDanger,\r\n 'riskData': this.dangers || []\r\n }\r\n\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export enum Color {\r\n green = 1,\r\n yellow = 2,\r\n red = 3\r\n}\r\n","export class RiskResult {\r\n title: string;\r\n results: Array<Result>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.results = [];\r\n }\r\n}\r\n\r\nexport class Result {\r\n dangerId: number;\r\n dangerName: string;\r\n color: number;\r\n cause: string;\r\n consequenceArea: string;\r\n result: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../../../services/translation-registry.service\";\r\nimport { Color } from \"../../common/color.enum\";\r\nimport { Result, RiskResult } from \"../../model/risk-result.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-result',\r\n templateUrl: './result.component.html',\r\n styleUrls: ['./result.component.scss']\r\n})\r\nexport class RiskResultComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n results: Array<Result> = [];\r\n color = Color;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RiskResultComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskResult\r\n ) {\r\n this.title = data.title;\r\n this.results = data.results;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export class SideNav {\r\n menu: string;\r\n icon: string;\r\n items: Array<SideNavItem>;\r\n\r\n constructor() {\r\n this.menu = '';\r\n this.icon = '';\r\n this.items = [];\r\n }\r\n}\r\n\r\nexport class SideNavItem {\r\n id: string;\r\n name: string;\r\n url: string;\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { SideNav, SideNavItem } from '../model/sidenav.model';\r\n\r\n@Component({\r\n selector: 'qms-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n @Input() data = new SideNav();\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n menu = '';\r\n icon = '';\r\n items: Array<SideNavItem> = [];\r\n\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.menu = this.data.menu;\r\n this.icon = this.data.icon;\r\n this.items = this.data.items;\r\n }\r\n\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n}\r\n","export enum ActionType {\r\n edit = 1,\r\n detail = 2,\r\n delete = 3\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { ActionType } from \"../../common/action-type.enum\";\r\nimport { DangerAction } from \"../../model/danger-action.model\";\r\nimport { DangerAssessment } from \"../../model/danger-assessment.model\";\r\nimport { Danger } from \"../../model/danger.model\";\r\nimport { RiskDanger } from \"../../model/risk-danger.model\";\r\nimport { RiskResult } from \"../../model/risk-result.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\nimport { RiskResultComponent } from \"../result/result.component\";\r\n\r\n@Component({\r\n selector: 'qms-risk-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss']\r\n})\r\nexport class RiskListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n dangers: Array<Danger> = [];\r\n analysisDanger: Array<DangerAssessment> = [];\r\n dangerAction: DangerAction;\r\n show = 5;\r\n\r\n dangerConfig: TreeConfig;\r\n\r\n resultData: Array<any> = [];\r\n riskAnalysis: Array<any> = [];\r\n\r\n @Input() data: RiskDanger;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog\r\n ) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.dangers = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.dangers = [...changes.data.currentValue.data];\r\n this.show = changes.data.currentValue?.numRow || 5;\r\n\r\n this.analysisDanger = [];\r\n this.groupByDanger(changes.data.currentValue.data, 0);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data?.title || '';\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.dangers = this.data?.data || [];\r\n this.show = this.data?.numRow || 5;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n if (this.dangers.length) {\r\n this.groupByDanger(this.dangers, 0);\r\n }\r\n }\r\n\r\n groupByDanger(dangers: Array<Danger>, i: number) {\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return d.analysisId === x.id;\r\n });\r\n if (index < 0) {\r\n let count = 0;\r\n this.analysisDanger.push({\r\n id: d.analysisId,\r\n name: d.analysisName,\r\n childNumber: 0,\r\n show: this.show,\r\n remain: 0,\r\n dangers: [],\r\n folderId: d.folderId,\r\n statusId: d.statusId\r\n });\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger[i].dangers.findIndex(x => {\r\n return x.dangerId === d.dangerId;\r\n });\r\n\r\n if (index < 0 && this.analysisDanger[i].id === d.analysisId) {\r\n this.analysisDanger[i].dangers.push(d);\r\n count++;\r\n }\r\n });\r\n\r\n this.analysisDanger[i].childNumber = count;\r\n this.analysisDanger[i].remain = count - this.show;\r\n i++;\r\n }\r\n });\r\n }\r\n\r\n editDanger(item) {\r\n this.dangerAction = {\r\n type: ActionType.edit,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n }\r\n const data = { ...this.dangerAction, ...item };\r\n this.updateData.emit(data);\r\n\r\n }\r\n\r\n removeDanger(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n const removedItem = this.analysisDanger[index];\r\n\r\n this.dangerAction = {\r\n type: ActionType.delete,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n\r\n const data = { ...this.dangerAction, ...removedItem };\r\n this.updateData.emit(data);\r\n }\r\n\r\n dangerDetail(danger: Danger) {\r\n this.dangerAction = {\r\n type: ActionType.detail,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n const data = { ...this.dangerAction, ...danger };\r\n this.updateData.emit(data);\r\n }\r\n\r\n increaseShow(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.analysisDanger[index].show = this.analysisDanger[index].childNumber;\r\n this.analysisDanger[index].remain = 0;\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { PROCESS_AREA_ICON } from \"../common/qms-icon.const\";\r\nimport { RelatedData, RelatedItem } from \"../model/related-data.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-list',\r\n templateUrl: './list-related.component.html',\r\n styleUrls: ['./list-related.component.scss']\r\n})\r\nexport class RelatedListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n relatedData: Array<RelatedItem> = [];\r\n dataType = DataType;\r\n // imageProcess = '../qms-angular/src/assets/images/union.svg';\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n @Input() data: RelatedData;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onItemSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n private domSanitizer: DomSanitizer,\r\n public translate: TranslateLibraryService,\r\n private iconRegistry: MatIconRegistry,\r\n ) {\r\n iconRegistry.addSvgIconLiteral('process_area', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.relatedData = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.relatedData = [...changes.data.currentValue.data];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data.title;\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.relatedData = this.data.data;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.imageProcess) as string;\r\n }\r\n\r\n removeItem(index: number) {\r\n this.updateData.emit(index);\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n\r\n onItemClick(item: any): void{\r\n if(this.onItemSelect)\r\n this.onItemSelect.emit(item);\r\n }\r\n}\r\n","import { ScrollingModule } from \"@angular/cdk/scrolling\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { QMSListModule } from \"../list/list.module\";\r\nimport { QmsAngularModule } from '../../qms-angular.module';\r\nimport { SharedMaterialModule } from '../../material-module';\r\nimport { RelatedContentComponent } from \"./content/related-content.component\";\r\nimport { RelatedPopupComponent } from \"./popup/related-popup.component\";\r\nimport { RiskAnalysisComponent } from \"./risk/analysis/analysis.component\";\r\nimport { RiskResultComponent } from \"./risk/result/result.component\";\r\nimport { SidenavComponent } from \"./sidenav/sidenav.component\";\r\nimport { TreeComponent } from \"./tree/tree.component\";\r\nimport { RiskListComponent } from \"./risk/list/list.component\";\r\nimport { RelatedListComponent } from \"./list-other-related/list-related.component\";\r\nimport { QMSScrollbarDirective } from \"../../directives/scrollbar/scrollbar.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n MatCardModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n SharedMaterialModule,\r\n QMSListModule,\r\n QmsAngularModule,\r\n ],\r\n exports: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ]\r\n})\r\nexport class QMSRelatedModule { }\r\n","export class TreeModel {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n levelType?: number;\r\n onlyRead?: boolean;\r\n}\r\n","import { DataType } from \"../common/data-type.enum\";\r\n\r\nexport class TreeConfig {\r\n allowSelectFolder: boolean;\r\n areaOfCurrentProcess: string;\r\n showCheckBox: boolean;\r\n allowMultipleCheck: boolean;\r\n onlyCheckBoxForChild: boolean;\r\n moduleId: DataType;\r\n openIcon?: string;\r\n openIconColor: string;\r\n closeIcon?: string;\r\n closeIconColor: string;\r\n itemIcon?: string;\r\n itemIconPath?: string;\r\n itemIconBase64?: string;\r\n itemIconSvg?: string;\r\n singleSelectedNode: boolean;\r\n canHaveDupId?: boolean;\r\n expandAll?: boolean;\r\n}\r\n","import { Danger } from \"./danger.model\";\r\n\r\nexport class RiskDanger {\r\n title: string;\r\n data: Array<Danger>;\r\n numRow: number;\r\n isNotEditedItem: boolean;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n this.numRow = 5;\r\n this.isNotEditedItem = false;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseComponent implements OnDestroy {\r\n ngUnsubcribe = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubcribe.next();\r\n this.ngUnsubcribe.complete();\r\n }\r\n}\r\n","export class QMSCKEditorDialogData {\r\n title: string;\r\n\r\n content: string;\r\n\r\n checkText?: string;\r\n\r\n isMessage?: boolean;\r\n\r\n isAdvance?: boolean;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorDialogData } from '../../models/qms-ckeditor-dialog.model';\r\n\r\n@Component({\r\n selector: 'app-confirm-popup',\r\n templateUrl: './qms-ckeditor-confirm.component.html',\r\n styleUrls: ['./qms-ckeditor-confirm.component.scss']\r\n})\r\nexport class QMSCKEditorConfirmComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n isNotShowAgain = false;\r\n\r\n constructor(\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorDialogData\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onConfirmClick() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAdvanceConfirmClick() {\r\n const obj = { isConfirmed: true, isNotShowAgain: this.isNotShowAgain };\r\n this.dialogRef.close(obj);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-tree',\r\n templateUrl: './qms-ckeditor-tree.component.html',\r\n styleUrls: ['./qms-ckeditor-tree.component.scss']\r\n})\r\nexport class QMSCKEditorTreeComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() rawData: Array<any> = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() treeData: Array<any> = [];\r\n\r\n @Input() useExpandFeature: boolean;\r\n\r\n @Input() docType: number;\r\n\r\n @Input() allowSelectFolder: boolean;\r\n\r\n @Output() selectNodeEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n @Output() selectFolderEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() listParentObj: any;\r\n\r\n arrIndex: string[] = [];\r\n\r\n @Input() areaOfCurrentProcess: string;\r\n\r\n // tslint:disable-next-line:member-ordering\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n ngOnChanges() {\r\n if (this.treeData) {\r\n this.dataSource.data = this.treeData;\r\n }\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild\r\n };\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n this.selectNodeEvent.emit(node.id);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node.id);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n if (node.level === 0) {\r\n this.arrIndex.push(node.id);\r\n } else {\r\n this.arrIndex.push(node.id);\r\n }\r\n\r\n const childArray = this.rawData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = 0;\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fullscreen',\r\n templateUrl: './qms-ckeditor-fullscreen.component.html',\r\n styleUrls: ['./qms-ckeditor-fullscreen.component.scss']\r\n})\r\nexport class QMSCKEditorFullscreenComponent {\r\n public showFullScreen() {\r\n this.showHideFullScreen('none', 'hide-content-wrapper', '0px', '0px', '0px', '98vh');\r\n }\r\n\r\n public hideFullScreen() {\r\n this.showHideFullScreen('block', 'show-content-wrapper', '0px', '0px', '2px', '93vh');\r\n }\r\n\r\n public showHideFullScreen(\r\n display: string,\r\n className: string,\r\n paddingTop: string,\r\n paddingBottom: string,\r\n marginTopMain: string,\r\n heightIframe: string\r\n ) {\r\n const sidebar = window.parent.document.getElementById('sidebar_left');\r\n if (sidebar) {\r\n if (display === 'block') {\r\n if (!sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.add('show-sidebar_left');\r\n }\r\n } else if (display === 'none') {\r\n if (sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.remove('show-sidebar_left');\r\n }\r\n }\r\n }\r\n const topbars = window.parent.document.getElementsByClassName('navbar-fixed-top');\r\n if (topbars && topbars.length > 0) {\r\n const topbar = topbars[0] as HTMLElement;\r\n topbar.style.display = display;\r\n }\r\n const contentWrapper = window.parent.document.getElementById('content_wrapper');\r\n if (contentWrapper) {\r\n contentWrapper.className = className;\r\n }\r\n\r\n const bodies = window.parent.document.getElementsByTagName('body');\r\n if (bodies && bodies.length > 0) {\r\n const body = bodies[0] as HTMLElement;\r\n body.style.paddingTop = paddingTop;\r\n body.style.paddingBottom = paddingBottom;\r\n if (display === 'block') {\r\n body.classList.remove('sidebar-hidden');\r\n body.classList.add('sidebar-ltr');\r\n } else if (display === 'none') {\r\n body.classList.remove('sidebar-ltr');\r\n body.classList.add('sidebar-hidden');\r\n }\r\n }\r\n const main = window.parent.document.getElementById('main');\r\n if (main) {\r\n main.style.marginTop = marginTopMain;\r\n }\r\n\r\n const iframes = window.parent.document.getElementsByClassName('processIFrameModule');\r\n if (iframes && iframes.length > 0) {\r\n const iframe = iframes[0] as HTMLElement;\r\n iframe.style.height = heightIframe;\r\n }\r\n\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (display === 'none') {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.add('qmsckeditor__fullscreen');\r\n }\r\n } else if (display === 'block') {\r\n if (ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.remove('qmsckeditor__fullscreen');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorGlobalService {\r\n getApiUrlSubject = new BehaviorSubject<any>(null);\r\n\r\n constructor() { }\r\n\r\n setApiUrl(apiUrl: string) {\r\n this.getApiUrlSubject.next(apiUrl);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './qms-ckeditor-global.service';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {\r\n headers = new HttpHeaders();\r\n apiUrl: string;\r\n\r\n constructor(public http: HttpClient, private globalService: QMSCKEditorGlobalService) {\r\n super();\r\n this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n this.apiUrl = res;\r\n })\r\n }\r\n\r\n protected get(url: string, params: any = {}): Observable<any> {\r\n return this.http.get(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n\r\n protected post(url: string, data: any): Observable<any> {\r\n return this.http.post(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected put(url: string, data: any): Observable<any> {\r\n return this.http.put(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected delete(url: string, params: any = {}): Observable<any> {\r\n return this.http.delete(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorLinkAttachment from '../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorLinkService extends QMSCKEditorBaseService {\r\n public getAttachmentList(\r\n module: number,\r\n entityId: string,\r\n supportFileArchiveAttachments: boolean\r\n ): Observable<QMSCKEditorLinkAttachment[]> {\r\n return this.get('ckeditorLink/LinkAttachmentList', { module, entityId, supportFileArchiveAttachments });\r\n }\r\n\r\n public getAnchorDocumentList(documentId: number): Observable<QMSCKEditorLinkAnchorDocument[]> {\r\n return this.get('ckeditorLink/LinkAnchorDoucmentList', { documentId });\r\n }\r\n}\r\n","export default class QMSCKEditorParamter {\r\n module: number;\r\n entityId: string;\r\n}\r\n","export enum CKEditorModule {\r\n document = 1,\r\n process = 2,\r\n deviation = 3,\r\n risk = 4,\r\n checklist = 5,\r\n dashboard = 6\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport QMSCKEditorLinkAttachment from '../../../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../../services/qms-ckeditor-link.service';\r\nimport QMSCKEditorParamter from '../../../common/models/qms-ckeditor-parameter.model';\r\nimport { CKEditorModule } from '../../../common/enums/module.enum';\r\n\r\nexport interface LinkUrl {\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'link-attachment',\r\n templateUrl: './link-attachment.component.html',\r\n styleUrls: ['./link-attachment.component.scss']\r\n})\r\nexport class LinkAttachmentComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n module = 0;\r\n entityId = '';\r\n supportFileArchiveAttachments = false;\r\n attachments: QMSCKEditorLinkAttachment[] = [];\r\n linkUrl: LinkUrl;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<LinkAttachmentComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorParamter\r\n ) {\r\n super();\r\n this.module = data.module;\r\n this.entityId = data.entityId;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getAttachmentList(this.module, this.entityId, this.supportFileArchiveAttachments);\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getAttachmentList(module: number, itemId: string, supportFileArchiveAttachments: boolean) {\r\n this.linkService\r\n .getAttachmentList(module, itemId, supportFileArchiveAttachments)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.attachments = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectedAttachment(extraId: string, fileName: string) {\r\n this.linkUrl = { url: '', title: '' };\r\n if (extraId) {\r\n if (this.module === CKEditorModule.document) {\r\n this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;\r\n }\r\n else if (this.module === CKEditorModule.process) {\r\n this.linkUrl.url = `/api/processes/GetFileContents?fileId=${extraId}`;\r\n }\r\n this.linkUrl.title = fileName;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n}\r\n","export enum LinkAnchor {\r\n Blank = '',\r\n Attachment = 'Idattachment',\r\n Related = 'IdrelatedDocument'\r\n}\r\n","export enum LinkType {\r\n url = 0,\r\n anchorText = 1,\r\n email = 2,\r\n anchorDocument = 3\r\n}\r\n","export enum ProtocolType {\r\n http = 0,\r\n https = 1,\r\n fpt = 2,\r\n new = 3,\r\n other = 4\r\n}\r\n","export enum TargetType {\r\n new = 0,\r\n topmost = 1,\r\n same = 2,\r\n parent = 3\r\n}\r\n","export class QMSCKEditorRelation {\r\n isOnlyDocument: boolean;\r\n isEnableFolder: boolean;\r\n\r\n constructor() {\r\n this.isOnlyDocument = false;\r\n this.isEnableFolder = false;\r\n }\r\n}\r\n","export default class QMSCKEditorLink {\r\n typeId: number;\r\n targetId: number;\r\n protocolId: number;\r\n url: string;\r\n title: string;\r\n edit: boolean;\r\n editorContent: string;\r\n module: number;\r\n entityId: string;\r\n constructor() {\r\n this.typeId = 0;\r\n this.targetId = 0;\r\n this.protocolId = 0;\r\n this.url = '';\r\n this.title = '';\r\n this.edit = false;\r\n this.editorContent = '';\r\n this.entityId = '';\r\n }\r\n}\r\n","export enum QMSCKEditorDocumentType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n}\r\n","import QMSCKEditorTree from '../models/qms-ckeditor-tree.model';\r\nimport { TreeNode } from '../models/qms-ckeditor-tree-node.model';\r\n\r\nlet objData = {};\r\n\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const index = key.indexOf('_');\r\n node.id = key.substr(0, index);\r\n node.name = key.substr(index + 1, key.length - index);\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: QMSCKEditorTree[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: QMSCKEditorTree[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n objParent[`${item.childId}_${item.childName}`] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n // add node to tree\r\n objData[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: QMSCKEditorTree[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n processNode[`${item.childId}_${item.childName}`] = null;\r\n objParent[`${item.rootId}_${item.subName}`] = processNode;\r\n\r\n findChild(item.rootId, processNode, array);\r\n });\r\n}\r\n\r\nconst QMSCKEditorTreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default QMSCKEditorTreeFunctions;\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport QMSCKEditorTree from '../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTreeService extends QMSCKEditorBaseService {\r\n public getDocumentList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetDocumentList');\r\n }\r\n\r\n public getProcessList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetProcessList');\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDocumentType } from '../../common/enums/document-type.enum';\r\nimport QMSCKEditorTreeFunctions from '../../common/functions/tree.function';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport { TreeNode } from '../../common/models/qms-ckeditor-tree-node.model';\r\nimport QMSCKEditorTree from '../../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTreeService } from '../../services/qms-ckeditor-tree.service';\r\n\r\nexport interface Related {\r\n id: number;\r\n name: string;\r\n type: number;\r\n}\r\n\r\nexport interface SelectedNode {\r\n id: string;\r\n type: number;\r\n}\r\n\r\nexport interface LinkUrl {\r\n id: string;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './qmsckeditor-related.component.html',\r\n styleUrls: ['./qmsckeditor-related.component.scss']\r\n})\r\nexport class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n selectedNode: SelectedNode;\r\n linkUrl: LinkUrl;\r\n documentType: QMSCKEditorDocumentType;\r\n processData: QMSCKEditorTree[];\r\n documentData: QMSCKEditorTree[];\r\n filterData: QMSCKEditorTree[];\r\n treeDataFile: object;\r\n treeProcessFile: object;\r\n treeDocumentFile: object;\r\n treeProcessData: TreeNode[];\r\n treeDocumentData: TreeNode[];\r\n processNumber = -1;\r\n listParentProcessId = {};\r\n listParentDocumentId = {};\r\n\r\n myControl = new FormControl();\r\n filteredOptions = [];\r\n isInputValue = false;\r\n isOnlyDocument = false;\r\n isEnableFolder = false;\r\n areaOfCurrentProcess: string;\r\n\r\n constructor(\r\n private treeService: QMSCKEditorTreeService,\r\n private translate: TranslateLibraryService,\r\n private dialogRef: MatDialogRef<QMSCKEditorRelatedComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorRelation\r\n ) {\r\n super();\r\n this.isOnlyDocument = data.isOnlyDocument;\r\n this.isEnableFolder = data.isEnableFolder;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.selectedNode = { id: '', type: 0 };\r\n this.getProcessAndDocumentData();\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.filteredOptions = this.onSearchRelated(val);\r\n });\r\n }\r\n\r\n getProcessAndDocumentData() {\r\n forkJoin([this.getProcessData(), this.getDocumentData()])\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe(([p, d]) => {\r\n this.mappingData(p, 2);\r\n this.mappingData(d, 1);\r\n\r\n // for process\r\n this.filterData = this.processData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeProcessData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n // for document\r\n this.filterData = this.documentData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeDocumentData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n });\r\n }\r\n\r\n getProcessData() {\r\n return this.treeService.getProcessList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n getDocumentData() {\r\n return this.treeService.getDocumentList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n mappingData(array: QMSCKEditorTree[], dataType: number) {\r\n if (array) {\r\n if (dataType === 1) {\r\n this.documentData = array.map((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentDocumentId[item.parentId] = 1;\r\n }\r\n if (!!item.childId && item.childId.length > 0) {\r\n this.listParentDocumentId[item.rootId] = 1;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n } else if (dataType === 2) {\r\n this.processData = array.filter((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentProcessId[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentProcessId[item.rootId] = 1;\r\n }\r\n if (Number(item.displayId) === this.processNumber) {\r\n item.childId = '';\r\n item.childName = '';\r\n this.areaOfCurrentProcess = item.rootId;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onAddDocumentProcess() {\r\n let data: QMSCKEditorTree;\r\n this.linkUrl = { id: '', url: '', title: '' };\r\n switch (this.selectedNode.type) {\r\n case QMSCKEditorDocumentType.document:\r\n data = this.documentData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/document/${data.childId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.process:\r\n data = this.processData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/process-detail/${data.displayId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.area:\r\n data = this.processData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/area/detail/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.folder:\r\n data = this.documentData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/folder/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n\r\n selectAreaNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.area;\r\n }\r\n\r\n selectProcessNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.process;\r\n }\r\n\r\n selectDocumentNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.document;\r\n }\r\n\r\n selectHandbookNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.folder;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n onSearchRelated(_val: string) {\r\n const arr: Related[] = [];\r\n let data = [];\r\n if (typeof _val !== 'string') {\r\n return arr;\r\n }\r\n const val = _val\r\n .trim()\r\n .split(' ')\r\n .map((v) => {\r\n return v.toLowerCase();\r\n });\r\n if (!val || val.length === 0) {\r\n return arr;\r\n }\r\n\r\n if (!this.isOnlyDocument) {\r\n data = this.processData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 2\r\n });\r\n });\r\n }\r\n }\r\n\r\n data = this.documentData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 1\r\n });\r\n });\r\n }\r\n this.setResultHeight(arr);\r\n return arr;\r\n }\r\n\r\n displayRelated(related?: Related): string | undefined {\r\n return related ? related.name : undefined;\r\n }\r\n\r\n selectRelated(id: string, type: number) {\r\n this.selectedNode = { id, type };\r\n this.onAddDocumentProcess();\r\n }\r\n\r\n setResultHeight(arr?: Related[]) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports) {\r\n let iHeight = 0;\r\n const view = viewreports[0] as HTMLElement;\r\n if (arr.length * 5 > 50) {\r\n iHeight = 51;\r\n } else {\r\n iHeight = arr.length * 5 + 1;\r\n if (iHeight > 0) {\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n view.style.height = `${iHeight}vh`;\r\n view.style.display = 'block';\r\n }\r\n }\r\n\r\n hideSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length > 0) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n view.style.display = 'none';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = false;\r\n }\r\n }\r\n }\r\n\r\n showSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n if (view.style.display === 'none') {\r\n view.style.display = 'block';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { LinkAnchor } from '../../common/enums/link-anchor.enum';\r\nimport { LinkType } from '../../common/enums/link-type.enum';\r\nimport { ProtocolType } from '../../common/enums/protocol-type.enum';\r\nimport { TargetType } from '../../common/enums/target-type.enum';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport QMSCKEditorLink from '../../common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';\r\nimport { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { LinkAttachmentComponent } from './attachments/link-attachment.component';\r\n\r\ninterface ILinkType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface ITarget {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IProtocol {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IAnchor {\r\n value: number;\r\n viewValue: string;\r\n anchorValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-link',\r\n templateUrl: './qms-ckeditor-link.component.html',\r\n styleUrls: ['./qms-ckeditor-link.component.scss']\r\n})\r\nexport class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n linkFormGroup: FormGroup = new FormGroup({\r\n targetList: new FormControl(),\r\n protocolList: new FormControl(),\r\n url: new FormControl('', [Validators.required]),\r\n advisoryTitle: new FormControl()\r\n });\r\n anchorTextFormGroup: FormGroup = new FormGroup({\r\n anchorText: new FormControl('', [Validators.required])\r\n });\r\n emailFormGroup: FormGroup = new FormGroup({\r\n emailAddress: new FormControl('', [Validators.required]),\r\n emailSubject: new FormControl('', [Validators.required]),\r\n emailBody: new FormControl('', [Validators.required])\r\n });\r\n anchorDocFormGroup: FormGroup = new FormGroup({\r\n anchorTitle: new FormControl('', [Validators.required]),\r\n anchorByName: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n linkTypes: ILinkType[] = [];\r\n targets: ITarget[] = [];\r\n protocols: IProtocol[] = [];\r\n anchorDocuments: QMSCKEditorLinkAnchorDocument[] = [];\r\n anchors: IAnchor[];\r\n editorAnchors: IAnchor[];\r\n documentAnchors: IAnchor[];\r\n editorContent = '';\r\n selectedLink = 0;\r\n selectedTarget = 0;\r\n selectedProtocol = 0;\r\n url = '';\r\n advisoryTitle = '';\r\n edit = false;\r\n anchorText = '';\r\n emailAddress = '';\r\n emailSubject = '';\r\n emailBody = '';\r\n documentId = 0;\r\n anchorTitle = '';\r\n anchorByName = '';\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLinkComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorLink\r\n ) {\r\n super();\r\n this.selectedLink = data.typeId;\r\n this.selectedTarget = data.targetId;\r\n this.selectedProtocol = data.protocolId;\r\n this.url = data.url;\r\n this.advisoryTitle = data.title;\r\n this.edit = data.edit;\r\n this.editorContent = data.editorContent;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.initLinkType();\r\n this.initTarget();\r\n this.initProtocol();\r\n this.initAnchor();\r\n if (this.data.edit) {\r\n this.parseLinkUrl(this.selectedLink, this.url);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n initLinkType() {\r\n if (this.linkTypes) {\r\n this.linkTypes.push({ id: LinkType.url, name: this.LANG.QMSCKEDITOR.LINK_URL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorText,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_IN_TEXT\r\n });\r\n this.linkTypes.push({ id: LinkType.email, name: this.LANG.QMSCKEDITOR.LINK_EMAIL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorDocument,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_DOCUMENT\r\n });\r\n }\r\n }\r\n\r\n initTarget() {\r\n if (this.targets) {\r\n this.targets.push({ id: TargetType.new, name: this.LANG.QMSCKEDITOR.TARTGET_NEW });\r\n this.targets.push({ id: TargetType.topmost, name: this.LANG.QMSCKEDITOR.TARGET_TOPMOST });\r\n this.targets.push({ id: TargetType.same, name: this.LANG.QMSCKEDITOR.TARGET_SAME });\r\n this.targets.push({ id: TargetType.parent, name: this.LANG.QMSCKEDITOR.TARGET_PARENT });\r\n }\r\n }\r\n\r\n initProtocol() {\r\n if (this.protocols) {\r\n this.protocols.push({ id: ProtocolType.http, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTP });\r\n this.protocols.push({ id: ProtocolType.https, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTPS });\r\n this.protocols.push({ id: ProtocolType.fpt, name: this.LANG.QMSCKEDITOR.PROTOCOL_FTP });\r\n this.protocols.push({ id: ProtocolType.new, name: this.LANG.QMSCKEDITOR.PROTOCOL_NEW });\r\n this.protocols.push({ id: ProtocolType.other, name: this.LANG.QMSCKEDITOR.PROTOCOL_OTHER });\r\n }\r\n }\r\n\r\n initAnchor() {\r\n this.anchors = [];\r\n this.anchors = [{ value: 0, viewValue: '', anchorValue: LinkAnchor.Blank }];\r\n }\r\n\r\n parseLinkUrl(typeId: number, url: string) {\r\n if (typeId === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n this.anchorText = url.substr(1);\r\n } else if (typeId === LinkType.email) {\r\n const p1 = url.indexOf('mailto:');\r\n const p2 = url.indexOf('?subject=');\r\n const p3 = url.indexOf('&body=');\r\n this.emailAddress = url.substr(p1 + 7, p2 - 7);\r\n this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);\r\n this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);\r\n } else if (typeId === LinkType.anchorDocument) {\r\n const flashIndex = url.lastIndexOf('/');\r\n const hashIndex = url.indexOf('#');\r\n const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);\r\n const documentId = parseInt(sId, 10);\r\n this.getAnchorDocument(documentId);\r\n this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);\r\n this.anchorTitle = this.data.title;\r\n }\r\n }\r\n\r\n onSelectedLinkType() {\r\n if (this.selectedLink === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n if (!this.documentAnchors) {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n }\r\n }\r\n\r\n eHandbook(isOnlyDocument: boolean, isAnchorDocument: boolean) {\r\n const data = new QMSCKEditorRelation();\r\n data.isOnlyDocument = isOnlyDocument;\r\n data.isEnableFolder = !isOnlyDocument;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorRelatedComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (!isAnchorDocument) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n } else {\r\n this.documentId = result.id;\r\n this.anchorTitle = `${result.title}(${result.id})`;\r\n this.getAnchorDocument(result.id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n attachment() {\r\n const data = new QMSCKEditorParamter();\r\n data.module = this.data.module;\r\n data.entityId = this.data.entityId;\r\n const dialogTemplate = this.dialog.open(LinkAttachmentComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n }\r\n });\r\n }\r\n\r\n getEditorAnchor() {\r\n this.anchorDocuments = [];\r\n if (this.editorContent) {\r\n this.anchorDocuments.push({\r\n id: 0,\r\n entityId: 0,\r\n documentId: 0,\r\n documentTypeId: 0,\r\n richText: this.editorContent\r\n });\r\n }\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.editorAnchors = this.anchors;\r\n }\r\n\r\n getAnchorDocument(documentId: number) {\r\n this.linkService\r\n .getAnchorDocumentList(documentId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.anchorDocuments = res;\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n } else {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n });\r\n }\r\n\r\n setAnchorDocument(anchorDocument: QMSCKEditorLinkAnchorDocument[]) {\r\n this.initAnchor();\r\n let id = 3;\r\n if (anchorDocument) {\r\n anchorDocument.forEach((e) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = e.richText;\r\n const domContent = div;\r\n const aTags = domContent.getElementsByTagName('a');\r\n if (aTags) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < aTags.length; i++) {\r\n const tag = aTags[i];\r\n if (tag.name) {\r\n const index = this.anchors.findIndex((x) => {\r\n return x.anchorValue === tag.name;\r\n });\r\n if (index < 0) {\r\n this.anchors.push({\r\n value: id,\r\n viewValue: tag.name,\r\n anchorValue: tag.name\r\n });\r\n id += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.anchors.push({\r\n value: 1,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_ATTACHMENT,\r\n anchorValue: LinkAnchor.Attachment\r\n });\r\n this.anchors.push({\r\n value: 2,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_RELATED_DOCUMENT,\r\n anchorValue: LinkAnchor.Related\r\n });\r\n }\r\n\r\n disableOkButton() {\r\n let isDisable = false;\r\n switch (this.selectedLink) {\r\n case LinkType.url:\r\n isDisable = this.linkFormGroup.invalid;\r\n break;\r\n case LinkType.anchorText:\r\n isDisable = this.anchorTextFormGroup.invalid;\r\n break;\r\n case LinkType.email:\r\n isDisable = this.emailFormGroup.invalid;\r\n break;\r\n case LinkType.anchorDocument:\r\n isDisable = this.anchorDocFormGroup.invalid;\r\n break;\r\n default:\r\n break;\r\n }\r\n return isDisable;\r\n }\r\n\r\n setLink() {\r\n const link = new QMSCKEditorLink();\r\n link.typeId = this.selectedLink;\r\n link.targetId = this.selectedTarget;\r\n link.protocolId = this.selectedProtocol;\r\n if (this.selectedLink === LinkType.url) {\r\n link.url = `${this.selectedLink}${this.selectedProtocol}${this.url}`;\r\n link.title = this.advisoryTitle;\r\n } else if (this.selectedLink === LinkType.anchorText) {\r\n link.url = `${this.selectedLink}${0}#${this.anchorText}`;\r\n link.title = `#${this.anchorText}`;\r\n link.targetId = TargetType.same;\r\n } else if (this.selectedLink === LinkType.email) {\r\n link.url = `${this.selectedLink}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody\r\n }`;\r\n link.title = this.emailAddress;\r\n link.targetId = TargetType.same;\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n link.url = `${this.selectedLink}${0}/document/${this.documentId}#${this.anchorByName}`;\r\n link.title = this.anchorTitle;\r\n link.targetId = TargetType.same;\r\n }\r\n this.dialogRef.close(link);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, Injector } from '@angular/core';\r\n\r\n// @dynamic\r\nexport class QMSCKEditorInjector {\r\n private static injector: Injector;\r\n\r\n static setInjector(injector: Injector) {\r\n QMSCKEditorInjector.injector = injector;\r\n }\r\n\r\n static getInjector(): Injector {\r\n return QMSCKEditorInjector.injector;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getService(type: any) {\r\n const injector = QMSCKEditorInjector.getInjector();\r\n const service = injector.get(type);\r\n return service;\r\n }\r\n}\r\n","import {\r\n MatSnackBar,\r\n MatSnackBarConfig,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from '@angular/material/snack-bar';\r\nimport { QMSCKEditorInjector } from '../../services/qms-ckeditor-injector.service';\r\n\r\nexport class QMSCKEditorToastService {\r\n static horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n\r\n static verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n static actionButtonLabel = 'Close';\r\n\r\n static action = true;\r\n\r\n static setAutoHide = true;\r\n\r\n static autoHide = 3000;\r\n\r\n static success(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-success'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static warning(msg, duration?: number) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = duration || (this.setAutoHide ? this.autoHide : 0);\r\n config.panelClass = ['toast-warning'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static info(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-infor'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static error(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = 0;\r\n config.panelClass = ['toast-error'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n}\r\n","export class QMSCKEditorTemplate {\r\n id: number;\r\n title: string;\r\n description: string;\r\n content: string;\r\n deleted: boolean;\r\n createdBy: number;\r\n edit: boolean;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.title = '';\r\n this.description = '';\r\n this.content = '';\r\n this.deleted = false;\r\n this.createdBy = 0;\r\n this.edit = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorTemplate } from '../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTemplateService extends QMSCKEditorBaseService {\r\n public deleteTemplate(id: number): Observable<boolean> {\r\n return this.delete('ckeditorTemplate/DeleteTemplate', { id });\r\n }\r\n public getTemplate(): Observable<QMSCKEditorTemplate[]> {\r\n return this.get('ckeditorTemplate/GetTemplateList');\r\n }\r\n\r\n public modifyTemplate(template: QMSCKEditorTemplate): Observable<boolean> {\r\n return this.post('ckeditorTemplate/ModifyTemplate', template);\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\n\r\ninterface ITemplate {\r\n id: number;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-template',\r\n templateUrl: './qms-ckeditor-template.component.html',\r\n styleUrls: ['./qms-ckeditor-template.component.scss']\r\n})\r\nexport class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n templateFormGroup: FormGroup = new FormGroup({\r\n templateList: new FormControl(),\r\n title: new FormControl('', [Validators.required]),\r\n description: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n content: string;\r\n templateList: QMSCKEditorTemplate[] = [];\r\n templates: ITemplate[] = [];\r\n template = new QMSCKEditorTemplate();\r\n selectedId = 0;\r\n isEdit = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTemplate\r\n ) {\r\n super();\r\n this.content = data.content;\r\n this.selectedId = data.id;\r\n this.isEdit = data.edit;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templateList = response;\r\n this.templates = response.map((x) => {\r\n return {\r\n id: x.id,\r\n title: x.title\r\n };\r\n });\r\n this.addNoneTemplate(this.templates);\r\n } else {\r\n this.addNoneTemplate(this.templates);\r\n }\r\n\r\n if (this.isEdit && this.selectedId !== 0) {\r\n this.onSelectChange();\r\n }\r\n });\r\n }\r\n\r\n addNoneTemplate(template: ITemplate[]) {\r\n if (template && !this.isEdit) {\r\n template.unshift({\r\n id: 0,\r\n title: this.LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE\r\n });\r\n }\r\n }\r\n\r\n onSelectChange() {\r\n if (this.selectedId === 0) {\r\n this.template.id = this.selectedId;\r\n this.template.title = '';\r\n this.template.description = '';\r\n this.template.content = this.content;\r\n this.template.deleted = false;\r\n this.template.createdBy = 0;\r\n } else if (this.templateList.length > 0) {\r\n const index = this.templateList.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n this.template.id = this.templateList[index].id;\r\n this.template.title = this.templateList[index].title;\r\n this.template.description = this.templateList[index].description;\r\n this.template.content = this.templateList[index].content;\r\n this.template.deleted = this.templateList[index].deleted;\r\n this.template.createdBy = this.templateList[index].createdBy;\r\n }\r\n }\r\n\r\n deleteTemplate() {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(this.selectedId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n this.selectedId = 0;\r\n this.onSelectChange();\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n if (this.selectedId === 0) {\r\n this.template.content = this.content;\r\n }\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0 && this.selectedId !== 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n\r\n cancelTemplate() {\r\n this.dialogRef.close();\r\n }\r\n\r\n updateTemplate() {\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (this.isEdit) {\r\n this.dialogRef.close(this.template);\r\n } else {\r\n let index = this.templates.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n index = this.templateList.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templateList[index].description = this.template.description;\r\n }\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\nimport { QMSCKEditorTemplateComponent } from '../qms-ckeditor-template/qms-ckeditor-template.component';\r\n\r\n@Component({\r\n selector: 'app-qmsck-load-template',\r\n templateUrl: './qms-ckeditor-load-template.component.html',\r\n styleUrls: ['./qms-ckeditor-load-template.component.scss']\r\n})\r\nexport class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n templates: QMSCKEditorTemplate[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLoadTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: string\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templates = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.CHANGE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_CHANGE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const content = this.templates[index].content;\r\n this.dialogRef.close(content);\r\n }\r\n });\r\n }\r\n\r\n onEditTemplate(id: number) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = this.templates[index].id;\r\n data.content = this.templates[index].content;\r\n data.edit = true;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templates[index].title = result.title;\r\n this.templates[index].description = result.description;\r\n }\r\n });\r\n }\r\n\r\n onDeleteTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { QMSCKEditorToastService } from '../toast/qms-ckeditor-toast.service';\r\nexport class UploadAdapter {\r\n loader: any;\r\n constructor(loader) {\r\n this.loader = loader;\r\n }\r\n\r\n upload() {\r\n return this.loader.file\r\n .then((file) => {\r\n return new Promise((resolve, reject) => {\r\n const myReader = new FileReader();\r\n myReader.onloadend = () => {\r\n resolve({ default: myReader.result });\r\n };\r\n // if (file.size > 512000) {\r\n // const msg = `${file.name} is more than 500kb. Sorry, it has to be less than or equal to 500kb`;\r\n // QMSCKEditorToastService.error(msg);\r\n // reject();\r\n // }\r\n myReader.readAsDataURL(file);\r\n });\r\n })\r\n .catch((error) => {\r\n throw error;\r\n });\r\n }\r\n}\r\n","export class CKEditorEventConst {\r\n public static QMSCK_FULLSCREEN_PLUGIN_MSG = 'QMSCK_FULLSCREEN_PLUGIN_MSG';\r\n public static QMSCK_TEMPLATE_PLUGIN_MSG = 'QMSCK_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_MSG = 'QMSCK_LOAD_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_RESP = 'QMSCK_LOAD_TEMPLATE_PLUGIN_RESP';\r\n public static QMSCK_LINK_PLUGIN_MSG = 'QMSCK_LINK_PLUGIN_MSG';\r\n public static QMSCK_LINK_PLUGIN_RESP = 'QMSCK_LINK_PLUGIN_RESP';\r\n}\r\n","var IFRAME_SRC = '//cdn.iframe.ly/api/iframe';\r\nvar API_KEY = 'b499e92e857f435c39c14d';\r\n\r\nfunction getCKEditorConfiguration(itemToolbar: string) {\r\n const ckeditorConfig = {\r\n toolbar: {\r\n items: [\r\n ],\r\n viewportTopOffset: 30,\r\n shouldNotGroupWhenFull: true\r\n },\r\n language: 'en',\r\n table: {\r\n contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']\r\n },\r\n image: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n toolbar: [\r\n 'imageResize:25',\r\n 'imageResize:50',\r\n 'imageResize:75',\r\n 'imageResize:original',\r\n 'imageStyle:alignLeft',\r\n 'imageStyle:alignCenter',\r\n 'imageStyle:alignRight',\r\n '|',\r\n 'imageTextAlternative',\r\n '|',\r\n 'linkImage'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'imageResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'imageResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'imageResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'imageResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'medium'\r\n }\r\n ]\r\n },\r\n video: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'videoResize',\r\n '|',\r\n 'videoResize:25',\r\n 'videoResize:50',\r\n 'videoResize:75',\r\n 'videoResize:original',\r\n 'videoStyle:alignLeft',\r\n 'videoStyle:alignCenter',\r\n 'videoStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'videoResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'videoResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'videoResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'videoResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n media: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n // Configure 'mediaEmbed' with Iframely previews.\r\n mediaEmbed: {\r\n // Previews are always enabled if there’s a provider for a URL (below regex catches all URLs)\r\n // By default `previewsInData` are disabled, but let’s set it to `false` explicitely to be sure\r\n previewsInData: true,\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ],\r\n // providers: [\r\n // {\r\n // // hint: this is just for previews. Get actual HTML codes by making API calls from your CMS\r\n // name: 'iframely previews',\r\n // // Match all URLs or just the ones you need:\r\n // url: /.+/,\r\n\r\n // html: match => {\r\n // const url = match[0];\r\n\r\n // var iframeUrl = IFRAME_SRC + '?app=1&api_key=' + API_KEY + '&url=' + encodeURIComponent(url);\r\n // // alternatively, use &key= instead of &api_key with the MD5 hash of your api_key\r\n // // more about it: https://iframely.com/docs/allow-origins\r\n\r\n // return (\r\n // // If you need, set maxwidth and other styles for 'iframely-embed' class - it's yours to customize\r\n // '<div class=\"iframely-embed\">' +\r\n // '<div class=\"iframely-responsive\">' +\r\n // `<iframe src=\"${iframeUrl}\" ` +\r\n // 'frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen>' +\r\n // '</iframe>' +\r\n // '</div>' +\r\n // '</div>'\r\n // );\r\n // }\r\n // }\r\n // ]\r\n },\r\n link: {\r\n addTargetToExternalLinks: false,\r\n decorators: [\r\n {\r\n mode: 'manual',\r\n label: 'New window',\r\n attributes: {\r\n target: '_blank',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Topmost window',\r\n attributes: {\r\n target: '_top',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Same window',\r\n attributes: {\r\n target: '_self',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Parent window',\r\n attributes: {\r\n target: '_parent',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n // alway put this one a the bottom\r\n mode: 'manual',\r\n label: 'Select range',\r\n attributes: {\r\n selectedRange: true\r\n }\r\n }\r\n ]\r\n }\r\n };\r\n\r\n if (itemToolbar) {\r\n const itemArray = itemToolbar.split(',');\r\n itemArray.forEach(i => {\r\n ckeditorConfig.toolbar.items.push(i);\r\n });\r\n }\r\n\r\n return ckeditorConfig;\r\n}\r\n\r\nconst CKEditorCommonFunctions = {\r\n getCKEditorConfiguration\r\n};\r\nexport default CKEditorCommonFunctions;\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadAdapter } from './common/classes/uploadAdapter';\r\nimport { CKEditorEventConst } from './common/constants/ckeditorEvent.constant';\r\nimport CKEditorCommonFunctions from './common/functions/common.function';\r\nimport { QMSCKEdtiorInputData } from './common/models/qms-ckeditor-input.model';\r\nimport { QMSCKEditorPlugin } from './common/models/qms-ckeditor-plugin.model';\r\nimport QMSCKEditorLink from './common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorTemplate } from './models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from './qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './services/qms-ckeditor-global.service';\r\n\r\n@Component({\r\n selector: 'qms-ckeditor',\r\n templateUrl: './qms-ckeditor.component.html',\r\n styleUrls: ['./qms-ckeditor.component.scss'],\r\n providers: [\r\n QMSCKEditorFullscreenComponent,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSCKEditorComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewInit, Validator {\r\n @Input() qmsckData: QMSCKEdtiorInputData;\r\n @Input() qmsckPlugin: QMSCKEditorPlugin;\r\n @Input() qmsckContentInput: string;\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Output() qmsckContentOutput: EventEmitter<string> = new EventEmitter();\r\n\r\n ckEditor: any;\r\n name: string;\r\n ckeditorConfig: any;\r\n ckEditorEventConst = CKEditorEventConst;\r\n countWord: number;\r\n countChar: number;\r\n editorInstance: any;\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n switch (event.data.eventName) {\r\n case this.ckEditorEventConst.QMSCK_FULLSCREEN_PLUGIN_MSG:\r\n this.fullscreenEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TEMPLATE_PLUGIN_MSG:\r\n this.templateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_MSG:\r\n this.loadTemplateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LINK_PLUGIN_MSG:\r\n this.linkEventHandling(event.data.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Constructor\r\n */\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private globalService: QMSCKEditorGlobalService,\r\n private qmsCKEditorFullscreenComponent: QMSCKEditorFullscreenComponent,\r\n private renderer: Renderer2,\r\n private elRef: ElementRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.name = 'CKEditor custom build';\r\n this.ckEditor = this.qmsckPlugin.pluginObject;\r\n this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);\r\n this.globalService.setApiUrl(this.qmsckData.apiUrl);\r\n }\r\n\r\n onChange: (content: any) => void;\r\n onTouched: () => void;\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this.qmsckContentInput && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * onReady\r\n */\r\n public onReady(editor) {\r\n this.editorInstance = editor;\r\n if (this.qmsckContentInput) {\r\n editor.setData(this.qmsckContentInput);\r\n }\r\n\r\n this.initEditor(editor);\r\n\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {\r\n return new UploadAdapter(loader);\r\n };\r\n\r\n // Apped Wordcount to CKeditor\r\n editor.plugins.get('WordCount').on('update', (evt, stats) => {\r\n // Prints the current content statistics.\r\n const wordsBox = document.querySelector('.wordcount-content');\r\n wordsBox.textContent = `Words: ${stats.words} / Characters: ${stats.characters}`;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Full screen - Restore down\r\n */\r\n public fullscreenEventHandling() {\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n this.qmsCKEditorFullscreenComponent.showFullScreen();\r\n } else {\r\n this.qmsCKEditorFullscreenComponent.hideFullScreen();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public templateEventHandling() {\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = 0;\r\n data.content = this.qmsckContentInput;\r\n data.edit = false;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '520px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n // TDO\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public loadTemplateEventHandling() {\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLoadTemplateComponent, {\r\n width: '650px',\r\n height: '700px',\r\n data: this.qmsckContentInput,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Anchor - Link - Image mapping\r\n */\r\n public linkEventHandling(link) {\r\n let data = new QMSCKEditorLink();\r\n data = link;\r\n data.editorContent = this.qmsckContentInput;\r\n data.module = this.qmsckData.module;\r\n data.entityId = this.qmsckData.entityId;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {\r\n width: '650px',\r\n height: '660px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n}\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { Injector, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\nimport { QMSCKEditorConfirmComponent } from './common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorTreeComponent } from './common/module/tree/qms-ckeditor-tree.component';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { LinkAttachmentComponent } from './components/qms-ckeditor-link/attachments/link-attachment.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorRelatedComponent } from './components/qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorComponent } from './qms-ckeditor.component';\r\nimport { QMSCKEditorInjector } from './services/qms-ckeditor-injector.service';\r\nimport { SharedModule } from '../shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QMSCKEditorFullscreenComponent,\r\n QMSCKEditorComponent,\r\n QMSCKEditorTemplateComponent,\r\n QMSCKEditorLoadTemplateComponent,\r\n QMSCKEditorConfirmComponent,\r\n QMSCKEditorLinkComponent,\r\n QMSCKEditorTreeComponent,\r\n QMSCKEditorRelatedComponent,\r\n LinkAttachmentComponent\r\n ],\r\n imports: [\r\n CKEditorModule,\r\n CommonModule,\r\n MatCommonModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatSnackBarModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n ScrollingModule,\r\n HttpClientModule,\r\n SharedModule\r\n ],\r\n providers: [],\r\n exports: [QMSCKEditorComponent],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSCKEditorModule {\r\n constructor(private injectors: Injector) {\r\n QMSCKEditorInjector.setInjector(this.injectors);\r\n }\r\n}\r\n","export class QMSCKEditorData {\r\n apiUrl: string;\r\n module: number;\r\n entityId: string;\r\n documentId: number;\r\n\r\n constructor() {\r\n this.apiUrl = '';\r\n this.module = 0;\r\n this.entityId = '';\r\n this.documentId = 0;\r\n }\r\n}\r\n","export class QMSCKEdtiorInputData {\r\n apiUrl: string;\r\n module: number;\r\n entityId: string;\r\n documentId: number;\r\n\r\n constructor() {\r\n this.apiUrl = '';\r\n this.module = 0;\r\n this.entityId = '';\r\n this.documentId = 0;\r\n }\r\n}\r\n","export class QMSCKEditorLinkAnchorDocument {\r\n id: number;\r\n entityId: number;\r\n documentId: number;\r\n documentTypeId: number;\r\n richText: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.entityId = 0;\r\n this.documentId = 0;\r\n this.documentTypeId = 0;\r\n this.richText = '';\r\n }\r\n}\r\n","export default class QMSCKEditorLinkAttachment {\r\n itemId: string;\r\n fileName: string;\r\n placementId: number;\r\n processrelationTypeId: number;\r\n extension: string;\r\n description: string;\r\n sort: number;\r\n extraId: string;\r\n}\r\n","export default class QMSCKEditorTree {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n}\r\n","export class QMSCKEditorPlugin {\r\n pluginObject: any;\r\n itemToolbar: string;\r\n\r\n constructor() {\r\n this.pluginObject = null;\r\n this.itemToolbar = '';\r\n }\r\n}\r\n","import { ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { IconModel } from './qms-app-bar.model';\r\n\r\n@Component({\r\n selector: 'app-qms-app-bar',\r\n templateUrl: './qms-app-bar.component.html',\r\n styleUrls: ['./qms-app-bar.component.scss']\r\n})\r\nexport class QmsAppBarComponent implements OnInit {\r\n @ViewChild('menu', { static: true }) menu: MatButton;\r\n\r\n // nomal style\r\n @Input() isNomalType = false;\r\n @Input() leftFirstIcon = 'keyboard_backspace';\r\n @Input() title: string;\r\n @Input() cancelTitle: string;\r\n @Input() confirmTitle: string;\r\n @Input() disabledConfirmAction: boolean;\r\n @Output() onClickLeftFirstIconEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onCancelEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onConfirmEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n // modern style\r\n @Input() hideMenuDropdown: boolean;\r\n @Input() logoSvgPath: string;\r\n @Input() imgSvgPath: string;\r\n @Input() isImgSvgTransparent: boolean;\r\n @Input() rightIcons: IconModel[] = [];\r\n @Input() notifications = 0;\r\n @Output() onMenuClickedEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onRightIconClickedEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n \r\n ngOnInit(): void {\r\n }\r\n\r\n onCancel() {\r\n this.onCancelEvent.emit();\r\n }\r\n\r\n onClickLeftFirstIcon() {\r\n this.onClickLeftFirstIconEvent.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onConfirmEvent.emit();\r\n }\r\n\r\n onMenuClicked() {\r\n this.onMenuClickedEvent.emit();\r\n }\r\n\r\n onRightIconClicked(icon: string) {\r\n this.onRightIconClickedEvent.emit(icon);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsAppBarComponent } from './qms-app-bar.component';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { QMSButtonModule } from '../button/button.module';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsAppBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsAppBarComponent\r\n ]\r\n }\r\n)\r\n\r\nexport class QmsAppBarModule {\r\n}\r\n","export class IconModel {\r\n icon: string;\r\n tooltip: string;\r\n cssClass: string;\r\n svg: boolean;\r\n isShow: boolean;\r\n constructor(icon: string, tooltip: string, cssClass = '', svg = false, isShow = true) {\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.svg = svg;\r\n this.cssClass = cssClass;\r\n this.isShow = isShow;\r\n }\r\n}","import { MatDialogConfig } from \"@angular/material/dialog\";\r\n\r\nexport class ConfirmDialog {\r\n title: string;\r\n body: string;\r\n normalTitle: string;\r\n closeButton: boolean;\r\n buttonType: string;\r\n actionText: string;\r\n cancelText: string;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.body = '';\r\n this.normalTitle = '';\r\n this.buttonType = 'normal';\r\n this.closeButton = false;\r\n this.actionText = 'Confirm';\r\n this.cancelText = 'Cancel';\r\n }\r\n}\r\n\r\n\r\n\r\nexport class QMSDialogConfig extends MatDialogConfig {\r\n constructor(data: ConfirmDialog, width: string = '', minHeight: string = '', panelClass: string = '') {\r\n super();\r\n this.data = data;\r\n this.width = width;\r\n this.disableClose = true;\r\n this.panelClass = ['qms-dialog'];\r\n this.panelClass.push(panelClass);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSToolTipComponent } from './tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n QMSToolTipComponent,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n \r\n ],\r\n declarations: [\r\n QMSToolTipComponent\r\n ],\r\n})\r\nexport class QMSTooltipModule { }","export class QmsBannerContent {\r\n text: string;\r\n tooltip?: string;\r\n bold?: boolean;\r\n}\r\n\r\nexport enum BannerType {\r\n primary = 'primary',\r\n warning = 'warning',\r\n success = 'success',\r\n error = 'error',\r\n light = 'light',\r\n none = 'none',\r\n}\r\n\r\nexport class QmsBannerConfirmButton {\r\n id: string | number;\r\n text: string;\r\n}\r\n\r\nexport class QmsBannerConfirmButtonClick {\r\n button: QmsBannerConfirmButton;\r\n event: PointerEvent;\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner',\r\n templateUrl: './qms-banner.component.html',\r\n styleUrls: ['./qms-banner.component.scss']\r\n})\r\nexport class QmsBannerComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() buttonText: string;\r\n @Input() buttonMinWidth: number;\r\n\r\n @Output() buttonClick = new EventEmitter<PointerEvent>();\r\n\r\n public onClickButton(event: PointerEvent) {\r\n this.buttonClick.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerComponent } from './qms-banner.component';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerComponent\r\n ]\r\n})\r\nexport class QmsBannerModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { BannerType } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-loading',\r\n templateUrl: './qms-banner-loading.component.html',\r\n styleUrls: ['./qms-banner-loading.component.scss']\r\n})\r\nexport class QmsBannerLoadingComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() title: string;\r\n @Input() percent: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QmsBannerLoadingComponent } from './qms-banner-loading.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QmsBannerLoadingComponent\r\n ]\r\n})\r\nexport class QmsBannerLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-confirm',\r\n templateUrl: './qms-banner-confirm.component.html',\r\n styleUrls: ['./qms-banner-confirm.component.scss']\r\n})\r\nexport class QmsBannerConfirmComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() title: string;\r\n @Input() buttons: QmsBannerConfirmButton[];\r\n\r\n @Output() buttonClick = new EventEmitter<QmsBannerConfirmButtonClick>();\r\n\r\n public onClickButton(event: PointerEvent, button: QmsBannerConfirmButton) {\r\n this.buttonClick.emit({\r\n event: event,\r\n button: button\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerConfirmComponent } from './qms-banner-confirm.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerConfirmComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerConfirmComponent\r\n ]\r\n})\r\nexport class QmsBannerConfirmModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action',\r\n templateUrl: 'table-action.html',\r\n styleUrls: ['table.scss'],\r\n host: { 'class': 'qms-table-action' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableAction implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action-block',\r\n templateUrl: 'table-action-block.html',\r\n styleUrls: ['table.scss'],\r\n host: {\r\n 'class': 'qms-table-action-block',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableActionBlock implements AfterViewInit {\r\n\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSTableAction, QMSTableActionBlock } from './table-action';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n declarations: [\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n providers: []\r\n})\r\nexport class QMSTableModule { }\r\n","export class StepModel {\r\n id: string;\r\n name: string;\r\n disabled: boolean;\r\n selected: boolean;\r\n constructor(id: string, name: string, disabled: boolean, selected: boolean) {\r\n this.id = id;\r\n this.disabled = disabled;\r\n this.name = name;\r\n this.selected = selected;\r\n }\r\n}","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { StepModel } from './qms-stepper.model';\r\n\r\n@Component({\r\n selector: 'app-qms-stepper',\r\n templateUrl: './qms-stepper.component.html',\r\n styleUrls: ['./qms-stepper.component.scss']\r\n})\r\nexport class QmsStepperComponent implements OnInit {\r\n @ViewChild('stepper', { static: false }) stepper;\r\n @Input() steps: StepModel[] = [];\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() isHorizontal = false;\r\n @Input() currentStep = 0;\r\n @Input() labelPosition = 'end';\r\n @Output() selectionChangeEvent: EventEmitter<number> = new EventEmitter();\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n changeStep(selectedIndex: number): void {\r\n this.currentStep = selectedIndex;\r\n this.selectionChangeEvent.emit(selectedIndex);\r\n }\r\n}\r\n","import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { QmsStepperComponent } from './qms-stepper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsStepperComponent\r\n ],\r\n imports: [\r\n MatStepperModule,\r\n CommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n QmsStepperComponent\r\n ],\r\n entryComponents: [\r\n QmsStepperComponent\r\n ],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n }\r\n)\r\n\r\nexport class QmsStepperModule {\r\n}","import { MatSnackBarConfig, MatSnackBarHorizontalPosition } from \"@angular/material/snack-bar\";\r\n\r\nexport class QMSSnackbarConfig extends MatSnackBarConfig {\r\n constructor(duration: number = 3000, horizontalPosition: MatSnackBarHorizontalPosition = 'right', panelClass: string | string[] = ['c-snackbar-qms']) {\r\n super();\r\n this.duration = duration;\r\n this.horizontalPosition = horizontalPosition;\r\n this.panelClass = panelClass;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of qms-angular\r\n */\r\n\r\nimport { from } from 'rxjs';\r\n\r\nexport * from './lib/qms-angular.service';\r\nexport * from './lib/qms-angular.component';\r\nexport * from './lib/qms-angular.module';\r\n\r\n// directives\r\n// export * from './lib/directives/directive.module';\r\nexport * from './lib/directives/margin.directive';\r\nexport * from './lib/directives/form.directive';\r\n\r\n// //components\r\nexport * from './lib/components/test-only/test-only.component';\r\n\r\nexport * from './lib/components/button/button.module';\r\nexport * from './lib/components/button/button';\r\nexport * from './lib/components/button/color';\r\n\r\nexport * from './lib/components/comment/comment';\r\n\r\n\r\nexport * from './lib/directives/search-field.directive';\r\nexport * from './lib/directives/range-slider/range-slider.directive';\r\nexport * from './lib/directives/range-slider/range-slider-lockup.directive';\r\nexport * from './lib/components/list/list.module';\r\nexport * from './lib/components/list/list';\r\nexport * from './lib/components/suffix-field/suffix-field.directive';\r\n\r\nexport * from './lib/services/translation-registry.service';\r\nexport * from './lib/shared.module';\r\nexport * from './lib/model/en';\r\nexport * from './lib/model/no';\r\n\r\nexport * from './lib/components/rich-text/rich-text.module';\r\nexport * from './lib/components/rich-text/rich-text';\r\n\r\n\r\n\r\nexport * from './lib/directives/chips/chip.directive';\r\nexport * from './lib/directives/chips/chip-body.directive';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog.module';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog.module';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog';\r\n\r\nexport * from './lib/directives/file-upload/file-upload.directive';\r\nexport * from './lib/directives/file-upload/file-upload-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-display.directive';\r\nexport * from './lib/directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-display.directive';\r\nexport * from './lib/directives/file-upload/qms-file-upload-attachment.model';\r\n\r\n\r\nexport * from './lib/directives/dropdown-menu/dropdown-item.directive';\r\n\r\nexport * from './lib/directives/scrollbar/scrollbar.directive';\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\n// export * from './lib/components/substance-conflict/substance-conflict.module';\r\n// export * from './lib/components/substance-conflict/substaince-conflict.base';\r\n// export * from './lib/components/substance-conflict/substance-conflict.component';\r\n\r\nexport * from './lib/components/related/related.module';\r\nexport * from './lib/components/related/tree/tree.component';\r\nexport * from './lib/components/related/common/tree.function';\r\nexport * from './lib/components/related/model/tree-node.model';\r\nexport * from './lib/components/related/model/tree.model';\r\nexport * from './lib/components/related/popup/related-popup.component';\r\nexport * from './lib/components/related/model/popup-data.model';\r\nexport * from './lib/components/related/content/related-content.component';\r\nexport * from './lib/components/related/sidenav/sidenav.component';\r\nexport * from './lib/components/related/model/sidenav.model';\r\nexport * from './lib/components/related/risk/analysis/analysis.component';\r\nexport * from './lib/components/related/model/risk-analysis.model';\r\nexport * from './lib/components/related/model/tree-config.model';\r\nexport * from './lib/components/related/model/risk-danger.model';\r\nexport * from './lib/components/related/risk/result/result.component';\r\nexport * from './lib/components/related/model/risk-result.model';\r\nexport * from './lib/components/related/risk/list/list.component';\r\nexport * from './lib/components/related/list-other-related/list-related.component'\r\nexport * from './lib/components/related/service/related-global.service';\r\nexport * from './lib/components/related/common/qms-icon.const';\r\n/* qms-ckeditor */\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.module';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor-base.component';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant';\r\nexport * from './lib/qms-ckeditor-components/common/enums/document-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-anchor.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/protocol-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/target-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/module.enum';\r\nexport * from './lib/qms-ckeditor-components/common/functions/common.function';\r\nexport * from './lib/qms-ckeditor-components/common/functions/tree.function';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model';\r\nexport * from './lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component';\r\nexport * from './lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component';\r\nexport * from './lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service';\r\n\r\nexport * from './lib/qms-ckeditor-components/models/qms-ckeditor-template.model';\r\n\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component';\r\n// export * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-global.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-injector.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-base.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-link.service';\r\n\r\nexport * from './lib/directives/text-block/text-block.directive';\r\nexport * from './lib/directives/text-block/text-block-line.directive';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.module';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.model';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.component';\r\n\r\nexport * from './lib/components/dialog/constant';\r\nexport * from './lib/components/dialog/dialog';\r\n\r\nexport * from './lib/directives/side-sheet/drawer.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header.directive';\r\nexport * from './lib/directives/side-sheet/drawer-content.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header-action.directive';\r\nexport * from './lib/directives/tooltip/tooltip-renderer.directive';\r\nexport * from './lib/directives/tooltip/tooltip-image.directive';\r\nexport * from './lib/components/tooltip/tooltip';\r\nexport * from './lib/components/tooltip/tooltip.module';\r\n\r\nexport * from './lib/directives/tab/tab-label.directive';\r\nexport * from './lib/directives/tab/tab-group.directive';\r\nexport * from './lib/directives/tab/tab-group-advanced.directive';\r\n\r\nexport * from './lib/components/banner/qms-banner/qms-banner.module';\r\nexport * from './lib/components/banner/qms-banner/qms-banner.component';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.module';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.component';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.module';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.component';\r\nexport * from './lib/components/banner/models/qms-banner.model';\r\n\r\nexport * from './lib/components/button/button-toggle';\r\nexport * from './lib/pipe/dateFormat.pipe';\r\n\r\nexport * from './lib/directives/chip-input/chip-input-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-trigger.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-dropdown.directive';\r\nexport * from './lib/directives/chip-input/chip-input-chip-list.directive';\r\nexport * from './lib/components/table/table.module';\r\nexport * from './lib/components/table/table-action';\r\n\r\n\r\nexport * from './lib/components/qms-stepper/qms-stepper.model';\r\nexport * from './lib/components/qms-stepper/qms-stepper.module';\r\nexport * from './lib/components/qms-stepper/qms-stepper.component';\r\nexport * from './lib/components/snackbar/snackbar';\r\n\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SharedMaterialModule as ɵa} from './lib/material-module';\nexport {LinkAttachmentComponent as ɵd} from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\nexport {QMSCKEditorTemplateComponent as ɵb} from './lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component';\nexport {QMSCKEditorTreeService as ɵc} from './lib/qms-ckeditor-components/services/qms-ckeditor-tree.service';"],"names":["Injectable","BehaviorSubject","Component","EventEmitter","ChangeDetectionStrategy","Input","Output","FormBuilder","ElementRef","MatDialogRef","Inject","MAT_DIALOG_DATA","ViewChild","HostListener","Directive","ContentChild","MatAutocompleteTrigger","NgControl","Optional","FileErrorType","MatDialog","Renderer2","ViewEncapsulation","ComponentPortal","Overlay","OverlayPositionBuilder","InjectionToken","NG_VALUE_ACCESSOR","forwardRef","coerceBooleanProperty","SelectionModel","ChangeDetectorRef","ContentChildren","mixinDisableRipple","FocusMonitor","Attribute","mixinDisabled","ANIMATION_MODULE_TYPE","NgModule","MatCommonModule","MatIconModule","MatProgressSpinnerModule","MatInputModule","MatCardModule","MatDialogModule","CUSTOM_ELEMENTS_SCHEMA","moment","Pipe","CommonModule","FormsModule","ReactiveFormsModule","MAT_FORM_FIELD_DEFAULT_OPTIONS","MAT_RADIO_DEFAULT_OPTIONS","setLines","MatListModule","MatExpansionModule","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","NO_ERRORS_SCHEMA","NG_VALIDATORS","MatButtonModule","MatFormFieldModule","objData","buildArrayTree","TreeNode","buildObjectTree","findParent","findChild","FlatTreeControl","MatTreeFlattener","MatTreeFlatDataSource","DomSanitizer","MatIconRegistry","Subject","FormControl","takeUntil","debounceTime","ViewChildren","MatTreeModule","MatCheckboxModule","MatAutocompleteModule","ScrollingModule","MatSidenavModule","HttpHeaders","HttpClient","CKEditorModule","LinkAnchor","LinkType","ProtocolType","TargetType","QMSCKEditorDocumentType","forkJoin","FormGroup","Validators","MatSnackBarConfig","MatSnackBar","MatSnackBarModule","MatSelectModule","HttpClientModule","Injector","MatToolbarModule","MatTooltipModule","MatBadgeModule","MatDialogConfig","BannerType","MatStepperModule","STEPPER_GLOBAL_OPTIONS"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"qms-angular.umd.js","sources":["../../../projects/qms-angular/src/lib/qms-angular.service.ts","../../../projects/qms-angular/src/lib/model/en.ts","../../../projects/qms-angular/src/lib/model/no.ts","../../../projects/qms-angular/src/lib/services/translation-registry.service.ts","../../../projects/qms-angular/src/lib/qms-angular.component.ts","../../../projects/qms-angular/src/lib/components/comment/comment.ts","../../../projects/qms-angular/src/lib/components/dialog/dialog.ts","../../../projects/qms-angular/src/lib/components/suffix-field/suffix-field.directive.ts","../../../projects/qms-angular/src/lib/components/test-only/test-only.component.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-chip-list.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-dropdown.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-trigger.directive.ts","../../../projects/qms-angular/src/lib/directives/chip-input/chip-input-select-field.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip-body.directive.ts","../../../projects/qms-angular/src/lib/directives/chips/chip.directive.ts","../../../projects/qms-angular/src/lib/directives/dropdown-menu/dropdown-item.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-display.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/qms-file-upload-attachment.model.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-multiple.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload-selector.directive.ts","../../../projects/qms-angular/src/lib/directives/file-upload/file-upload.directive.ts","../../../projects/qms-angular/src/lib/directives/form.directive.ts","../../../projects/qms-angular/src/lib/directives/margin.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider-lockup.directive.ts","../../../projects/qms-angular/src/lib/directives/range-slider/range-slider.directive.ts","../../../projects/qms-angular/src/lib/directives/scroll-selected/scroll-to-selected.directive.ts","../../../projects/qms-angular/src/lib/directives/scrollbar/scrollbar.directive.ts","../../../projects/qms-angular/src/lib/directives/search-field.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-content.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header-action.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer-header.directive.ts","../../../projects/qms-angular/src/lib/directives/side-sheet/drawer.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group-advanced.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-group.directive.ts","../../../projects/qms-angular/src/lib/directives/tab/tab-label.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block-line.directive.ts","../../../projects/qms-angular/src/lib/directives/text-block/text-block.directive.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-image.directive.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.ts","../../../projects/qms-angular/src/lib/directives/tooltip/tooltip-renderer.directive.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/qms-angular/src/lib/components/button/button-toggle.ts","../../../projects/qms-angular/src/lib/components/button/color.ts","../../../projects/qms-angular/src/lib/components/button/button.ts","../../../projects/qms-angular/src/lib/components/button/button.module.ts","../../../projects/qms-angular/src/lib/material-module.ts","../../../projects/qms-angular/src/lib/pipe/dateFormat.pipe.ts","../../../projects/qms-angular/src/lib/shared.module.ts","../../../projects/qms-angular/src/lib/qms-angular.module.ts","../../../projects/qms-angular/src/lib/components/list/list.ts","../../../projects/qms-angular/src/lib/components/list/list.module.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.ts","../../../projects/qms-angular/src/lib/components/rich-text/rich-text.module.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.ts","../../../projects/qms-angular/src/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.ts","../../../projects/qms-angular/src/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.ts","../../../projects/qms-angular/src/lib/components/related/common/data-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/content/related-content.component.ts","../../../projects/qms-angular/src/lib/components/related/common/module-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/related.const.ts","../../../projects/qms-angular/src/lib/components/related/model/popup-data.model.ts","../../../projects/qms-angular/src/lib/components/related/service/related-global.service.ts","../../../projects/qms-angular/src/lib/components/related/common/qms-icon.const.ts","../../../projects/qms-angular/src/lib/components/related/common/document-folder-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/common/item-icon-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-node.model.ts","../../../projects/qms-angular/src/lib/components/related/common/tree.function.ts","../../../projects/qms-angular/src/lib/components/related/tree/tree.component.ts","../../../projects/qms-angular/src/lib/components/related/popup/related-popup.component.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-analysis.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/analysis/analysis.component.ts","../../../projects/qms-angular/src/lib/components/related/common/color.enum.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-result.model.ts","../../../projects/qms-angular/src/lib/components/related/risk/result/result.component.ts","../../../projects/qms-angular/src/lib/components/related/model/sidenav.model.ts","../../../projects/qms-angular/src/lib/components/related/sidenav/sidenav.component.ts","../../../projects/qms-angular/src/lib/components/related/common/action-type.enum.ts","../../../projects/qms-angular/src/lib/components/related/risk/list/list.component.ts","../../../projects/qms-angular/src/lib/components/related/list-other-related/list-related.component.ts","../../../projects/qms-angular/src/lib/components/related/related.module.ts","../../../projects/qms-angular/src/lib/components/related/model/tree.model.ts","../../../projects/qms-angular/src/lib/components/related/model/tree-config.model.ts","../../../projects/qms-angular/src/lib/components/related/model/risk-danger.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor-base.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-parameter.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/module.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-anchor.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/link-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/protocol-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/target-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/enums/document-type.enum.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/tree.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckeditor-injector.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/models/qms-ckeditor-template.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/classes/uploadAdapter.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/functions/common.function.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.component.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/qms-ckeditor.module.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model.ts","../../../projects/qms-angular/src/lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.component.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.module.ts","../../../projects/qms-angular/src/lib/components/qms-app-bar/qms-app-bar.model.ts","../../../projects/qms-angular/src/lib/components/dialog/constant.ts","../../../projects/qms-angular/src/lib/components/tooltip/tooltip.module.ts","../../../projects/qms-angular/src/lib/components/banner/models/qms-banner.model.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner/qms-banner.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-loading/qms-banner-loading.module.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.ts","../../../projects/qms-angular/src/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.ts","../../../projects/qms-angular/src/lib/components/table/table-action.ts","../../../projects/qms-angular/src/lib/components/table/table.module.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.model.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.component.ts","../../../projects/qms-angular/src/lib/components/qms-stepper/qms-stepper.module.ts","../../../projects/qms-angular/src/lib/components/snackbar/snackbar.ts","../../../projects/qms-angular/src/public-api.ts","../../../projects/qms-angular/src/qms-angular.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QmsAngularService {\r\n\r\n constructor() { }\r\n}\r\n","export const en = {\r\n \"MY_COMPONENT\": \"My component\",\r\n \"SAVE_BUTTON\": \"Save\",\r\n \"CANCEL_BUTTON\": \"Cancel\",\r\n \"DELETE_MESSAGE_COMMENT\": \"This message has been deleted.\",\r\n \"REGRET\": \"Regret\",\r\n \"EDIT\": \"Edit\",\r\n \"DELETE\": \"Delete\",\r\n \"SAVE\": \"Save\",\r\n \"CANCEL\": \"Cancel\",\r\n \"EDIT_FILE_NAME\": \"Edit file name\",\r\n \"FILE_NAME\": \"File name\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Files you're uploading may not be saved.\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Some files were not added\",\r\n \"YOU_CAN_ONLY_ADD\": \"You can only upload\",\r\n \"SELECT\": \"Select\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"DEVIATION\": \"Categories\",\r\n \"CHECKLIST\": \"Checklists\",\r\n \"ASSESSMENT\": \"Assessments\",\r\n \"ADD\": \"Add\",\r\n \"SEARCH\": \"Search\",\r\n \"REGULAR_TITLE\": \"What do you want to include in the risk assessment(s)?\",\r\n \"CAPTION_TITLE\": \"In causal assessments, all causes related to the event are automatically added.\",\r\n \"CAUSAL_ANALYZES\": \"Selected Assessments\",\r\n \"FINISHED\": \"Finished\",\r\n \"PROCESS_ID\": \"Process ID\",\r\n \"DOCUMENT_ID\": \"Document ID\",\r\n \"PROCESS_AREA\": \"Process area\",\r\n \"FOLDER\": \"Folder\",\r\n \"DEVIATION_TYPE\": \"Deviation type\",\r\n \"CHECKLIST_CATEGORY\": \"Categories\",\r\n \"EVENT\": \"Event\",\r\n \"AREA_OF_IMPACT\": \"Consequence Area\",\r\n \"RESULT\": \"Result\",\r\n \"NOT_ACCEPTED\": \"Not accepted\",\r\n \"MUST_BE_EVALUATED\": \"Must be evaluated\",\r\n \"ACCEPTED\": \"Accepted\",\r\n \"ARCHIVED\": \"Archived\",\r\n \"CAUSE\": \"Cause\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"You must select one or more events\"\r\n },\r\n \"MESSAGE\": {\r\n\r\n }\r\n ,\r\n \"QMSCKEDITOR\": {\r\n \"TEMPLATE\": \"Template\",\r\n \"CONTENT_TEMPLATE\": \"Content Template\",\r\n \"CREATE_NEW_TEMPLATE\": \"Create new tempplate\",\r\n \"UPDATE_TEMPLATE\": \"Update tempplate\",\r\n \"TITLE\": \"Title\",\r\n \"DESCRIPTION\": \"Description\",\r\n \"SAVE\": \"Save\",\r\n \"CHOOSE_TEMPLATE\": \"Please select the template to open in the editor\",\r\n \"REPLACE_CONTENT\": \"Replace actual contents\",\r\n \"SAVED\": \"Saved\",\r\n \"SAVE_FAILED\": \"Save failed\",\r\n \"DELETE\": \"Delete\",\r\n \"DELETED\": \"Deleted\",\r\n \"DELETE_FAILED\": \"Delete failed\",\r\n \"DELETE_TEMPLATE\": \"Delete template\",\r\n \"CHANGE_TEMPLATE\": \"Change template\",\r\n \"CANCEL\": \"Cancel\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Link type\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Link to anchor in the text\",\r\n \"LINK_EMAIL\": \"Email\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anchor in other document\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"New Window (_blank)\",\r\n \"TARGET_TOPMOST\": \"Topmost Window (_top)\",\r\n \"TARGET_SAME\": \"Same Window (_self)\",\r\n \"TARGET_PARENT\": \"Parent Window (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http://\",\r\n \"PROTOCOL_HTTPS\": \"https://\",\r\n \"PROTOCOL_FTP\": \"ftp://\",\r\n \"PROTOCOL_NEW\": \"news://\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Advisory Title\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"Ok\",\r\n \"URL_HEADER\": \"URL information\",\r\n \"ANCHOR_TEXT_HEADER\": \"Select an Anchor\",\r\n \"ANCHOR_BY_NAME\": \"Anchor by name\",\r\n \"EMAIL_HEADER\": \"Email information\",\r\n \"EMAIL_ADDRESS\": \"Address\",\r\n \"EMAIL_SUBJECT\": \"Subject\",\r\n \"EMAIL_BODY\": \"Body\",\r\n \"ANCHOR_ATTACHMENT\": \"Attachments\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Related document\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Add document/ process\",\r\n \"ADD_DOCUMENT\": \"Add document\",\r\n \"ADD\": \"Add\",\r\n \"PROCESSES\": \"Processes\",\r\n \"DOCUMENTS\": \"Documents\",\r\n \"UPDATE\": \"Update\",\r\n \"DOCUMENT\": \"Document\",\r\n \"CONFIRM\": \"Confirm\",\r\n \"SEARCH\": \"Search\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Are you sure you want to delete this template?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Are you sure you want to apply this template to the editor?\"\r\n }\r\n}\r\n","export const no = {\r\n \"MY_COMPONENT\": \"Min komponent\",\r\n \"SAVE_BUTTON\": \"Lagre\",\r\n \"CANCEL_BUTTON\": \"Avbryt\",\r\n \"DELETE_MESSAGE_COMMENT\": \"Denne meldingen er slettet.\",\r\n \"REGRET\": \"Angre\",\r\n \"EDIT\": \"Rediger\",\r\n \"DELETE\": \"Slett\",\r\n \"SAVE\": \"Lagre\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"EDIT_FILE_NAME\": \"Rediger filnavn\",\r\n \"FILE_NAME\": \"Filnavn\",\r\n \"UPLOAD_LEAVE_WARNING\": \"Filene du laster opp vil kanskje ikke bli lagret\",\r\n \"SOME_FILES_WERE_NOT_ADDED\": \"Noen filer ble ikke lagt til\",\r\n \"YOU_CAN_ONLY_ADD\": \"Du kan kun laste opp\",\r\n \"SELECT\": \"Velg\",\r\n \"PROCESSES\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"DEVIATION\": \"Kategorier\",\r\n \"CHECKLIST\": \"Sjekklister\",\r\n \"ASSESSMENT\": \"Analyser\",\r\n \"ADD\": \"Legg til\",\r\n \"SEARCH\": \"Søk\",\r\n \"REGULAR_TITLE\": \"Hva ønsker du å inkludere av hendeler i risikoanalysen(e)?\",\r\n \"CAPTION_TITLE\": \"I årsaksanalyser blir automatisk alle årsaker knyttet til hendelsen lagt til.\",\r\n \"CAUSAL_ANALYZES\": \"Valgte Analyser\",\r\n \"FINISHED\": \"Ferdig\",\r\n \"PROCESS_ID\": \"Prosess ID\",\r\n \"DOCUMENT_ID\": \"Dokument ID\",\r\n \"PROCESS_AREA\": \"Prosessområder\",\r\n \"FOLDER\": \"Mappe\",\r\n \"DEVIATION_TYPE\": \"Sakstype\",\r\n \"CHECKLIST_CATEGORY\": \"Kategorier\",\r\n \"EVENT\": \"Hendelse\",\r\n \"AREA_OF_IMPACT\": \"Konsekvensområde\",\r\n \"RESULT\": \"Resultat\",\r\n \"NOT_ACCEPTED\": \"Ikke akseptert\",\r\n \"MUST_BE_EVALUATED\": \"Må vurderes\",\r\n \"ACCEPTED\": \"Akseptert\",\r\n \"ARCHIVED\": \"Arkivert\",\r\n \"CAUSE\": \"Årsak\",\r\n \"ERROR\": {\r\n \"SELECT_DANGER\": \"Du må velge en eller flere hendelser\"\r\n },\r\n \"MESSAGE\": {\r\n\r\n },\r\n \"QMSCKEDITOR\": {\r\n \"TEMPLATE\": \"Mal\",\r\n \"CONTENT_TEMPLATE\": \"Innholdsmal\",\r\n \"CREATE_NEW_TEMPLATE\": \"Lag ny mal\",\r\n \"UPDATE_TEMPLATE\": \"Oppdater mal\",\r\n \"TITLE\": \"Tittel\",\r\n \"DESCRIPTION\": \"Beskrivelse\",\r\n \"SAVE\": \"Lagre\",\r\n \"CHOOSE_TEMPLATE\": \"Velg malen du vil åpne i redigeringsprogrammet\",\r\n \"REPLACE_CONTENT\": \"Bytt ut faktisk innhold\",\r\n \"SAVED\": \"Lagret\",\r\n \"SAVE_FAILED\": \"Lagringen mislyktes\",\r\n \"DELETE\": \"Slett\",\r\n \"DELETED\": \"Slettet\",\r\n \"DELETE_FAILED\": \"Sletting mislyktes\",\r\n \"DELETE_TEMPLATE\": \"Slett mal\",\r\n \"CHANGE_TEMPLATE\": \"Endre mal\",\r\n \"CANCEL\": \"Avbryt\",\r\n \"LINK\": \"Link\",\r\n \"LINK_TYPE\": \"Koblingstype\",\r\n \"LINK_URL\": \"URL\",\r\n \"LINK_ANCHOR_IN_TEXT\": \"Lenke til anker i teksten\",\r\n \"LINK_EMAIL\": \"E-post\",\r\n \"LINK_ANCHOR_DOCUMENT\": \"Anker i annet dokument\",\r\n \"TARGET\": \"Target\",\r\n \"TARTGET_NEW\": \"Nytt vindu (_blank)\",\r\n \"TARGET_TOPMOST\": \"Det øverste vinduet (_top)\",\r\n \"TARGET_SAME\": \"Samme vindu (selv)\",\r\n \"TARGET_PARENT\": \"Overordnet vindu (_parent)\",\r\n \"PROTOCOL\": \"Protocol\",\r\n \"PROTOCOL_HTTP\": \"http: //\",\r\n \"PROTOCOL_HTTPS\": \"https: //\",\r\n \"PROTOCOL_FTP\": \"ftp: //\",\r\n \"PROTOCOL_NEW\": \"nyheter: //\",\r\n \"PROTOCOL_OTHER\": \"<other>\",\r\n \"ADVISORY_TITLE\": \"Rådgivende tittel\",\r\n \"HANDBOOK\": \"eHandbook\",\r\n \"ATTACHMENT\": \"Attachment\",\r\n \"OK\": \"OK\",\r\n \"URL_HEADER\": \"URL-informasjon\",\r\n \"ANCHOR_TEXT_HEADER\": \"Velg et anker\",\r\n \"ANCHOR_BY_NAME\": \"Anker ved navn\",\r\n \"EMAIL_HEADER\": \"E-postinformasjon\",\r\n \"EMAIL_ADDRESS\": \"Adresse\",\r\n \"EMAIL_SUBJECT\": \"Emne\",\r\n \"EMAIL_BODY\": \"Kropp\",\r\n \"ANCHOR_ATTACHMENT\": \"Vedlegg\",\r\n \"ANCHOR_RELATED_DOCUMENT\": \"Beslektet dokument\",\r\n \"ADD_DOCUMENT_PROCESS\": \"Legg til dokument / prosess\",\r\n \"ADD_DOCUMENT\": \"Legg til dokument\",\r\n \"ADD\": \"Legg til\",\r\n \"PROSESSER\": \"Prosesser\",\r\n \"DOCUMENTS\": \"Dokumenter\",\r\n \"UPDATE\": \"Oppdater\",\r\n \"DOCUMENT\": \"Dokument\",\r\n \"CONFIRM\": \"Bekreft\",\r\n \"SEARCH\": \"Søk\",\r\n },\r\n \"QMSCKEDITOR_MESSAGE\": {\r\n \"CONFIRM_DELETE_TEMPLATE\": \"Er du sikker på at du vil slette denne malen?\",\r\n \"CONFIRM_CHANGE_TEMPLATE\": \"Er du sikker på at du vil bruke denne malen på redaktøren?\"\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { en } from '../model/en';\r\nimport { no } from '../model/no';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslateLibraryService {\r\n\r\n getLanguageSubject$ = new BehaviorSubject<any>(null);\r\n private availableLanguages = { en, no };\r\n\r\n constructor() { }\r\n\r\n setLanguage(item: any) {\r\n this.getLanguageSubject$.next(item);\r\n }\r\n\r\n getObjectLang(lang) {\r\n let language = lang && lang.toLowerCase() || 'en';\r\n if (language !== 'en' && language !== 'no') {\r\n language = 'en';\r\n }\r\n return this.availableLanguages[language];\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n@Component({\r\n selector: 'lib-qms-angular',\r\n templateUrl: 'qms-angular.component.html',\r\n styles: []\r\n})\r\nexport class QmsAngularComponent implements OnInit {\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","// Import the core angular services.\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport interface Logs {\r\n user: string,\r\n date: any,\r\n isDraft: boolean,\r\n isEdit: boolean,\r\n content: string,\r\n editedContent: string\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-comment',\r\n templateUrl: 'comment.html',\r\n styleUrls: ['comment.scss'],\r\n host: { 'class': 'qms-comment' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSComment implements OnInit, OnChanges {\r\n @Input() sourceLog: Logs[];\r\n @Output() updateLog = new EventEmitter();\r\n\r\n LANG: any;\r\n\r\n constructor(public trans: TranslateLibraryService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const propName in changes) {\r\n const changedProp = changes[propName];\r\n const to = JSON.stringify(changedProp.currentValue);\r\n if (changedProp.isFirstChange()) {\r\n console.log('Initial value of');\r\n } else {\r\n const from = JSON.stringify(changedProp.previousValue);\r\n console.log('changed from');\r\n }\r\n }\r\n console.log('value changed', changes.sourceLog.currentValue);\r\n // this.sourceLog = changes.sourceLog.currentValue;\r\n }\r\n\r\n ngOnInit() {\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n console.log(this.LANG);\r\n\r\n }\r\n });\r\n }\r\n\r\n showContent(content) {\r\n return content.replace(/(?:\\r\\n|\\r|\\n)/g, '<br>');\r\n }\r\n\r\n editContent(item) {\r\n item.editedContent = item.content;\r\n item.isEdit = true;\r\n }\r\n\r\n saveEditedContent(item) {\r\n item.content = item.editedContent;\r\n item.isEdit = false;\r\n this.updateLog.emit(item);\r\n }\r\n\r\n removeItem(item) {\r\n item.isDelete = true;\r\n this.updateLog.emit(item);\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, HostListener, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ConfirmDialog } from './constant';\r\n\r\n@Component({\r\n selector: 'qms-dialog-confirm',\r\n templateUrl: 'dialog-confirm.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSConfirmDialog implements OnInit, AfterViewInit {\r\n info: ConfirmDialog;\r\n\r\n @ViewChild('actionGroup') actionGroup: ElementRef;\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.orderActionButton();\r\n }\r\n\r\n constructor(private fb: FormBuilder,\r\n private _elRef: ElementRef,\r\n private dialogRef: MatDialogRef<QMSConfirmDialog>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.info = { ...data };\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.orderActionButton();\r\n }\r\n\r\n orderActionButton() {\r\n const divHeight = this.actionGroup.nativeElement.offsetHeight;\r\n document.getElementById('action-btn').style.order = divHeight > 68 ? '1' : '2';\r\n }\r\n\r\n save() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n close() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-dialog-form',\r\n templateUrl: 'dialog-form.html',\r\n styleUrls: ['dialog.scss']\r\n})\r\nexport class QMSFormDialog implements OnInit {\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n\r\n","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-suffix]',\r\n})\r\nexport class QMSSuffixDirective {\r\n constructor(private el: ElementRef) {\r\n el.nativeElement.classList.add('qms-suffix');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-suffix-field]',\r\n})\r\nexport class QMSSuffixFieldDirective implements AfterViewChecked {\r\n @ContentChild(QMSSuffixDirective, {static: false}) qmsSuffix: QMSSuffixDirective;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewChecked(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-suffix-field');\r\n }\r\n }\r\n\r\n removeFocus = () => {\r\n this.ele.nativeElement.classList.remove('mat-focused');\r\n }\r\n}\r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-test-only',\r\n styleUrls: ['./test-only.component.scss'],\r\n templateUrl: './test-only.component.html'\r\n})\r\nexport class TestOnlyComponent {\r\n @Input() text: string = \"\";\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-input-chip-list]',\r\n})\r\nexport class QMSChipInputChipListDirective implements OnInit {\r\n @Input() maxRows: number;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-input-chip-list');\r\n if(this.maxRows && this.maxRows > 0){\r\n this.ele.nativeElement.classList.add(`qms-chip-input-max-${this.maxRows}`)\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input]',\r\n})\r\nexport class QMSChipInputDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-dropdown]',\r\n})\r\nexport class QMSChipInputSelectDropWDownDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-dropdown');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select-trigger]',\r\n})\r\nexport class QMSChipInputSelectTriggerDirective implements OnInit {\r\n public eleSelect: ElementRef;\r\n public autocomplete: MatAutocompleteTrigger;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n click(){\r\n if(this.autocomplete){\r\n if(!this.autocomplete.panelOpen)\r\n this.autocomplete.openPanel();\r\n else\r\n this.autocomplete.closePanel();\r\n }\r\n \r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\nimport { MatAutocompleteTrigger } from \"@angular/material/autocomplete\";\r\nimport { QMSChipInputSelectTriggerDirective } from \"./chip-input-select-trigger.directive\";\r\n\r\n@Directive({\r\n selector: '[qms-chip-input-select]',\r\n})\r\nexport class QMSChipInputSelectFieldDirective implements OnInit, AfterViewInit {\r\n @ContentChild(QMSChipInputSelectTriggerDirective, {static: false}) selectTrigger: QMSChipInputSelectTriggerDirective;\r\n @ContentChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger;\r\n\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngAfterViewInit(): void {\r\n if(this.selectTrigger){\r\n this.selectTrigger.autocomplete = this.autocomplete;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-input-select');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-chip-body]',\r\n})\r\nexport class QMSChipBodyDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip-body');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'mat-chip[qms-chip]',\r\n})\r\nexport class QMSInputChipDirective implements OnInit, OnChanges {\r\n\r\n @Input() selected: boolean;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-chip-selected');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-chip');\r\n if (this.selected) {\r\n this.ele.nativeElement.classList.add('qms-chip-selected');\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-menu-item]',\r\n})\r\nexport class QMSDropdownMenuItem implements OnInit, AfterViewInit, OnChanges{\r\n @ContentChild(\"menuItemContent\", {static: false}) menuItemContent: ElementRef;\r\n @Input() selected: boolean;\r\n \r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n else{\r\n this.ele.nativeElement.classList.remove('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n if(this.menuItemContent){\r\n if(this.menuItemContent.nativeElement){\r\n this.menuItemContent.nativeElement.classList.add('qms-dropdown-menu-item__content')\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item');\r\n if(this.selected){\r\n this.ele.nativeElement.classList.add('qms-dropdown-menu-item-selected');\r\n }\r\n }\r\n }\r\n}","import { AfterContentChecked, ContentChild, Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-attachment-list]',\r\n})\r\n\r\nexport class QMSAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-display]',\r\n})\r\nexport class QMSFileUploadDisplayDirective implements OnInit, OnChanges{\r\n public eleInput: ElementRef;\r\n public removeInvalid: () => void;\r\n public addInvalid: () => void;\r\n @Input() value;\r\n constructor(public ele: ElementRef, \r\n @Optional() private control: NgControl) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n if(this.control){\r\n this.control.control.setValue(this.value? this.value : '');\r\n this.control.control.updateValueAndValidity();\r\n if(this.control.control.valid && this.removeInvalid){\r\n this.removeInvalid();\r\n }\r\n if(this.control.control.invalid && this.addInvalid){\r\n this.addInvalid();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Optional } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-display]',\r\n})\r\nexport class QMSFileUploadMultipleDisplayDirective implements OnInit{\r\n public eleInput: ElementRef;\r\n @Input() acceptExtension: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n \r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event.target'])\r\n Click() {\r\n this.eleInput.nativeElement.click();\r\n }\r\n}","\r\nexport enum FileErrorType{\r\n noError,\r\n notSupportedExtension,\r\n exceedMaxSize,\r\n}\r\nexport class QMSFileAttachment {\r\n file: File;\r\n fileName: string;\r\n fileContent: string;\r\n fileContentBase64: string;\r\n extension: string;\r\n isSuccessful: boolean;\r\n typeError: FileErrorType;\r\n progress: number;\r\n}","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { QMSUploadFileErrorDialog } from \"../../components/upload-file-error-dialog/upload-file-error-dialog\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple-selector]',\r\n})\r\n\r\nexport class QMSFileUploadMultipleSelectorDirective implements OnInit, OnChanges {\r\n @Input() filesForInput: QMSFileAttachment[];\r\n @Output() filesForInputChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n constructor(public ele: ElementRef, public dialog: MatDialog) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.filesForInput || this.filesForInput.length === 0){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files){\r\n const listFiles: FileList = event.target.files;\r\n let listAttachments : QMSFileAttachment[] = [];\r\n for (let i = 0; i < listFiles.length; i++) {\r\n const file = event.target.files[i];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file; \r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n listAttachments.push(attachment);\r\n }\r\n this.filesForInputChange.emit(listAttachments);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterViewInit, ContentChild, Directive, ElementRef,\r\n HostListener, Input, OnChanges, OnInit } from \"@angular/core\";\r\nimport { QMSFileUploadMultipleDisplayDirective } from \"./file-upload-multiple-display.directive\";\r\nimport { QMSFileUploadMultipleSelectorDirective } from \"./file-upload-multiple-selector.directive\";\r\nimport { ComponentCanDeactivate } from \"./file-upload.directive\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-multiple]',\r\n})\r\nexport class QMSFileUploadMultipleDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadMultipleSelectorDirective, {static: false}) fileSelector: QMSFileUploadMultipleSelectorDirective;\r\n @ContentChild(QMSFileUploadMultipleDisplayDirective, {static: false}) fileDisplay: QMSFileUploadMultipleDisplayDirective;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n \r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollable-attachment-list]',\r\n})\r\n\r\nexport class QMSScrolableAttachmentListDirective implements OnInit {\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollable-attachment-list');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { FileErrorType, QMSFileAttachment } from \"./qms-file-upload-attachment.model\";\r\n\r\n\r\nexport function requiredFileType( types: string[] ) {\r\n return function (control: FormControl) {\r\n const fileName = control.value;\r\n if ( fileName ) {\r\n const extension = fileName.split('.').pop();\r\n const check = types.filter(type => type.toLowerCase() === extension.toLowerCase())\r\n if(check.length === 0){\r\n return {\r\n requiredFileType: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\nexport function notExceedSize( size: number ) {\r\n return function (control: FormControl) {\r\n const file = control.value;\r\n if ( file ) {\r\n \r\n if(file.size > size){\r\n return {\r\n notExceedSize: true\r\n };\r\n }\r\n return null;\r\n }\r\n return null;\r\n };\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload-selector]',\r\n})\r\n\r\nexport class QMSFileUploadSelectorDirective implements OnInit, OnChanges {\r\n @Input() inputFile: any;\r\n @Output() inputFileChange = new EventEmitter();\r\n @Input() acceptExtensions: string[];\r\n @Output('onFileUploaded') onFileUploaded: EventEmitter<any> = new EventEmitter();\r\n @Input() maxSize: number;\r\n public isLoading: boolean;\r\n constructor(public ele: ElementRef) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!this.inputFile){\r\n this.ele.nativeElement.value = '';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n }\r\n }\r\n\r\n invokeMyFunc(){\r\n if(this.onFileUploaded)\r\n this.onFileUploaded.emit();\r\n }\r\n\r\n @HostListener('change', ['$event']) OnChanges(event) {\r\n if(event.target && event.target.files[0]){\r\n const file = event.target.files[0];\r\n let attachment = new QMSFileAttachment();\r\n attachment.fileName = file.name;\r\n attachment.extension = file.name.split('.').pop();\r\n attachment.file = file;\r\n attachment.isSuccessful = true;\r\n attachment.typeError = FileErrorType.noError;\r\n if(this.acceptExtensions){\r\n const check = this.acceptExtensions.filter(type => type.toLowerCase() === attachment.extension.toLowerCase())\r\n if(check.length === 0){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.notSupportedExtension;\r\n }\r\n }\r\n if(this.maxSize && file.size > this.maxSize){\r\n attachment.isSuccessful = false;\r\n attachment.typeError = FileErrorType.exceedMaxSize;\r\n }\r\n this.inputFileChange.emit(attachment);\r\n this.invokeMyFunc();\r\n }\r\n }\r\n}","import { AfterContentChecked, AfterViewInit, ContentChild, Directive, ElementRef,\r\n EventEmitter,\r\n HostListener, Injectable, Input, OnChanges, OnInit, Output, Renderer2, SimpleChanges } from \"@angular/core\";\r\nimport { CanDeactivate } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\nimport { QMSFileUploadDisplayDirective } from \"./file-upload-display.directive\";\r\nimport { QMSFileUploadSelectorDirective } from \"./file-upload-selector.directive\";\r\n\r\n\r\nexport interface ComponentCanDeactivate {\r\n canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\r\n}\r\n \r\n@Injectable()\r\nexport class QMSUploadingFileGuard implements CanDeactivate<ComponentCanDeactivate> {\r\n constructor(){}\r\n canDeactivate(component: ComponentCanDeactivate) {\r\n // if there are no pending changes, just allow deactivation; else confirm first\r\n return component.canDeactivate? component.canDeactivate(): true;\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-file-upload]',\r\n})\r\nexport class QMSFileUploadDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n @ContentChild(QMSFileUploadSelectorDirective, {static: false}) fileSelector: QMSFileUploadSelectorDirective;\r\n @ContentChild(QMSFileUploadDisplayDirective, {static: false}) fileDisplay: QMSFileUploadDisplayDirective;\r\n\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-file-upload-loading');\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-file-upload');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-file-upload-loading');\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.fileSelector) {\r\n this.fileDisplay.eleInput = this.fileSelector.ele;\r\n this.fileDisplay.removeInvalid = this.removeInvalid;\r\n this.fileDisplay.addInvalid = this.addInvalid;\r\n this.fileSelector.isLoading = this.isLoading;\r\n }\r\n }\r\n\r\n removeInvalid = () => {\r\n this.ele.nativeElement.classList.remove('mat-form-field-invalid');\r\n }\r\n\r\n addInvalid = () => {\r\n this.ele.nativeElement.classList.add('mat-form-field-invalid');\r\n }\r\n}\r\n","import { AfterContentInit, Directive, ElementRef, Renderer2 } from \"@angular/core\";\r\n\r\n\r\n@Directive({\r\n selector: '[qms-form]',\r\n host: { 'class': 'qms-form' }\r\n})\r\nexport class QMSFormFieldDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-textarea]',\r\n host: { 'class': 'qms-form form-textarea' }\r\n})\r\nexport class QMSFormFieldTextareaDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-form-date]',\r\n host: { 'class': 'qms-form form-datepicker' }\r\n})\r\nexport class QMSFormFieldDatePickerDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\nexport class QMSGroupOptionDirective implements AfterContentInit {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-group-options]',\r\n host: { 'class': 'qms-group-options' }\r\n})\r\n\r\nexport class AutocompleteOffDirective {\r\n constructor(private _el: ElementRef) {\r\n this._el.nativeElement.setAttribute('autocomplete', 'off');\r\n this._el.nativeElement.setAttribute('autocorrect', 'off');\r\n this._el.nativeElement.setAttribute('autocapitalize', 'none');\r\n this._el.nativeElement.setAttribute('spellcheck', 'false');\r\n }\r\n}","import { Directive, Input, ElementRef, OnInit, OnDestroy } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-margin]'\r\n})\r\n\r\nexport class MarginDirective implements OnInit {\r\n @Input() dim: string;\r\n @Input() value: string;\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dim ?\r\n this.el.nativeElement.style[`margin-${this.dim}`] = `${this.value}px` :\r\n this.value.includes('px')\r\n ? this.el.nativeElement.style[`margin`] = `${this.value}`\r\n : this.el.nativeElement.style[`margin`] = `${this.value}px`;\r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider-lockup]',\r\n})\r\nexport class QMSRangeSliderLockUpDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider-lockup');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: 'mat-slider[qms-range-slider]',\r\n})\r\nexport class QMSRangeSliderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-range-slider');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';\r\n@Directive({\r\n selector: '[scrollToSelected]'\r\n})\r\nexport class ScrollToSelectedDirective implements OnInit {\r\n @Input() scrollToClass: string;\r\n @HostListener('document:click', ['$event'])\r\n onClick(e) {\r\n const isStepElement = e.currentTarget.activeElement.classList.contains('mat-step-header');\r\n const isStepElementActive = e.currentTarget.activeElement.classList.contains('mat-primary');\r\n if (isStepElement && isStepElementActive) {\r\n this.rerenderView();\r\n }\r\n }\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n rerenderView() {\r\n if (this.el.nativeElement.classList.contains(this.scrollToClass)) {\r\n this.el.nativeElement.scrollIntoView(true, { behavior: 'smooth', block: 'start' });\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.rerenderView();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-scrollbar]',\r\n})\r\nexport class QMSScrollbarDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-scrollbar');\r\n }\r\n }\r\n}","import { AfterViewChecked, AfterViewInit, ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, \r\n OnDestroy,\r\n OnInit, Output, Renderer2, SimpleChanges, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[qms-input-clear]',\r\n})\r\nexport class QMSInputClearDirective {\r\n inputDemo;\r\n inputDemoChange;\r\n constructor(public el: ElementRef) {\r\n el.nativeElement.classList.add('qms-input-clear');\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: 'mat-form-field[qms-search-field]',\r\n})\r\nexport class QMSSearchFieldDirective implements OnInit, AfterViewInit, OnChanges {\r\n @Input() isLoading;\r\n constructor(private ele: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n } else {\r\n this.ele.nativeElement.classList.remove('qms-search-field-loading');\r\n }\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-search-field');\r\n if (this.isLoading) {\r\n this.ele.nativeElement.classList.add('qms-search-field-loading');\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-content]',\r\n})\r\nexport class QMSDrawerContentDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-content');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header-action]',\r\n})\r\nexport class QMSDrawerHeaderActionDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header__action');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer-header]',\r\n})\r\nexport class QMSDrawerHeaderDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer-header');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-drawer]',\r\n})\r\nexport class QMSDrawerDirective implements OnInit {\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-drawer');\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group-advanced]',\r\n})\r\nexport class QMSTabGroupAdvancedDirective implements OnInit{\r\n @Input() color: string;\r\n @Input() type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced');\r\n if(this.color){\r\n this.ele.nativeElement.classList.add(this.color);\r\n }\r\n if(this.type==='fixed'){\r\n this.ele.nativeElement.classList.add('qms-tab-group-advanced-fixed');\r\n }\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-group]',\r\n})\r\nexport class QMSTabGroupDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-group');\r\n }\r\n \r\n }\r\n}","import { Directive, ElementRef, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tab-label]',\r\n})\r\nexport class QMSTabLabelDirective implements OnInit{\r\n constructor(private ele: ElementRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tab-label');\r\n }\r\n }\r\n}","import { Directive, ElementRef, Input, Renderer2 } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-text-block-line]'\r\n})\r\nexport class QMSTextBlockLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption-semibold') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption-semibold');\r\n }\r\n else if (this.type == 'caption'){\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'body') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `content size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-text-block-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, Input, OnInit} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[qms-text-block]',\r\n})\r\nexport class QMSTextBlockDirective implements OnInit {\r\n\r\n @Input('appearance') appearance: string;\r\n @Input('mode') mode: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-text-block');\r\n if(this.appearance == 'fill'){\r\n this.ele.nativeElement.classList.add('qms-text-block-filled')\r\n }\r\n if(this.mode === 'dark'){\r\n this.ele.nativeElement.classList.add('qms-text-block-dark')\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[qms-tooltip-image]',\r\n})\r\nexport class QMSTooltipImageDirective implements OnInit {\r\n @Input('type') type: string;\r\n constructor(private ele: ElementRef) {\r\n }\r\n ngOnInit(): void {\r\n if (this.ele) {\r\n this.ele.nativeElement.classList.add('qms-tooltip-image');\r\n if (this.type) { \r\n this.ele.nativeElement.classList.add(this.type);\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, ContentChild, ElementRef, Input, OnInit, TemplateRef, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'qms-tooltip',\r\n templateUrl: './tooltip.html',\r\n styleUrls: ['./tooltip.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n })\r\nexport class QMSToolTipComponent implements OnInit, AfterViewInit {\r\n\r\n /**\r\n * This is simple text which is to be shown in the tooltip\r\n */\r\n @Input() text: string;\r\n @Input() mode: string;\r\n\r\n /**\r\n * This provides finer control on the content to be visible on the tooltip\r\n * This template will be injected in McToolTipRenderer directive in the consumer template\r\n * <ng-template #template>\r\n * content.....\r\n * </ng-template>\r\n */\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @ViewChild('qmsTooltipContainer', {static: false}) qmsTooltipContainer: ElementRef;\r\n constructor(private ele: ElementRef) { }\r\n ngAfterViewInit(): void {\r\n if(this.mode == 'dark'){\r\n this.qmsTooltipContainer.nativeElement.classList.add('qms-tooltip-container-dark')\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n}","import { ConnectedPosition, ConnectionPositionPair, Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\r\nimport { ComponentPortal } from \"@angular/cdk/portal\";\r\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, TemplateRef } from \"@angular/core\";\r\nimport { QMSToolTipComponent } from \"../../components/tooltip/tooltip\";\r\n\r\n@Directive({\r\n selector: '[qms-tool-tip]'\r\n})\r\nexport class QMSToolTipRendererDirective {\r\n\r\n /**\r\n * This will be used to show tooltip or not\r\n * This can be used to show the tooltip conditionally\r\n */\r\n @Input() showToolTip: boolean = true;\r\n @Input() mode: string;\r\n //If this is specified then specified text will be showin in the tooltip\r\n @Input(`qms-tool-tip`) text: string;\r\n\r\n //If this is specified then specified template will be rendered in the tooltip\r\n @Input() contentTemplate: TemplateRef<any>;\r\n @Input() position: string;\r\n private _overlayRef: OverlayRef;\r\n\r\n constructor(private _overlay: Overlay,\r\n private _overlayPositionBuilder: OverlayPositionBuilder,\r\n private _elementRef: ElementRef) { }\r\n\r\n /**\r\n * Init life cycle event handler\r\n */\r\n ngOnInit() {\r\n\r\n if (!this.showToolTip) {\r\n return;\r\n }\r\n\r\n let positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 5,\r\n }]);\r\n switch (this.position) {\r\n case 'left': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: -10,\r\n }]);\r\n break;\r\n }\r\n case 'right': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n offsetY: 0,\r\n offsetX: 10,\r\n }]);\r\n break;\r\n }\r\n case 'top': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'top',\r\n overlayX: 'center',\r\n overlayY: 'bottom',\r\n offsetY: -10,\r\n offsetX: 0,\r\n }]);\r\n break;\r\n }\r\n case 'bottom': {\r\n positionStrategy = this._overlayPositionBuilder\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions([{\r\n originX: 'center',\r\n originY: 'bottom',\r\n overlayX: 'center',\r\n overlayY: 'top',\r\n offsetY: 10,\r\n offsetX: 0\r\n }]);\r\n break;\r\n }\r\n }\r\n\r\n this._overlayRef = this._overlay.create({ positionStrategy });\r\n }\r\n\r\n /**\r\n * This method will be called whenever mouse enters in the Host element\r\n * i.e. where this directive is applied\r\n * This method will show the tooltip by instantiating the McToolTipComponent and attaching to the overlay\r\n */\r\n @HostListener('focus')\r\n @HostListener('mouseenter')\r\n show() {\r\n //attach the component if it has not already attached to the overlay\r\n if (this.text && this._overlayRef && !this._overlayRef.hasAttached()) {\r\n const tooltipRef: ComponentRef<QMSToolTipComponent>\r\n = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));\r\n tooltipRef.instance.text = this.text;\r\n if (this.mode) {\r\n tooltipRef.instance.mode = this.mode;\r\n }\r\n tooltipRef.instance.contentTemplate = this.contentTemplate;\r\n }\r\n }\r\n\r\n /**\r\n * This method will be called when mouse goes out of the host element\r\n * i.e. where this directive is applied\r\n * This method will close the tooltip by detaching the overlay from the view\r\n */\r\n @HostListener('focusout')\r\n @HostListener('mouseleave')\r\n hide() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * Destroy lifecycle event handler\r\n * This method will make sure to close the tooltip\r\n * It will be needed in case when app is navigating to different page\r\n * and user is still seeing the tooltip; In that case we do not want to hang around the\r\n * tooltip after the page [on which tooltip visible] is destroyed\r\n */\r\n ngOnDestroy() {\r\n this.closeToolTip();\r\n }\r\n\r\n /**\r\n * This method will close the tooltip by detaching the component from the overlay\r\n */\r\n private closeToolTip() {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n }\r\n }\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport {\r\n AfterContentInit,\r\n Attribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChildren,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n Output,\r\n QueryList,\r\n ViewChild,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n Inject,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n CanDisableRipple,\r\n mixinDisableRipple,\r\n} from '@angular/material/core';\r\n\r\n\r\n\r\nexport type ButtonToggleAppearance = 'standard' | 'active' | 'dark';\r\n\r\nexport interface ButtonToggleDefaultOptions {\r\n appearance?: ButtonToggleAppearance;\r\n}\r\n\r\n\r\nexport const BUTTON_TOGGLE_DEFAULT_OPTIONS =\r\n new InjectionToken<ButtonToggleDefaultOptions>('BUTTON_TOGGLE_DEFAULT_OPTIONS');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP =\r\n new InjectionToken<QMSButtonToggleGroup>('QMSButtonToggleGroup');\r\n\r\n\r\nexport const BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSButtonToggleGroup),\r\n multi: true\r\n};\r\n\r\n\r\nlet uniqueIdCounter = 0;\r\n\r\n\r\nexport class ButtonToggleChange {\r\n constructor(\r\n public source: QMSButtonToggle,\r\n public value: any) { }\r\n}\r\n\r\n\r\n@Directive({\r\n selector: 'qms-button-toggle-group',\r\n providers: [\r\n BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\r\n { provide: BUTTON_TOGGLE_GROUP, useExisting: QMSButtonToggleGroup },\r\n ],\r\n host: {\r\n 'role': 'group',\r\n 'class': 'qms-button-toggle-group',\r\n '[attr.aria-disabled]': 'disabled',\r\n '[class.qms-button-toggle-vertical]': 'vertical',\r\n '[class.qms-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-group-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-group-appearance-dark]': 'appearance === \"dark\"',\r\n },\r\n exportAs: 'qmsButtonToggleGroup',\r\n})\r\nexport class QMSButtonToggleGroup implements ControlValueAccessor, OnInit, AfterContentInit {\r\n private _vertical = false;\r\n private _disabled = false;\r\n private _selectionModel: SelectionModel<QMSButtonToggle>;\r\n\r\n private _rawValue: any;\r\n\r\n _controlValueAccessorChangeFn: (value: any) => void = () => { };\r\n\r\n _onTouched: () => any = () => { };\r\n\r\n @ContentChildren(forwardRef(() => QMSButtonToggle), {\r\n descendants: true\r\n }) _buttonToggles: QueryList<QMSButtonToggle>;\r\n\r\n\r\n @Input() appearance: ButtonToggleAppearance;\r\n\r\n @Input()\r\n get name(): string { return this._name; }\r\n set name(value: string) {\r\n this._name = value;\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => {\r\n toggle.name = this._name;\r\n toggle._markForCheck();\r\n });\r\n }\r\n }\r\n private _name = `qms-button-toggle-group-${uniqueIdCounter++}`;\r\n\r\n\r\n @Input()\r\n get vertical(): boolean { return this._vertical; }\r\n set vertical(value: boolean) {\r\n this._vertical = coerceBooleanProperty(value);\r\n }\r\n\r\n\r\n @Input()\r\n get value(): any {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n\r\n return selected[0] ? selected[0].value : undefined;\r\n }\r\n set value(newValue: any) {\r\n this._setSelectionByValue(newValue);\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n\r\n @Output() readonly valueChange = new EventEmitter<any>();\r\n\r\n\r\n get selected(): QMSButtonToggle | QMSButtonToggle[] {\r\n const selected = this._selectionModel ? this._selectionModel.selected : [];\r\n return (selected[0] || null);\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean { return this._disabled; }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n if (this._buttonToggles) {\r\n this._buttonToggles.forEach(toggle => toggle._markForCheck());\r\n }\r\n }\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n this._selectionModel = new SelectionModel<QMSButtonToggle>(false, undefined, false);\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._selectionModel.select(...this._buttonToggles.filter(toggle => toggle.checked));\r\n }\r\n\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n this._controlValueAccessorChangeFn = fn;\r\n }\r\n\r\n\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n _emitChangeEvent(): void {\r\n const selected = this.selected;\r\n const source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\r\n const event = new ButtonToggleChange(source!, this.value);\r\n this._controlValueAccessorChangeFn(event.value);\r\n this.change.emit(event);\r\n }\r\n\r\n _syncButtonToggle(toggle: QMSButtonToggle,\r\n select: boolean,\r\n isUserInput = false,\r\n deferEvents = false) {\r\n\r\n if (this.selected && !toggle.checked) {\r\n (this.selected as QMSButtonToggle).checked = false;\r\n }\r\n\r\n if (this._selectionModel) {\r\n if (select) {\r\n this._selectionModel.select(toggle);\r\n } else {\r\n this._selectionModel.deselect(toggle);\r\n }\r\n } else {\r\n deferEvents = true;\r\n }\r\n\r\n\r\n if (deferEvents) {\r\n Promise.resolve().then(() => this._updateModelValue(isUserInput));\r\n } else {\r\n this._updateModelValue(isUserInput);\r\n }\r\n }\r\n\r\n\r\n _isSelected(toggle: QMSButtonToggle) {\r\n return this._selectionModel && this._selectionModel.isSelected(toggle);\r\n }\r\n\r\n\r\n _isPrechecked(toggle: QMSButtonToggle) {\r\n if (typeof this._rawValue === 'undefined') {\r\n return false;\r\n }\r\n\r\n return toggle.value === this._rawValue;\r\n }\r\n\r\n\r\n private _setSelectionByValue(value: any | any[]) {\r\n this._rawValue = value;\r\n\r\n if (!this._buttonToggles) {\r\n return;\r\n }\r\n\r\n this._clearSelection();\r\n this._selectValue(value);\r\n }\r\n\r\n\r\n private _clearSelection() {\r\n this._selectionModel.clear();\r\n this._buttonToggles.forEach(toggle => toggle.checked = false);\r\n }\r\n\r\n\r\n private _selectValue(value: any) {\r\n const correspondingOption = this._buttonToggles.find(toggle => {\r\n return toggle.value != null && toggle.value === value;\r\n });\r\n\r\n if (correspondingOption) {\r\n correspondingOption.checked = true;\r\n this._selectionModel.select(correspondingOption);\r\n }\r\n }\r\n\r\n private _updateModelValue(isUserInput: boolean) {\r\n if (isUserInput) {\r\n this._emitChangeEvent();\r\n }\r\n\r\n\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_multiple: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n}\r\n\r\n\r\nconst _ButtonToggleBase = mixinDisableRipple(class { });\r\n\r\n\r\n@Component({\r\n selector: 'qms-button-toggle',\r\n templateUrl: 'button-toggle.html',\r\n styleUrls: ['button-toggle.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'qmsButtonToggle',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n inputs: ['disableRipple'],\r\n host: {\r\n '[class.qms-button-toggle-standalone]': '!buttonToggleGroup',\r\n '[class.qms-button-toggle-checked]': 'checked',\r\n '[class.qms-button-toggle-disabled]': 'disabled',\r\n '[class.qms-button-toggle-appearance-standard]': 'appearance === \"standard\"',\r\n '[class.qms-button-toggle-appearance-active]': 'appearance === \"active\"',\r\n '[class.qms-button-toggle-appearance-dark]': 'appearance === \"dark\"',\r\n 'class': 'qms-button-toggle',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.id]': 'id',\r\n '[attr.name]': 'null',\r\n '(focus)': 'focus()',\r\n 'role': 'presentation',\r\n }\r\n})\r\nexport class QMSButtonToggle extends _ButtonToggleBase implements OnInit, AfterViewInit,\r\n CanDisableRipple, OnDestroy {\r\n\r\n private _checked = false;\r\n\r\n\r\n @Input('aria-label') ariaLabel: string;\r\n\r\n\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n\r\n @ViewChild('button') _buttonElement: ElementRef<HTMLButtonElement>;\r\n\r\n\r\n buttonToggleGroup: QMSButtonToggleGroup;\r\n\r\n\r\n get buttonId(): string { return `${this.id}-button`; }\r\n\r\n\r\n @Input() id: string;\r\n\r\n\r\n @Input() name: string;\r\n\r\n\r\n @Input() value: any;\r\n\r\n\r\n @Input() tabIndex: number | null;\r\n\r\n\r\n @Input()\r\n get appearance(): ButtonToggleAppearance {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\r\n }\r\n set appearance(value: ButtonToggleAppearance) {\r\n this._appearance = value;\r\n }\r\n private _appearance: ButtonToggleAppearance;\r\n\r\n\r\n @Input()\r\n get checked(): boolean {\r\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\r\n }\r\n set checked(value: boolean) {\r\n const newValue = coerceBooleanProperty(value);\r\n\r\n if (newValue !== this._checked) {\r\n this._checked = newValue;\r\n\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\r\n }\r\n set disabled(value: boolean) { this._disabled = coerceBooleanProperty(value); }\r\n private _disabled: boolean = false;\r\n\r\n @Output() readonly change: EventEmitter<ButtonToggleChange> =\r\n new EventEmitter<ButtonToggleChange>();\r\n\r\n constructor(@Optional() @Inject(BUTTON_TOGGLE_GROUP) toggleGroup: QMSButtonToggleGroup,\r\n private _changeDetectorRef: ChangeDetectorRef,\r\n private _elementRef: ElementRef<HTMLElement>,\r\n private _focusMonitor: FocusMonitor,\r\n @Attribute('tabindex') defaultTabIndex: string,\r\n @Optional() @Inject(BUTTON_TOGGLE_DEFAULT_OPTIONS)\r\n defaultOptions?: ButtonToggleDefaultOptions) {\r\n super();\r\n\r\n const parsedTabIndex = Number(defaultTabIndex);\r\n this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\r\n this.buttonToggleGroup = toggleGroup;\r\n this.appearance =\r\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\r\n }\r\n\r\n ngOnInit() {\r\n const group = this.buttonToggleGroup;\r\n this.id = this.id || `qms-button-toggle-${uniqueIdCounter++}`;\r\n\r\n this.name = group.name;\r\n\r\n if (group) {\r\n if (group._isPrechecked(this)) {\r\n this.checked = true;\r\n } else if (group._isSelected(this) !== this._checked) {\r\n group._syncButtonToggle(this, this._checked);\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n const group = this.buttonToggleGroup;\r\n\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n\r\n if (group && group._isSelected(this)) {\r\n group._syncButtonToggle(this, false, false, true);\r\n }\r\n }\r\n\r\n focus(options?: FocusOptions): void {\r\n this._buttonElement.nativeElement.focus(options);\r\n }\r\n\r\n _onButtonClick() {\r\n\r\n if (!this._checked) {\r\n this._checked = true;\r\n if (this.buttonToggleGroup) {\r\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\r\n this.buttonToggleGroup._onTouched();\r\n }\r\n }\r\n this.change.emit(new ButtonToggleChange(this, this.value));\r\n }\r\n\r\n\r\n _markForCheck() {\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n static ngAcceptInputType_checked: BooleanInput;\r\n static ngAcceptInputType_disabled: BooleanInput;\r\n static ngAcceptInputType_vertical: BooleanInput;\r\n static ngAcceptInputType_disableRipple: BooleanInput;\r\n}","import { ElementRef } from '@angular/core';\r\n\r\nexport type Constructor<T> = new (...args: any[]) => T;\r\n\r\nexport type ThemePalette = 'primary' | 'secondary' | 'light' | 'dark' | undefined;\r\n\r\n/** @docs-private */\r\nexport interface CanColor {\r\n /** Theme color palette for the component. */\r\n color: ThemePalette;\r\n\r\n /** Default color to fall back to if no value is set. */\r\n defaultColor: ThemePalette | undefined;\r\n}\r\n\r\n/** @docs-private */\r\nexport type CanColorCtor = Constructor<CanColor>;\r\n\r\n/** @docs-private */\r\nexport interface HasElementRef {\r\n _elementRef: ElementRef;\r\n}\r\n\r\n///** Mixin to augment a directive with a `color` property. */\r\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\r\n return class extends base {\r\n private _color: ThemePalette;\r\n defaultColor = defaultColor;\r\n\r\n get color(): ThemePalette { return this._color; }\r\n set color(value: ThemePalette) {\r\n const colorPalette = value || this.defaultColor;\r\n if (colorPalette !== this._color) {\r\n if (this._color) {\r\n this._elementRef.nativeElement.classList.remove(`qms-${this._color}`);\r\n }\r\n if (colorPalette) {\r\n this._elementRef.nativeElement.classList.add(`qms-${colorPalette}`);\r\n }\r\n\r\n this._color = colorPalette;\r\n }\r\n }\r\n\r\n constructor(...args: any[]) {\r\n super(...args);\r\n\r\n // Set the default color that can be specified from the mixin.\r\n this.color = defaultColor;\r\n }\r\n };\r\n}\r\n","import { FocusMonitor, FocusableOption, FocusOrigin } from '@angular/cdk/a11y';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n OnDestroy,\r\n ViewEncapsulation,\r\n Optional,\r\n Inject,\r\n Input,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport {\r\n CanColor,\r\n CanColorCtor,\r\n mixinColor,\r\n} from './color';\r\nimport {\r\n CanDisable,\r\n CanDisableCtor,\r\n mixinDisabled,\r\n} from '@angular/material/core';\r\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\r\n\r\nconst DEFAULT_ROUND_BUTTON_COLOR = 'primary';\r\n\r\n/**\r\n * List of classes to add to QMSButton instances based on host attributes to\r\n * style as different variants.\r\n */\r\nconst BUTTON_HOST_ATTRIBUTES = [\r\n 'qms-btn',\r\n 'qms-btn-lg',\r\n 'qms-btn-outlined',\r\n 'qms-btn-outlined-lg',\r\n 'qms-btn-text',\r\n 'qms-btn-text-lg',\r\n 'qms-btn-fab',\r\n 'qms-btn-fab-sm',\r\n 'qms-btn-fab-ext',\r\n 'qms-btn-fab-outlined',\r\n 'qms-btn-fab-outlined-sm',\r\n 'qms-btn-fab-outlined-ext'\r\n];\r\n\r\nclass QMSButtonBase {\r\n constructor(public _elementRef: ElementRef) { }\r\n}\r\n\r\nconst _QMSButtonMixinBase: CanDisableCtor & CanColorCtor &\r\n typeof QMSButtonBase = mixinColor(mixinDisabled(QMSButtonBase));\r\n\r\n\r\n/**\r\n * QMS design button.\r\n */\r\n@Component({\r\n selector: `button[qms-btn], button[qms-btn-lg], button[qms-btn-outlined],\r\n button[qms-btn-outlined-lg], button[qms-btn-text], button[qms-btn-text-lg],\r\n button[qms-btn-fab],button[qms-btn-fab-sm],button[qms-btn-fab-ext],\r\n button[qms-btn-fab-outlined],button[qms-btn-fab-outlined-sm],button[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton',\r\n host: {\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n inputs: ['disabled', 'color'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButton extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n\r\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\r\n if (this._hasHostAttributes(attr)) {\r\n (this._getHostElement() as HTMLElement).classList.add(attr);\r\n }\r\n }\r\n\r\n elementRef.nativeElement.classList.add('qms-btn-base');\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Material design anchor button.\r\n */\r\n@Component({\r\n selector: `a[qms-btn], a[qms-btn-lg], a[qms-btn-outlined],\r\n a[qms-btn-outlined-lg], a[qms-btn-text], a[qms-btn-text-lg],\r\n a[qms-btn-fab], a[qms-btn-fab-sm], a[qms-btn-fab-ext],\r\n a[qms-btn-fab-outlined],a[qms-btn-fab-outlined-sm],a[qms-btn-fab-outlined-ext]`,\r\n exportAs: 'qmsButton, qmsAnchor',\r\n host: {\r\n '[attr.tabindex]': 'disabled ? -1 : (tabIndex || 0)',\r\n '[attr.disabled]': 'disabled || null',\r\n '[attr.aria-disabled]': 'disabled.toString()',\r\n '(click)': '_haltDisabledEvents($event)',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled'\r\n },\r\n inputs: ['disabled', 'color'],\r\n templateUrl: 'button.html',\r\n styleUrls: ['button.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSAnchor extends QMSButton {\r\n @Input() tabIndex: number;\r\n\r\n constructor(\r\n focusMonitor: FocusMonitor,\r\n elementRef: ElementRef,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode: string) {\r\n super(elementRef, focusMonitor, animationMode);\r\n }\r\n\r\n _haltDisabledEvents(event: Event) {\r\n // A disabled button shouldn't apply any actions\r\n if (this.disabled) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: `button[qms-btn-icon]`,\r\n exportAs: 'qmsButtonIcon',\r\n host: {\r\n 'class': 'qms-btn-icon',\r\n '[attr.disabled]': 'disabled || null',\r\n '[class._qms-animation-noopable]': '_animationMode === \"NoopAnimations\"',\r\n '[class.qms-btn-disabled]': 'disabled',\r\n '[class.active-icon]': 'type',\r\n },\r\n templateUrl: 'button-icon.html',\r\n styleUrls: ['button-icon.scss'],\r\n inputs: ['disabled', 'color', 'type'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSButtonIcon extends _QMSButtonMixinBase\r\n implements AfterViewInit, OnDestroy, CanDisable, CanColor, FocusableOption {\r\n\r\n @Input('type') type: string;\r\n\r\n constructor(elementRef: ElementRef,\r\n private _focusMonitor: FocusMonitor,\r\n private renderer: Renderer2,\r\n @Optional() @Inject(ANIMATION_MODULE_TYPE) public _animationMode: string) {\r\n super(elementRef);\r\n }\r\n\r\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\r\n if (origin) {\r\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\r\n } else {\r\n this._getHostElement().focus(options);\r\n }\r\n }\r\n\r\n _getHostElement() {\r\n return this._elementRef.nativeElement;\r\n }\r\n\r\n _hasHostAttributes(...attributes: string[]) {\r\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n this.renderer.addClass(this._elementRef.nativeElement, 'active-icon');\r\n }\r\n\r\n this._focusMonitor.monitor(this._elementRef, true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this._focusMonitor.stopMonitoring(this._elementRef);\r\n }\r\n\r\n}","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSButtonToggle, QMSButtonToggleGroup } from './button-toggle';\r\nimport { QMSAnchor, QMSButton, QMSButtonIcon } from './button';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonIcon,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup\r\n ],\r\n declarations: [\r\n QMSButton,\r\n QMSAnchor,\r\n QMSButtonToggle,\r\n QMSButtonToggleGroup,\r\n QMSButtonIcon\r\n ],\r\n})\r\nexport class QMSButtonModule { }\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { QMSButtonModule } from './components/button/button.module';\r\n\r\n@NgModule({\r\n exports: [\r\n MatInputModule,\r\n MatCardModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n QMSButtonModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class SharedMaterialModule { }","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { TranslateLibraryService } from '../services/translation-registry.service';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n\r\n constructor(private trans: TranslateLibraryService) {\r\n\r\n }\r\n\r\n transform(value: Date, args?: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n\r\n let valueFormat = '';\r\n let langCode = '';\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n langCode = res || 'en';\r\n });\r\n\r\n\r\n switch (langCode) {\r\n case 'en':\r\n valueFormat = 'MM/DD/YYYY hh:mm';\r\n break;\r\n case 'no':\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n default:\r\n valueFormat = 'DD.MM.YYYY hh:mm';\r\n break;\r\n }\r\n\r\n return moment(value).format(valueFormat);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport { TranslateLibraryService } from './services/translation-registry.service';\r\n\r\n\r\n@NgModule({})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders<SharedModule> {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [TranslateLibraryService, QMSUploadingFileGuard]\r\n };\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\r\nimport { MAT_RADIO_DEFAULT_OPTIONS } from '@angular/material/radio';\r\nimport { QMSComment } from './components/comment/comment';\r\nimport { QMSConfirmDialog, QMSFormDialog } from './components/dialog/dialog';\r\nimport { QMSSuffixDirective, QMSSuffixFieldDirective } from './components/suffix-field/suffix-field.directive';\r\nimport { TestOnlyComponent } from './components/test-only/test-only.component';\r\nimport { QMSChipInputChipListDirective } from './directives/chip-input/chip-input-chip-list.directive';\r\nimport { QMSChipInputDirective } from './directives/chip-input/chip-input-field.directive';\r\nimport { QMSChipInputSelectDropWDownDirective } from './directives/chip-input/chip-input-select-dropdown.directive';\r\nimport { QMSChipInputSelectFieldDirective } from './directives/chip-input/chip-input-select-field.directive';\r\nimport { QMSChipInputSelectTriggerDirective } from './directives/chip-input/chip-input-select-trigger.directive';\r\nimport { QMSChipBodyDirective } from './directives/chips/chip-body.directive';\r\nimport { QMSInputChipDirective } from './directives/chips/chip.directive';\r\nimport { QMSDropdownMenuItem } from './directives/dropdown-menu/dropdown-item.directive';\r\nimport { QMSAttachmentListDirective } from './directives/file-upload/file-upload-attachment-list.directive';\r\nimport { QMSFileUploadDisplayDirective } from './directives/file-upload/file-upload-display.directive';\r\nimport { QMSFileUploadMultipleDisplayDirective } from './directives/file-upload/file-upload-multiple-display.directive';\r\nimport { QMSFileUploadMultipleSelectorDirective } from './directives/file-upload/file-upload-multiple-selector.directive';\r\nimport { QMSFileUploadMultipleDirective } from './directives/file-upload/file-upload-multiple.directive';\r\nimport { QMSScrolableAttachmentListDirective } from './directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nimport { QMSFileUploadSelectorDirective } from './directives/file-upload/file-upload-selector.directive';\r\nimport { QMSFileUploadDirective, QMSUploadingFileGuard } from './directives/file-upload/file-upload.directive';\r\nimport {\r\n AutocompleteOffDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective\r\n} from './directives/form.directive';\r\nimport { MarginDirective } from './directives/margin.directive';\r\nimport { QMSRangeSliderLockUpDirective } from './directives/range-slider/range-slider-lockup.directive';\r\nimport { QMSRangeSliderDirective } from './directives/range-slider/range-slider.directive';\r\nimport { ScrollToSelectedDirective } from './directives/scroll-selected/scroll-to-selected.directive';\r\nimport { QMSScrollbarDirective } from './directives/scrollbar/scrollbar.directive';\r\nimport {\r\n QMSInputClearDirective,\r\n QMSSearchFieldDirective\r\n} from './directives/search-field.directive';\r\nimport { QMSDrawerContentDirective } from \"./directives/side-sheet/drawer-content.directive\";\r\nimport { QMSDrawerHeaderActionDirective } from \"./directives/side-sheet/drawer-header-action.directive\";\r\nimport { QMSDrawerHeaderDirective } from \"./directives/side-sheet/drawer-header.directive\";\r\nimport { QMSDrawerDirective } from \"./directives/side-sheet/drawer.directive\";\r\nimport { QMSTabGroupAdvancedDirective } from \"./directives/tab/tab-group-advanced.directive\";\r\nimport { QMSTabGroupDirective } from \"./directives/tab/tab-group.directive\";\r\nimport { QMSTabLabelDirective } from \"./directives/tab/tab-label.directive\";\r\nimport { QMSTextBlockLine } from \"./directives/text-block/text-block-line.directive\";\r\nimport { QMSTextBlockDirective } from \"./directives/text-block/text-block.directive\";\r\nimport { QMSTooltipImageDirective } from './directives/tooltip/tooltip-image.directive';\r\nimport { QMSToolTipRendererDirective } from \"./directives/tooltip/tooltip-renderer.directive\";\r\nimport { SharedMaterialModule } from './material-module';\r\nimport { DateFormatPipe } from './pipe/dateFormat.pipe';\r\nimport { QmsAngularComponent } from './qms-angular.component';\r\nimport { SharedModule } from './shared.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsAngularComponent,\r\n TestOnlyComponent,\r\n MarginDirective,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n QMSFormFieldTextareaDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSFormFieldDatePickerDirective,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n SharedMaterialModule\r\n ],\r\n exports: [\r\n QmsAngularComponent,\r\n MarginDirective,\r\n TestOnlyComponent,\r\n QMSSearchFieldDirective,\r\n QMSInputClearDirective,\r\n QMSFormFieldDirective,\r\n QMSFormFieldTextareaDirective,\r\n QMSGroupOptionDirective,\r\n QMSSuffixFieldDirective,\r\n QMSSuffixDirective,\r\n AutocompleteOffDirective,\r\n QMSComment,\r\n QMSConfirmDialog,\r\n QMSFormDialog,\r\n QMSInputChipDirective,\r\n QMSChipBodyDirective,\r\n QMSFormFieldDatePickerDirective,\r\n QMSFileUploadDirective,\r\n QMSFileUploadDisplayDirective,\r\n QMSFileUploadSelectorDirective,\r\n QMSAttachmentListDirective,\r\n QMSScrolableAttachmentListDirective,\r\n QMSFileUploadMultipleDirective,\r\n QMSFileUploadMultipleDisplayDirective,\r\n QMSFileUploadMultipleSelectorDirective,\r\n QMSRangeSliderDirective,\r\n QMSRangeSliderLockUpDirective,\r\n QMSDropdownMenuItem,\r\n QMSScrollbarDirective,\r\n QMSTextBlockDirective,\r\n QMSTextBlockLine,\r\n QMSDrawerDirective,\r\n QMSDrawerHeaderDirective,\r\n QMSDrawerContentDirective,\r\n QMSDrawerHeaderActionDirective,\r\n QMSToolTipRendererDirective,\r\n QMSTabLabelDirective,\r\n QMSTabGroupDirective,\r\n QMSTabGroupAdvancedDirective,\r\n DateFormatPipe,\r\n QMSChipInputDirective,\r\n QMSChipInputSelectFieldDirective,\r\n QMSChipInputSelectDropWDownDirective,\r\n QMSChipInputSelectTriggerDirective,\r\n QMSChipInputChipListDirective,\r\n ScrollToSelectedDirective,\r\n QMSTooltipImageDirective\r\n ],\r\n providers: [\r\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'fill' } },\r\n { provide: MAT_RADIO_DEFAULT_OPTIONS, useValue: { color: 'none' } },\r\n QMSUploadingFileGuard\r\n ],\r\n // entryComponents: []\r\n})\r\nexport class QmsAngularModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { setLines } from '@angular/material/core';\r\n\r\n\r\n@Directive({\r\n selector: '[leading-icon]',\r\n host: { 'class': 'leading-icon' }\r\n})\r\nexport class QMSListLeadingIcon { }\r\n\r\n@Directive({\r\n selector: '[qms-line]'\r\n})\r\nexport class QMSListLine {\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @Input('size') size: string;\r\n @Input('type') type: string;\r\n @Input('color') color: string;\r\n\r\n ngOnInit(): void {\r\n if (this.type === 'caption') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'caption');\r\n }\r\n else if (this.type === 'subtitle') {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `subtitle size-${this.size ? this.size : 'none'}`);\r\n } else {\r\n this.renderer.setAttribute(this.elRef.nativeElement, 'class', `qms-line size-${this.size ? this.size : 'none'}`);\r\n }\r\n\r\n if (this.color) {\r\n this.renderer.addClass(this.elRef.nativeElement, this.color);\r\n }\r\n\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-list-header]',\r\n host: { 'class': 'qms-list-header' }\r\n})\r\nexport class QMSListHeader {\r\n\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion]',\r\n host: { 'class': 'qms-expansion' }\r\n})\r\nexport class QMSListExpansion implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n\r\n }\r\n ngAfterContentInit() {\r\n // setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[qms-expansion-header]',\r\n host: { 'class': 'qms-expansion-header' }\r\n})\r\nexport class QMSListExpansionHeader implements AfterContentInit {\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) { }\r\n\r\n @HostListener('click', ['$event']) onClick($event) {\r\n const qmsList = document.querySelectorAll('.qms-expansion-header');\r\n [].forEach.call(qmsList, (el) => {\r\n el.classList.remove('active-item');\r\n });\r\n this.renderer.addClass(this.elRef.nativeElement, 'active-item');\r\n }\r\n\r\n ngAfterContentInit() {\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'qms-list',\r\n templateUrl: 'list.html',\r\n styleUrls: ['list.scss'],\r\n host: { 'class': 'qms-list' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSList implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-list-item',\r\n templateUrl: 'list-item.html',\r\n styleUrls: ['list.scss'],\r\n host: {\r\n 'class': 'qms-list-item',\r\n '[class.qms-list-item-disabled]': 'disabled',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSListItem implements AfterViewInit {\r\n @Input('type') type: string;\r\n get disabled() { return this._disabled }\r\n set disabled(value: boolean) {\r\n this._disabled = coerceBooleanProperty(value);\r\n }\r\n private _disabled = false;\r\n\r\n @ContentChildren(QMSListLine, { descendants: true }) _lines: QueryList<QMSListLine>;\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n if (this.type) {\r\n // this.renderer.setAttribute(this.elRef.nativeElement, 'class', 'qms-list-item image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, 'image-item');\r\n this.renderer.addClass(this.elRef.nativeElement, this.type);\r\n }\r\n\r\n setLines(this._lines, this.elRef);\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatExpansionModule, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS } from '@angular/material/expansion';\r\n\r\nimport {\r\n QMSList, QMSListItem, QMSListLeadingIcon, QMSListLine,\r\n QMSListHeader, QMSListExpansion, QMSListExpansionHeader\r\n} from './list';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatListModule,\r\n MatExpansionModule,\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n declarations: [\r\n QMSList,\r\n QMSListItem,\r\n QMSListLeadingIcon,\r\n QMSListLine,\r\n QMSListHeader,\r\n QMSListExpansion,\r\n QMSListExpansionHeader\r\n ],\r\n providers: [\r\n {\r\n provide: MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,\r\n useValue: {\r\n expandedHeight: '*',\r\n collapsedHeight: '*'\r\n }\r\n }\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSListModule { }\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewEncapsulation } from \"@angular/core\";\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from \"@angular/forms\";\r\n@Component({\r\n selector: 'qms-rich-text',\r\n templateUrl: 'rich-text.html',\r\n styleUrls: ['rich-text.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSRichText),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSRichText implements OnInit, AfterViewInit, ControlValueAccessor, Validator {\r\n\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Input('placeholder') placeholder: string;\r\n\r\n public _value: string;\r\n\r\n public Editor = [];\r\n\r\n public configEditor = {\r\n placeholder: 'Placeholder',\r\n toolbar: {\r\n items: [\r\n 'undo',\r\n 'redo',\r\n '|',\r\n 'alignment',\r\n '|',\r\n 'bold',\r\n 'italic',\r\n 'strikethrough',\r\n 'underline',\r\n '|',\r\n 'bulletedList',\r\n 'numberedList',\r\n '|',\r\n 'insertTable',\r\n \"blockQuote\",\r\n '|',\r\n 'heading'\r\n ]\r\n },\r\n alignment: {\r\n options: ['left', 'right', 'center', 'justify']\r\n },\r\n };\r\n\r\n constructor(private elRef: ElementRef, private renderer: Renderer2) {\r\n }\r\n\r\n onChange: (_value: any) => void;\r\n onTouched: () => void;\r\n\r\n writeValue(obj: any): void {\r\n this._value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngAfterViewInit() {\r\n this.configEditor.placeholder = this.placeholder;\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n const data = editor.getData();\r\n this.writeValue(data);\r\n this.onChange(data);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this._value && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n public onReady(editor) {\r\n if (this._value) {\r\n editor.setData(this._value);\r\n }\r\n this.initEditor(editor);\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n }\r\n\r\n}\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSRichText } from './rich-text';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSRichText,\r\n ],\r\n declarations: [\r\n QMSRichText,\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSRichTextModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\n@Component({\r\n selector: 'qms-edit-file-name-dialog',\r\n templateUrl: 'edit-file-name-dialog.html',\r\n styleUrls: ['edit-file-name-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSEditFileNameDialog {\r\n fileName: string;\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSEditFileNameDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: string) {\r\n this.fileName = this.data;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n cancel(): void {\r\n this.dialogRef.close(null);\r\n }\r\n\r\n saveChanges(): void {\r\n this.dialogRef.close(this.fileName);\r\n }\r\n\r\n clearInput(): void {\r\n this.fileName = '';\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSEditFileNameDialog } from \"./edit-file-name-dialog\";\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSEditFileNameDialog\r\n ],\r\n declarations: [\r\n QMSEditFileNameDialog\r\n ],\r\n})\r\nexport class QMSEditFileNameDialogModule { }\r\n","import { Component, ElementRef, Inject, OnInit, ViewEncapsulation } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../services/translation-registry.service\";\r\n\r\nexport class UploadErrorData {\r\n fileNames: string[];\r\n acceptedExtension: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'qms-upload-file-error-dialog',\r\n templateUrl: 'upload-file-error-dialog.html',\r\n styleUrls: ['upload-file-error-dialog.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class QMSUploadFileErrorDialog {\r\n unsupportedFiles: string[];\r\n supportedExtensions: string[];\r\n LANG: any;\r\n constructor(\r\n public dialogRef: MatDialogRef<QMSUploadFileErrorDialog>, \r\n public trans: TranslateLibraryService,\r\n @Inject(MAT_DIALOG_DATA) public data: UploadErrorData) {\r\n this.unsupportedFiles = this.data.fileNames;\r\n this.supportedExtensions = this.data.acceptedExtension;\r\n this.trans.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.trans.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n ok(): void {\r\n this.dialogRef.close(null);\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCommonModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { SharedModule } from \"../../shared.module\";\r\nimport { QMSButtonModule } from \"../button/button.module\";\r\nimport { QMSUploadFileErrorDialog } from \"./upload-file-error-dialog\";\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n FormsModule,\r\n SharedModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n QMSUploadFileErrorDialog\r\n ],\r\n declarations: [\r\n QMSUploadFileErrorDialog\r\n ],\r\n})\r\nexport class QMSUploadFileErrorDialogModule { }","export enum DataType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4,\r\n deviation = 5,\r\n checklist = 6,\r\n risk = 7,\r\n deviationType = 8,\r\n checklistCategory = 9,\r\n riskFolder = 10\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { SelectedNode } from \"../model/selected-node.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-content',\r\n templateUrl: './related-content.component.html',\r\n styleUrls: ['./related-content.component.scss']\r\n})\r\nexport class RelatedContentComponent implements OnInit {\r\n LANG: any;\r\n @Input() header: string;\r\n @Input() contents: Array<SelectedNode> = [];\r\n\r\n dataType = DataType;\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n ngOnInit(): void {\r\n this.LANG = '';\r\n }\r\n\r\n removeContent(content: SelectedNode) {\r\n const index = this.contents.findIndex(x => {\r\n return x.id === content.id;\r\n });\r\n if (index >= 0) {\r\n this.contents.splice(index, 1);\r\n }\r\n }\r\n}\r\n","export enum ModuleType {\r\n documentProcess = 1,\r\n deviation = 2,\r\n checklist = 3,\r\n risk = 4\r\n}\r\n","export class RelatedConst {\r\n public static IS_DISPLAY_SEARCH_RESULT = 'IS_DISPLAY_SEARCH_RESULT';\r\n public static HIDE_SEARCH_RESULT = 'HIDE_SEARCH_RESULT';\r\n public static SHOW_SEARCH_RESULT = 'SHOW_SEARCH_RESULT';\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\nexport class PopupData {\r\n moduleId: number;\r\n moduleName: string;\r\n treeData1: Array<TreeModel>;\r\n treeData2: Array<TreeModel>;\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n selectedNode?: Array<any>;\r\n disabledList?: Array<any>;\r\n disabledList2?: Array<any>;\r\n\r\n constructor() {\r\n this.moduleId = 0;\r\n this.moduleName = '';\r\n this.treeData1 = [];\r\n this.treeData2 = [];\r\n this.selectedNode = [];\r\n this.disabledList = [];\r\n this.disabledList2 = [];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { IRelated } from \"../model/related-data.model\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class QMSRelatedGlobalService {\r\n searchRelated = new BehaviorSubject<IRelated[]>([]);\r\n\r\n constructor() { }\r\n\r\n setSearchRelated(result: IRelated[]) {\r\n this.searchRelated.next(result);\r\n }\r\n}\r\n ","export const PROCESS_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V9H5V19H15V21H21V15H15V17H7V9H9V7H15V9H21V3H15V5H9V3H3ZM7 5V7H5V5H7ZM19 5V7H17V5H19ZM19 19V17H17V19H19Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const PROCESS_AREA_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H13C11.8954 11 11 11.8954 11 13V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M13 16.5V13H16.5V14.1667H20V13H23.5V16.5H20V15.3333H16.5V16.5H15.3333V21.1667H20V20H23.5V23.5H20V22.3333H14.1667V16.5H13Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DOCUMENT_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 2H14L20 8V20C20 21.1 19.1 22 18 22H5.99C4.89 22 4 21.1 4 20L4.01 4C4.01 2.9 4.9 2 6 2ZM6 4V20H18V9H13V4H6Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEVIATION_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1 21.5L12 2.5L23 21.5H1ZM19.53 19.5L12 6.49L4.47 19.5H19.53ZM11 16.5V18.5H13V16.5H11ZM11 10.5H13V14.5H11V10.5Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const CHECKLIST_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path d=\"M3 13H5V11H3V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 17H5V15H3V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M3 9H5V7H3V9Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 13H21V11H7V13Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 17H21V15H7V17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path d=\"M7 7V9H21V7H7Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const RISK_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 3V21H21V3H3ZM11 19H5V13H11V19ZM5 11H11V5H5V11ZM19 19H13V13H19V19ZM13 11H19V5H13V11Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V18C22 19.1 21.1 20 20 20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4ZM11.17 8L9.17 6H4V18H20V8H11.17Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const NORMAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.59 4.59C10.21 4.21 9.7 4 9.17 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6H12L10.59 4.59Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const LOCAL_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 21.5001V19.0001H19V21.5001C19 21.7751 19.225 22.0001 19.5 22.0001H21C21.275 22.0001 21.5 21.7751 21.5 21.5001V18.0001H22.35C22.58 18.0001 22.69 17.7151 22.515 17.5651L18.335 13.8001C18.145 13.6301 17.855 13.6301 17.665 13.8001L13.485 17.5651C13.315 17.7151 13.42 18.0001 13.65 18.0001H14.5V21.5001C14.5 21.7751 14.725 22.0001 15 22.0001H16.5C16.775 22.0001 17 21.7751 17 21.5001Z\" fill=\"#1954A9\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>\r\n`;\r\n\r\nexport const ENTERPRISE_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H17C13.6863 11 11 13.6863 11 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.5 17.5V13.5H15.5V15.5H13.5V22.5H17.5V20.5H18.5V22.5H22.5V17.5H20.5ZM15.5 21.5H14.5V20.5H15.5V21.5ZM15.5 19.5H14.5V18.5H15.5V19.5ZM15.5 17.5H14.5V16.5H15.5V17.5ZM17.5 19.5H16.5V18.5H17.5V19.5ZM17.5 17.5H16.5V16.5H17.5V17.5ZM17.5 15.5H16.5V14.5H17.5V15.5ZM19.5 19.5H18.5V18.5H19.5V19.5ZM19.5 17.5H18.5V16.5H19.5V17.5ZM19.5 15.5H18.5V14.5H19.5V15.5ZM21.5 21.5H20.5V20.5H21.5V21.5ZM21.5 19.5H20.5V18.5H21.5V19.5Z\" fill=\"#CF4714\"/>\r\n</svg>`;\r\n\r\nexport const REGIONAL_FOLDER_OUTLINED_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H12V18H4V6H9.17L11.17 8H20V11H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const REGIONAL_FOLDER_ICON = `<svg width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V11H18C14.6863 11 12 13.6863 12 17V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.4999 13.0833C16.4037 13.0833 14.7083 14.7787 14.7083 16.8749C14.7083 19.1337 17.1024 22.2483 18.0883 23.4345C18.3049 23.6945 18.7003 23.6945 18.917 23.4345C19.8974 22.2483 22.2916 19.1337 22.2916 16.8749C22.2916 14.7787 20.5962 13.0833 18.4999 13.0833ZM18.4999 18.2291C17.7524 18.2291 17.1458 17.6224 17.1458 16.8749C17.1458 16.1274 17.7524 15.5208 18.4999 15.5208C19.2474 15.5208 19.8541 16.1274 19.8541 16.8749C19.8541 17.6224 19.2474 18.2291 18.4999 18.2291Z\" fill=\"#662E0D\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_OUTLINED_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4C2.9 4 2.01 4.9 2.01 6L2 18C2 19.1 2.9 20 4 20H11V18H4V6H9.17L11.17 8H20V12H22V8C22 6.9 21.1 6 20 6H12L10 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\nexport const DEPARTMENT_FOLDER_ICON = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4H10L12 6H20C21.1 6 22 6.9 22 8V12H17C13.6863 12 11 14.6863 11 18V20H4C2.9 20 2 19.1 2 18L2.01 6C2.01 4.9 2.9 4 4 4Z\" fill=\"black\" fill-opacity=\"0.6\"/>\r\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 15.25H22C22.555 15.25 23 15.695 23 16.25V21.75C23 22.305 22.555 22.75 22 22.75H14C13.445 22.75 13 22.305 13 21.75L13.005 16.25C13.005 15.695 13.445 15.25 14 15.25H16V14.25C16 13.695 16.445 13.25 17 13.25H19C19.555 13.25 20 13.695 20 14.25V15.25ZM17 15.25H19V14.25H17V15.25Z\" fill=\"#00804C\"/>\r\n</svg>\r\n`;\r\n\r\n\r\nexport const KEYBOARD_UP_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\"/></svg>\r\n`;\r\n\r\nexport const KEYBOARD_DOWN_ICON = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"/></svg>\r\n`;\r\n","export enum DocumentNodeType {\r\n Document = 1,\r\n LinkDocument = 2,\r\n FileDocument = 3,\r\n ShortcutDocument = 4,\r\n Folder = 5, // Level 2\r\n TopFolder = 6, // Level 1\r\n DepartmentFolder = 7,\r\n RegionalFolder = 8\r\n}","export enum ItemIconType {\r\n none = 0,\r\n name = 1,\r\n path = 2,\r\n base64 = 3,\r\n svg = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n parentId?: string;\r\n}\r\n","import { TreeNode } from '../model/tree-node.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\nlet objData = {};\r\nlet json = JSON;\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const keyObj = json.parse(key);\r\n node.id = keyObj[\"id\"];\r\n node.name = keyObj[\"name\"];\r\n node.parentId = keyObj[\"parentId\"]\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: TreeModel[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: TreeModel[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n let parentKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: item.rootId\r\n }\r\n objParent[json.stringify(parentKey)] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n let key = {\r\n id: parent[0].rootId,\r\n name: parent[0].rootName,\r\n parentId: \"\"\r\n }\r\n // add node to tree\r\n objData[json.stringify(key)] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: TreeModel[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n let nodeKey = {\r\n id: item.childId,\r\n name: item.childName,\r\n parentId: id\r\n }\r\n processNode[json.stringify(nodeKey)] = null;\r\n this.findChild(item.rootId, processNode, array);\r\n\r\n let key = {\r\n id: item.rootId,\r\n name: item.subName,\r\n parentId: id\r\n }\r\n objParent[json.stringify(key)] = { ...objParent[json.stringify(key)], ...processNode };\r\n });\r\n}\r\n\r\nconst TreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default TreeFunctions;\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { DocumentNodeType } from '../common/document-folder-type.enum';\r\nimport { ItemIconType } from '../common/item-icon-type.enum';\r\nimport { CHECKLIST_ICON, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_ICON, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport TreeFunctions from '../common/tree.function';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n parentId?: string;\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n}\r\n\r\ninterface ICheckedNode {\r\n id: string;\r\n checked: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-tree',\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class TreeComponent implements OnInit, OnChanges {\r\n @Input() treeData: Array<TreeModel> = [];\r\n @Input() treeConfig: TreeConfig;\r\n @Input() selectedData: Array<TreeFlatNode> = [];\r\n @Input() selectedRiskData: any = [];\r\n @Input() disabledList: any = [];\r\n @Output() selectNodeEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() selectFolderEvent: EventEmitter<TreeFlatNode> = new EventEmitter();\r\n @Output() checkBoxEvent: EventEmitter<TreeFlatNode[]> = new EventEmitter();\r\n @Output() childCheckedEvent: EventEmitter<ICheckedNode> = new EventEmitter();\r\n\r\n listParentObj = {};\r\n filterData: TreeModel[] = [];\r\n treeObject: object;\r\n arrIndex: string[] = [];\r\n checkedNodeList: Array<TreeFlatNode> = [];\r\n useExpandFeature = true;\r\n allowSelectFolder = false;\r\n areaOfCurrentProcess = '';\r\n showCheckBox = false;\r\n allowMultipleCheck = true;\r\n singleSelectedNode = false;\r\n onlyCheckBoxForChild = false;\r\n itemIconType = ItemIconType;\r\n displayType = 1;\r\n openIcon = '';\r\n openIconColor = '#1954A9';\r\n closeIcon = '';\r\n closeIconColor = '#000000';\r\n itemIcon = '';\r\n itemIconSvg = '';\r\n itemIconPath = '';\r\n itemIconBase64 = '';\r\n moduleId: number;\r\n\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n isChecked = false;\r\n checklistSelection: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private domSanitizer: DomSanitizer,\r\n private iconRegistry: MatIconRegistry) {\r\n iconRegistry.addSvgIconLiteral('process', domSanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area_outlined', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('document', domSanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n iconRegistry.addSvgIconLiteral('checklist', domSanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n iconRegistry.addSvgIconLiteral('deviation', domSanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n iconRegistry.addSvgIconLiteral('risk', domSanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('folder', domSanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('folder_outlined', domSanitizer.bypassSecurityTrustHtml(NORMAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('local_folder', domSanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('local_folder_outlined', domSanitizer.bypassSecurityTrustHtml(LOCAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('enterprise_folder', domSanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('enterprise_folder_outlined', domSanitizer.bypassSecurityTrustHtml(ENTERPRISE_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('regional_folder', domSanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('regional_folder_outlined', domSanitizer.bypassSecurityTrustHtml(REGIONAL_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('department_folder', domSanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_ICON));\r\n iconRegistry.addSvgIconLiteral('department_folder_outlined', domSanitizer.bypassSecurityTrustHtml(DEPARTMENT_FOLDER_OUTLINED_ICON));\r\n\r\n iconRegistry.addSvgIconLiteral('keyboard_up', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_UP_ICON));\r\n iconRegistry.addSvgIconLiteral('keyboard_down', domSanitizer.bypassSecurityTrustHtml(KEYBOARD_DOWN_ICON));\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.treeData && JSON.stringify(changes.treeData.currentValue) !== JSON.stringify(changes.treeData.previousValue)) {\r\n this.treeData = [...this.treeData, changes.treeData.currentValue];\r\n this.initTreeData();\r\n }\r\n\r\n if (changes.selectedData && \r\n (changes.selectedData.currentValue.length > 0 || \r\n JSON.stringify(changes.selectedData.currentValue) !== \r\n JSON.stringify(changes.selectedData.previousValue))) {\r\n this.checkSelected(changes.selectedData.currentValue);\r\n } else {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.checklistSelection.deselect(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initTreeData();\r\n }\r\n\r\n initTreeData() {\r\n this.treeData.forEach(item => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentObj[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentObj[item.rootId] = 1;\r\n }\r\n });\r\n\r\n if (this.treeConfig.showCheckBox) {\r\n this.filterData = this.treeData;\r\n }\r\n else {\r\n this.filterData = this.treeData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n }\r\n\r\n this.treeObject = TreeFunctions.buildObjectTree(this.filterData);\r\n this.dataSource.data = TreeFunctions.buildArrayTree(this.treeObject, 0).map(element => {\r\n const item = this.sortDataTree(element);\r\n element = null;\r\n element = { ...{}, ...item };\r\n return element;\r\n });\r\n\r\n this.useExpandFeature = !this.treeConfig.showCheckBox;\r\n this.allowSelectFolder = this.treeConfig.allowSelectFolder;\r\n this.areaOfCurrentProcess = this.treeConfig.areaOfCurrentProcess;\r\n this.showCheckBox = this.treeConfig.showCheckBox;\r\n this.onlyCheckBoxForChild = this.treeConfig.onlyCheckBoxForChild;\r\n this.moduleId = this.treeConfig.moduleId;\r\n this.openIcon = this.treeConfig.openIcon;\r\n this.openIconColor = this.treeConfig.openIconColor ? this.treeConfig.openIconColor : this.openIconColor;\r\n this.closeIcon = this.treeConfig.closeIcon;\r\n this.closeIconColor = this.treeConfig.closeIconColor ? this.treeConfig.closeIconColor : this.closeIconColor;\r\n this.itemIcon = this.treeConfig.itemIcon;\r\n this.itemIconSvg = this.treeConfig.itemIconSvg;\r\n this.itemIconPath = this.treeConfig.itemIconPath;\r\n this.itemIconBase64 = this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n this.allowMultipleCheck = this.treeConfig.allowMultipleCheck;\r\n this.singleSelectedNode = this.treeConfig.singleSelectedNode;\r\n this.checklistSelection = new SelectionModel<TreeFlatNode>(this.allowMultipleCheck); /* true: multiple */\r\n\r\n this.displayType = this.getItemIconType(this.treeConfig);\r\n\r\n // Expand child node tree\r\n if (this.treeConfig.expandAll) {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n // Risk Tree\r\n if (this.selectedRiskData.length) {\r\n const selectedData = [];\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.selectedRiskData.forEach(x => {\r\n const index = selectedData.findIndex(el => el.id === x.rootId);\r\n if (x.rootId === this.treeControl.dataNodes[i].id && index < 0) {\r\n selectedData.push(this.treeControl.dataNodes[i]);\r\n }\r\n });\r\n }\r\n\r\n this.checkSelected(selectedData);\r\n this.checkBoxEvent.emit(selectedData);\r\n }\r\n\r\n // Disable List\r\n if (this.disabledList.length) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n this.disabledList.forEach(x => {\r\n if (x.id === this.treeControl.dataNodes[i].id \r\n && (!x.parentId || x.parentId === this.treeControl.dataNodes[i].parentId)) {\r\n this.treeControl.dataNodes[i].disabled = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n sortDataTree(obj) {\r\n if (obj.children) {\r\n let child = [];\r\n const leafNode = obj.children.filter(x => !x.children);\r\n const subFolderNode = obj.children.filter(x => x.children);\r\n subFolderNode.forEach((element, index) => {\r\n let el = element;\r\n this.sortDataTree(el);\r\n child.push(el);\r\n });\r\n\r\n leafNode.forEach(element => {\r\n let el = element;\r\n child.push(el);\r\n });\r\n obj.children = child;\r\n }\r\n return obj;\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.treeConfig.itemIconBase64) as string;\r\n }\r\n\r\n checkSelected(itemSelected: TreeFlatNode[]) {\r\n setTimeout(() => {\r\n if (!this.treeControl['dataNodes']) return;\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n this.checklistSelection.deselect(tree);\r\n\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (tree.id === element.id && tree.parentId === element.parentId && !tree.disabled) {\r\n this.checklistSelection.select(tree);\r\n }\r\n }\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n checkSelectedSameNode(itemSelected: TreeFlatNode[], flag: boolean) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n const tree = this.treeControl.dataNodes[i];\r\n for (let j = 0; j < itemSelected.length; j++) {\r\n const element = itemSelected[j];\r\n if (element.id && tree.id === element.id \r\n && tree.parentId === element.parentId && !tree.disabled) {\r\n flag ? this.checklistSelection.select(tree) : this.checklistSelection.deselect(tree);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n private getItemIconType(treeConfig: TreeConfig) {\r\n if (treeConfig.itemIcon && treeConfig.itemIcon.length) return this.itemIconType.name;\r\n if (treeConfig.itemIconPath && treeConfig.itemIconPath.length) return this.itemIconType.path;\r\n if (treeConfig.itemIconBase64 && treeConfig.itemIconBase64.length) return this.itemIconType.base64;\r\n if (treeConfig.itemIconSvg && treeConfig.itemIconSvg.length) return this.itemIconType.svg;\r\n return this.itemIconType.none;\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild,\r\n parentId: node.parentId,\r\n disabled: false\r\n };\r\n };\r\n\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: TreeFlatNode): boolean {\r\n\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n if (!descendants.length) {\r\n return this.checklistSelection.isSelected(node);\r\n }\r\n const selected = this.checklistSelection.isSelected(node);\r\n\r\n const allSelected = descendants.every(child => this.checklistSelection.isSelected(child));\r\n if (!selected && allSelected) {\r\n this.checklistSelection.select(node);\r\n this.cdRef.markForCheck();\r\n }\r\n return allSelected;\r\n\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: TreeFlatNode): boolean {\r\n const descendants = !this.singleSelectedNode ? this.treeControl.getDescendants(node).filter(item => !item.disabled) : [];\r\n\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\r\n todoItemSelectionToggle(node: TreeFlatNode): void {\r\n // tree have duplicate node\r\n if (this.treeConfig.canHaveDupId) {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id \r\n && this.treeControl.dataNodes[i].parentId === node.parentId \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n } else {\r\n this.checklistSelection.toggle(node);\r\n }\r\n\r\n\r\n // process/ document single selected\r\n if (this.singleSelectedNode) {\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n } else {\r\n const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);\r\n\r\n this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));\r\n\r\n !this.descendantsAllSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n this.cdRef.markForCheck();\r\n\r\n const allNodeIsParent = this.checklistSelection.selected.every(child => child.expandable);\r\n if (allNodeIsParent) {\r\n this.checklistSelection.selected.forEach(element => {\r\n this.checklistSelection.deselect(element);\r\n });\r\n }\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n\r\n }\r\n\r\n todoChildSelectionToggle(node: TreeFlatNode): void {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id \r\n && this.treeControl.dataNodes[i].parentId === node.parentId \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n // this.checklistSelection.toggle(node);\r\n this.cdRef.markForCheck();\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n\r\n }\r\n\r\n public todoItemSelectionById(ids: any[]): void {\r\n ids.forEach(\r\n id => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === id \r\n && !this.treeControl.dataNodes[i].disabled) {\r\n if (!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n public todoItemSelection(nodes: TreeNode[]): void{\r\n nodes.forEach(\r\n node => {\r\n for (let i = 0; i < this.treeControl.dataNodes.length; i++) {\r\n if (this.treeControl.dataNodes[i].id === node.id &&\r\n this.treeControl.dataNodes[i].parentId === node.parentId && \r\n !this.treeControl.dataNodes[i].disabled) {\r\n if(!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))\r\n this.checklistSelection.toggle(this.treeControl.dataNodes[i]);\r\n }\r\n }\r\n }\r\n )\r\n this.checkBoxEvent.emit(this.checklistSelection.selected);\r\n }\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n\r\n this.selectNodeEvent.emit(node);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n if (window[RelatedConst.IS_DISPLAY_SEARCH_RESULT]) {\r\n window.postMessage(RelatedConst.HIDE_SEARCH_RESULT, '*');\r\n }\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n this.arrIndex.push(node.id);\r\n\r\n const childArray = this.treeData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = '0';\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName, parentId: rootId });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n\r\n getNodeIcon(node: TreeFlatNode) {\r\n if (this.openIcon && this.closeIcon) {\r\n return this.treeControl.isExpanded(node) ? this.openIcon : this.closeIcon;\r\n }\r\n switch (this.moduleId) {\r\n case DataType.document: {\r\n const nodeData = this.treeData.filter(x => { return x.rootId === node.id; });\r\n if (nodeData.length > 0) {\r\n switch (nodeData[0].levelType) {\r\n case DocumentNodeType.DepartmentFolder:\r\n return this.treeControl.isExpanded(node) ? 'department_folder_outlined' : 'department_folder';\r\n case DocumentNodeType.RegionalFolder:\r\n return this.treeControl.isExpanded(node) ? 'regional_folder_outlined' : 'regional_folder';\r\n case DocumentNodeType.TopFolder:\r\n return this.treeControl.isExpanded(node) ? 'enterprise_folder_outlined' : 'enterprise_folder';\r\n case DocumentNodeType.Folder:\r\n return this.treeControl.isExpanded(node) ? 'local_folder_outlined' : 'local_folder';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'folder_outlined' : 'folder';\r\n }\r\n }\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n case DataType.process:\r\n return this.treeControl.isExpanded(node) ? 'process_area_outlined' : 'process_area';\r\n default:\r\n return this.treeControl.isExpanded(node) ? 'keyboard_up' : 'keyboard_down';\r\n }\r\n }\r\n\r\n getItemIcon() {\r\n switch (this.moduleId) {\r\n case DataType.document:\r\n return 'document';\r\n case DataType.process:\r\n return 'process';\r\n case DataType.checklist:\r\n return 'checklist';\r\n case DataType.deviation:\r\n return 'deviation';\r\n case DataType.risk:\r\n return 'risk';\r\n default:\r\n return 'document';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, EventEmitter, OnDestroy, ViewChild, ViewEncapsulation, AfterViewChecked, QueryList, ViewChildren } from '@angular/core';\r\nimport { Component, HostListener, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from '../common/data-type.enum';\r\nimport { ModuleType } from '../common/module-type.enum';\r\nimport { RelatedConst } from '../common/related.const';\r\nimport { PopupData } from '../model/popup-data.model';\r\nimport { IRelated, RelatedItem } from '../model/related-data.model';\r\nimport { SelectedNode } from '../model/selected-node.model';\r\nimport { TreeConfig } from '../model/tree-config.model';\r\nimport { TreeModel } from '../model/tree.model';\r\nimport { QMSRelatedGlobalService } from '../service/related-global.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { CHECKLIST_ICON, DEVIATION_ICON, DOCUMENT_ICON, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, RISK_ICON } from '../common/qms-icon.const';\r\nimport { TreeComponent } from '../tree/tree.component';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { TreeNode } from '../../../qms-ckeditor-components/common/models/qms-ckeditor-tree-node.model';\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n parentId?: string;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-related-popup',\r\n templateUrl: './related-popup.component.html',\r\n styleUrls: ['./related-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RelatedPopupComponent implements OnInit, OnDestroy, AfterViewChecked {\r\n ngUnsubscribe = new Subject<void>();\r\n\r\n LANG: any;\r\n moduleId = 0;\r\n moduleName = '';\r\n treeData1: Array<TreeModel> = [];\r\n treeData2: Array<TreeModel> = [];\r\n treeConfig1: TreeConfig;\r\n treeConfig2: TreeConfig;\r\n\r\n checkedNodeList: Array<SelectedNode> = [];\r\n selectedNode: Array<SelectedNode> = [];\r\n selectedData: Array<TreeFlatNode> = [];\r\n selectedData2: Array<TreeFlatNode> = [];\r\n\r\n commonCheckedList: Array<TreeFlatNode> = [];\r\n documentCheckedList: Array<TreeFlatNode> = [];\r\n singleProcessList: Array<SelectedNode> = [];\r\n singleDocumentList: Array<SelectedNode> = [];\r\n\r\n module = ModuleType;\r\n dataType = DataType;\r\n itemType = 0;\r\n selectedRiskData: any = [];\r\n disabledList: any = [];\r\n disabledList2: any = [];\r\n\r\n isDocumentExpanded = true;\r\n isCommonExpanded = true;\r\n singleSelectedNode = false;\r\n\r\n myControl = new FormControl();\r\n filteredOptions: IRelated[] = [];\r\n isInputValue = false;\r\n onSearch = new EventEmitter();\r\n @ViewChildren(TreeComponent, {}) dataTrees: QueryList<TreeComponent>;\r\n\r\n @ViewChild('autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true })\r\n autoComplete: MatAutocompleteTrigger;\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RelatedPopupComponent>,\r\n public globalService: QMSRelatedGlobalService,\r\n private iconRegistry: MatIconRegistry,\r\n private sanitizer: DomSanitizer,\r\n @Inject(MAT_DIALOG_DATA) public data: PopupData\r\n ) {\r\n this.moduleId = data.moduleId;\r\n this.moduleName = data.moduleName;\r\n this.treeData1 = data.treeData1;\r\n this.treeData2 = data.treeData2;\r\n this.treeConfig1 = data.treeConfig1;\r\n this.treeConfig2 = data.treeConfig2;\r\n this.selectedRiskData = data?.selectedNode || [];\r\n this.singleSelectedNode = data.treeConfig1.singleSelectedNode;\r\n this.disabledList = data.disabledList || [];\r\n this.disabledList2 = data.disabledList2 || [];\r\n iconRegistry.addSvgIconLiteral('process', sanitizer.bypassSecurityTrustHtml(PROCESS_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area', sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n iconRegistry.addSvgIconLiteral('process_area_outlined', sanitizer.bypassSecurityTrustHtml(PROCESS_AREA_OUTLINED_ICON));\r\n iconRegistry.addSvgIconLiteral('document', sanitizer.bypassSecurityTrustHtml(DOCUMENT_ICON));\r\n iconRegistry.addSvgIconLiteral('checklist', sanitizer.bypassSecurityTrustHtml(CHECKLIST_ICON));\r\n iconRegistry.addSvgIconLiteral('deviation', sanitizer.bypassSecurityTrustHtml(DEVIATION_ICON));\r\n iconRegistry.addSvgIconLiteral('risk', sanitizer.bypassSecurityTrustHtml(RISK_ICON));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n this.globalService.setSearchRelated([]);\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n if (event.data === RelatedConst.HIDE_SEARCH_RESULT) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n if (res && res.length) {\r\n this.filteredOptions = res;\r\n }\r\n });\r\n\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.onSearchRelated(val);\r\n });\r\n\r\n this.itemType = this.getDataTypeId(this.moduleId);\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n this.autoComplete.openPanel();\r\n this.setResultHeight();\r\n } else if (this.autoComplete) {\r\n this.autoComplete.closePanel();\r\n }\r\n }\r\n\r\n getDataTypeId(moduleId: number) {\r\n let itemType;\r\n switch (moduleId) {\r\n case ModuleType.documentProcess:\r\n itemType = this.dataType.process;\r\n break;\r\n case ModuleType.deviation:\r\n itemType = this.dataType.deviation;\r\n break;\r\n case ModuleType.checklist:\r\n itemType = this.dataType.checklist;\r\n break;\r\n case ModuleType.risk:\r\n itemType = this.dataType.risk;\r\n break;\r\n default:\r\n itemType = this.dataType.document;\r\n break;\r\n }\r\n return itemType;\r\n }\r\n\r\n removeCheckedNodeList(item: TreeFlatNode) {\r\n this.selectedData = [];\r\n this.selectedData2 = [];\r\n\r\n this.checkedNodeList = this.checkedNodeList.filter(x => (x.id !== item.id || x.parentId !== item.parentId));\r\n const tempArr = [];\r\n const tempArrDocument = [];\r\n const newSelectProcessList = [];\r\n const newSelectDocumentList = [];\r\n\r\n \r\n this.commonCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n tempArr.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleProcessList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n newSelectProcessList.push(element);\r\n }\r\n });\r\n })\r\n\r\n this.singleProcessList = newSelectProcessList;\r\n this.selectedData = [...tempArr];\r\n\r\n this.documentCheckedList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n tempArrDocument.push(element);\r\n }\r\n });\r\n });\r\n\r\n this.singleDocumentList.forEach(element => {\r\n this.checkedNodeList.forEach(x => {\r\n if (element.id === x.id && element.parentId === x.parentId) {\r\n newSelectDocumentList.push(element);\r\n }\r\n });\r\n })\r\n this.singleDocumentList = newSelectDocumentList;\r\n this.selectedData2 = [...tempArrDocument];\r\n\r\n }\r\n\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n setResultHeight(arr?: IRelated[]) {\r\n let maxHeight = 484;\r\n const popup_content = document.getElementsByClassName('qmslib_related_popup_content')[0] as HTMLElement;\r\n const line__divider = document.getElementsByClassName('line__divider')[0] as HTMLElement;\r\n if (popup_content && line__divider) {\r\n maxHeight = this.getOffsetHeight(popup_content, true) + this.getOffsetHeight(line__divider, true) * 2;\r\n }\r\n\r\n const contentResult = document.getElementsByClassName('cdk-virtual-scroll-content-wrapper')[0] as HTMLElement;\r\n const viewreports = document.getElementsByClassName('related-viewport')[0] as HTMLElement;\r\n\r\n if (viewreports) {\r\n if (contentResult.offsetHeight <= maxHeight) {\r\n viewreports.style.height = `${contentResult.offsetHeight}px`;\r\n }\r\n else {\r\n viewreports.style.height = `${maxHeight}px`;\r\n }\r\n }\r\n }\r\n onSearchRelated(_val: any) {\r\n this.filteredOptions = [];\r\n if (typeof (_val) === 'object') {\r\n return;\r\n }\r\n else if (typeof (_val) === 'string') {\r\n if (!!_val) {\r\n this.onSearch.emit(_val);\r\n }\r\n }\r\n }\r\n\r\n getModuleFilteredOptions(moduleId: number) {\r\n return this.filteredOptions.filter(x => x.itemType === moduleId);\r\n }\r\n\r\n showSearchResult() {\r\n this.autoComplete.openPanel();\r\n }\r\n\r\n displayRelated(related?: IRelated): string | undefined {\r\n return related ? related.itemName : undefined;\r\n }\r\n\r\n selectRelated(item: IRelated) {\r\n let index = -1;\r\n this.selectedNode = [];\r\n if (this.treeConfig1.showCheckBox) {\r\n index = this.checkedNodeList.findIndex(x => {\r\n return x.id === item.id && x.parentId === item.parentId;\r\n });\r\n }\r\n\r\n if (index < 0) {\r\n let position = -1;\r\n let node: any;\r\n let typeId: number;\r\n\r\n if (item.itemType === this.dataType.document) {\r\n // document\r\n position = this.treeData2.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = this.dataType.document;\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n else if (item.itemType === this.dataType.folder) {\r\n position = this.treeData2.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData2[position];\r\n typeId = item.itemType;\r\n if (position >= 0) {\r\n if (this.treeConfig2.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.itemName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);\r\n }\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviationType\r\n || item.itemType === this.dataType.checklistCategory\r\n || item.itemType === this.dataType.riskFolder) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n this.selectNodeRecursive(this.treeData1[position], item.itemType);\r\n }\r\n else if (item.itemType === this.dataType.area) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = item.itemType;\r\n\r\n if (position >= 0) {\r\n if (this.treeConfig1.showCheckBox) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n else {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: node.rootId,\r\n itemName: node.rootName,\r\n itemType: typeId,\r\n itemNumberId: item.itemNumberId\r\n });\r\n }\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n return;\r\n }\r\n else if (item.itemType === this.dataType.deviation ||\r\n item.itemType === this.dataType.checklist) {\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id && x.rootId === item.parentId;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n const treeNode = {\r\n id: node.childId,\r\n name: node.childName,\r\n children: [],\r\n parentId: node.rootId\r\n }\r\n this.dataTrees.toArray()[0].todoItemSelection([treeNode]);\r\n }\r\n else {\r\n // process, deviation, checklist,...\r\n position = this.treeData1.findIndex(x => {\r\n return x.childId === item.id;\r\n });\r\n node = this.treeData1[position];\r\n typeId = this.itemType;\r\n this.dataTrees.toArray()[0].todoItemSelectionById([item.id]);\r\n }\r\n }\r\n }\r\n\r\n selectNodeRecursive(item: TreeModel, itemType: DataType) {\r\n let position = this.treeData1.findIndex(x => {\r\n return x.rootId === item.rootId;\r\n });\r\n\r\n if (position >= 0) {\r\n\r\n const node = {\r\n id: item.rootId,\r\n name: item.rootName,\r\n children: []\r\n }\r\n\r\n let nodeChildren: TreeNode[] = this.treeData1.\r\n filter(x => x.rootId === item.rootId).\r\n map(x => {\r\n return {\r\n id: x.childId,\r\n name: item.childName,\r\n children: [],\r\n parentId: item.rootId\r\n };\r\n });\r\n let nodeSubfolders: TreeModel[] = this.treeData1.\r\n filter(x => x.parentId === item.rootId)\r\n\r\n if (this.treeConfig1.showCheckBox) {\r\n nodeChildren.forEach(x => {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString()\r\n });\r\n });\r\n }\r\n else {\r\n nodeChildren.forEach(x => {\r\n this.selectedNode.push({\r\n moduleId: this.moduleId,\r\n id: x.id,\r\n itemName: x.name,\r\n itemType: itemType,\r\n itemNumberId: item.displayId.toString()\r\n });\r\n });\r\n }\r\n\r\n this.dataTrees.toArray()[0].todoItemSelection([node].concat(nodeChildren));\r\n if (nodeSubfolders) {\r\n nodeSubfolders.forEach(folder => {\r\n this.selectNodeRecursive(folder, itemType);\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n\r\n setTypeProcess(expand) {\r\n return expand ? this.dataType.area : this.dataType.process;\r\n }\r\n\r\n getCommonCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.commonCheckedList = [];\r\n this.singleProcessList = [];\r\n this.checkedNodeList = [...this.singleDocumentList];\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id && x.parentId === item.parentId);\r\n\r\n if (item.id && index < 0) {\r\n this.commonCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if(item.expandable){\r\n position = this.treeData1.findIndex(p => p.rootId === item.id);\r\n }\r\n else{\r\n position = this.treeData1.findIndex(p => p.childId === item.id);\r\n }\r\n if(position > -1){\r\n this.singleProcessList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,\r\n itemNumberId: this.treeData1[position].displayId.toString(),\r\n parentId: item.parentId\r\n });\r\n }\r\n }\r\n\r\n\r\n if (item.id && index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData1.findIndex(p => p.childId === item.id && p.rootId === item.parentId);\r\n if (position > -1) {\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.itemType,\r\n parentId: item.parentId,\r\n parentName: this.treeData1[position].rootName,\r\n itemNumberId: this.treeData1[position].displayId.toString()\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleProcessList];\r\n }\r\n }\r\n }\r\n\r\n getDocumentCheckedNode(list: Array<TreeFlatNode>) {\r\n this.checkedNodeList = [];\r\n this.documentCheckedList = [];\r\n this.singleDocumentList = [];\r\n this.checkedNodeList = [...this.singleProcessList];\r\n\r\n\r\n if (list.length) {\r\n list.forEach(item => {\r\n const index = this.checkedNodeList.findIndex(x => x.id === item.id);\r\n\r\n if (item.id && index < 0) {\r\n this.documentCheckedList.push(item);\r\n }\r\n\r\n if (this.singleSelectedNode) {\r\n let position: number;\r\n if(item.expandable){\r\n position = this.treeData2.findIndex(p => p.rootId === item.id);\r\n }\r\n else{\r\n position = this.treeData2.findIndex(p => p.childId === item.id);\r\n }\r\n if(position > -1){\r\n this.singleDocumentList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: item.expandable ? this.dataType.folder : this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n if (index < 0 && !item.expandable && !this.singleSelectedNode) {\r\n const position = this.treeData2.findIndex(p => p.childId === item.id);\r\n if(position > -1){\r\n this.checkedNodeList.push({\r\n moduleId: this.moduleId,\r\n id: item.id,\r\n itemName: item.name,\r\n itemType: this.dataType.document,\r\n itemNumberId: this.treeData2[position].displayId.toString(),\r\n parentId: item.parentId,\r\n parentName: this.treeData2[position].rootName,\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.singleSelectedNode) {\r\n this.checkedNodeList = [...this.checkedNodeList, ...this.singleDocumentList];\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n };\r\n\r\n onAddClick() {\r\n // if (this.treeConfig1.showCheckBox) {\r\n this.dialogRef.close(this.checkedNodeList);\r\n // }\r\n // else {\r\n // this.dialogRef.close(this.selectedNode);\r\n // }\r\n }\r\n\r\n getOffsetHeight(element: HTMLElement, includeMargin: boolean): number {\r\n let elmHeight = 0, elmMargin = 0;\r\n\r\n elmHeight = element.offsetHeight;\r\n if (includeMargin) {\r\n const style = window.getComputedStyle(element);\r\n elmMargin = parseFloat(style.marginTop.replace('px', '')) + parseFloat(style.marginBottom.replace('px', ''));\r\n }\r\n\r\n return (elmHeight + elmMargin);\r\n }\r\n\r\n getItemChipName(item: SelectedNode) {\r\n if(item.itemType === DataType.checklist || item.itemType === DataType.deviation){\r\n return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;\r\n }\r\n return item.itemName;\r\n }\r\n\r\n isEllipsisActive(e: HTMLElement): boolean {\r\n return e ? (e.clientWidth < e.scrollWidth) : false;\r\n }\r\n}\r\n","import { TreeConfig } from \"./tree-config.model\";\r\nimport { TreeModel } from \"./tree.model\";\r\n\r\nexport class RiskAnalysis {\r\n title: string;\r\n dangers: Array<TreeModel>;\r\n dangerConfig: TreeConfig;\r\n selectedDangers: any;\r\n disabledList?: Array<any>;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.dangers = [];\r\n this.selectedDangers = [];\r\n this.disabledList = [];\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { DataType } from \"../../common/data-type.enum\";\r\nimport { AnalysisDanger } from \"../../model/analysis-danger.model\";\r\nimport { RiskAnalysis } from \"../../model/risk-analysis.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\nimport { TreeModel } from \"../../model/tree.model\";\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-risk-analysis',\r\n templateUrl: './analysis.component.html',\r\n styleUrls: ['./analysis.component.scss']\r\n})\r\nexport class RiskAnalysisComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n dangers: Array<TreeModel> = [];\r\n dangerConfig: TreeConfig;\r\n analysisDanger: Array<AnalysisDanger> = [];;\r\n\r\n selectedData = [];\r\n nodeCheckedItem = [];\r\n disabledList = [];\r\n\r\n riskData: Array<any> = [];\r\n riskConfig: TreeConfig;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog,\r\n public dialogRef: MatDialogRef<RiskAnalysisComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskAnalysis\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n\r\n this.title = this.data.title;\r\n this.dangers = this.data.dangers;\r\n this.dangerConfig = this.data.dangerConfig;\r\n this.selectedData = [...this.data.selectedDangers];\r\n this.disabledList = this.data.disabledList || [];\r\n\r\n // cheat not null when selected\r\n if (this.data.selectedDangers.length) {\r\n this.analysisDanger.push({\r\n analysisId: 1,\r\n analysisName: 'string',\r\n dangerId: 1,\r\n dangerName: 'string',\r\n });\r\n }\r\n\r\n this.riskConfig = {\r\n allowSelectFolder: false,\r\n areaOfCurrentProcess: '',\r\n showCheckBox: true,\r\n allowMultipleCheck: true,\r\n onlyCheckBoxForChild: false,\r\n moduleId: DataType.risk,\r\n openIcon: 'keyboard_arrow_up',\r\n openIconColor: '#1954A9',\r\n closeIcon: 'keyboard_arrow_down',\r\n closeIconColor: '',\r\n itemIcon: 'border_all',\r\n itemIconPath: '',\r\n itemIconBase64: '',\r\n singleSelectedNode: false,\r\n canHaveDupId: false\r\n };\r\n }\r\n\r\n toggleChileNode(list: Array<TreeFlatNode>) {\r\n this.analysisDanger = [];\r\n this.nodeCheckedItem = [];\r\n\r\n\r\n if (list.length) {\r\n this.dangers.forEach(el => {\r\n list.forEach(x => {\r\n if (x.id === el.childId) {\r\n // keep array node selected\r\n this.nodeCheckedItem.push(x);\r\n // create format show analysis \r\n this.analysisDanger.push({\r\n analysisId: +el.rootId,\r\n analysisName: el.rootName,\r\n dangerId: +el.childId,\r\n dangerName: el.childName\r\n })\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onFinishClick(): void {\r\n const data = {\r\n 'nodeSelected': this.nodeCheckedItem,\r\n 'analysisData': this.analysisDanger,\r\n 'riskData': this.dangers || []\r\n }\r\n\r\n this.dialogRef.close(data);\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export enum Color {\r\n green = 1,\r\n yellow = 2,\r\n red = 3\r\n}\r\n","export class RiskResult {\r\n title: string;\r\n results: Array<Result>;\r\n isSimple?: number;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.results = [];\r\n this.isSimple = 0\r\n }\r\n}\r\n\r\nexport class Result {\r\n dangerId: number;\r\n dangerName: string;\r\n color: number;\r\n cause: string;\r\n consequenceArea: string;\r\n result: string;\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from \"../../../../services/translation-registry.service\";\r\nimport { Color } from \"../../common/color.enum\";\r\nimport { Result, RiskResult } from \"../../model/risk-result.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-result',\r\n templateUrl: './result.component.html',\r\n styleUrls: ['./result.component.scss']\r\n})\r\nexport class RiskResultComponent implements OnInit {\r\n LANG: any;\r\n title: string;\r\n results: Array<Result> = [];\r\n color = Color;\r\n isSimple = 0;\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<RiskResultComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: RiskResult\r\n ) {\r\n this.title = data.title;\r\n this.results = data.results;\r\n this.isSimple = data.isSimple || 0;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","export class SideNav {\r\n menu: string;\r\n icon: string;\r\n items: Array<SideNavItem>;\r\n\r\n constructor() {\r\n this.menu = '';\r\n this.icon = '';\r\n this.items = [];\r\n }\r\n}\r\n\r\nexport class SideNavItem {\r\n id: string;\r\n name: string;\r\n url: string;\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { SideNav, SideNavItem } from '../model/sidenav.model';\r\n\r\n@Component({\r\n selector: 'qms-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n @Input() data = new SideNav();\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n menu = '';\r\n icon = '';\r\n items: Array<SideNavItem> = [];\r\n\r\n isExpanded = true;\r\n showSubmenu: boolean = false;\r\n isShowing = false;\r\n showSubSubMenu: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.menu = this.data.menu;\r\n this.icon = this.data.icon;\r\n this.items = this.data.items;\r\n }\r\n\r\n mouseenter() {\r\n if (!this.isExpanded) {\r\n this.isShowing = true;\r\n }\r\n }\r\n\r\n mouseleave() {\r\n if (!this.isExpanded) {\r\n this.isShowing = false;\r\n }\r\n }\r\n}\r\n","export enum ActionType {\r\n edit = 1,\r\n detail = 2,\r\n delete = 3\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { ActionType } from \"../../common/action-type.enum\";\r\nimport { DangerAction } from \"../../model/danger-action.model\";\r\nimport { DangerAssessment } from \"../../model/danger-assessment.model\";\r\nimport { Danger } from \"../../model/danger.model\";\r\nimport { RiskDanger } from \"../../model/risk-danger.model\";\r\nimport { TreeConfig } from \"../../model/tree-config.model\";\r\n\r\n@Component({\r\n selector: 'qms-risk-list',\r\n templateUrl: './list.component.html',\r\n styleUrls: ['./list.component.scss']\r\n})\r\nexport class RiskListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n dangers: Array<Danger> = [];\r\n analysisDanger: Array<DangerAssessment> = [];\r\n dangerAction: DangerAction;\r\n show = 5;\r\n\r\n dangerConfig: TreeConfig;\r\n\r\n resultData: Array<any> = [];\r\n riskAnalysis: Array<any> = [];\r\n\r\n @Input() data: RiskDanger;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n public translate: TranslateLibraryService,\r\n private dialog: MatDialog\r\n ) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.dangers = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.dangers = [...changes.data.currentValue.data];\r\n this.show = changes.data.currentValue?.numRow || 5;\r\n\r\n this.analysisDanger = [];\r\n this.groupByDanger(changes.data.currentValue.data, 0);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data?.title || '';\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.dangers = this.data?.data || [];\r\n this.show = this.data?.numRow || 5;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n if (this.dangers.length) {\r\n this.groupByDanger(this.dangers, 0);\r\n }\r\n }\r\n\r\n groupByDanger(dangers: Array<Danger>, i: number) {\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return d.analysisId === x.id;\r\n });\r\n if (index < 0) {\r\n let count = 0;\r\n this.analysisDanger.push({\r\n id: d.analysisId,\r\n name: d.analysisName,\r\n childNumber: 0,\r\n show: this.show,\r\n remain: 0,\r\n dangers: [],\r\n folderId: d.folderId,\r\n statusId: d.statusId,\r\n simple: d.simple\r\n });\r\n dangers.forEach(d => {\r\n const index = this.analysisDanger[i].dangers.findIndex(x => {\r\n return x.dangerId === d.dangerId;\r\n });\r\n\r\n if (index < 0 && this.analysisDanger[i].id === d.analysisId) {\r\n this.analysisDanger[i].dangers.push(d);\r\n count++;\r\n }\r\n });\r\n\r\n this.analysisDanger[i].childNumber = count;\r\n this.analysisDanger[i].remain = count - this.show;\r\n i++;\r\n }\r\n });\r\n }\r\n\r\n editDanger(item) {\r\n this.dangerAction = {\r\n type: ActionType.edit,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n }\r\n const data = { ...this.dangerAction, ...item };\r\n this.updateData.emit(data);\r\n\r\n }\r\n\r\n removeDanger(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n const removedItem = this.analysisDanger[index];\r\n\r\n this.dangerAction = {\r\n type: ActionType.delete,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n\r\n const data = { ...this.dangerAction, ...removedItem };\r\n this.updateData.emit(data);\r\n }\r\n\r\n dangerDetail(danger: Danger) {\r\n this.dangerAction = {\r\n type: ActionType.detail,\r\n danger: {\r\n analysisId: 0,\r\n analysisName: '',\r\n dangerId: 0,\r\n dangerName: '',\r\n green: 0,\r\n yellow: 0,\r\n red: 0\r\n }\r\n };\r\n const data = { ...this.dangerAction, ...danger };\r\n this.updateData.emit(data);\r\n }\r\n\r\n increaseShow(id: number) {\r\n const index = this.analysisDanger.findIndex(x => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.analysisDanger[index].show = this.analysisDanger[index].childNumber;\r\n this.analysisDanger[index].remain = 0;\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n}\r\n","import { Component, EventEmitter, Inject, Input, OnChanges, OnInit, Output, SimpleChanges } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { DataType } from \"../common/data-type.enum\";\r\nimport { PROCESS_AREA_ICON } from \"../common/qms-icon.const\";\r\nimport { RelatedData, RelatedItem } from \"../model/related-data.model\";\r\n\r\n@Component({\r\n selector: 'qms-related-list',\r\n templateUrl: './list-related.component.html',\r\n styleUrls: ['./list-related.component.scss']\r\n})\r\nexport class RelatedListComponent implements OnInit, OnChanges {\r\n LANG: any;\r\n title: string;\r\n isNotEditedItem: boolean;\r\n relatedData: Array<RelatedItem> = [];\r\n dataType = DataType;\r\n // imageProcess = '../qms-angular/src/assets/images/union.svg';\r\n imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';\r\n\r\n @Input() data: RelatedData;\r\n @Output() updateData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onItemSelect: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n constructor(\r\n private domSanitizer: DomSanitizer,\r\n public translate: TranslateLibraryService,\r\n private iconRegistry: MatIconRegistry,\r\n ) {\r\n iconRegistry.addSvgIconLiteral('process_area', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && JSON.stringify(changes.data.currentValue) !== JSON.stringify(changes.data.previousValue)) {\r\n this.relatedData = [];\r\n this.title = changes.data.currentValue.title;\r\n this.isNotEditedItem = changes.data.currentValue['isNotEditedItem'] ?? false;\r\n this.relatedData = [...changes.data.currentValue.data];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.title = this.data.title;\r\n this.isNotEditedItem = this.data['isNotEditedItem'] ?? false;\r\n this.relatedData = this.data.data;\r\n\r\n this.translate.getLanguageSubject$.pipe().subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n getImagePath() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.imageProcess) as string;\r\n }\r\n\r\n removeItem(index: number) {\r\n this.updateData.emit(index);\r\n }\r\n\r\n onCloseClick(): void {\r\n\r\n }\r\n\r\n onItemClick(item: any): void{\r\n if(this.onItemSelect)\r\n this.onItemSelect.emit(item);\r\n }\r\n}\r\n","import { ScrollingModule } from \"@angular/cdk/scrolling\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { QMSListModule } from \"../list/list.module\";\r\nimport { QmsAngularModule } from '../../qms-angular.module';\r\nimport { SharedMaterialModule } from '../../material-module';\r\nimport { RelatedContentComponent } from \"./content/related-content.component\";\r\nimport { RelatedPopupComponent } from \"./popup/related-popup.component\";\r\nimport { RiskAnalysisComponent } from \"./risk/analysis/analysis.component\";\r\nimport { RiskResultComponent } from \"./risk/result/result.component\";\r\nimport { SidenavComponent } from \"./sidenav/sidenav.component\";\r\nimport { TreeComponent } from \"./tree/tree.component\";\r\nimport { RiskListComponent } from \"./risk/list/list.component\";\r\nimport { RelatedListComponent } from \"./list-other-related/list-related.component\";\r\nimport { QMSScrollbarDirective } from \"../../directives/scrollbar/scrollbar.directive\";\r\n\r\n@NgModule({\r\n declarations: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatTreeModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatExpansionModule,\r\n MatAutocompleteModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n MatCardModule,\r\n MatSidenavModule,\r\n MatListModule,\r\n SharedMaterialModule,\r\n QMSListModule,\r\n QmsAngularModule,\r\n ],\r\n exports: [\r\n TreeComponent,\r\n RelatedPopupComponent,\r\n RelatedContentComponent,\r\n SidenavComponent,\r\n RiskAnalysisComponent,\r\n RiskResultComponent,\r\n RiskListComponent,\r\n RelatedListComponent\r\n ]\r\n})\r\nexport class QMSRelatedModule { }\r\n","export class TreeModel {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n levelType?: number;\r\n onlyRead?: boolean;\r\n}\r\n","import { DataType } from \"../common/data-type.enum\";\r\n\r\nexport class TreeConfig {\r\n allowSelectFolder: boolean;\r\n areaOfCurrentProcess: string;\r\n showCheckBox: boolean;\r\n allowMultipleCheck: boolean;\r\n onlyCheckBoxForChild: boolean;\r\n moduleId: DataType;\r\n openIcon?: string;\r\n openIconColor: string;\r\n closeIcon?: string;\r\n closeIconColor: string;\r\n itemIcon?: string;\r\n itemIconPath?: string;\r\n itemIconBase64?: string;\r\n itemIconSvg?: string;\r\n singleSelectedNode: boolean;\r\n canHaveDupId?: boolean;\r\n expandAll?: boolean;\r\n}\r\n","import { Danger } from \"./danger.model\";\r\n\r\nexport class RiskDanger {\r\n title: string;\r\n data: Array<Danger>;\r\n numRow: number;\r\n isNotEditedItem: boolean;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.data = [];\r\n this.numRow = 5;\r\n this.isNotEditedItem = false;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseComponent implements OnDestroy {\r\n ngUnsubcribe = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubcribe.next();\r\n this.ngUnsubcribe.complete();\r\n }\r\n}\r\n","export class QMSCKEditorDialogData {\r\n title: string;\r\n\r\n content: string;\r\n\r\n checkText?: string;\r\n\r\n isMessage?: boolean;\r\n\r\n isAdvance?: boolean;\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorDialogData } from '../../models/qms-ckeditor-dialog.model';\r\n\r\n@Component({\r\n selector: 'app-confirm-popup',\r\n templateUrl: './qms-ckeditor-confirm.component.html',\r\n styleUrls: ['./qms-ckeditor-confirm.component.scss']\r\n})\r\nexport class QMSCKEditorConfirmComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n isNotShowAgain = false;\r\n\r\n constructor(\r\n private translate: TranslateLibraryService,\r\n public dialogRef: MatDialogRef<QMSCKEditorConfirmComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorDialogData\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onConfirmClick() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n onAdvanceConfirmClick() {\r\n const obj = { isConfirmed: true, isNotShowAgain: this.isNotShowAgain };\r\n this.dialogRef.close(obj);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';\r\n\r\ninterface TreeNode {\r\n id: string;\r\n name: string;\r\n children?: TreeNode[];\r\n}\r\n\r\ninterface TreeFlatNode {\r\n id: string;\r\n name: string;\r\n level: number;\r\n expandable: boolean;\r\n hasChild: boolean;\r\n disabled: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-tree',\r\n templateUrl: './qms-ckeditor-tree.component.html',\r\n styleUrls: ['./qms-ckeditor-tree.component.scss']\r\n})\r\nexport class QMSCKEditorTreeComponent implements OnChanges {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() rawData: Array<any> = [];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() treeData: Array<any> = [];\r\n\r\n @Input() useExpandFeature: boolean;\r\n\r\n @Input() docType: number;\r\n\r\n @Input() allowSelectFolder: boolean;\r\n\r\n @Output() selectNodeEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n @Output() selectFolderEvent: EventEmitter<string> = new EventEmitter();\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n @Input() listParentObj: any;\r\n\r\n arrIndex: string[] = [];\r\n\r\n @Input() areaOfCurrentProcess: string;\r\n\r\n // tslint:disable-next-line:member-ordering\r\n treeControl = new FlatTreeControl<TreeFlatNode>(\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n }\r\n );\r\n\r\n ngOnChanges() {\r\n if (this.treeData) {\r\n this.dataSource.data = this.treeData;\r\n }\r\n }\r\n\r\n private transformer = (node: TreeNode, level: number) => {\r\n let checkHasChild = true;\r\n if (!node.children) {\r\n checkHasChild = false;\r\n } else if (!(!!node.children && node.children.length && node.children.length > 0)) {\r\n checkHasChild = false;\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n else if (\r\n !!node.children &&\r\n node.children.length &&\r\n node.children.length === 1 &&\r\n !node.children[0].name.length &&\r\n node.id.toString() === this.areaOfCurrentProcess\r\n ) {\r\n checkHasChild = false;\r\n }\r\n\r\n if (!(this.listParentObj[node.id] === 1)) {\r\n checkHasChild = false;\r\n }\r\n\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n name: node.name,\r\n level,\r\n id: node.id,\r\n hasChild: checkHasChild\r\n };\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n treeFlattener = new MatTreeFlattener(\r\n this.transformer,\r\n (node) => {\r\n return node.level;\r\n },\r\n (node) => {\r\n return node.expandable;\r\n },\r\n (node) => {\r\n return node.children;\r\n }\r\n );\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n hasChild = (_: number, node: TreeFlatNode) => {\r\n return node.expandable;\r\n };\r\n\r\n selectNode(node: TreeFlatNode) {\r\n this.selectNodeEvent.emit(node.id);\r\n }\r\n\r\n selectFolder(node: TreeFlatNode) {\r\n this.selectFolderEvent.emit(node.id);\r\n }\r\n\r\n onExpandNode(node: TreeFlatNode, isExpandNode?: boolean) {\r\n // set useExpandFeature = true to improve performance of tree loading\r\n if (!isExpandNode || !this.useExpandFeature) {\r\n for (let i = 0; i < this.arrIndex.length; i++) {\r\n if (this.arrIndex[i] === node.id) {\r\n this.arrIndex.splice(i, 1);\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n // get array index to expand node after refresh datasource\r\n let index = 0;\r\n let isChange = false;\r\n let isRemove = false;\r\n if (node.level === 0) {\r\n this.arrIndex.push(node.id);\r\n } else {\r\n this.arrIndex.push(node.id);\r\n }\r\n\r\n const childArray = this.rawData.filter((x) => {\r\n return x.parentId === node.id;\r\n });\r\n let rootId = 0;\r\n let parentElement: TreeNode;\r\n let childrenList: TreeNode[];\r\n if (childArray.length === 0) {\r\n return;\r\n }\r\n childArray.forEach((item) => {\r\n if (item.rootId === rootId) {\r\n return;\r\n }\r\n\r\n // get child node from original datasource\r\n const child = this.getChildNode(item.rootId, childArray);\r\n rootId = item.rootId;\r\n\r\n index = this.getNodeIndex(child.id, undefined, this.dataSource['_treeControl'].dataNodes);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n // add child node to expand node\r\n parentElement = this.findParentNode(node.id, this.dataSource.data);\r\n if (parentElement) {\r\n // temporary remove all node without children => purpose to add node folder first\r\n if (!isRemove) {\r\n childrenList = [...parentElement.children];\r\n this.removeChildren(parentElement);\r\n isRemove = true;\r\n }\r\n // add node folder first\r\n parentElement.children.push(child);\r\n isChange = true;\r\n }\r\n });\r\n // add node without children again\r\n if (isRemove) {\r\n this.addChildren(parentElement, childrenList);\r\n }\r\n\r\n // refresh data and expand tree node from root node\r\n if (isChange) {\r\n this.refreshTreeData();\r\n this.arrIndex.forEach((item) => {\r\n index = this.getNodeIndex(item, undefined, this.dataSource['_treeControl'].dataNodes);\r\n this.treeControl.expand(this.treeControl.dataNodes[index]);\r\n });\r\n isChange = false;\r\n }\r\n }\r\n\r\n removeChildren(parentElement?: TreeNode) {\r\n if (parentElement.children) {\r\n parentElement.children.length = 0;\r\n }\r\n }\r\n\r\n addChildren(parentElement?: TreeNode, childrenList?: TreeNode[]) {\r\n if (childrenList) {\r\n childrenList.forEach((e) => {\r\n parentElement.children.push(e);\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getNodeIndex(id: string, level?: number, data?: any[]) {\r\n if (level) {\r\n return data.findIndex((x) => {\r\n return x.id === id && x.level === level;\r\n });\r\n }\r\n\r\n return data.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getChildNode(rootId: string, data: any) {\r\n const childArray = data.filter((x) => {\r\n return x.rootId === rootId;\r\n });\r\n const child = { id: childArray[0].rootId, name: childArray[0].subName, children: [] } as TreeNode;\r\n childArray.forEach((item) => {\r\n child.children.push({ id: item.childId, name: item.childName });\r\n });\r\n return child;\r\n }\r\n\r\n findParentNode(id: string, data: TreeNode[]) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentFather of data) {\r\n if (currentFather.id === id) {\r\n return currentFather;\r\n }\r\n\r\n if (currentFather.children) {\r\n const currentChild = currentFather.children.find((x) => {\r\n return x.id === id;\r\n });\r\n if (currentChild) {\r\n return currentChild;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const currentChild1 of currentFather.children) {\r\n if (id !== currentChild1.id) {\r\n const result = this.findParentNode(id, currentFather.children);\r\n if (result !== false) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n refreshTreeData() {\r\n const data = this.dataSource.data;\r\n this.dataSource.data = [];\r\n this.dataSource.data = data;\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fullscreen',\r\n templateUrl: './qms-ckeditor-fullscreen.component.html',\r\n styleUrls: ['./qms-ckeditor-fullscreen.component.scss']\r\n})\r\nexport class QMSCKEditorFullscreenComponent {\r\n public showFullScreen() {\r\n this.showHideFullScreen('none', 'hide-content-wrapper', '0px', '0px', '0px', '98vh');\r\n }\r\n\r\n public hideFullScreen() {\r\n this.showHideFullScreen('block', 'show-content-wrapper', '0px', '0px', '2px', '93vh');\r\n }\r\n\r\n public showHideFullScreen(\r\n display: string,\r\n className: string,\r\n paddingTop: string,\r\n paddingBottom: string,\r\n marginTopMain: string,\r\n heightIframe: string\r\n ) {\r\n const sidebar = window.parent.document.getElementById('sidebar_left');\r\n if (sidebar) {\r\n if (display === 'block') {\r\n if (!sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.add('show-sidebar_left');\r\n }\r\n } else if (display === 'none') {\r\n if (sidebar.classList.contains('show-sidebar_left')) {\r\n sidebar.classList.remove('show-sidebar_left');\r\n }\r\n }\r\n }\r\n const topbars = window.parent.document.getElementsByClassName('navbar-fixed-top');\r\n if (topbars && topbars.length > 0) {\r\n const topbar = topbars[0] as HTMLElement;\r\n topbar.style.display = display;\r\n }\r\n const contentWrapper = window.parent.document.getElementById('content_wrapper');\r\n if (contentWrapper) {\r\n contentWrapper.className = className;\r\n }\r\n\r\n const bodies = window.parent.document.getElementsByTagName('body');\r\n if (bodies && bodies.length > 0) {\r\n const body = bodies[0] as HTMLElement;\r\n body.style.paddingTop = paddingTop;\r\n body.style.paddingBottom = paddingBottom;\r\n if (display === 'block') {\r\n body.classList.remove('sidebar-hidden');\r\n body.classList.add('sidebar-ltr');\r\n } else if (display === 'none') {\r\n body.classList.remove('sidebar-ltr');\r\n body.classList.add('sidebar-hidden');\r\n }\r\n }\r\n const main = window.parent.document.getElementById('main');\r\n if (main) {\r\n main.style.marginTop = marginTopMain;\r\n }\r\n\r\n const iframes = window.parent.document.getElementsByClassName('processIFrameModule');\r\n if (iframes && iframes.length > 0) {\r\n const iframe = iframes[0] as HTMLElement;\r\n iframe.style.height = heightIframe;\r\n }\r\n\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (display === 'none') {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.add('qmsckeditor__fullscreen');\r\n }\r\n } else if (display === 'block') {\r\n if (ck.classList.contains('qmsckeditor__fullscreen')) {\r\n ck.classList.remove('qmsckeditor__fullscreen');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorGlobalService {\r\n getApiUrlSubject = new BehaviorSubject<any>(null);\r\n\r\n constructor() { }\r\n\r\n setApiUrl(apiUrl: string) {\r\n this.getApiUrlSubject.next(apiUrl);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { QMSCKEditorBaseComponent } from '../qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './qms-ckeditor-global.service';\r\n\r\n@Injectable()\r\nexport class QMSCKEditorBaseService extends QMSCKEditorBaseComponent {\r\n headers = new HttpHeaders();\r\n apiUrl: string;\r\n\r\n constructor(public http: HttpClient, private globalService: QMSCKEditorGlobalService) {\r\n super();\r\n this.globalService.getApiUrlSubject.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n this.apiUrl = res;\r\n })\r\n }\r\n\r\n protected get(url: string, params: any = {}): Observable<any> {\r\n return this.http.get(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n\r\n protected post(url: string, data: any): Observable<any> {\r\n return this.http.post(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected put(url: string, data: any): Observable<any> {\r\n return this.http.put(this.apiUrl + url, data, { headers: this.headers });\r\n }\r\n\r\n protected delete(url: string, params: any = {}): Observable<any> {\r\n return this.http.delete(this.apiUrl + url, { headers: this.headers, params });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorLinkAttachment from '../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorLinkService extends QMSCKEditorBaseService {\r\n public getAttachmentList(\r\n module: number,\r\n entityId: string,\r\n supportFileArchiveAttachments: boolean\r\n ): Observable<QMSCKEditorLinkAttachment[]> {\r\n return this.get('ckeditorLink/LinkAttachmentList', { module, entityId, supportFileArchiveAttachments });\r\n }\r\n\r\n public getAnchorDocumentList(documentId: number): Observable<QMSCKEditorLinkAnchorDocument[]> {\r\n return this.get('ckeditorLink/LinkAnchorDoucmentList', { documentId });\r\n }\r\n}\r\n","export default class QMSCKEditorParamter {\r\n module: number;\r\n entityId: string;\r\n}\r\n","export enum CKEditorModule {\r\n document = 1,\r\n process = 2,\r\n deviation = 3,\r\n risk = 4,\r\n checklist = 5,\r\n dashboard = 6\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { TranslateLibraryService } from '../../../../services/translation-registry.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport QMSCKEditorLinkAttachment from '../../../common/models/qms-ckeditor-link-attachment.model';\r\nimport { QMSCKEditorBaseComponent } from '../../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../../services/qms-ckeditor-link.service';\r\nimport QMSCKEditorParamter from '../../../common/models/qms-ckeditor-parameter.model';\r\nimport { CKEditorModule } from '../../../common/enums/module.enum';\r\n\r\nexport interface LinkUrl {\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'link-attachment',\r\n templateUrl: './link-attachment.component.html',\r\n styleUrls: ['./link-attachment.component.scss']\r\n})\r\nexport class LinkAttachmentComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n module = 0;\r\n entityId = '';\r\n supportFileArchiveAttachments = false;\r\n attachments: QMSCKEditorLinkAttachment[] = [];\r\n linkUrl: LinkUrl;\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<LinkAttachmentComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorParamter\r\n ) {\r\n super();\r\n this.module = data.module;\r\n this.entityId = data.entityId;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getAttachmentList(this.module, this.entityId, this.supportFileArchiveAttachments);\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getAttachmentList(module: number, itemId: string, supportFileArchiveAttachments: boolean) {\r\n this.linkService\r\n .getAttachmentList(module, itemId, supportFileArchiveAttachments)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.attachments = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectedAttachment(extraId: string, fileName: string) {\r\n this.linkUrl = { url: '', title: '' };\r\n if (extraId) {\r\n if (this.module === CKEditorModule.document) {\r\n this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;\r\n }\r\n else if (this.module === CKEditorModule.process) {\r\n this.linkUrl.url = `/api/processes/GetFileContents?fileId=${extraId}`;\r\n }\r\n this.linkUrl.title = fileName;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n}\r\n","export enum LinkAnchor {\r\n Blank = '',\r\n Attachment = 'Idattachment',\r\n Related = 'IdrelatedDocument'\r\n}\r\n","export enum LinkType {\r\n url = 0,\r\n anchorText = 1,\r\n email = 2,\r\n anchorDocument = 3\r\n}\r\n","export enum ProtocolType {\r\n http = 0,\r\n https = 1,\r\n fpt = 2,\r\n new = 3,\r\n other = 4\r\n}\r\n","export enum TargetType {\r\n new = 0,\r\n topmost = 1,\r\n same = 2,\r\n parent = 3\r\n}\r\n","export class QMSCKEditorRelation {\r\n isOnlyDocument: boolean;\r\n isEnableFolder: boolean;\r\n\r\n constructor() {\r\n this.isOnlyDocument = false;\r\n this.isEnableFolder = false;\r\n }\r\n}\r\n","export default class QMSCKEditorLink {\r\n typeId: number;\r\n targetId: number;\r\n protocolId: number;\r\n url: string;\r\n title: string;\r\n edit: boolean;\r\n editorContent: string;\r\n module: number;\r\n entityId: string;\r\n constructor() {\r\n this.typeId = 0;\r\n this.targetId = 0;\r\n this.protocolId = 0;\r\n this.url = '';\r\n this.title = '';\r\n this.edit = false;\r\n this.editorContent = '';\r\n this.entityId = '';\r\n }\r\n}\r\n","export enum QMSCKEditorDocumentType {\r\n document = 1,\r\n process = 2,\r\n area = 3,\r\n folder = 4\r\n}\r\n","export class TreeNode {\r\n children: TreeNode[];\r\n id: string;\r\n name: string;\r\n}\r\n","import QMSCKEditorTree from '../models/qms-ckeditor-tree.model';\r\nimport { TreeNode } from '../models/qms-ckeditor-tree-node.model';\r\n\r\nlet objData = {};\r\n\r\nfunction buildArrayTree(obj: object, level: number): TreeNode[] {\r\n return Object.keys(obj).reduce<TreeNode[]>((accumulator, key) => {\r\n const value = obj[key];\r\n const node = new TreeNode();\r\n const index = key.indexOf('_');\r\n node.id = key.substr(0, index);\r\n node.name = key.substr(index + 1, key.length - index);\r\n\r\n if (value != null) {\r\n if (typeof value === 'object') {\r\n node.children = this.buildArrayTree(value, level + 1);\r\n } else {\r\n node.name = value;\r\n }\r\n }\r\n\r\n return accumulator.concat(node);\r\n }, []);\r\n}\r\n\r\nfunction buildObjectTree(arr: QMSCKEditorTree[]): object {\r\n objData = {};\r\n let objTreeData;\r\n const root = arr.filter((x: { parentId: string }) => {\r\n return x.parentId === '';\r\n });\r\n root.forEach((item) => {\r\n objTreeData = this.findParent(item.rootId, arr);\r\n });\r\n return objTreeData;\r\n}\r\n\r\nfunction findParent(id: string, array: QMSCKEditorTree[]) {\r\n const objParent = {};\r\n const parent = array.filter((x: { rootId: string }) => {\r\n return x.rootId === id;\r\n });\r\n\r\n parent.forEach((item) => {\r\n objParent[`${item.childId}_${item.childName}`] = null;\r\n });\r\n\r\n // find child\r\n const child = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n if (child.length > 0) {\r\n this.findChild(id, objParent, array);\r\n }\r\n\r\n // add node to tree\r\n objData[`${parent[0].rootId}_${parent[0].rootName}`] = objParent;\r\n return objData;\r\n}\r\n\r\nfunction findChild(id: string, objParent: object, array: QMSCKEditorTree[]) {\r\n const subNode = array.filter((x: { parentId: string }) => {\r\n return x.parentId === id;\r\n });\r\n subNode.forEach((item) => {\r\n const processNode = {};\r\n processNode[`${item.childId}_${item.childName}`] = null;\r\n objParent[`${item.rootId}_${item.subName}`] = processNode;\r\n\r\n findChild(item.rootId, processNode, array);\r\n });\r\n}\r\n\r\nconst QMSCKEditorTreeFunctions = {\r\n buildArrayTree,\r\n buildObjectTree,\r\n findParent,\r\n findChild\r\n};\r\n\r\nexport default QMSCKEditorTreeFunctions;\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport QMSCKEditorTree from '../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTreeService extends QMSCKEditorBaseService {\r\n public getDocumentList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetDocumentList');\r\n }\r\n\r\n public getProcessList(): Observable<QMSCKEditorTree[]> {\r\n return this.get('ckeditorTree/GetProcessList');\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { forkJoin } from 'rxjs';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDocumentType } from '../../common/enums/document-type.enum';\r\nimport QMSCKEditorTreeFunctions from '../../common/functions/tree.function';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport { TreeNode } from '../../common/models/qms-ckeditor-tree-node.model';\r\nimport QMSCKEditorTree from '../../common/models/qms-ckeditor-tree.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTreeService } from '../../services/qms-ckeditor-tree.service';\r\n\r\nexport interface Related {\r\n id: number;\r\n name: string;\r\n type: number;\r\n}\r\n\r\nexport interface SelectedNode {\r\n id: string;\r\n type: number;\r\n}\r\n\r\nexport interface LinkUrl {\r\n id: string;\r\n url: string;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-dialog',\r\n templateUrl: './qmsckeditor-related.component.html',\r\n styleUrls: ['./qmsckeditor-related.component.scss']\r\n})\r\nexport class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n selectedNode: SelectedNode;\r\n linkUrl: LinkUrl;\r\n documentType: QMSCKEditorDocumentType;\r\n processData: QMSCKEditorTree[];\r\n documentData: QMSCKEditorTree[];\r\n filterData: QMSCKEditorTree[];\r\n treeDataFile: object;\r\n treeProcessFile: object;\r\n treeDocumentFile: object;\r\n treeProcessData: TreeNode[];\r\n treeDocumentData: TreeNode[];\r\n processNumber = -1;\r\n listParentProcessId = {};\r\n listParentDocumentId = {};\r\n\r\n myControl = new FormControl();\r\n filteredOptions = [];\r\n isInputValue = false;\r\n isOnlyDocument = false;\r\n isEnableFolder = false;\r\n areaOfCurrentProcess: string;\r\n\r\n constructor(\r\n private treeService: QMSCKEditorTreeService,\r\n private translate: TranslateLibraryService,\r\n private dialogRef: MatDialogRef<QMSCKEditorRelatedComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorRelation\r\n ) {\r\n super();\r\n this.isOnlyDocument = data.isOnlyDocument;\r\n this.isEnableFolder = data.isEnableFolder;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.selectedNode = { id: '', type: 0 };\r\n this.getProcessAndDocumentData();\r\n this.myControl.valueChanges.pipe(debounceTime(1000)).subscribe((val) => {\r\n this.isInputValue = true;\r\n this.filteredOptions = this.onSearchRelated(val);\r\n });\r\n }\r\n\r\n getProcessAndDocumentData() {\r\n forkJoin([this.getProcessData(), this.getDocumentData()])\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe(([p, d]) => {\r\n this.mappingData(p, 2);\r\n this.mappingData(d, 1);\r\n\r\n // for process\r\n this.filterData = this.processData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeProcessData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n // for document\r\n this.filterData = this.documentData.filter((x) => {\r\n return x.parentId === '';\r\n });\r\n this.treeDataFile = QMSCKEditorTreeFunctions.buildObjectTree(this.filterData);\r\n this.treeDocumentData = QMSCKEditorTreeFunctions.buildArrayTree(this.treeDataFile, 0);\r\n });\r\n }\r\n\r\n getProcessData() {\r\n return this.treeService.getProcessList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n getDocumentData() {\r\n return this.treeService.getDocumentList().pipe(takeUntil(this.ngUnsubcribe));\r\n }\r\n\r\n mappingData(array: QMSCKEditorTree[], dataType: number) {\r\n if (array) {\r\n if (dataType === 1) {\r\n this.documentData = array.map((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentDocumentId[item.parentId] = 1;\r\n }\r\n if (!!item.childId && item.childId.length > 0) {\r\n this.listParentDocumentId[item.rootId] = 1;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n } else if (dataType === 2) {\r\n this.processData = array.filter((item) => {\r\n if (!!item.parentId && item.parentId.length > 0) {\r\n this.listParentProcessId[item.parentId] = 1;\r\n }\r\n if (item.childId && item.childId.length > 0) {\r\n this.listParentProcessId[item.rootId] = 1;\r\n }\r\n if (Number(item.displayId) === this.processNumber) {\r\n item.childId = '';\r\n item.childName = '';\r\n this.areaOfCurrentProcess = item.rootId;\r\n }\r\n return {\r\n rootId: item.rootId,\r\n parentId: item.parentId,\r\n rootName: item.rootName,\r\n subName: item.subName,\r\n childId: item.childId,\r\n childName: item.childName,\r\n statusId: item.statusId,\r\n displayId: item.displayId\r\n };\r\n });\r\n }\r\n }\r\n }\r\n\r\n onCloseClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onAddDocumentProcess() {\r\n let data: QMSCKEditorTree;\r\n this.linkUrl = { id: '', url: '', title: '' };\r\n switch (this.selectedNode.type) {\r\n case QMSCKEditorDocumentType.document:\r\n data = this.documentData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/document/${data.childId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.process:\r\n data = this.processData.find((e) => {\r\n return e.childId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/process-detail/${data.displayId}`;\r\n this.linkUrl.title = data.childName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.area:\r\n data = this.processData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/area/detail/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n case QMSCKEditorDocumentType.folder:\r\n data = this.documentData.find((e) => {\r\n return e.rootId === this.selectedNode.id;\r\n });\r\n\r\n if (data) {\r\n this.linkUrl.id = this.selectedNode.id;\r\n this.linkUrl.url = `/folder/${data.rootId}`;\r\n this.linkUrl.title = data.rootName;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.dialogRef.close(this.linkUrl);\r\n }\r\n\r\n selectAreaNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.area;\r\n }\r\n\r\n selectProcessNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.process;\r\n }\r\n\r\n selectDocumentNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.document;\r\n }\r\n\r\n selectHandbookNode(id: string) {\r\n this.selectedNode.id = id;\r\n this.selectedNode.type = QMSCKEditorDocumentType.folder;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n isMatchTrue(arr: any[], arr2: any[]) {\r\n return arr.every((i) => {\r\n return arr2.includes(i);\r\n });\r\n }\r\n\r\n onSearchRelated(_val: string) {\r\n const arr: Related[] = [];\r\n let data = [];\r\n if (typeof _val !== 'string') {\r\n return arr;\r\n }\r\n const val = _val\r\n .trim()\r\n .split(' ')\r\n .map((v) => {\r\n return v.toLowerCase();\r\n });\r\n if (!val || val.length === 0) {\r\n return arr;\r\n }\r\n\r\n if (!this.isOnlyDocument) {\r\n data = this.processData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 2\r\n });\r\n });\r\n }\r\n }\r\n\r\n data = this.documentData.filter((item) => {\r\n const tempArr = item.childName.split(' ').map((v) => {\r\n return v.toLowerCase();\r\n });\r\n return this.isMatchTrue(val, tempArr);\r\n });\r\n\r\n if (data) {\r\n data.forEach((element) => {\r\n arr.push({\r\n id: element.childId,\r\n name: element.childName,\r\n type: 1\r\n });\r\n });\r\n }\r\n this.setResultHeight(arr);\r\n return arr;\r\n }\r\n\r\n displayRelated(related?: Related): string | undefined {\r\n return related ? related.name : undefined;\r\n }\r\n\r\n selectRelated(id: string, type: number) {\r\n this.selectedNode = { id, type };\r\n this.onAddDocumentProcess();\r\n }\r\n\r\n setResultHeight(arr?: Related[]) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports) {\r\n let iHeight = 0;\r\n const view = viewreports[0] as HTMLElement;\r\n if (arr.length * 5 > 50) {\r\n iHeight = 51;\r\n } else {\r\n iHeight = arr.length * 5 + 1;\r\n if (iHeight > 0) {\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n view.style.height = `${iHeight}vh`;\r\n view.style.display = 'block';\r\n }\r\n }\r\n\r\n hideSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length > 0) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n view.style.display = 'none';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = false;\r\n }\r\n }\r\n }\r\n\r\n showSearchResult() {\r\n if (this.filteredOptions && this.filteredOptions.length) {\r\n const viewreports = document.getElementsByClassName('related-viewport');\r\n if (viewreports && viewreports.length) {\r\n const view = viewreports[0] as HTMLElement;\r\n if (view.style.display === 'none') {\r\n view.style.display = 'block';\r\n // window[ProcessRelatedConst.IS_DISPLAY_SEARCH_RESULT] = true;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { LinkAnchor } from '../../common/enums/link-anchor.enum';\r\nimport { LinkType } from '../../common/enums/link-type.enum';\r\nimport { ProtocolType } from '../../common/enums/protocol-type.enum';\r\nimport { TargetType } from '../../common/enums/target-type.enum';\r\nimport { QMSCKEditorLinkAnchorDocument } from '../../common/models/qms-ckeditor-link-anchor-document.model';\r\nimport QMSCKEditorParamter from '../../common/models/qms-ckeditor-parameter.model';\r\nimport { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';\r\nimport QMSCKEditorLink from '../../common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorLinkService } from '../../services/qms-ckeditor-link.service';\r\nimport { QMSCKEditorRelatedComponent } from '../qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { LinkAttachmentComponent } from './attachments/link-attachment.component';\r\n\r\ninterface ILinkType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface ITarget {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IProtocol {\r\n id: number;\r\n name: string;\r\n}\r\n\r\ninterface IAnchor {\r\n value: number;\r\n viewValue: string;\r\n anchorValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'qms-ckeditor-link',\r\n templateUrl: './qms-ckeditor-link.component.html',\r\n styleUrls: ['./qms-ckeditor-link.component.scss']\r\n})\r\nexport class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n linkFormGroup: FormGroup = new FormGroup({\r\n targetList: new FormControl(),\r\n protocolList: new FormControl(),\r\n url: new FormControl('', [Validators.required]),\r\n advisoryTitle: new FormControl()\r\n });\r\n anchorTextFormGroup: FormGroup = new FormGroup({\r\n anchorText: new FormControl('', [Validators.required])\r\n });\r\n emailFormGroup: FormGroup = new FormGroup({\r\n emailAddress: new FormControl('', [Validators.required]),\r\n emailSubject: new FormControl('', [Validators.required]),\r\n emailBody: new FormControl('', [Validators.required])\r\n });\r\n anchorDocFormGroup: FormGroup = new FormGroup({\r\n anchorTitle: new FormControl('', [Validators.required]),\r\n anchorByName: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n linkTypes: ILinkType[] = [];\r\n targets: ITarget[] = [];\r\n protocols: IProtocol[] = [];\r\n anchorDocuments: QMSCKEditorLinkAnchorDocument[] = [];\r\n anchors: IAnchor[];\r\n editorAnchors: IAnchor[];\r\n documentAnchors: IAnchor[];\r\n editorContent = '';\r\n selectedLink = 0;\r\n selectedTarget = 0;\r\n selectedProtocol = 0;\r\n url = '';\r\n advisoryTitle = '';\r\n edit = false;\r\n anchorText = '';\r\n emailAddress = '';\r\n emailSubject = '';\r\n emailBody = '';\r\n documentId = 0;\r\n anchorTitle = '';\r\n anchorByName = '';\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private linkService: QMSCKEditorLinkService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLinkComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorLink\r\n ) {\r\n super();\r\n this.selectedLink = data.typeId;\r\n this.selectedTarget = data.targetId;\r\n this.selectedProtocol = data.protocolId;\r\n this.url = data.url;\r\n this.advisoryTitle = data.title;\r\n this.edit = data.edit;\r\n this.editorContent = data.editorContent;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.initLinkType();\r\n this.initTarget();\r\n this.initProtocol();\r\n this.initAnchor();\r\n if (this.data.edit) {\r\n this.parseLinkUrl(this.selectedLink, this.url);\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n initLinkType() {\r\n if (this.linkTypes) {\r\n this.linkTypes.push({ id: LinkType.url, name: this.LANG.QMSCKEDITOR.LINK_URL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorText,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_IN_TEXT\r\n });\r\n this.linkTypes.push({ id: LinkType.email, name: this.LANG.QMSCKEDITOR.LINK_EMAIL });\r\n this.linkTypes.push({\r\n id: LinkType.anchorDocument,\r\n name: this.LANG.QMSCKEDITOR.LINK_ANCHOR_DOCUMENT\r\n });\r\n }\r\n }\r\n\r\n initTarget() {\r\n if (this.targets) {\r\n this.targets.push({ id: TargetType.new, name: this.LANG.QMSCKEDITOR.TARTGET_NEW });\r\n this.targets.push({ id: TargetType.topmost, name: this.LANG.QMSCKEDITOR.TARGET_TOPMOST });\r\n this.targets.push({ id: TargetType.same, name: this.LANG.QMSCKEDITOR.TARGET_SAME });\r\n this.targets.push({ id: TargetType.parent, name: this.LANG.QMSCKEDITOR.TARGET_PARENT });\r\n }\r\n }\r\n\r\n initProtocol() {\r\n if (this.protocols) {\r\n this.protocols.push({ id: ProtocolType.http, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTP });\r\n this.protocols.push({ id: ProtocolType.https, name: this.LANG.QMSCKEDITOR.PROTOCOL_HTTPS });\r\n this.protocols.push({ id: ProtocolType.fpt, name: this.LANG.QMSCKEDITOR.PROTOCOL_FTP });\r\n this.protocols.push({ id: ProtocolType.new, name: this.LANG.QMSCKEDITOR.PROTOCOL_NEW });\r\n this.protocols.push({ id: ProtocolType.other, name: this.LANG.QMSCKEDITOR.PROTOCOL_OTHER });\r\n }\r\n }\r\n\r\n initAnchor() {\r\n this.anchors = [];\r\n this.anchors = [{ value: 0, viewValue: '', anchorValue: LinkAnchor.Blank }];\r\n }\r\n\r\n parseLinkUrl(typeId: number, url: string) {\r\n if (typeId === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n this.anchorText = url.substr(1);\r\n } else if (typeId === LinkType.email) {\r\n const p1 = url.indexOf('mailto:');\r\n const p2 = url.indexOf('?subject=');\r\n const p3 = url.indexOf('&body=');\r\n this.emailAddress = url.substr(p1 + 7, p2 - 7);\r\n this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);\r\n this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);\r\n } else if (typeId === LinkType.anchorDocument) {\r\n const flashIndex = url.lastIndexOf('/');\r\n const hashIndex = url.indexOf('#');\r\n const sId = url.substr(flashIndex + 1, hashIndex - 1 - flashIndex);\r\n const documentId = parseInt(sId, 10);\r\n this.getAnchorDocument(documentId);\r\n this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);\r\n this.anchorTitle = this.data.title;\r\n }\r\n }\r\n\r\n onSelectedLinkType() {\r\n if (this.selectedLink === LinkType.anchorText) {\r\n this.getEditorAnchor();\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n if (!this.documentAnchors) {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n }\r\n }\r\n\r\n eHandbook(isOnlyDocument: boolean, isAnchorDocument: boolean) {\r\n const data = new QMSCKEditorRelation();\r\n data.isOnlyDocument = isOnlyDocument;\r\n data.isEnableFolder = !isOnlyDocument;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorRelatedComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (!isAnchorDocument) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n } else {\r\n this.documentId = result.id;\r\n this.anchorTitle = `${result.title}(${result.id})`;\r\n this.getAnchorDocument(result.id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n attachment() {\r\n const data = new QMSCKEditorParamter();\r\n data.module = this.data.module;\r\n data.entityId = this.data.entityId;\r\n const dialogTemplate = this.dialog.open(LinkAttachmentComponent, {\r\n width: '650px',\r\n height: '650px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.url = result.url;\r\n if (!this.advisoryTitle) {\r\n this.advisoryTitle = result.title;\r\n }\r\n this.selectedProtocol = ProtocolType.other;\r\n }\r\n });\r\n }\r\n\r\n getEditorAnchor() {\r\n this.anchorDocuments = [];\r\n if (this.editorContent) {\r\n this.anchorDocuments.push({\r\n id: 0,\r\n entityId: 0,\r\n documentId: 0,\r\n documentTypeId: 0,\r\n richText: this.editorContent\r\n });\r\n }\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.editorAnchors = this.anchors;\r\n }\r\n\r\n getAnchorDocument(documentId: number) {\r\n this.linkService\r\n .getAnchorDocumentList(documentId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.anchorDocuments = res;\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n } else {\r\n this.anchorDocuments = [];\r\n this.setAnchorDocument(this.anchorDocuments);\r\n this.documentAnchors = this.anchors;\r\n }\r\n });\r\n }\r\n\r\n setAnchorDocument(anchorDocument: QMSCKEditorLinkAnchorDocument[]) {\r\n this.initAnchor();\r\n let id = 3;\r\n if (anchorDocument) {\r\n anchorDocument.forEach((e) => {\r\n const div = document.createElement('div');\r\n div.innerHTML = e.richText;\r\n const domContent = div;\r\n const aTags = domContent.getElementsByTagName('a');\r\n if (aTags) {\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < aTags.length; i++) {\r\n const tag = aTags[i];\r\n if (tag.name) {\r\n const index = this.anchors.findIndex((x) => {\r\n return x.anchorValue === tag.name;\r\n });\r\n if (index < 0) {\r\n this.anchors.push({\r\n value: id,\r\n viewValue: tag.name,\r\n anchorValue: tag.name\r\n });\r\n id += 1;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.anchors.push({\r\n value: 1,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_ATTACHMENT,\r\n anchorValue: LinkAnchor.Attachment\r\n });\r\n this.anchors.push({\r\n value: 2,\r\n viewValue: this.LANG.QMSCKEDITOR.ANCHOR_RELATED_DOCUMENT,\r\n anchorValue: LinkAnchor.Related\r\n });\r\n }\r\n\r\n disableOkButton() {\r\n let isDisable = false;\r\n switch (this.selectedLink) {\r\n case LinkType.url:\r\n isDisable = this.linkFormGroup.invalid;\r\n break;\r\n case LinkType.anchorText:\r\n isDisable = this.anchorTextFormGroup.invalid;\r\n break;\r\n case LinkType.email:\r\n isDisable = this.emailFormGroup.invalid;\r\n break;\r\n case LinkType.anchorDocument:\r\n isDisable = this.anchorDocFormGroup.invalid;\r\n break;\r\n default:\r\n break;\r\n }\r\n return isDisable;\r\n }\r\n\r\n setLink() {\r\n const link = new QMSCKEditorLink();\r\n link.typeId = this.selectedLink;\r\n link.targetId = this.selectedTarget;\r\n link.protocolId = this.selectedProtocol;\r\n if (this.selectedLink === LinkType.url) {\r\n link.url = `${this.selectedLink}${this.selectedProtocol}${this.url}`;\r\n link.title = this.advisoryTitle;\r\n } else if (this.selectedLink === LinkType.anchorText) {\r\n link.url = `${this.selectedLink}${0}#${this.anchorText}`;\r\n link.title = `#${this.anchorText}`;\r\n link.targetId = TargetType.same;\r\n } else if (this.selectedLink === LinkType.email) {\r\n link.url = `${this.selectedLink}${0}mailto:${this.emailAddress}?subject=${this.emailSubject}&body=${this.emailBody\r\n }`;\r\n link.title = this.emailAddress;\r\n link.targetId = TargetType.same;\r\n } else if (this.selectedLink === LinkType.anchorDocument) {\r\n link.url = `${this.selectedLink}${0}/document/${this.documentId}#${this.anchorByName}`;\r\n link.title = this.anchorTitle;\r\n link.targetId = TargetType.same;\r\n }\r\n this.dialogRef.close(link);\r\n }\r\n}\r\n","// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Injectable, Injector } from '@angular/core';\r\n\r\n// @dynamic\r\nexport class QMSCKEditorInjector {\r\n private static injector: Injector;\r\n\r\n static setInjector(injector: Injector) {\r\n QMSCKEditorInjector.injector = injector;\r\n }\r\n\r\n static getInjector(): Injector {\r\n return QMSCKEditorInjector.injector;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getService(type: any) {\r\n const injector = QMSCKEditorInjector.getInjector();\r\n const service = injector.get(type);\r\n return service;\r\n }\r\n}\r\n","import {\r\n MatSnackBar,\r\n MatSnackBarConfig,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition\r\n} from '@angular/material/snack-bar';\r\nimport { QMSCKEditorInjector } from '../../services/qms-ckeditor-injector.service';\r\n\r\nexport class QMSCKEditorToastService {\r\n static horizontalPosition: MatSnackBarHorizontalPosition = 'right';\r\n\r\n static verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n\r\n static actionButtonLabel = 'Close';\r\n\r\n static action = true;\r\n\r\n static setAutoHide = true;\r\n\r\n static autoHide = 3000;\r\n\r\n static success(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-success'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static warning(msg, duration?: number) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = duration || (this.setAutoHide ? this.autoHide : 0);\r\n config.panelClass = ['toast-warning'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static info(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = this.setAutoHide ? this.autoHide : 0;\r\n config.panelClass = ['toast-infor'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n\r\n static error(msg) {\r\n if (msg && typeof msg === 'string') {\r\n const config = new MatSnackBarConfig();\r\n config.verticalPosition = this.verticalPosition;\r\n config.horizontalPosition = this.horizontalPosition;\r\n config.duration = 0;\r\n config.panelClass = ['toast-error'];\r\n const notifi = QMSCKEditorInjector.getService(MatSnackBar);\r\n notifi.open(msg, this.action ? this.actionButtonLabel : undefined, config);\r\n }\r\n }\r\n}\r\n","export class QMSCKEditorTemplate {\r\n id: number;\r\n title: string;\r\n description: string;\r\n content: string;\r\n deleted: boolean;\r\n createdBy: number;\r\n edit: boolean;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.title = '';\r\n this.description = '';\r\n this.content = '';\r\n this.deleted = false;\r\n this.createdBy = 0;\r\n this.edit = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { QMSCKEditorTemplate } from '../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseService } from './qms-ckeditor-base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QMSCKEditorTemplateService extends QMSCKEditorBaseService {\r\n public deleteTemplate(id: number): Observable<boolean> {\r\n return this.delete('ckeditorTemplate/DeleteTemplate', { id });\r\n }\r\n public getTemplate(): Observable<QMSCKEditorTemplate[]> {\r\n return this.get('ckeditorTemplate/GetTemplateList');\r\n }\r\n\r\n public modifyTemplate(template: QMSCKEditorTemplate): Observable<boolean> {\r\n return this.post('ckeditorTemplate/ModifyTemplate', template);\r\n }\r\n}\r\n","import { AfterViewChecked, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\n\r\ninterface ITemplate {\r\n id: number;\r\n title: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-qmsck-template',\r\n templateUrl: './qms-ckeditor-template.component.html',\r\n styleUrls: ['./qms-ckeditor-template.component.scss']\r\n})\r\nexport class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewChecked {\r\n LANG: any;\r\n templateFormGroup: FormGroup = new FormGroup({\r\n templateList: new FormControl(),\r\n title: new FormControl('', [Validators.required]),\r\n description: new FormControl('', [Validators.required])\r\n });\r\n isExpanded = true;\r\n content: string;\r\n templateList: QMSCKEditorTemplate[] = [];\r\n templates: ITemplate[] = [];\r\n template = new QMSCKEditorTemplate();\r\n selectedId = 0;\r\n isEdit = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: QMSCKEditorTemplate\r\n ) {\r\n super();\r\n this.content = data.content;\r\n this.selectedId = data.id;\r\n this.isEdit = data.edit;\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templateList = response;\r\n this.templates = response.map((x) => {\r\n return {\r\n id: x.id,\r\n title: x.title\r\n };\r\n });\r\n this.addNoneTemplate(this.templates);\r\n } else {\r\n this.addNoneTemplate(this.templates);\r\n }\r\n\r\n if (this.isEdit && this.selectedId !== 0) {\r\n this.onSelectChange();\r\n }\r\n });\r\n }\r\n\r\n addNoneTemplate(template: ITemplate[]) {\r\n if (template && !this.isEdit) {\r\n template.unshift({\r\n id: 0,\r\n title: this.LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE\r\n });\r\n }\r\n }\r\n\r\n onSelectChange() {\r\n if (this.selectedId === 0) {\r\n this.template.id = this.selectedId;\r\n this.template.title = '';\r\n this.template.description = '';\r\n this.template.content = this.content;\r\n this.template.deleted = false;\r\n this.template.createdBy = 0;\r\n } else if (this.templateList.length > 0) {\r\n const index = this.templateList.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n this.template.id = this.templateList[index].id;\r\n this.template.title = this.templateList[index].title;\r\n this.template.description = this.templateList[index].description;\r\n this.template.content = this.templateList[index].content;\r\n this.template.deleted = this.templateList[index].deleted;\r\n this.template.createdBy = this.templateList[index].createdBy;\r\n }\r\n }\r\n\r\n deleteTemplate() {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(this.selectedId)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n this.selectedId = 0;\r\n this.onSelectChange();\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n saveTemplate() {\r\n if (this.selectedId === 0) {\r\n this.template.content = this.content;\r\n }\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === this.selectedId;\r\n });\r\n if (index >= 0 && this.selectedId !== 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n\r\n cancelTemplate() {\r\n this.dialogRef.close();\r\n }\r\n\r\n updateTemplate() {\r\n this.templateService\r\n .modifyTemplate(this.template)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n if (this.isEdit) {\r\n this.dialogRef.close(this.template);\r\n } else {\r\n let index = this.templates.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templates[index].title = this.template.title;\r\n }\r\n index = this.templateList.findIndex((x) => {\r\n return x.id === this.template.id;\r\n });\r\n if (index >= 0) {\r\n this.templateList[index].description = this.template.description;\r\n }\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateLibraryService } from '../../../services/translation-registry.service';\r\nimport { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';\r\nimport { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';\r\nimport { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';\r\nimport { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';\r\nimport { QMSCKEditorTemplateComponent } from '../qms-ckeditor-template/qms-ckeditor-template.component';\r\n\r\n@Component({\r\n selector: 'app-qmsck-load-template',\r\n templateUrl: './qms-ckeditor-load-template.component.html',\r\n styleUrls: ['./qms-ckeditor-load-template.component.scss']\r\n})\r\nexport class QMSCKEditorLoadTemplateComponent extends QMSCKEditorBaseComponent implements OnInit {\r\n LANG: any;\r\n templates: QMSCKEditorTemplate[] = [];\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private translate: TranslateLibraryService,\r\n private templateService: QMSCKEditorTemplateService,\r\n public dialogRef: MatDialogRef<QMSCKEditorLoadTemplateComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: string\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {\r\n if (res) {\r\n this.LANG = this.translate.getObjectLang(res);\r\n }\r\n });\r\n this.getTemplate();\r\n }\r\n\r\n onCloseDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n getTemplate() {\r\n this.templateService\r\n .getTemplate()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n this.templates = response;\r\n }\r\n });\r\n }\r\n\r\n onSelectTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.CHANGE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_CHANGE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const content = this.templates[index].content;\r\n this.dialogRef.close(content);\r\n }\r\n });\r\n }\r\n\r\n onEditTemplate(id: number) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = this.templates[index].id;\r\n data.content = this.templates[index].content;\r\n data.edit = true;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '500px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templates[index].title = result.title;\r\n this.templates[index].description = result.description;\r\n }\r\n });\r\n }\r\n\r\n onDeleteTemplate(id: number) {\r\n const data: QMSCKEditorDialogData = new QMSCKEditorDialogData();\r\n data.title = this.LANG.QMSCKEDITOR.DELETE_TEMPLATE;\r\n data.content = this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE;\r\n const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {\r\n width: '500px',\r\n minHeight: '175px',\r\n data\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n this.templateService\r\n .deleteTemplate(id)\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((response) => {\r\n if (response) {\r\n const index = this.templates.findIndex((x) => {\r\n return x.id === id;\r\n });\r\n if (index >= 0) {\r\n this.templates.splice(index, 1);\r\n }\r\n QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);\r\n } else {\r\n QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { QMSCKEditorToastService } from '../toast/qms-ckeditor-toast.service';\r\nexport class UploadAdapter {\r\n loader: any;\r\n constructor(loader) {\r\n this.loader = loader;\r\n }\r\n\r\n upload() {\r\n return this.loader.file\r\n .then((file) => {\r\n return new Promise((resolve, reject) => {\r\n const myReader = new FileReader();\r\n myReader.onloadend = () => {\r\n resolve({ default: myReader.result });\r\n };\r\n // if (file.size > 512000) {\r\n // const msg = `${file.name} is more than 500kb. Sorry, it has to be less than or equal to 500kb`;\r\n // QMSCKEditorToastService.error(msg);\r\n // reject();\r\n // }\r\n myReader.readAsDataURL(file);\r\n });\r\n })\r\n .catch((error) => {\r\n throw error;\r\n });\r\n }\r\n}\r\n","export class CKEditorEventConst {\r\n public static QMSCK_FULLSCREEN_PLUGIN_MSG = 'QMSCK_FULLSCREEN_PLUGIN_MSG';\r\n public static QMSCK_TEMPLATE_PLUGIN_MSG = 'QMSCK_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_MSG = 'QMSCK_LOAD_TEMPLATE_PLUGIN_MSG';\r\n public static QMSCK_LOAD_TEMPLATE_PLUGIN_RESP = 'QMSCK_LOAD_TEMPLATE_PLUGIN_RESP';\r\n public static QMSCK_LINK_PLUGIN_MSG = 'QMSCK_LINK_PLUGIN_MSG';\r\n public static QMSCK_LINK_PLUGIN_RESP = 'QMSCK_LINK_PLUGIN_RESP';\r\n}\r\n","var IFRAME_SRC = '//cdn.iframe.ly/api/iframe';\r\nvar API_KEY = 'b499e92e857f435c39c14d';\r\n\r\nfunction getCKEditorConfiguration(itemToolbar: string) {\r\n const ckeditorConfig = {\r\n toolbar: {\r\n items: [\r\n ],\r\n viewportTopOffset: 30,\r\n shouldNotGroupWhenFull: true\r\n },\r\n language: 'en',\r\n table: {\r\n contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells']\r\n },\r\n image: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n toolbar: [\r\n 'imageResize:25',\r\n 'imageResize:50',\r\n 'imageResize:75',\r\n 'imageResize:original',\r\n 'imageStyle:alignLeft',\r\n 'imageStyle:alignCenter',\r\n 'imageStyle:alignRight',\r\n '|',\r\n 'imageTextAlternative',\r\n '|',\r\n 'linkImage'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'imageResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'imageResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'imageResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'imageResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'medium'\r\n }\r\n ]\r\n },\r\n video: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'videoResize',\r\n '|',\r\n 'videoResize:25',\r\n 'videoResize:50',\r\n 'videoResize:75',\r\n 'videoResize:original',\r\n 'videoStyle:alignLeft',\r\n 'videoStyle:alignCenter',\r\n 'videoStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'videoResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'videoResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'videoResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'videoResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n media: {\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ]\r\n },\r\n // Configure 'mediaEmbed' with Iframely previews.\r\n mediaEmbed: {\r\n // Previews are always enabled if there’s a provider for a URL (below regex catches all URLs)\r\n // By default `previewsInData` are disabled, but let’s set it to `false` explicitely to be sure\r\n previewsInData: true,\r\n styles: ['alignLeft', 'alignCenter', 'alignRight'],\r\n resizeUnit: '%',\r\n toolbar: [\r\n 'mediaResize',\r\n '|',\r\n 'mediaResize:25',\r\n 'mediaResize:50',\r\n 'mediaResize:75',\r\n 'mediaResize:original',\r\n 'mediaStyle:alignLeft',\r\n 'mediaStyle:alignCenter',\r\n 'mediaStyle:alignRight'\r\n ],\r\n resizeOptions: [\r\n {\r\n name: 'mediaResize:original',\r\n value: null,\r\n label: 'Original',\r\n icon: 'original'\r\n },\r\n {\r\n name: 'mediaResize:25',\r\n value: 25,\r\n label: '25%',\r\n icon: 'small'\r\n },\r\n {\r\n name: 'mediaResize:50',\r\n value: 50,\r\n label: '50%',\r\n icon: 'medium'\r\n },\r\n {\r\n name: 'mediaResize:75',\r\n value: 75,\r\n label: '75%',\r\n icon: 'large'\r\n }\r\n ],\r\n // providers: [\r\n // {\r\n // // hint: this is just for previews. Get actual HTML codes by making API calls from your CMS\r\n // name: 'iframely previews',\r\n // // Match all URLs or just the ones you need:\r\n // url: /.+/,\r\n\r\n // html: match => {\r\n // const url = match[0];\r\n\r\n // var iframeUrl = IFRAME_SRC + '?app=1&api_key=' + API_KEY + '&url=' + encodeURIComponent(url);\r\n // // alternatively, use &key= instead of &api_key with the MD5 hash of your api_key\r\n // // more about it: https://iframely.com/docs/allow-origins\r\n\r\n // return (\r\n // // If you need, set maxwidth and other styles for 'iframely-embed' class - it's yours to customize\r\n // '<div class=\"iframely-embed\">' +\r\n // '<div class=\"iframely-responsive\">' +\r\n // `<iframe src=\"${iframeUrl}\" ` +\r\n // 'frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen>' +\r\n // '</iframe>' +\r\n // '</div>' +\r\n // '</div>'\r\n // );\r\n // }\r\n // }\r\n // ]\r\n },\r\n link: {\r\n addTargetToExternalLinks: false,\r\n decorators: [\r\n {\r\n mode: 'manual',\r\n label: 'New window',\r\n attributes: {\r\n target: '_blank',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Topmost window',\r\n attributes: {\r\n target: '_top',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Same window',\r\n attributes: {\r\n target: '_self',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n mode: 'manual',\r\n label: 'Parent window',\r\n attributes: {\r\n target: '_parent',\r\n manualTarget: true,\r\n url: 'url'\r\n }\r\n },\r\n {\r\n // alway put this one a the bottom\r\n mode: 'manual',\r\n label: 'Select range',\r\n attributes: {\r\n selectedRange: true\r\n }\r\n }\r\n ]\r\n }\r\n };\r\n\r\n if (itemToolbar) {\r\n const itemArray = itemToolbar.split(',');\r\n itemArray.forEach(i => {\r\n ckeditorConfig.toolbar.items.push(i);\r\n });\r\n }\r\n\r\n return ckeditorConfig;\r\n}\r\n\r\nconst CKEditorCommonFunctions = {\r\n getCKEditorConfiguration\r\n};\r\nexport default CKEditorCommonFunctions;\r\n","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, OnInit, Output, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UploadAdapter } from './common/classes/uploadAdapter';\r\nimport { CKEditorEventConst } from './common/constants/ckeditorEvent.constant';\r\nimport CKEditorCommonFunctions from './common/functions/common.function';\r\nimport { QMSCKEdtiorInputData } from './common/models/qms-ckeditor-input.model';\r\nimport { QMSCKEditorPlugin } from './common/models/qms-ckeditor-plugin.model';\r\nimport QMSCKEditorLink from './common/models/qms-ckeditor-url.model';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorTemplate } from './models/qms-ckeditor-template.model';\r\nimport { QMSCKEditorBaseComponent } from './qms-ckeditor-base.component';\r\nimport { QMSCKEditorGlobalService } from './services/qms-ckeditor-global.service';\r\n\r\n@Component({\r\n selector: 'qms-ckeditor',\r\n templateUrl: './qms-ckeditor.component.html',\r\n styleUrls: ['./qms-ckeditor.component.scss'],\r\n providers: [\r\n QMSCKEditorFullscreenComponent,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QMSCKEditorComponent),\r\n multi: true\r\n }\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QMSCKEditorComponent extends QMSCKEditorBaseComponent implements OnInit, AfterViewInit, Validator {\r\n @Input() qmsckData: QMSCKEdtiorInputData;\r\n @Input() qmsckPlugin: QMSCKEditorPlugin;\r\n @Input() qmsckContentInput: string;\r\n @Input('disabled') isDisabled: boolean;\r\n @Input('required') required: boolean = false;\r\n @Output() qmsckContentOutput: EventEmitter<string> = new EventEmitter();\r\n\r\n ckEditor: any;\r\n name: string;\r\n ckeditorConfig: any;\r\n ckEditorEventConst = CKEditorEventConst;\r\n countWord: number;\r\n countChar: number;\r\n editorInstance: any;\r\n\r\n @HostListener('window:message', ['$event'])\r\n onMessage(event) {\r\n switch (event.data.eventName) {\r\n case this.ckEditorEventConst.QMSCK_FULLSCREEN_PLUGIN_MSG:\r\n this.fullscreenEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_TEMPLATE_PLUGIN_MSG:\r\n this.templateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_MSG:\r\n this.loadTemplateEventHandling();\r\n break;\r\n case this.ckEditorEventConst.QMSCK_LINK_PLUGIN_MSG:\r\n this.linkEventHandling(event.data.value);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Constructor\r\n */\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private globalService: QMSCKEditorGlobalService,\r\n private qmsCKEditorFullscreenComponent: QMSCKEditorFullscreenComponent,\r\n private renderer: Renderer2,\r\n private elRef: ElementRef\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.name = 'CKEditor custom build';\r\n this.ckEditor = this.qmsckPlugin.pluginObject;\r\n this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);\r\n this.globalService.setApiUrl(this.qmsckData.apiUrl);\r\n }\r\n\r\n onChange: (content: any) => void;\r\n onTouched: () => void;\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (this.isDisabled) {\r\n this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');\r\n }\r\n }\r\n\r\n public onChanged({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n public onBlur({ editor }) {\r\n this.qmsckContentOutput.emit(this.qmsckContentInput);\r\n }\r\n\r\n validate(c: FormControl) {\r\n if (!this.required) {\r\n return null;\r\n }\r\n return (this.qmsckContentInput && !this.required) ? null : {\r\n type: {\r\n valid: false,\r\n actual: c.value\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * onReady\r\n */\r\n public onReady(editor) {\r\n this.editorInstance = editor;\r\n if (this.qmsckContentInput) {\r\n editor.setData(this.qmsckContentInput);\r\n }\r\n\r\n this.initEditor(editor);\r\n\r\n }\r\n\r\n private initEditor(editor) {\r\n editor.ui\r\n .getEditableElement()\r\n .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());\r\n\r\n editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {\r\n return new UploadAdapter(loader);\r\n };\r\n\r\n // Apped Wordcount to CKeditor\r\n editor.plugins.get('WordCount').on('update', (evt, stats) => {\r\n // Prints the current content statistics.\r\n const wordsBox = document.querySelector('.wordcount-content');\r\n wordsBox.textContent = `Words: ${stats.words} / Characters: ${stats.characters}`;\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Full screen - Restore down\r\n */\r\n public fullscreenEventHandling() {\r\n const ck = window.document.getElementById('qmsckeditor');\r\n if (ck) {\r\n if (!ck.classList.contains('qmsckeditor__fullscreen')) {\r\n this.qmsCKEditorFullscreenComponent.showFullScreen();\r\n } else {\r\n this.qmsCKEditorFullscreenComponent.hideFullScreen();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public templateEventHandling() {\r\n const data: QMSCKEditorTemplate = new QMSCKEditorTemplate();\r\n data.id = 0;\r\n data.content = this.qmsckContentInput;\r\n data.edit = false;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorTemplateComponent, {\r\n width: '650px',\r\n height: '520px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n // TDO\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Add template - Load template\r\n */\r\n public loadTemplateEventHandling() {\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLoadTemplateComponent, {\r\n width: '650px',\r\n height: '700px',\r\n data: this.qmsckContentInput,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LOAD_TEMPLATE_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Anchor - Link - Image mapping\r\n */\r\n public linkEventHandling(link) {\r\n let data = new QMSCKEditorLink();\r\n data = link;\r\n data.editorContent = this.qmsckContentInput;\r\n data.module = this.qmsckData.module;\r\n data.entityId = this.qmsckData.entityId;\r\n const dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {\r\n width: '650px',\r\n height: '660px',\r\n data,\r\n disableClose: true\r\n });\r\n dialogTemplate\r\n .afterClosed()\r\n .pipe(takeUntil(this.ngUnsubcribe))\r\n .subscribe((result) => {\r\n if (result) {\r\n const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_LINK_PLUGIN_RESP, {\r\n detail: result\r\n });\r\n window.dispatchEvent(evt);\r\n }\r\n });\r\n }\r\n}\r\n","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { Injector, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { CKEditorModule } from '@ckeditor/ckeditor5-angular';\r\nimport { QMSCKEditorConfirmComponent } from './common/module/confirm/qms-ckeditor-confirm.component';\r\nimport { QMSCKEditorTreeComponent } from './common/module/tree/qms-ckeditor-tree.component';\r\nimport { QMSCKEditorFullscreenComponent } from './components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nimport { LinkAttachmentComponent } from './components/qms-ckeditor-link/attachments/link-attachment.component';\r\nimport { QMSCKEditorLinkComponent } from './components/qms-ckeditor-link/qms-ckeditor-link.component';\r\nimport { QMSCKEditorLoadTemplateComponent } from './components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nimport { QMSCKEditorRelatedComponent } from './components/qms-ckeditor-relation/qmsckeditor-related.component';\r\nimport { QMSCKEditorTemplateComponent } from './components/qms-ckeditor-template/qms-ckeditor-template.component';\r\nimport { QMSCKEditorComponent } from './qms-ckeditor.component';\r\nimport { QMSCKEditorInjector } from './services/qms-ckeditor-injector.service';\r\nimport { SharedModule } from '../shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QMSCKEditorFullscreenComponent,\r\n QMSCKEditorComponent,\r\n QMSCKEditorTemplateComponent,\r\n QMSCKEditorLoadTemplateComponent,\r\n QMSCKEditorConfirmComponent,\r\n QMSCKEditorLinkComponent,\r\n QMSCKEditorTreeComponent,\r\n QMSCKEditorRelatedComponent,\r\n LinkAttachmentComponent\r\n ],\r\n imports: [\r\n CKEditorModule,\r\n CommonModule,\r\n MatCommonModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n MatExpansionModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatFormFieldModule,\r\n ReactiveFormsModule,\r\n MatSnackBarModule,\r\n MatSelectModule,\r\n MatButtonModule,\r\n MatTreeModule,\r\n MatAutocompleteModule,\r\n ScrollingModule,\r\n HttpClientModule,\r\n SharedModule\r\n ],\r\n providers: [],\r\n exports: [QMSCKEditorComponent],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class QMSCKEditorModule {\r\n constructor(private injectors: Injector) {\r\n QMSCKEditorInjector.setInjector(this.injectors);\r\n }\r\n}\r\n","export class QMSCKEditorData {\r\n apiUrl: string;\r\n module: number;\r\n entityId: string;\r\n documentId: number;\r\n\r\n constructor() {\r\n this.apiUrl = '';\r\n this.module = 0;\r\n this.entityId = '';\r\n this.documentId = 0;\r\n }\r\n}\r\n","export class QMSCKEdtiorInputData {\r\n apiUrl: string;\r\n module: number;\r\n entityId: string;\r\n documentId: number;\r\n\r\n constructor() {\r\n this.apiUrl = '';\r\n this.module = 0;\r\n this.entityId = '';\r\n this.documentId = 0;\r\n }\r\n}\r\n","export class QMSCKEditorLinkAnchorDocument {\r\n id: number;\r\n entityId: number;\r\n documentId: number;\r\n documentTypeId: number;\r\n richText: string;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.entityId = 0;\r\n this.documentId = 0;\r\n this.documentTypeId = 0;\r\n this.richText = '';\r\n }\r\n}\r\n","export default class QMSCKEditorLinkAttachment {\r\n itemId: string;\r\n fileName: string;\r\n placementId: number;\r\n processrelationTypeId: number;\r\n extension: string;\r\n description: string;\r\n sort: number;\r\n extraId: string;\r\n}\r\n","export default class QMSCKEditorTree {\r\n rootId: string;\r\n parentId: string;\r\n rootName: string;\r\n subName: string;\r\n childId: string;\r\n childName: string;\r\n statusId: number;\r\n displayId: number;\r\n}\r\n","export class QMSCKEditorPlugin {\r\n pluginObject: any;\r\n itemToolbar: string;\r\n\r\n constructor() {\r\n this.pluginObject = null;\r\n this.itemToolbar = '';\r\n }\r\n}\r\n","import { ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatButton } from '@angular/material/button';\r\nimport { IconModel } from './qms-app-bar.model';\r\n\r\n@Component({\r\n selector: 'app-qms-app-bar',\r\n templateUrl: './qms-app-bar.component.html',\r\n styleUrls: ['./qms-app-bar.component.scss']\r\n})\r\nexport class QmsAppBarComponent implements OnInit {\r\n @ViewChild('menu', { static: true }) menu: MatButton;\r\n\r\n // nomal style\r\n @Input() isNomalType = false;\r\n @Input() leftFirstIcon = 'keyboard_backspace';\r\n @Input() title: string;\r\n @Input() cancelTitle: string;\r\n @Input() confirmTitle: string;\r\n @Input() disabledConfirmAction: boolean;\r\n @Output() onClickLeftFirstIconEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onCancelEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onConfirmEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n // modern style\r\n @Input() hideMenuDropdown: boolean;\r\n @Input() logoSvgPath: string;\r\n @Input() imgSvgPath: string;\r\n @Input() isImgSvgTransparent: boolean;\r\n @Input() rightIcons: IconModel[] = [];\r\n @Input() notifications = 0;\r\n @Output() onMenuClickedEvent: EventEmitter<any> = new EventEmitter();\r\n @Output() onRightIconClickedEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() { }\r\n \r\n ngOnInit(): void {\r\n }\r\n\r\n onCancel() {\r\n this.onCancelEvent.emit();\r\n }\r\n\r\n onClickLeftFirstIcon() {\r\n this.onClickLeftFirstIconEvent.emit();\r\n }\r\n\r\n onConfirm() {\r\n this.onConfirmEvent.emit();\r\n }\r\n\r\n onMenuClicked() {\r\n this.onMenuClickedEvent.emit();\r\n }\r\n\r\n onRightIconClicked(icon: string) {\r\n this.onRightIconClickedEvent.emit(icon);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsAppBarComponent } from './qms-app-bar.component';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { QMSButtonModule } from '../button/button.module';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsAppBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsAppBarComponent\r\n ]\r\n }\r\n)\r\n\r\nexport class QmsAppBarModule {\r\n}\r\n","export class IconModel {\r\n icon: string;\r\n tooltip: string;\r\n cssClass: string;\r\n svg: boolean;\r\n isShow: boolean;\r\n constructor(icon: string, tooltip: string, cssClass = '', svg = false, isShow = true) {\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.svg = svg;\r\n this.cssClass = cssClass;\r\n this.isShow = isShow;\r\n }\r\n}","import { MatDialogConfig } from \"@angular/material/dialog\";\r\n\r\nexport class ConfirmDialog {\r\n title: string;\r\n body: string;\r\n normalTitle: string;\r\n closeButton: boolean;\r\n buttonType: string;\r\n actionText: string;\r\n cancelText: string;\r\n\r\n constructor() {\r\n this.title = '';\r\n this.body = '';\r\n this.normalTitle = '';\r\n this.buttonType = 'normal';\r\n this.closeButton = false;\r\n this.actionText = 'Confirm';\r\n this.cancelText = 'Cancel';\r\n }\r\n}\r\n\r\n\r\n\r\nexport class QMSDialogConfig extends MatDialogConfig {\r\n constructor(data: ConfirmDialog, width: string = '', minHeight: string = '', panelClass: string = '') {\r\n super();\r\n this.data = data;\r\n this.width = width;\r\n this.disableClose = true;\r\n this.panelClass = ['qms-dialog'];\r\n this.panelClass.push(panelClass);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { QMSToolTipComponent } from './tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n QMSToolTipComponent,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n \r\n ],\r\n declarations: [\r\n QMSToolTipComponent\r\n ],\r\n})\r\nexport class QMSTooltipModule { }","export class QmsBannerContent {\r\n text: string;\r\n tooltip?: string;\r\n bold?: boolean;\r\n}\r\n\r\nexport enum BannerType {\r\n primary = 'primary',\r\n warning = 'warning',\r\n success = 'success',\r\n error = 'error',\r\n light = 'light',\r\n none = 'none',\r\n}\r\n\r\nexport class QmsBannerConfirmButton {\r\n id: string | number;\r\n text: string;\r\n}\r\n\r\nexport class QmsBannerConfirmButtonClick {\r\n button: QmsBannerConfirmButton;\r\n event: PointerEvent;\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner',\r\n templateUrl: './qms-banner.component.html',\r\n styleUrls: ['./qms-banner.component.scss']\r\n})\r\nexport class QmsBannerComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() buttonText: string;\r\n @Input() buttonMinWidth: number;\r\n\r\n @Output() buttonClick = new EventEmitter<PointerEvent>();\r\n\r\n public onClickButton(event: PointerEvent) {\r\n this.buttonClick.emit(event);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerComponent } from './qms-banner.component';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerComponent\r\n ]\r\n})\r\nexport class QmsBannerModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { BannerType } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-loading',\r\n templateUrl: './qms-banner-loading.component.html',\r\n styleUrls: ['./qms-banner-loading.component.scss']\r\n})\r\nexport class QmsBannerLoadingComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() title: string;\r\n @Input() percent: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { QmsBannerLoadingComponent } from './qms-banner-loading.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerLoadingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatProgressSpinnerModule\r\n ],\r\n exports: [\r\n QmsBannerLoadingComponent\r\n ]\r\n})\r\nexport class QmsBannerLoadingModule { }\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BannerType, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerContent } from '../models/qms-banner.model';\r\n\r\n@Component({\r\n selector: 'qms-banner-confirm',\r\n templateUrl: './qms-banner-confirm.component.html',\r\n styleUrls: ['./qms-banner-confirm.component.scss']\r\n})\r\nexport class QmsBannerConfirmComponent {\r\n @Input() type = BannerType.primary;\r\n @Input() contents: QmsBannerContent[] = [];\r\n @Input() icon: string;\r\n @Input() title: string;\r\n @Input() buttons: QmsBannerConfirmButton[];\r\n\r\n @Output() buttonClick = new EventEmitter<QmsBannerConfirmButtonClick>();\r\n\r\n public onClickButton(event: PointerEvent, button: QmsBannerConfirmButton) {\r\n this.buttonClick.emit({\r\n event: event,\r\n button: button\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { QmsBannerConfirmComponent } from './qms-banner-confirm.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { QMSButtonModule } from '../../button/button.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n QmsBannerConfirmComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n QMSButtonModule\r\n ],\r\n exports: [\r\n QmsBannerConfirmComponent\r\n ]\r\n})\r\nexport class QmsBannerConfirmModule { }\r\n","import {\r\n AfterContentInit,\r\n AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChildren, Directive, ElementRef, HostListener, Input, OnInit,\r\n QueryList, Renderer2, ViewEncapsulation\r\n} from \"@angular/core\";\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action',\r\n templateUrl: 'table-action.html',\r\n styleUrls: ['table.scss'],\r\n host: { 'class': 'qms-table-action' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableAction implements OnInit {\r\n\r\n constructor(private elRef: ElementRef) { }\r\n ngOnInit() { }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'qms-table-action-block',\r\n templateUrl: 'table-action-block.html',\r\n styleUrls: ['table.scss'],\r\n host: {\r\n 'class': 'qms-table-action-block',\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class QMSTableActionBlock implements AfterViewInit {\r\n\r\n constructor(private elRef: ElementRef<HTMLElement>, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n }\r\n}\r\n\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { QMSTableAction, QMSTableActionBlock } from './table-action';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatCommonModule,\r\n MatIconModule,\r\n ],\r\n exports: [\r\n MatCommonModule,\r\n MatIconModule,\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n declarations: [\r\n QMSTableAction,\r\n QMSTableActionBlock,\r\n ],\r\n providers: []\r\n})\r\nexport class QMSTableModule { }\r\n","export class StepModel {\r\n id: string;\r\n name: string;\r\n disabled: boolean;\r\n selected: boolean;\r\n constructor(id: string, name: string, disabled: boolean, selected: boolean) {\r\n this.id = id;\r\n this.disabled = disabled;\r\n this.name = name;\r\n this.selected = selected;\r\n }\r\n}","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { StepModel } from './qms-stepper.model';\r\n\r\n@Component({\r\n selector: 'app-qms-stepper',\r\n templateUrl: './qms-stepper.component.html',\r\n styleUrls: ['./qms-stepper.component.scss']\r\n})\r\nexport class QmsStepperComponent implements OnInit {\r\n @ViewChild('stepper', { static: false }) stepper;\r\n @Input() steps: StepModel[] = [];\r\n @Input() width: number;\r\n @Input() height: number;\r\n @Input() isHorizontal = false;\r\n @Input() currentStep = 0;\r\n @Input() labelPosition = 'end';\r\n @Output() selectionChangeEvent: EventEmitter<number> = new EventEmitter();\r\n constructor(private changeDetector: ChangeDetectorRef) {\r\n }\r\n ngOnInit(): void {\r\n }\r\n\r\n changeStep(selectedIndex: number): void {\r\n this.currentStep = selectedIndex;\r\n this.selectionChangeEvent.emit(selectedIndex);\r\n }\r\n}\r\n","import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { QmsStepperComponent } from './qms-stepper.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n@NgModule(\r\n {\r\n declarations: [\r\n QmsStepperComponent\r\n ],\r\n imports: [\r\n MatStepperModule,\r\n CommonModule,\r\n MatIconModule\r\n ],\r\n exports: [\r\n QmsStepperComponent\r\n ],\r\n entryComponents: [\r\n QmsStepperComponent\r\n ],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n }\r\n)\r\n\r\nexport class QmsStepperModule {\r\n}","import { MatSnackBarConfig, MatSnackBarHorizontalPosition } from \"@angular/material/snack-bar\";\r\n\r\nexport class QMSSnackbarConfig extends MatSnackBarConfig {\r\n constructor(duration: number = 3000, horizontalPosition: MatSnackBarHorizontalPosition = 'right', panelClass: string | string[] = ['c-snackbar-qms']) {\r\n super();\r\n this.duration = duration;\r\n this.horizontalPosition = horizontalPosition;\r\n this.panelClass = panelClass;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of qms-angular\r\n */\r\n\r\nimport { from } from 'rxjs';\r\n\r\nexport * from './lib/qms-angular.service';\r\nexport * from './lib/qms-angular.component';\r\nexport * from './lib/qms-angular.module';\r\n\r\n// directives\r\n// export * from './lib/directives/directive.module';\r\nexport * from './lib/directives/margin.directive';\r\nexport * from './lib/directives/form.directive';\r\n\r\n// //components\r\nexport * from './lib/components/test-only/test-only.component';\r\n\r\nexport * from './lib/components/button/button.module';\r\nexport * from './lib/components/button/button';\r\nexport * from './lib/components/button/color';\r\n\r\nexport * from './lib/components/comment/comment';\r\n\r\n\r\nexport * from './lib/directives/search-field.directive';\r\nexport * from './lib/directives/range-slider/range-slider.directive';\r\nexport * from './lib/directives/range-slider/range-slider-lockup.directive';\r\nexport * from './lib/components/list/list.module';\r\nexport * from './lib/components/list/list';\r\nexport * from './lib/components/suffix-field/suffix-field.directive';\r\n\r\nexport * from './lib/services/translation-registry.service';\r\nexport * from './lib/shared.module';\r\nexport * from './lib/model/en';\r\nexport * from './lib/model/no';\r\n\r\nexport * from './lib/components/rich-text/rich-text.module';\r\nexport * from './lib/components/rich-text/rich-text';\r\n\r\n\r\n\r\nexport * from './lib/directives/chips/chip.directive';\r\nexport * from './lib/directives/chips/chip-body.directive';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog.module';\r\nexport * from './lib/components/edit-file-name-dialog/edit-file-name-dialog';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog.module';\r\nexport * from './lib/components/upload-file-error-dialog/upload-file-error-dialog';\r\n\r\nexport * from './lib/directives/file-upload/file-upload.directive';\r\nexport * from './lib/directives/file-upload/file-upload-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-display.directive';\r\nexport * from './lib/directives/file-upload/file-upload-scrollable-attachment-list.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-selector.directive';\r\nexport * from './lib/directives/file-upload/file-upload-multiple-display.directive';\r\nexport * from './lib/directives/file-upload/qms-file-upload-attachment.model';\r\n\r\n\r\nexport * from './lib/directives/dropdown-menu/dropdown-item.directive';\r\n\r\nexport * from './lib/directives/scrollbar/scrollbar.directive';\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n\r\n// export * from './lib/components/substance-conflict/substance-conflict.module';\r\n// export * from './lib/components/substance-conflict/substaince-conflict.base';\r\n// export * from './lib/components/substance-conflict/substance-conflict.component';\r\n\r\nexport * from './lib/components/related/related.module';\r\nexport * from './lib/components/related/tree/tree.component';\r\nexport * from './lib/components/related/common/tree.function';\r\nexport * from './lib/components/related/model/tree-node.model';\r\nexport * from './lib/components/related/model/tree.model';\r\nexport * from './lib/components/related/popup/related-popup.component';\r\nexport * from './lib/components/related/model/popup-data.model';\r\nexport * from './lib/components/related/content/related-content.component';\r\nexport * from './lib/components/related/sidenav/sidenav.component';\r\nexport * from './lib/components/related/model/sidenav.model';\r\nexport * from './lib/components/related/risk/analysis/analysis.component';\r\nexport * from './lib/components/related/model/risk-analysis.model';\r\nexport * from './lib/components/related/model/tree-config.model';\r\nexport * from './lib/components/related/model/risk-danger.model';\r\nexport * from './lib/components/related/risk/result/result.component';\r\nexport * from './lib/components/related/model/risk-result.model';\r\nexport * from './lib/components/related/risk/list/list.component';\r\nexport * from './lib/components/related/list-other-related/list-related.component'\r\nexport * from './lib/components/related/service/related-global.service';\r\nexport * from './lib/components/related/common/qms-icon.const';\r\n/* qms-ckeditor */\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.module';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor-base.component';\r\nexport * from './lib/qms-ckeditor-components/qms-ckeditor.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant';\r\nexport * from './lib/qms-ckeditor-components/common/enums/document-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-anchor.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/link-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/protocol-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/target-type.enum';\r\nexport * from './lib/qms-ckeditor-components/common/enums/module.enum';\r\nexport * from './lib/qms-ckeditor-components/common/functions/common.function';\r\nexport * from './lib/qms-ckeditor-components/common/functions/tree.function';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-dialog.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-input.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-anchor-document.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-link-attachment.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-relation.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-tree.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-url.model';\r\nexport * from './lib/qms-ckeditor-components/common/models/qms-ckeditor-plugin.model';\r\nexport * from './lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component';\r\nexport * from './lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component';\r\nexport * from './lib/qms-ckeditor-components/common/toast/qms-ckeditor-toast.service';\r\n\r\nexport * from './lib/qms-ckeditor-components/models/qms-ckeditor-template.model';\r\n\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component';\r\n// export * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\r\nexport * from './lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component';\r\n\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-global.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-injector.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-base.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckedtior-template.service';\r\nexport * from './lib/qms-ckeditor-components/services/qms-ckeditor-link.service';\r\n\r\nexport * from './lib/directives/text-block/text-block.directive';\r\nexport * from './lib/directives/text-block/text-block-line.directive';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.module';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.model';\r\nexport * from './lib/components/qms-app-bar/qms-app-bar.component';\r\n\r\nexport * from './lib/components/dialog/constant';\r\nexport * from './lib/components/dialog/dialog';\r\n\r\nexport * from './lib/directives/side-sheet/drawer.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header.directive';\r\nexport * from './lib/directives/side-sheet/drawer-content.directive';\r\nexport * from './lib/directives/side-sheet/drawer-header-action.directive';\r\nexport * from './lib/directives/tooltip/tooltip-renderer.directive';\r\nexport * from './lib/directives/tooltip/tooltip-image.directive';\r\nexport * from './lib/components/tooltip/tooltip';\r\nexport * from './lib/components/tooltip/tooltip.module';\r\n\r\nexport * from './lib/directives/tab/tab-label.directive';\r\nexport * from './lib/directives/tab/tab-group.directive';\r\nexport * from './lib/directives/tab/tab-group-advanced.directive';\r\n\r\nexport * from './lib/components/banner/qms-banner/qms-banner.module';\r\nexport * from './lib/components/banner/qms-banner/qms-banner.component';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.module';\r\nexport * from './lib/components/banner/qms-banner-loading/qms-banner-loading.component';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.module';\r\nexport * from './lib/components/banner/qms-banner-confirm/qms-banner-confirm.component';\r\nexport * from './lib/components/banner/models/qms-banner.model';\r\n\r\nexport * from './lib/components/button/button-toggle';\r\nexport * from './lib/pipe/dateFormat.pipe';\r\n\r\nexport * from './lib/directives/chip-input/chip-input-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-field.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-trigger.directive';\r\nexport * from './lib/directives/chip-input/chip-input-select-dropdown.directive';\r\nexport * from './lib/directives/chip-input/chip-input-chip-list.directive';\r\nexport * from './lib/components/table/table.module';\r\nexport * from './lib/components/table/table-action';\r\n\r\n\r\nexport * from './lib/components/qms-stepper/qms-stepper.model';\r\nexport * from './lib/components/qms-stepper/qms-stepper.module';\r\nexport * from './lib/components/qms-stepper/qms-stepper.component';\r\nexport * from './lib/components/snackbar/snackbar';\r\n\r\nexport * from './lib/directives/scroll-selected/scroll-to-selected.directive';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SharedMaterialModule as ɵa} from './lib/material-module';\nexport {LinkAttachmentComponent as ɵd} from './lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component';\nexport {QMSCKEditorTemplateComponent as ɵb} from './lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component';\nexport {QMSCKEditorTreeService as ɵc} from './lib/qms-ckeditor-components/services/qms-ckeditor-tree.service';"],"names":["Injectable","BehaviorSubject","Component","EventEmitter","ChangeDetectionStrategy","Input","Output","FormBuilder","ElementRef","MatDialogRef","Inject","MAT_DIALOG_DATA","ViewChild","HostListener","Directive","ContentChild","MatAutocompleteTrigger","NgControl","Optional","FileErrorType","MatDialog","Renderer2","ViewEncapsulation","ComponentPortal","Overlay","OverlayPositionBuilder","InjectionToken","NG_VALUE_ACCESSOR","forwardRef","coerceBooleanProperty","SelectionModel","ChangeDetectorRef","ContentChildren","mixinDisableRipple","FocusMonitor","Attribute","mixinDisabled","ANIMATION_MODULE_TYPE","NgModule","MatCommonModule","MatIconModule","MatProgressSpinnerModule","MatInputModule","MatCardModule","MatDialogModule","CUSTOM_ELEMENTS_SCHEMA","moment","Pipe","CommonModule","FormsModule","ReactiveFormsModule","MAT_FORM_FIELD_DEFAULT_OPTIONS","MAT_RADIO_DEFAULT_OPTIONS","setLines","MatListModule","MatExpansionModule","MAT_EXPANSION_PANEL_DEFAULT_OPTIONS","NO_ERRORS_SCHEMA","NG_VALIDATORS","MatButtonModule","MatFormFieldModule","objData","buildArrayTree","TreeNode","buildObjectTree","findParent","findChild","FlatTreeControl","MatTreeFlattener","MatTreeFlatDataSource","DomSanitizer","MatIconRegistry","Subject","FormControl","takeUntil","debounceTime","ViewChildren","MatTreeModule","MatCheckboxModule","MatAutocompleteModule","ScrollingModule","MatSidenavModule","HttpHeaders","HttpClient","CKEditorModule","LinkAnchor","LinkType","ProtocolType","TargetType","QMSCKEditorDocumentType","forkJoin","FormGroup","Validators","MatSnackBarConfig","MatSnackBar","MatSnackBarModule","MatSelectModule","HttpClientModule","Injector","MatToolbarModule","MatTooltipModule","MatBadgeModule","MatDialogConfig","BannerType","MatStepperModule","STEPPER_GLOBAL_OPTIONS"],"mappings":"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"}
|
@@ -6,4 +6,4 @@ export class DangerAssessment {
|
|
6
6
|
this.dangers = [];
|
7
7
|
}
|
8
8
|
}
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2VyLWFzc2Vzc21lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9tb2RlbC9kYW5nZXItYXNzZXNzbWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCO1FBQ0UsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhbmdlciB9IGZyb20gXCIuL2Rhbmdlci5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhbmdlckFzc2Vzc21lbnQge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNoaWxkTnVtYmVyOiBudW1iZXI7XHJcbiAgc2hvdzogbnVtYmVyO1xyXG4gIHJlbWFpbjogbnVtYmVyO1xyXG4gIGRhbmdlcnM6IEFycmF5PERhbmdlcj47XHJcbiAgZm9sZGVySWQ/OiBudW1iZXI7XHJcbiAgc3RhdHVzSWQ/OiBudW1iZXI7XHJcbiAgc2ltcGxlPzogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuaWQgPSAwO1xyXG4gICAgdGhpcy5uYW1lID0gJyc7XHJcbiAgICB0aGlzLmNoaWxkTnVtYmVyID0gMDtcclxuICAgIHRoaXMuZGFuZ2VycyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -1,3 +1,3 @@
|
|
1
1
|
export class Danger {
|
2
2
|
}
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2VyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3JlbGF0ZWQvbW9kZWwvZGFuZ2VyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxNQUFNO0NBV2xCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhbmdlciB7XHJcbiAgYW5hbHlzaXNJZDogbnVtYmVyO1xyXG4gIGFuYWx5c2lzTmFtZTogc3RyaW5nO1xyXG4gIGRhbmdlcklkOiBudW1iZXI7XHJcbiAgZGFuZ2VyTmFtZTogc3RyaW5nO1xyXG4gIGdyZWVuOiBudW1iZXI7XHJcbiAgeWVsbG93OiBudW1iZXI7XHJcbiAgcmVkOiBudW1iZXI7XHJcbiAgZm9sZGVySWQ/OiBudW1iZXI7XHJcbiAgc3RhdHVzSWQ/OiBudW1iZXI7XHJcbiAgc2ltcGxlPzogbnVtYmVyO1xyXG59XHJcbiJdfQ==
|
@@ -2,8 +2,9 @@ export class RiskResult {
|
|
2
2
|
constructor() {
|
3
3
|
this.title = '';
|
4
4
|
this.results = [];
|
5
|
+
this.isSimple = 0;
|
5
6
|
}
|
6
7
|
}
|
7
8
|
export class Result {
|
8
9
|
}
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlzay1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9tb2RlbC9yaXNrLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUtyQjtRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO0lBQ25CLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxNQUFNO0NBT2xCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJpc2tSZXN1bHQge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVzdWx0czogQXJyYXk8UmVzdWx0PjtcclxuICBpc1NpbXBsZT86IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gJyc7XHJcbiAgICB0aGlzLnJlc3VsdHMgPSBbXTtcclxuICAgIHRoaXMuaXNTaW1wbGUgPSAwXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzdWx0IHtcclxuICBkYW5nZXJJZDogbnVtYmVyO1xyXG4gIGRhbmdlck5hbWU6IHN0cmluZztcclxuICBjb2xvcjogbnVtYmVyO1xyXG4gIGNhdXNlOiBzdHJpbmc7XHJcbiAgY29uc2VxdWVuY2VBcmVhOiBzdHJpbmc7XHJcbiAgcmVzdWx0OiBzdHJpbmc7XHJcbn1cclxuIl19
|
@@ -132,6 +132,8 @@ export class RelatedPopupComponent {
|
|
132
132
|
this.checkedNodeList = this.checkedNodeList.filter(x => (x.id !== item.id || x.parentId !== item.parentId));
|
133
133
|
const tempArr = [];
|
134
134
|
const tempArrDocument = [];
|
135
|
+
const newSelectProcessList = [];
|
136
|
+
const newSelectDocumentList = [];
|
135
137
|
this.commonCheckedList.forEach(element => {
|
136
138
|
this.checkedNodeList.forEach(x => {
|
137
139
|
if (element.id === x.id && element.parentId === x.parentId) {
|
@@ -139,6 +141,14 @@ export class RelatedPopupComponent {
|
|
139
141
|
}
|
140
142
|
});
|
141
143
|
});
|
144
|
+
this.singleProcessList.forEach(element => {
|
145
|
+
this.checkedNodeList.forEach(x => {
|
146
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
147
|
+
newSelectProcessList.push(element);
|
148
|
+
}
|
149
|
+
});
|
150
|
+
});
|
151
|
+
this.singleProcessList = newSelectProcessList;
|
142
152
|
this.selectedData = [...tempArr];
|
143
153
|
this.documentCheckedList.forEach(element => {
|
144
154
|
this.checkedNodeList.forEach(x => {
|
@@ -147,6 +157,14 @@ export class RelatedPopupComponent {
|
|
147
157
|
}
|
148
158
|
});
|
149
159
|
});
|
160
|
+
this.singleDocumentList.forEach(element => {
|
161
|
+
this.checkedNodeList.forEach(x => {
|
162
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
163
|
+
newSelectDocumentList.push(element);
|
164
|
+
}
|
165
|
+
});
|
166
|
+
});
|
167
|
+
this.singleDocumentList = newSelectDocumentList;
|
150
168
|
this.selectedData2 = [...tempArrDocument];
|
151
169
|
}
|
152
170
|
isMatchTrue(arr, arr2) {
|
@@ -380,13 +398,14 @@ export class RelatedPopupComponent {
|
|
380
398
|
else {
|
381
399
|
position = this.treeData1.findIndex(p => p.childId === item.id);
|
382
400
|
}
|
383
|
-
if (position >
|
401
|
+
if (position > -1) {
|
384
402
|
this.singleProcessList.push({
|
385
403
|
moduleId: this.moduleId,
|
386
404
|
id: item.id,
|
387
405
|
itemName: item.name,
|
388
406
|
itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,
|
389
|
-
itemNumberId: this.treeData1[position].displayId.toString()
|
407
|
+
itemNumberId: this.treeData1[position].displayId.toString(),
|
408
|
+
parentId: item.parentId
|
390
409
|
});
|
391
410
|
}
|
392
411
|
}
|
@@ -422,24 +441,37 @@ export class RelatedPopupComponent {
|
|
422
441
|
this.documentCheckedList.push(item);
|
423
442
|
}
|
424
443
|
if (this.singleSelectedNode) {
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
444
|
+
let position;
|
445
|
+
if (item.expandable) {
|
446
|
+
position = this.treeData2.findIndex(p => p.rootId === item.id);
|
447
|
+
}
|
448
|
+
else {
|
449
|
+
position = this.treeData2.findIndex(p => p.childId === item.id);
|
450
|
+
}
|
451
|
+
if (position > -1) {
|
452
|
+
this.singleDocumentList.push({
|
453
|
+
moduleId: this.moduleId,
|
454
|
+
id: item.id,
|
455
|
+
itemName: item.name,
|
456
|
+
itemType: item.expandable ? this.dataType.folder : this.dataType.document,
|
457
|
+
itemNumberId: this.treeData2[position].displayId.toString(),
|
458
|
+
parentId: item.parentId
|
459
|
+
});
|
460
|
+
}
|
433
461
|
}
|
434
462
|
if (index < 0 && !item.expandable && !this.singleSelectedNode) {
|
435
463
|
const position = this.treeData2.findIndex(p => p.childId === item.id);
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
464
|
+
if (position > -1) {
|
465
|
+
this.checkedNodeList.push({
|
466
|
+
moduleId: this.moduleId,
|
467
|
+
id: item.id,
|
468
|
+
itemName: item.name,
|
469
|
+
itemType: this.dataType.document,
|
470
|
+
itemNumberId: this.treeData2[position].displayId.toString(),
|
471
|
+
parentId: item.parentId,
|
472
|
+
parentName: this.treeData2[position].rootName,
|
473
|
+
});
|
474
|
+
}
|
443
475
|
}
|
444
476
|
});
|
445
477
|
if (this.singleSelectedNode) {
|
@@ -500,4 +532,4 @@ RelatedPopupComponent.propDecorators = {
|
|
500
532
|
autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
|
501
533
|
onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
|
502
534
|
};
|
503
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxF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Q3JELENBQUM7OztZQXRoQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG0xZEFBNkM7Z0JBRTdDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBdENRLGlCQUFpQjtZQU1qQix1QkFBdUI7WUFIdkIsWUFBWTtZQVlaLHVCQUF1QjtZQUV2QixlQUFlO1lBRGYsWUFBWTtZQU5aLFNBQVMsdUJBNEViLE1BQU0sU0FBQyxlQUFlOzs7d0JBWHhCLFlBQVksU0FBQyxhQUFhLEVBQUUsRUFBRTsyQkFFOUIsU0FBUyxTQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBb0NuRixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuLi9jb21tb24vbW9kdWxlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFJlbGF0ZWRDb25zdCB9IGZyb20gJy4uL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IHsgUG9wdXBEYXRhIH0gZnJvbSAnLi4vbW9kZWwvcG9wdXAtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElSZWxhdGVkLCBSZWxhdGVkSXRlbSB9IGZyb20gJy4uL21vZGVsL3JlbGF0ZWQtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uL21vZGVsL3NlbGVjdGVkLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3JlbGF0ZWQtZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IENIRUNLTElTVF9JQ09OLCBERVZJQVRJT05fSUNPTiwgRE9DVU1FTlRfSUNPTiwgUFJPQ0VTU19BUkVBX0lDT04sIFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OLCBQUk9DRVNTX0lDT04sIFJJU0tfSUNPTiB9IGZyb20gJy4uL2NvbW1vbi9xbXMtaWNvbi5jb25zdCc7XHJcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi90cmVlL3RyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdHJlZS1ub2RlLm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBUcmVlRmxhdE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBoYXNDaGlsZDogYm9vbGVhbjtcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtcmVsYXRlZC1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIExBTkc6IGFueTtcclxuICBtb2R1bGVJZCA9IDA7XHJcbiAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gIHRyZWVEYXRhMTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVDb25maWcxOiBUcmVlQ29uZmlnO1xyXG4gIHRyZWVDb25maWcyOiBUcmVlQ29uZmlnO1xyXG5cclxuICBjaGVja2VkTm9kZUxpc3Q6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGEyOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcblxyXG4gIGNvbW1vbkNoZWNrZWRMaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgZG9jdW1lbnRDaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHNpbmdsZVByb2Nlc3NMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgc2luZ2xlRG9jdW1lbnRMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcblxyXG4gIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgZGF0YVR5cGUgPSBEYXRhVHlwZTtcclxuICBpdGVtVHlwZSA9IDA7XHJcbiAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBkaXNhYmxlZExpc3QyOiBhbnkgPSBbXTtcclxuXHJcbiAgaXNEb2N1bWVudEV4cGFuZGVkID0gdHJ1ZTtcclxuICBpc0NvbW1vbkV4cGFuZGVkID0gdHJ1ZTtcclxuICBzaW5nbGVTZWxlY3RlZE5vZGUgPSBmYWxzZTtcclxuXHJcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBJUmVsYXRlZFtdID0gW107XHJcbiAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcbiAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0U2VhcmNoJywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBzdGF0aWM6IHRydWUgfSlcclxuICBhdXRvQ29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlbGF0ZWRQb3B1cENvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgZ2xvYmFsU2VydmljZTogUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUG9wdXBEYXRhXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vZHVsZUlkID0gZGF0YS5tb2R1bGVJZDtcclxuICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgIHRoaXMudHJlZURhdGExID0gZGF0YS50cmVlRGF0YTE7XHJcbiAgICB0aGlzLnRyZWVEYXRhMiA9IGRhdGEudHJlZURhdGEyO1xyXG4gICAgdGhpcy50cmVlQ29uZmlnMSA9IGRhdGEudHJlZUNvbmZpZzE7XHJcbiAgICB0aGlzLnRyZWVDb25maWcyID0gZGF0YS50cmVlQ29uZmlnMjtcclxuICAgIHRoaXMuc2VsZWN0ZWRSaXNrRGF0YSA9IGRhdGE/LnNlbGVjdGVkTm9kZSB8fCBbXTtcclxuICAgIHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID0gZGF0YS50cmVlQ29uZmlnMS5zaW5nbGVTZWxlY3RlZE5vZGU7XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdCA9IGRhdGEuZGlzYWJsZWRMaXN0IHx8IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZExpc3QyID0gZGF0YS5kaXNhYmxlZExpc3QyIHx8IFtdO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzX2FyZWEnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19BUkVBX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2Vzc19hcmVhX291dGxpbmVkJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RvY3VtZW50Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERPQ1VNRU5UX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnY2hlY2tsaXN0Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKENIRUNLTElTVF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RldmlhdGlvbicsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChERVZJQVRJT05fSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdyaXNrJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFJJU0tfSUNPTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0U2VhcmNoUmVsYXRlZChbXSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuZGF0YSA9PT0gUmVsYXRlZENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5jbG9zZVBhbmVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXRlbVR5cGUgPSB0aGlzLmdldERhdGFUeXBlSWQodGhpcy5tb2R1bGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuc2V0UmVzdWx0SGVpZ2h0KCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGFUeXBlSWQobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgc3dpdGNoIChtb2R1bGVJZCkge1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZG9jdW1lbnRQcm9jZXNzOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kZXZpYXRpb247XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2R1bGVUeXBlLnJpc2s6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1UeXBlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW06IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhMiA9IFtdO1xyXG5cclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmlsdGVyKHggPT4gKHguaWQgIT09IGl0ZW0uaWQgfHwgeC5wYXJlbnRJZCAhPT0gaXRlbS5wYXJlbnRJZCkpO1xyXG4gICAgY29uc3QgdGVtcEFyciA9IFtdO1xyXG4gICAgY29uc3QgdGVtcEFyckRvY3VtZW50ID0gW107XHJcblxyXG4gICAgdGhpcy5jb21tb25DaGVja2VkTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmlkID09PSB4LmlkICYmIGVsZW1lbnQucGFyZW50SWQgPT09IHgucGFyZW50SWQpIHtcclxuICAgICAgICAgIHRlbXBBcnIucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbLi4udGVtcEFycl07XHJcblxyXG4gICAgdGhpcy5kb2N1bWVudENoZWNrZWRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IHguaWQgJiYgZWxlbWVudC5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCkge1xyXG4gICAgICAgICAgdGVtcEFyckRvY3VtZW50LnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhMiA9IFsuLi50ZW1wQXJyRG9jdW1lbnRdO1xyXG5cclxuICB9XHJcblxyXG4gIGlzTWF0Y2hUcnVlKGFycjogYW55W10sIGFycjI6IGFueVtdKSB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KChpKSA9PiB7XHJcbiAgICAgIHJldHVybiBhcnIyLmluY2x1ZGVzKGkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFJlc3VsdEhlaWdodChhcnI/OiBJUmVsYXRlZFtdKSB7XHJcbiAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgY29uc3QgcG9wdXBfY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Ftc2xpYl9yZWxhdGVkX3BvcHVwX2NvbnRlbnQnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGxpbmVfX2RpdmlkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsaW5lX19kaXZpZGVyJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgIG1heEhlaWdodCA9IHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KHBvcHVwX2NvbnRlbnQsIHRydWUpICsgdGhpcy5nZXRPZmZzZXRIZWlnaHQobGluZV9fZGl2aWRlciwgdHJ1ZSkgKiAyO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnRSZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdjZGstdmlydHVhbC1zY3JvbGwtY29udGVudC13cmFwcGVyJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2aWV3cmVwb3J0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbGF0ZWQtdmlld3BvcnQnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBpZiAodmlld3JlcG9ydHMpIHtcclxuICAgICAgaWYgKGNvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0IDw9IG1heEhlaWdodCkge1xyXG4gICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB2aWV3cmVwb3J0cy5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uU2VhcmNoUmVsYXRlZChfdmFsOiBhbnkpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XHJcbiAgICBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKCEhX3ZhbCkge1xyXG4gICAgICAgIHRoaXMub25TZWFyY2guZW1pdChfdmFsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TW9kdWxlRmlsdGVyZWRPcHRpb25zKG1vZHVsZUlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5maWx0ZXIoeCA9PiB4Lml0ZW1UeXBlID09PSBtb2R1bGVJZCk7XHJcbiAgfVxyXG5cclxuICBzaG93U2VhcmNoUmVzdWx0KCkge1xyXG4gICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5UmVsYXRlZChyZWxhdGVkPzogSVJlbGF0ZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHJlbGF0ZWQgPyByZWxhdGVkLml0ZW1OYW1lIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UmVsYXRlZChpdGVtOiBJUmVsYXRlZCkge1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IFtdO1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgIGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgIHJldHVybiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgIGxldCBub2RlOiBhbnk7XHJcbiAgICAgIGxldCB0eXBlSWQ6IG51bWJlcjtcclxuXHJcbiAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50KSB7XHJcbiAgICAgICAgLy8gZG9jdW1lbnRcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEyLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50O1xyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVsxXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmZvbGRlcikge1xyXG4gICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMltwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gaXRlbS5pdGVtVHlwZTtcclxuICAgICAgICBpZiAocG9zaXRpb24gPj0gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzIuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5pdGVtTmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5pdGVtTnVtYmVySWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMV0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvblR5cGVcclxuICAgICAgICB8fCBpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdENhdGVnb3J5XHJcbiAgICAgICAgfHwgaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5yaXNrRm9sZGVyKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3ROb2RlUmVjdXJzaXZlKHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXSwgaXRlbS5pdGVtVHlwZSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5hcmVhKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSBpdGVtLml0ZW1UeXBlO1xyXG5cclxuICAgICAgICBpZiAocG9zaXRpb24gPj0gMCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBub2RlLnJvb3RJZCxcclxuICAgICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5pdGVtTnVtYmVySWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBub2RlLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kYXRhVHJlZXMudG9BcnJheSgpWzBdLnRvZG9JdGVtU2VsZWN0aW9uQnlJZChbaXRlbS5pZF0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmRldmlhdGlvbiB8fFxyXG4gICAgICAgIGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0KSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5jaGlsZElkID09PSBpdGVtLmlkICYmIHgucm9vdElkID09PSBpdGVtLnBhcmVudElkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMVtwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gdGhpcy5pdGVtVHlwZTtcclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgIGlkOiBub2RlLmNoaWxkSWQsXHJcbiAgICAgICAgICBuYW1lOiBub2RlLmNoaWxkTmFtZSxcclxuICAgICAgICAgIGNoaWxkcmVuOiBbXSxcclxuICAgICAgICAgIHBhcmVudElkOiBub2RlLnJvb3RJZFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW3RyZWVOb2RlXSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgLy8gcHJvY2VzcywgZGV2aWF0aW9uLCBjaGVja2xpc3QsLi4uXHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5jaGlsZElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhMVtwb3NpdGlvbl07XHJcbiAgICAgICAgdHlwZUlkID0gdGhpcy5pdGVtVHlwZTtcclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdE5vZGVSZWN1cnNpdmUoaXRlbTogVHJlZU1vZGVsLCBpdGVtVHlwZTogRGF0YVR5cGUpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLnJvb3RJZDtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcblxyXG4gICAgICBjb25zdCBub2RlID0ge1xyXG4gICAgICAgIGlkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICBuYW1lOiBpdGVtLnJvb3ROYW1lLFxyXG4gICAgICAgIGNoaWxkcmVuOiBbXVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbm9kZUNoaWxkcmVuOiBUcmVlTm9kZVtdID0gdGhpcy50cmVlRGF0YTEuXHJcbiAgICAgICAgZmlsdGVyKHggPT4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkKS5cclxuICAgICAgICBtYXAoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogeC5jaGlsZElkLFxyXG4gICAgICAgICAgICBuYW1lOiBpdGVtLmNoaWxkTmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogaXRlbS5yb290SWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGxldCBub2RlU3ViZm9sZGVyczogVHJlZU1vZGVsW10gPSB0aGlzLnRyZWVEYXRhMS5cclxuICAgICAgICBmaWx0ZXIoeCA9PiB4LnBhcmVudElkID09PSBpdGVtLnJvb3RJZClcclxuXHJcbiAgICAgIGlmICh0aGlzLnRyZWVDb25maWcxLnNob3dDaGVja0JveCkge1xyXG4gICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICBpZDogeC5pZCxcclxuICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW1UeXBlLFxyXG4gICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uZGlzcGxheUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIG5vZGVDaGlsZHJlbi5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUucHVzaCh7XHJcbiAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICBpZDogeC5pZCxcclxuICAgICAgICAgICAgaXRlbU5hbWU6IHgubmFtZSxcclxuICAgICAgICAgICAgaXRlbVR5cGU6IGl0ZW1UeXBlLFxyXG4gICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uZGlzcGxheUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb24oW25vZGVdLmNvbmNhdChub2RlQ2hpbGRyZW4pKTtcclxuICAgICAgaWYgKG5vZGVTdWJmb2xkZXJzKSB7XHJcbiAgICAgICAgbm9kZVN1YmZvbGRlcnMuZm9yRWFjaChmb2xkZXIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3ROb2RlUmVjdXJzaXZlKGZvbGRlciwgaXRlbVR5cGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlUHJvY2VzcyhleHBhbmQpIHtcclxuICAgIHJldHVybiBleHBhbmQgPyB0aGlzLmRhdGFUeXBlLmFyZWEgOiB0aGlzLmRhdGFUeXBlLnByb2Nlc3M7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tb25DaGVja2VkTm9kZShsaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+KSB7XHJcbiAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jb21tb25DaGVja2VkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVQcm9jZXNzTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbLi4udGhpcy5zaW5nbGVEb2N1bWVudExpc3RdO1xyXG5cclxuICAgIGlmIChsaXN0Lmxlbmd0aCkge1xyXG4gICAgICBsaXN0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB4LmlkID09PSBpdGVtLmlkICYmIHgucGFyZW50SWQgPT09IGl0ZW0ucGFyZW50SWQpO1xyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDApIHtcclxuICAgICAgICAgIHRoaXMuY29tbW9uQ2hlY2tlZExpc3QucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgICAgbGV0IHBvc2l0aW9uOiBudW1iZXI7XHJcbiAgICAgICAgICBpZihpdGVtLmV4cGFuZGFibGUpe1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleChwID0+IHAucm9vdElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKHBvc2l0aW9uID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlUHJvY2Vzc0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogKHRoaXMuaXRlbVR5cGUgPT09IDIpID8gdGhpcy5zZXRUeXBlUHJvY2VzcyhpdGVtLmV4cGFuZGFibGUpIDogdGhpcy5pdGVtVHlwZSxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkICYmIHAucm9vdElkID09PSBpdGVtLnBhcmVudElkKTtcclxuICAgICAgICAgIGlmIChwb3NpdGlvbiA+IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHRoaXMuaXRlbVR5cGUsXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVQcm9jZXNzTGlzdF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50Q2hlY2tlZE5vZGUobGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPikge1xyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgIHRoaXMuZG9jdW1lbnRDaGVja2VkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gWy4uLnRoaXMuc2luZ2xlUHJvY2Vzc0xpc3RdO1xyXG5cclxuXHJcbiAgICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudENoZWNrZWRMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkKTtcclxuICAgICAgICAgIHRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgIGl0ZW1UeXBlOiBpdGVtLmV4cGFuZGFibGUgPyB0aGlzLmRhdGFUeXBlLmZvbGRlciA6IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBpZiAoaW5kZXggPCAwICYmICFpdGVtLmV4cGFuZGFibGUgJiYgIXRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEyLmZpbmRJbmRleChwID0+IHAuY2hpbGRJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogdGhpcy5kYXRhVHlwZS5kb2N1bWVudCxcclxuICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhMltwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVEb2N1bWVudExpc3RdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH07XHJcblxyXG4gIG9uQWRkQ2xpY2soKSB7XHJcbiAgICAvLyBpZiAodGhpcy50cmVlQ29uZmlnMS5zaG93Q2hlY2tCb3gpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuY2hlY2tlZE5vZGVMaXN0KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLnNlbGVjdGVkTm9kZSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBnZXRPZmZzZXRIZWlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGluY2x1ZGVNYXJnaW46IGJvb2xlYW4pOiBudW1iZXIge1xyXG4gICAgbGV0IGVsbUhlaWdodCA9IDAsIGVsbU1hcmdpbiA9IDA7XHJcblxyXG4gICAgZWxtSGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBpZiAoaW5jbHVkZU1hcmdpbikge1xyXG4gICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gICAgICBlbG1NYXJnaW4gPSBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpblRvcC5yZXBsYWNlKCdweCcsICcnKSkgKyBwYXJzZUZsb2F0KHN0eWxlLm1hcmdpbkJvdHRvbS5yZXBsYWNlKCdweCcsICcnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIChlbG1IZWlnaHQgKyBlbG1NYXJnaW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUNoaXBOYW1lKGl0ZW06IFNlbGVjdGVkTm9kZSkge1xyXG4gICAgaWYoaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmRldmlhdGlvbil7XHJcbiAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWUgPyBgJHtpdGVtLnBhcmVudE5hbWV9LyR7aXRlbS5pdGVtTmFtZX1gIDogaXRlbS5pdGVtTmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtLml0ZW1OYW1lO1xyXG4gIH1cclxuXHJcbiAgaXNFbGxpcHNpc0FjdGl2ZShlOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGUgPyAoZS5jbGllbnRXaWR0aCA8IGUuc2Nyb2xsV2lkdGgpIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
535
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9wb3B1cC9yZWxhdGVkLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBS3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxF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QUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUNoRjtRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBYztRQUM3QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3JELENBQUM7OztZQXpqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG0xZEFBNkM7Z0JBRTdDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBdENRLGlCQUFpQjtZQU1qQix1QkFBdUI7WUFIdkIsWUFBWTtZQVlaLHVCQUF1QjtZQUV2QixlQUFlO1lBRGYsWUFBWTtZQU5aLFNBQVMsdUJBNEViLE1BQU0sU0FBQyxlQUFlOzs7d0JBWHhCLFlBQVksU0FBQyxhQUFhLEVBQUUsRUFBRTsyQkFFOUIsU0FBUyxTQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBb0NuRixZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0NoZWNrZWQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuLi9jb21tb24vbW9kdWxlLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IFJlbGF0ZWRDb25zdCB9IGZyb20gJy4uL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IHsgUG9wdXBEYXRhIH0gZnJvbSAnLi4vbW9kZWwvcG9wdXAtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElSZWxhdGVkLCBSZWxhdGVkSXRlbSB9IGZyb20gJy4uL21vZGVsL3JlbGF0ZWQtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uL21vZGVsL3NlbGVjdGVkLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL3JlbGF0ZWQtZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IENIRUNLTElTVF9JQ09OLCBERVZJQVRJT05fSUNPTiwgRE9DVU1FTlRfSUNPTiwgUFJPQ0VTU19BUkVBX0lDT04sIFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OLCBQUk9DRVNTX0lDT04sIFJJU0tfSUNPTiB9IGZyb20gJy4uL2NvbW1vbi9xbXMtaWNvbi5jb25zdCc7XHJcbmltcG9ydCB7IFRyZWVDb21wb25lbnQgfSBmcm9tICcuLi90cmVlL3RyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdHJlZS1ub2RlLm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBUcmVlRmxhdE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgZXhwYW5kYWJsZTogYm9vbGVhbjtcclxuICBoYXNDaGlsZDogYm9vbGVhbjtcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtcmVsYXRlZC1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JlbGF0ZWQtcG9wdXAuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIExBTkc6IGFueTtcclxuICBtb2R1bGVJZCA9IDA7XHJcbiAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gIHRyZWVEYXRhMTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIHRyZWVDb25maWcxOiBUcmVlQ29uZmlnO1xyXG4gIHRyZWVDb25maWcyOiBUcmVlQ29uZmlnO1xyXG5cclxuICBjaGVja2VkTm9kZUxpc3Q6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGE6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuICBzZWxlY3RlZERhdGEyOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcblxyXG4gIGNvbW1vbkNoZWNrZWRMaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgZG9jdW1lbnRDaGVja2VkTGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIHNpbmdsZVByb2Nlc3NMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgc2luZ2xlRG9jdW1lbnRMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcblxyXG4gIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgZGF0YVR5cGUgPSBEYXRhVHlwZTtcclxuICBpdGVtVHlwZSA9IDA7XHJcbiAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBkaXNhYmxlZExpc3QyOiBhbnkgPSBbXTtcclxuXHJcbiAgaXNEb2N1bWVudEV4cGFuZGVkID0gdHJ1ZTtcclxuICBpc0NvbW1vbkV4cGFuZGVkID0gdHJ1ZTtcclxuICBzaW5nbGVTZWxlY3RlZE5vZGUgPSBmYWxzZTtcclxuXHJcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBJUmVsYXRlZFtdID0gW107XHJcbiAgaXNJbnB1dFZhbHVlID0gZmFsc2U7XHJcbiAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0U2VhcmNoJywgeyByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBzdGF0aWM6IHRydWUgfSlcclxuICBhdXRvQ29tcGxldGU6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlbGF0ZWRQb3B1cENvbXBvbmVudD4sXHJcbiAgICBwdWJsaWMgZ2xvYmFsU2VydmljZTogUU1TUmVsYXRlZEdsb2JhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUG9wdXBEYXRhXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1vZHVsZUlkID0gZGF0YS5tb2R1bGVJZDtcclxuICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgIHRoaXMudHJlZURhdGExID0gZGF0YS50cmVlRGF0YTE7XHJcbiAgICB0aGlzLnRyZWVEYXRhMiA9IGRhdGEudHJlZURhdGEyO1xyXG4gICAgdGhpcy50cmVlQ29uZmlnMSA9IGRhdGEudHJlZUNvbmZpZzE7XHJcbiAgICB0aGlzLnRyZWVDb25maWcyID0gZGF0YS50cmVlQ29uZmlnMjtcclxuICAgIHRoaXMuc2VsZWN0ZWRSaXNrRGF0YSA9IGRhdGE/LnNlbGVjdGVkTm9kZSB8fCBbXTtcclxuICAgIHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID0gZGF0YS50cmVlQ29uZmlnMS5zaW5nbGVTZWxlY3RlZE5vZGU7XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdCA9IGRhdGEuZGlzYWJsZWRMaXN0IHx8IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZExpc3QyID0gZGF0YS5kaXNhYmxlZExpc3QyIHx8IFtdO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzX2FyZWEnLCBzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19BUkVBX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2Vzc19hcmVhX291dGxpbmVkJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RvY3VtZW50Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERPQ1VNRU5UX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnY2hlY2tsaXN0Jywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKENIRUNLTElTVF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RldmlhdGlvbicsIHNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChERVZJQVRJT05fSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdyaXNrJywgc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFJJU0tfSUNPTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2Uuc2V0U2VhcmNoUmVsYXRlZChbXSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuZGF0YSA9PT0gUmVsYXRlZENvbnN0LkhJREVfU0VBUkNIX1JFU1VMVCkge1xyXG4gICAgICB0aGlzLmF1dG9Db21wbGV0ZS5jbG9zZVBhbmVsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZWFyY2hSZWxhdGVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcmVzO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaXRlbVR5cGUgPSB0aGlzLmdldERhdGFUeXBlSWQodGhpcy5tb2R1bGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICAgIHRoaXMuc2V0UmVzdWx0SGVpZ2h0KCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERhdGFUeXBlSWQobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgc3dpdGNoIChtb2R1bGVJZCkge1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZG9jdW1lbnRQcm9jZXNzOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1vZHVsZVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kZXZpYXRpb247XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmNoZWNrbGlzdDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNb2R1bGVUeXBlLnJpc2s6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLmRvY3VtZW50O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1UeXBlO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KGl0ZW06IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhMiA9IFtdO1xyXG5cclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmlsdGVyKHggPT4gKHguaWQgIT09IGl0ZW0uaWQgfHwgeC5wYXJlbnRJZCAhPT0gaXRlbS5wYXJlbnRJZCkpO1xyXG4gICAgY29uc3QgdGVtcEFyciA9IFtdO1xyXG4gICAgY29uc3QgdGVtcEFyckRvY3VtZW50ID0gW107XHJcbiAgICBjb25zdCBuZXdTZWxlY3RQcm9jZXNzTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgbmV3U2VsZWN0RG9jdW1lbnRMaXN0ID0gW107XHJcblxyXG4gICAgXHJcbiAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IHguaWQgJiYgZWxlbWVudC5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCkge1xyXG4gICAgICAgICAgdGVtcEFyci5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IHguaWQgJiYgZWxlbWVudC5wYXJlbnRJZCA9PT0geC5wYXJlbnRJZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0UHJvY2Vzc0xpc3QucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0ID0gbmV3U2VsZWN0UHJvY2Vzc0xpc3Q7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFsuLi50ZW1wQXJyXTtcclxuXHJcbiAgICB0aGlzLmRvY3VtZW50Q2hlY2tlZExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICB0ZW1wQXJyRG9jdW1lbnQucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0geC5pZCAmJiBlbGVtZW50LnBhcmVudElkID09PSB4LnBhcmVudElkKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3REb2N1bWVudExpc3QucHVzaChlbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICAgIHRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0ID0gbmV3U2VsZWN0RG9jdW1lbnRMaXN0O1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGEyID0gWy4uLnRlbXBBcnJEb2N1bWVudF07XHJcblxyXG4gIH1cclxuXHJcbiAgaXNNYXRjaFRydWUoYXJyOiBhbnlbXSwgYXJyMjogYW55W10pIHtcclxuICAgIHJldHVybiBhcnIuZXZlcnkoKGkpID0+IHtcclxuICAgICAgcmV0dXJuIGFycjIuaW5jbHVkZXMoaSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0UmVzdWx0SGVpZ2h0KGFycj86IElSZWxhdGVkW10pIHtcclxuICAgIGxldCBtYXhIZWlnaHQgPSA0ODQ7XHJcbiAgICBjb25zdCBwb3B1cF9jb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncW1zbGliX3JlbGF0ZWRfcG9wdXBfY29udGVudCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmIChwb3B1cF9jb250ZW50ICYmIGxpbmVfX2RpdmlkZXIpIHtcclxuICAgICAgbWF4SGVpZ2h0ID0gdGhpcy5nZXRPZmZzZXRIZWlnaHQocG9wdXBfY29udGVudCwgdHJ1ZSkgKyB0aGlzLmdldE9mZnNldEhlaWdodChsaW5lX19kaXZpZGVyLCB0cnVlKSAqIDI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudFJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIGlmICh2aWV3cmVwb3J0cykge1xyXG4gICAgICBpZiAoY29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHQgPD0gbWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgdmlld3JlcG9ydHMuc3R5bGUuaGVpZ2h0ID0gYCR7Y29udGVudFJlc3VsdC5vZmZzZXRIZWlnaHR9cHhgO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb25TZWFyY2hSZWxhdGVkKF92YWw6IGFueSkge1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICAgIGlmICh0eXBlb2YgKF92YWwpID09PSAnb2JqZWN0Jykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgKF92YWwpID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAoISFfdmFsKSB7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KF92YWwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRNb2R1bGVGaWx0ZXJlZE9wdGlvbnMobW9kdWxlSWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRPcHRpb25zLmZpbHRlcih4ID0+IHguaXRlbVR5cGUgPT09IG1vZHVsZUlkKTtcclxuICB9XHJcblxyXG4gIHNob3dTZWFyY2hSZXN1bHQoKSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGRpc3BsYXlSZWxhdGVkKHJlbGF0ZWQ/OiBJUmVsYXRlZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gcmVsYXRlZCA/IHJlbGF0ZWQuaXRlbU5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSZWxhdGVkKGl0ZW06IElSZWxhdGVkKSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gW107XHJcbiAgICBpZiAodGhpcy50cmVlQ29uZmlnMS5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgaW5kZXggPSB0aGlzLmNoZWNrZWROb2RlTGlzdC5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGl0ZW0uaWQgJiYgeC5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZDtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgbGV0IG5vZGU6IGFueTtcclxuICAgICAgbGV0IHR5cGVJZDogbnVtYmVyO1xyXG5cclxuICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQpIHtcclxuICAgICAgICAvLyBkb2N1bWVudFxyXG4gICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguY2hpbGRJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dO1xyXG4gICAgICAgIHR5cGVJZCA9IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kYXRhVHJlZXMudG9BcnJheSgpWzFdLnRvZG9JdGVtU2VsZWN0aW9uQnlJZChbaXRlbS5pZF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZm9sZGVyKSB7XHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGEyW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSBpdGVtLml0ZW1UeXBlO1xyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnMi5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0uaXRlbU5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHR5cGVJZCxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uaXRlbU51bWJlcklkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlLnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLml0ZW1OYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVsxXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uVHlwZVxyXG4gICAgICAgIHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0Q2F0ZWdvcnlcclxuICAgICAgICB8fCBpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnJpc2tGb2xkZXIpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUodGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLCBpdGVtLml0ZW1UeXBlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLmFyZWEpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBub2RlID0gdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dO1xyXG4gICAgICAgIHR5cGVJZCA9IGl0ZW0uaXRlbVR5cGU7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29uZmlnMS5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBub2RlLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgICBtb2R1bGVJZDogdGhpcy5tb2R1bGVJZCxcclxuICAgICAgICAgICAgICBpZDogbm9kZS5yb290SWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IG5vZGUucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHR5cGVJZCxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uaXRlbU51bWJlcklkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0l0ZW1TZWxlY3Rpb25CeUlkKFtpdGVtLmlkXSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uIHx8XHJcbiAgICAgICAgaXRlbS5pdGVtVHlwZSA9PT0gdGhpcy5kYXRhVHlwZS5jaGVja2xpc3QpIHtcclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQgJiYgeC5yb290SWQgPT09IGl0ZW0ucGFyZW50SWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLml0ZW1UeXBlO1xyXG4gICAgICAgIGNvbnN0IHRyZWVOb2RlID0ge1xyXG4gICAgICAgICAgaWQ6IG5vZGUuY2hpbGRJZCxcclxuICAgICAgICAgIG5hbWU6IG5vZGUuY2hpbGROYW1lLFxyXG4gICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgcGFyZW50SWQ6IG5vZGUucm9vdElkXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbihbdHJlZU5vZGVdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvLyBwcm9jZXNzLCBkZXZpYXRpb24sIGNoZWNrbGlzdCwuLi5cclxuICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGExLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbm9kZSA9IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXTtcclxuICAgICAgICB0eXBlSWQgPSB0aGlzLml0ZW1UeXBlO1xyXG4gICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbkJ5SWQoW2l0ZW0uaWRdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Tm9kZVJlY3Vyc2l2ZShpdGVtOiBUcmVlTW9kZWwsIGl0ZW1UeXBlOiBEYXRhVHlwZSkge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0ucm9vdElkO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHBvc2l0aW9uID49IDApIHtcclxuXHJcbiAgICAgIGNvbnN0IG5vZGUgPSB7XHJcbiAgICAgICAgaWQ6IGl0ZW0ucm9vdElkLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ucm9vdE5hbWUsXHJcbiAgICAgICAgY2hpbGRyZW46IFtdXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBub2RlQ2hpbGRyZW46IFRyZWVOb2RlW10gPSB0aGlzLnRyZWVEYXRhMS5cclxuICAgICAgICBmaWx0ZXIoeCA9PiB4LnJvb3RJZCA9PT0gaXRlbS5yb290SWQpLlxyXG4gICAgICAgIG1hcCh4ID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkOiB4LmNoaWxkSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0uY2hpbGROYW1lLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnJvb3RJZFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgbGV0IG5vZGVTdWJmb2xkZXJzOiBUcmVlTW9kZWxbXSA9IHRoaXMudHJlZURhdGExLlxyXG4gICAgICAgIGZpbHRlcih4ID0+IHgucGFyZW50SWQgPT09IGl0ZW0ucm9vdElkKVxyXG5cclxuICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogaXRlbVR5cGUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbm9kZUNoaWxkcmVuLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZS5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogeC5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogaXRlbVR5cGUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbS5kaXNwbGF5SWQudG9TdHJpbmcoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvSXRlbVNlbGVjdGlvbihbbm9kZV0uY29uY2F0KG5vZGVDaGlsZHJlbikpO1xyXG4gICAgICBpZiAobm9kZVN1YmZvbGRlcnMpIHtcclxuICAgICAgICBub2RlU3ViZm9sZGVycy5mb3JFYWNoKGZvbGRlciA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE5vZGVSZWN1cnNpdmUoZm9sZGVyLCBpdGVtVHlwZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNldFR5cGVQcm9jZXNzKGV4cGFuZCkge1xyXG4gICAgcmV0dXJuIGV4cGFuZCA/IHRoaXMuZGF0YVR5cGUuYXJlYSA6IHRoaXMuZGF0YVR5cGUucHJvY2VzcztcclxuICB9XHJcblxyXG4gIGdldENvbW1vbkNoZWNrZWROb2RlKGxpc3Q6IEFycmF5PFRyZWVGbGF0Tm9kZT4pIHtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gW107XHJcbiAgICB0aGlzLmNvbW1vbkNoZWNrZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLnNpbmdsZVByb2Nlc3NMaXN0ID0gW107XHJcbiAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLnNpbmdsZURvY3VtZW50TGlzdF07XHJcblxyXG4gICAgaWYgKGxpc3QubGVuZ3RoKSB7XHJcbiAgICAgIGxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuY2hlY2tlZE5vZGVMaXN0LmZpbmRJbmRleCh4ID0+IHguaWQgPT09IGl0ZW0uaWQgJiYgeC5wYXJlbnRJZCA9PT0gaXRlbS5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgdGhpcy5jb21tb25DaGVja2VkTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgICBsZXQgcG9zaXRpb246IG51bWJlcjtcclxuICAgICAgICAgIGlmKGl0ZW0uZXhwYW5kYWJsZSl7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMS5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYocG9zaXRpb24gPiAtMSl7XHJcbiAgICAgICAgICAgIHRoaXMuc2luZ2xlUHJvY2Vzc0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogKHRoaXMuaXRlbVR5cGUgPT09IDIpID8gdGhpcy5zZXRUeXBlUHJvY2VzcyhpdGVtLmV4cGFuZGFibGUpIDogdGhpcy5pdGVtVHlwZSxcclxuICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IHRoaXMudHJlZURhdGExW3Bvc2l0aW9uXS5kaXNwbGF5SWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICBwYXJlbnRJZDogaXRlbS5wYXJlbnRJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICBpZiAoaXRlbS5pZCAmJiBpbmRleCA8IDAgJiYgIWl0ZW0uZXhwYW5kYWJsZSAmJiAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YTEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBpdGVtLmlkICYmIHAucm9vdElkID09PSBpdGVtLnBhcmVudElkKTtcclxuICAgICAgICAgIGlmIChwb3NpdGlvbiA+IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHRoaXMuaXRlbVR5cGUsXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTFbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFsuLi50aGlzLmNoZWNrZWROb2RlTGlzdCwgLi4udGhpcy5zaW5nbGVQcm9jZXNzTGlzdF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50Q2hlY2tlZE5vZGUobGlzdDogQXJyYXk8VHJlZUZsYXROb2RlPikge1xyXG4gICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgIHRoaXMuZG9jdW1lbnRDaGVja2VkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QgPSBbXTtcclxuICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0ID0gWy4uLnRoaXMuc2luZ2xlUHJvY2Vzc0xpc3RdO1xyXG5cclxuXHJcbiAgICBpZiAobGlzdC5sZW5ndGgpIHtcclxuICAgICAgbGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGVja2VkTm9kZUxpc3QuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XHJcblxyXG4gICAgICAgIGlmIChpdGVtLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudENoZWNrZWRMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICAgIGxldCBwb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgICAgICAgaWYoaXRlbS5leHBhbmRhYmxlKXtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgocCA9PiBwLnJvb3RJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMudHJlZURhdGEyLmZpbmRJbmRleChwID0+IHAuY2hpbGRJZCA9PT0gaXRlbS5pZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihwb3NpdGlvbiA+IC0xKXtcclxuICAgICAgICAgICAgdGhpcy5zaW5nbGVEb2N1bWVudExpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgaXRlbU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgICAgICBpdGVtVHlwZTogaXRlbS5leHBhbmRhYmxlID8gdGhpcy5kYXRhVHlwZS5mb2xkZXIgOiB0aGlzLmRhdGFUeXBlLmRvY3VtZW50LFxyXG4gICAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLmRpc3BsYXlJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgaWYgKGluZGV4IDwgMCAmJiAhaXRlbS5leHBhbmRhYmxlICYmICF0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhMi5maW5kSW5kZXgocCA9PiBwLmNoaWxkSWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgICAgICAgaWYocG9zaXRpb24gPiAtMSl7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgICAgICAgIGl0ZW1OYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgaXRlbVR5cGU6IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiB0aGlzLnRyZWVEYXRhMltwb3NpdGlvbl0uZGlzcGxheUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogdGhpcy50cmVlRGF0YTJbcG9zaXRpb25dLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbLi4udGhpcy5jaGVja2VkTm9kZUxpc3QsIC4uLnRoaXMuc2luZ2xlRG9jdW1lbnRMaXN0XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9O1xyXG5cclxuICBvbkFkZENsaWNrKCkge1xyXG4gICAgLy8gaWYgKHRoaXMudHJlZUNvbmZpZzEuc2hvd0NoZWNrQm94KSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmNoZWNrZWROb2RlTGlzdCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5zZWxlY3RlZE5vZGUpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgZ2V0T2Zmc2V0SGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmNsdWRlTWFyZ2luOiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgIGxldCBlbG1IZWlnaHQgPSAwLCBlbG1NYXJnaW4gPSAwO1xyXG5cclxuICAgIGVsbUhlaWdodCA9IGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcclxuICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgZWxtTWFyZ2luID0gcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAoZWxtSGVpZ2h0ICsgZWxtTWFyZ2luKTtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1DaGlwTmFtZShpdGVtOiBTZWxlY3RlZE5vZGUpIHtcclxuICAgIGlmKGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmNoZWNrbGlzdCB8fCBpdGVtLml0ZW1UeXBlID09PSBEYXRhVHlwZS5kZXZpYXRpb24pe1xyXG4gICAgICByZXR1cm4gaXRlbS5wYXJlbnROYW1lID8gYCR7aXRlbS5wYXJlbnROYW1lfS8ke2l0ZW0uaXRlbU5hbWV9YCA6IGl0ZW0uaXRlbU5hbWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbS5pdGVtTmFtZTtcclxuICB9XHJcblxyXG4gIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBlID8gKGUuY2xpZW50V2lkdGggPCBlLnNjcm9sbFdpZHRoKSA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -55,7 +55,8 @@ export class RiskListComponent {
|
|
55
55
|
remain: 0,
|
56
56
|
dangers: [],
|
57
57
|
folderId: d.folderId,
|
58
|
-
statusId: d.statusId
|
58
|
+
statusId: d.statusId,
|
59
|
+
simple: d.simple
|
59
60
|
});
|
60
61
|
dangers.forEach(d => {
|
61
62
|
const index = this.analysisDanger[i].dangers.findIndex(x => {
|
@@ -151,4 +152,4 @@ RiskListComponent.propDecorators = {
|
|
151
152
|
data: [{ type: Input }],
|
152
153
|
updateData: [{ type: Output }]
|
153
154
|
};
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9yaXNrL2xpc3QvbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFjM0QsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUIsWUFDUyxTQUFrQyxFQUNqQyxNQUFpQjtRQURsQixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZjNCLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUU3QyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBSVQsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFlLEVBQUUsQ0FBQztRQUdwQixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFPbEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjs7UUFDaEMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDNUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtB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SSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxZQUFZO0lBRVosQ0FBQzs7O1lBbktGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsZzNFQUFvQzs7YUFFckM7OztZQWRRLHVCQUF1QjtZQUR2QixTQUFTOzs7bUJBOEJmLEtBQUs7eUJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gXCIuLi8uLi9jb21tb24vYWN0aW9uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQgeyBEYW5nZXJBY3Rpb24gfSBmcm9tIFwiLi4vLi4vbW9kZWwvZGFuZ2VyLWFjdGlvbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEYW5nZXJBc3Nlc3NtZW50IH0gZnJvbSBcIi4uLy4uL21vZGVsL2Rhbmdlci1hc3Nlc3NtZW50Lm1vZGVsXCI7XHJcbmltcG9ydCB7IERhbmdlciB9IGZyb20gXCIuLi8uLi9tb2RlbC9kYW5nZXIubW9kZWxcIjtcclxuaW1wb3J0IHsgUmlza0RhbmdlciB9IGZyb20gXCIuLi8uLi9tb2RlbC9yaXNrLWRhbmdlci5tb2RlbFwiO1xyXG5pbXBvcnQgeyBSaXNrUmVzdWx0IH0gZnJvbSBcIi4uLy4uL21vZGVsL3Jpc2stcmVzdWx0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IFRyZWVDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWxcIjtcclxuaW1wb3J0IHsgUmlza1Jlc3VsdENvbXBvbmVudCB9IGZyb20gXCIuLi9yZXN1bHQvcmVzdWx0LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtcmlzay1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSaXNrTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBMQU5HOiBhbnk7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpc05vdEVkaXRlZEl0ZW06IGJvb2xlYW47XHJcbiAgZGFuZ2VyczogQXJyYXk8RGFuZ2VyPiA9IFtdO1xyXG4gIGFuYWx5c2lzRGFuZ2VyOiBBcnJheTxEYW5nZXJBc3Nlc3NtZW50PiA9IFtdO1xyXG4gIGRhbmdlckFjdGlvbjogRGFuZ2VyQWN0aW9uO1xyXG4gIHNob3cgPSA1O1xyXG5cclxuICBkYW5nZXJDb25maWc6IFRyZWVDb25maWc7XHJcblxyXG4gIHJlc3VsdERhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuICByaXNrQW5hbHlzaXM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogUmlza0RhbmdlcjtcclxuICBAT3V0cHV0KCkgdXBkYXRlRGF0YTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLmRhdGEucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5kYW5nZXJzID0gW107XHJcbiAgICAgIHRoaXMudGl0bGUgPSBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlLnRpdGxlO1xyXG4gICAgICB0aGlzLmlzTm90RWRpdGVkSXRlbSA9IGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWVbJ2lzTm90RWRpdGVkSXRlbSddID8/IGZhbHNlO1xyXG4gICAgICB0aGlzLmRhbmdlcnMgPSBbLi4uY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZS5kYXRhXTtcclxuICAgICAgdGhpcy5zaG93ID0gY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZT8ubnVtUm93IHx8IDU7XHJcblxyXG4gICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyID0gW107XHJcbiAgICAgIHRoaXMuZ3JvdXBCeURhbmdlcihjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlLmRhdGEsIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5kYXRhPy50aXRsZSB8fCAnJztcclxuICAgIHRoaXMuaXNOb3RFZGl0ZWRJdGVtID0gdGhpcy5kYXRhWydpc05vdEVkaXRlZEl0ZW0nXSA/PyBmYWxzZTtcclxuICAgIHRoaXMuZGFuZ2VycyA9IHRoaXMuZGF0YT8uZGF0YSB8fCBbXTtcclxuICAgIHRoaXMuc2hvdyA9IHRoaXMuZGF0YT8ubnVtUm93IHx8IDU7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5kYW5nZXJzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmdyb3VwQnlEYW5nZXIodGhpcy5kYW5nZXJzLCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdyb3VwQnlEYW5nZXIoZGFuZ2VyczogQXJyYXk8RGFuZ2VyPiwgaTogbnVtYmVyKSB7XHJcbiAgICBkYW5nZXJzLmZvckVhY2goZCA9PiB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hbmFseXNpc0Rhbmdlci5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGQuYW5hbHlzaXNJZCA9PT0geC5pZDtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMuYW5hbHlzaXNEYW5nZXIucHVzaCh7XHJcbiAgICAgICAgICBpZDogZC5hbmFseXNpc0lkLFxyXG4gICAgICAgICAgbmFtZTogZC5hbmFseXNpc05hbWUsXHJcbiAgICAgICAgICBjaGlsZE51bWJlcjogMCxcclxuICAgICAgICAgIHNob3c6IHRoaXMuc2hvdyxcclxuICAgICAgICAgIHJlbWFpbjogMCxcclxuICAgICAgICAgIGRhbmdlcnM6IFtdLFxyXG4gICAgICAgICAgZm9sZGVySWQ6IGQuZm9sZGVySWQsXHJcbiAgICAgICAgICBzdGF0dXNJZDogZC5zdGF0dXNJZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRhbmdlcnMuZm9yRWFjaChkID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hbmFseXNpc0RhbmdlcltpXS5kYW5nZXJzLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHguZGFuZ2VySWQgPT09IGQuZGFuZ2VySWQ7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kZXggPCAwICYmIHRoaXMuYW5hbHlzaXNEYW5nZXJbaV0uaWQgPT09IGQuYW5hbHlzaXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyW2ldLmRhbmdlcnMucHVzaChkKTtcclxuICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5hbmFseXNpc0RhbmdlcltpXS5jaGlsZE51bWJlciA9IGNvdW50O1xyXG4gICAgICAgIHRoaXMuYW5hbHlzaXNEYW5nZXJbaV0ucmVtYWluID0gY291bnQgLSB0aGlzLnNob3c7XHJcbiAgICAgICAgaSsrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGVkaXREYW5nZXIoaXRlbSkge1xyXG4gICAgdGhpcy5kYW5nZXJBY3Rpb24gPSB7XHJcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuZWRpdCxcclxuICAgICAgZGFuZ2VyOiB7XHJcbiAgICAgICAgYW5hbHlzaXNJZDogMCxcclxuICAgICAgICBhbmFseXNpc05hbWU6ICcnLFxyXG4gICAgICAgIGRhbmdlcklkOiAwLFxyXG4gICAgICAgIGRhbmdlck5hbWU6ICcnLFxyXG4gICAgICAgIGdyZWVuOiAwLFxyXG4gICAgICAgIHllbGxvdzogMCxcclxuICAgICAgICByZWQ6IDBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5kYW5nZXJBY3Rpb24sIC4uLml0ZW0gfTtcclxuICAgIHRoaXMudXBkYXRlRGF0YS5lbWl0KGRhdGEpO1xyXG5cclxuICB9XHJcblxyXG4gIHJlbW92ZURhbmdlcihpZDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYW5hbHlzaXNEYW5nZXIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICByZXR1cm4geC5pZCA9PT0gaWQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHJlbW92ZWRJdGVtID0gdGhpcy5hbmFseXNpc0RhbmdlcltpbmRleF07XHJcblxyXG4gICAgdGhpcy5kYW5nZXJBY3Rpb24gPSB7XHJcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuZGVsZXRlLFxyXG4gICAgICBkYW5nZXI6IHtcclxuICAgICAgICBhbmFseXNpc0lkOiAwLFxyXG4gICAgICAgIGFuYWx5c2lzTmFtZTogJycsXHJcbiAgICAgICAgZGFuZ2VySWQ6IDAsXHJcbiAgICAgICAgZGFuZ2VyTmFtZTogJycsXHJcbiAgICAgICAgZ3JlZW46IDAsXHJcbiAgICAgICAgeWVsbG93OiAwLFxyXG4gICAgICAgIHJlZDogMFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZGFuZ2VyQWN0aW9uLCAuLi5yZW1vdmVkSXRlbSB9O1xyXG4gICAgdGhpcy51cGRhdGVEYXRhLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkYW5nZXJEZXRhaWwoZGFuZ2VyOiBEYW5nZXIpIHtcclxuICAgIHRoaXMuZGFuZ2VyQWN0aW9uID0ge1xyXG4gICAgICB0eXBlOiBBY3Rpb25UeXBlLmRldGFpbCxcclxuICAgICAgZGFuZ2VyOiB7XHJcbiAgICAgICAgYW5hbHlzaXNJZDogMCxcclxuICAgICAgICBhbmFseXNpc05hbWU6ICcnLFxyXG4gICAgICAgIGRhbmdlcklkOiAwLFxyXG4gICAgICAgIGRhbmdlck5hbWU6ICcnLFxyXG4gICAgICAgIGdyZWVuOiAwLFxyXG4gICAgICAgIHllbGxvdzogMCxcclxuICAgICAgICByZWQ6IDBcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMuZGFuZ2VyQWN0aW9uLCAuLi5kYW5nZXIgfTtcclxuICAgIHRoaXMudXBkYXRlRGF0YS5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgaW5jcmVhc2VTaG93KGlkOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hbmFseXNpc0Rhbmdlci5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgIHJldHVybiB4LmlkID09PSBpZDtcclxuICAgIH0pO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5hbmFseXNpc0RhbmdlcltpbmRleF0uc2hvdyA9IHRoaXMuYW5hbHlzaXNEYW5nZXJbaW5kZXhdLmNoaWxkTnVtYmVyO1xyXG4gICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyW2luZGV4XS5yZW1haW4gPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xyXG5cclxuICB9XHJcbn1cclxuIl19
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC9yaXNrL2xpc3QvbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFZM0QsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUIsWUFDUyxTQUFrQyxFQUNqQyxNQUFpQjtRQURsQixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZjNCLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUU3QyxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBSVQsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixpQkFBWSxHQUFlLEVBQUUsQ0FBQztRQUdwQixlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFPbEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjs7UUFDaEMsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDNUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtB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QUMsRUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFDekUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELFlBQVk7SUFFWixDQUFDOzs7WUFwS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixnM0VBQW9DOzthQUVyQzs7O1lBWlEsdUJBQXVCO1lBRHZCLFNBQVM7OzttQkE0QmYsS0FBSzt5QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9hY3Rpb24tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7IERhbmdlckFjdGlvbiB9IGZyb20gXCIuLi8uLi9tb2RlbC9kYW5nZXItYWN0aW9uLm1vZGVsXCI7XHJcbmltcG9ydCB7IERhbmdlckFzc2Vzc21lbnQgfSBmcm9tIFwiLi4vLi4vbW9kZWwvZGFuZ2VyLWFzc2Vzc21lbnQubW9kZWxcIjtcclxuaW1wb3J0IHsgRGFuZ2VyIH0gZnJvbSBcIi4uLy4uL21vZGVsL2Rhbmdlci5tb2RlbFwiO1xyXG5pbXBvcnQgeyBSaXNrRGFuZ2VyIH0gZnJvbSBcIi4uLy4uL21vZGVsL3Jpc2stZGFuZ2VyLm1vZGVsXCI7XHJcbmltcG9ydCB7IFRyZWVDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncW1zLXJpc2stbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmlza0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgTEFORzogYW55O1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaXNOb3RFZGl0ZWRJdGVtOiBib29sZWFuO1xyXG4gIGRhbmdlcnM6IEFycmF5PERhbmdlcj4gPSBbXTtcclxuICBhbmFseXNpc0RhbmdlcjogQXJyYXk8RGFuZ2VyQXNzZXNzbWVudD4gPSBbXTtcclxuICBkYW5nZXJBY3Rpb246IERhbmdlckFjdGlvbjtcclxuICBzaG93ID0gNTtcclxuXHJcbiAgZGFuZ2VyQ29uZmlnOiBUcmVlQ29uZmlnO1xyXG5cclxuICByZXN1bHREYXRhOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcmlza0FuYWx5c2lzOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE6IFJpc2tEYW5nZXI7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZURhdGE6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuZGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5kYXRhLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZGFuZ2VycyA9IFtdO1xyXG4gICAgICB0aGlzLnRpdGxlID0gY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZS50aXRsZTtcclxuICAgICAgdGhpcy5pc05vdEVkaXRlZEl0ZW0gPSBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlWydpc05vdEVkaXRlZEl0ZW0nXSA/PyBmYWxzZTtcclxuICAgICAgdGhpcy5kYW5nZXJzID0gWy4uLmNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUuZGF0YV07XHJcbiAgICAgIHRoaXMuc2hvdyA9IGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWU/Lm51bVJvdyB8fCA1O1xyXG5cclxuICAgICAgdGhpcy5hbmFseXNpc0RhbmdlciA9IFtdO1xyXG4gICAgICB0aGlzLmdyb3VwQnlEYW5nZXIoY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZS5kYXRhLCAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50aXRsZSA9IHRoaXMuZGF0YT8udGl0bGUgfHwgJyc7XHJcbiAgICB0aGlzLmlzTm90RWRpdGVkSXRlbSA9IHRoaXMuZGF0YVsnaXNOb3RFZGl0ZWRJdGVtJ10gPz8gZmFsc2U7XHJcbiAgICB0aGlzLmRhbmdlcnMgPSB0aGlzLmRhdGE/LmRhdGEgfHwgW107XHJcbiAgICB0aGlzLnNob3cgPSB0aGlzLmRhdGE/Lm51bVJvdyB8fCA1O1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSgpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuZGFuZ2Vycy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5ncm91cEJ5RGFuZ2VyKHRoaXMuZGFuZ2VycywgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBncm91cEJ5RGFuZ2VyKGRhbmdlcnM6IEFycmF5PERhbmdlcj4sIGk6IG51bWJlcikge1xyXG4gICAgZGFuZ2Vycy5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYW5hbHlzaXNEYW5nZXIuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgIHJldHVybiBkLmFuYWx5c2lzSWQgPT09IHguaWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyLnB1c2goe1xyXG4gICAgICAgICAgaWQ6IGQuYW5hbHlzaXNJZCxcclxuICAgICAgICAgIG5hbWU6IGQuYW5hbHlzaXNOYW1lLFxyXG4gICAgICAgICAgY2hpbGROdW1iZXI6IDAsXHJcbiAgICAgICAgICBzaG93OiB0aGlzLnNob3csXHJcbiAgICAgICAgICByZW1haW46IDAsXHJcbiAgICAgICAgICBkYW5nZXJzOiBbXSxcclxuICAgICAgICAgIGZvbGRlcklkOiBkLmZvbGRlcklkLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IGQuc3RhdHVzSWQsXHJcbiAgICAgICAgICBzaW1wbGU6IGQuc2ltcGxlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGFuZ2Vycy5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmFuYWx5c2lzRGFuZ2VyW2ldLmRhbmdlcnMuZmluZEluZGV4KHggPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4geC5kYW5nZXJJZCA9PT0gZC5kYW5nZXJJZDtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGlmIChpbmRleCA8IDAgJiYgdGhpcy5hbmFseXNpc0RhbmdlcltpXS5pZCA9PT0gZC5hbmFseXNpc0lkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW5hbHlzaXNEYW5nZXJbaV0uZGFuZ2Vycy5wdXNoKGQpO1xyXG4gICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyW2ldLmNoaWxkTnVtYmVyID0gY291bnQ7XHJcbiAgICAgICAgdGhpcy5hbmFseXNpc0RhbmdlcltpXS5yZW1haW4gPSBjb3VudCAtIHRoaXMuc2hvdztcclxuICAgICAgICBpKys7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZWRpdERhbmdlcihpdGVtKSB7XHJcbiAgICB0aGlzLmRhbmdlckFjdGlvbiA9IHtcclxuICAgICAgdHlwZTogQWN0aW9uVHlwZS5lZGl0LFxyXG4gICAgICBkYW5nZXI6IHtcclxuICAgICAgICBhbmFseXNpc0lkOiAwLFxyXG4gICAgICAgIGFuYWx5c2lzTmFtZTogJycsXHJcbiAgICAgICAgZGFuZ2VySWQ6IDAsXHJcbiAgICAgICAgZGFuZ2VyTmFtZTogJycsXHJcbiAgICAgICAgZ3JlZW46IDAsXHJcbiAgICAgICAgeWVsbG93OiAwLFxyXG4gICAgICAgIHJlZDogMFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLmRhbmdlckFjdGlvbiwgLi4uaXRlbSB9O1xyXG4gICAgdGhpcy51cGRhdGVEYXRhLmVtaXQoZGF0YSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGFuZ2VyKGlkOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hbmFseXNpc0Rhbmdlci5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgIHJldHVybiB4LmlkID09PSBpZDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVtb3ZlZEl0ZW0gPSB0aGlzLmFuYWx5c2lzRGFuZ2VyW2luZGV4XTtcclxuXHJcbiAgICB0aGlzLmRhbmdlckFjdGlvbiA9IHtcclxuICAgICAgdHlwZTogQWN0aW9uVHlwZS5kZWxldGUsXHJcbiAgICAgIGRhbmdlcjoge1xyXG4gICAgICAgIGFuYWx5c2lzSWQ6IDAsXHJcbiAgICAgICAgYW5hbHlzaXNOYW1lOiAnJyxcclxuICAgICAgICBkYW5nZXJJZDogMCxcclxuICAgICAgICBkYW5nZXJOYW1lOiAnJyxcclxuICAgICAgICBncmVlbjogMCxcclxuICAgICAgICB5ZWxsb3c6IDAsXHJcbiAgICAgICAgcmVkOiAwXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5kYW5nZXJBY3Rpb24sIC4uLnJlbW92ZWRJdGVtIH07XHJcbiAgICB0aGlzLnVwZGF0ZURhdGEuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIGRhbmdlckRldGFpbChkYW5nZXI6IERhbmdlcikge1xyXG4gICAgdGhpcy5kYW5nZXJBY3Rpb24gPSB7XHJcbiAgICAgIHR5cGU6IEFjdGlvblR5cGUuZGV0YWlsLFxyXG4gICAgICBkYW5nZXI6IHtcclxuICAgICAgICBhbmFseXNpc0lkOiAwLFxyXG4gICAgICAgIGFuYWx5c2lzTmFtZTogJycsXHJcbiAgICAgICAgZGFuZ2VySWQ6IDAsXHJcbiAgICAgICAgZGFuZ2VyTmFtZTogJycsXHJcbiAgICAgICAgZ3JlZW46IDAsXHJcbiAgICAgICAgeWVsbG93OiAwLFxyXG4gICAgICAgIHJlZDogMFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgY29uc3QgZGF0YSA9IHsgLi4udGhpcy5kYW5nZXJBY3Rpb24sIC4uLmRhbmdlciB9O1xyXG4gICAgdGhpcy51cGRhdGVEYXRhLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBpbmNyZWFzZVNob3coaWQ6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFuYWx5c2lzRGFuZ2VyLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLmFuYWx5c2lzRGFuZ2VyW2luZGV4XS5zaG93ID0gdGhpcy5hbmFseXNpc0RhbmdlcltpbmRleF0uY2hpbGROdW1iZXI7XHJcbiAgICAgIHRoaXMuYW5hbHlzaXNEYW5nZXJbaW5kZXhdLnJlbWFpbiA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -10,8 +10,10 @@ export class RiskResultComponent {
|
|
10
10
|
this.data = data;
|
11
11
|
this.results = [];
|
12
12
|
this.color = Color;
|
13
|
+
this.isSimple = 0;
|
13
14
|
this.title = data.title;
|
14
15
|
this.results = data.results;
|
16
|
+
this.isSimple = data.isSimple || 0;
|
15
17
|
}
|
16
18
|
ngOnInit() {
|
17
19
|
this.translate.getLanguageSubject$.pipe().subscribe((res) => {
|
@@ -27,7 +29,7 @@ export class RiskResultComponent {
|
|
27
29
|
RiskResultComponent.decorators = [
|
28
30
|
{ type: Component, args: [{
|
29
31
|
selector: 'qms-risk-result',
|
30
|
-
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ LANG.EVENT }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
32
|
+
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ isSimple ? LANG.EVENT : LANG.CAUSE }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
31
33
|
styles: ["@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format(\"woff2\");unicode-range:U+1f??}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format(\"woff2\");unicode-range:U+0370-03ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFW50bbck.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVZ0b.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.dialog-title{display:flex;justify-content:space-between}.dialog-title h3.title{font-family:Raleway;font-style:normal;font-weight:500;font-size:22px;line-height:26px}.flex-container-header{display:flex;align-items:center;font-size:.75rem;border-radius:4px;line-height:16px}.flex-container-header>div{font-family:Open Sans;font-style:normal;font-weight:600;text-align:left;padding:10px 25px;color:rgba(0,0,0,.6)}.flex-container-header .first{flex:0 1 40%}.flex-container-header .second,.flex-container-header .third{flex:0 1 30%}.flex-container{display:flex;align-items:center;font-size:.875rem;line-height:22px;border-radius:4px;border:1px solid #ddd;min-height:48px;margin-bottom:10px}.flex-container>div{font-family:Open Sans;font-style:normal;text-align:left;padding:10px 25px;color:#323232}.flex-container .first{display:flex;flex:0 1 40%;align-items:center;font-weight:600}.flex-container .second{flex:0 1 30%;font-weight:400}.flex-container .third{display:flex;flex:0 1 30%;align-items:center;font-weight:600;font-size:.75rem}.flex-container .third.text-green,.flex-container .third.text-red,.flex-container .third.text-yellow{font-size:.75rem}.flex-container .third.text-green .mat-icon,.flex-container .third.text-green .material-icons-outlined,.flex-container .third.text-red .mat-icon,.flex-container .third.text-red .material-icons-outlined,.flex-container .third.text-yellow .mat-icon,.flex-container .third.text-yellow .material-icons-outlined{margin-right:1rem}.flex-container .third.text-red{color:#b00020}.flex-container .third.text-yellow{color:#726729}.flex-container .third.text-green{color:#005935}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:flex;text-align:center;margin-right:1rem;width:24px;height:24px;flex:0 0 24px;border-radius:1px}.label-red{background-color:#9e360f;color:#fff}.label-yellow{background-color:#e4cf53;color:rgba(0,0,0,.87)}.label-green{background-color:#00804c;color:#fff}"]
|
32
34
|
},] }
|
33
35
|
];
|
@@ -36,4 +38,4 @@ RiskResultComponent.ctorParameters = () => [
|
|
36
38
|
{ type: MatDialogRef },
|
37
39
|
{ type: RiskResult, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
|
38
40
|
];
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9yZWxhdGVkL3Jpc2svcmVzdWx0L3Jlc3VsdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBT25FLE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsWUFDUyxTQUFrQyxFQUNsQyxTQUE0QyxFQUNuQixJQUFnQjtRQUZ6QyxjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNsQyxjQUFTLEdBQVQsU0FBUyxDQUFtQztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBUGxELFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBT1gsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxRCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs7O1lBaENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixpdkRBQXNDOzthQUV2Qzs7O1lBUlEsdUJBQXVCO1lBRHZCLFlBQVk7WUFHSixVQUFVLHVCQWlCdEIsTUFBTSxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NvbG9yLmVudW1cIjtcclxuaW1wb3J0IHsgUmVzdWx0LCBSaXNrUmVzdWx0IH0gZnJvbSBcIi4uLy4uL21vZGVsL3Jpc2stcmVzdWx0Lm1vZGVsXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1yaXNrLXJlc3VsdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcmVzdWx0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFJpc2tSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIExBTkc6IGFueTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJlc3VsdHM6IEFycmF5PFJlc3VsdD4gPSBbXTtcclxuICBjb2xvciA9IENvbG9yO1xyXG4gIGlzU2ltcGxlID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSaXNrUmVzdWx0Q29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogUmlza1Jlc3VsdFxyXG4gICkge1xyXG4gICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XHJcbiAgICB0aGlzLnJlc3VsdHMgPSBkYXRhLnJlc3VsdHM7XHJcbiAgICB0aGlzLmlzU2ltcGxlID0gZGF0YS5pc1NpbXBsZSB8fCAwO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -115,7 +115,10 @@ export class TreeComponent {
|
|
115
115
|
this.treeData = [...this.treeData, changes.treeData.currentValue];
|
116
116
|
this.initTreeData();
|
117
117
|
}
|
118
|
-
if (changes.selectedData &&
|
118
|
+
if (changes.selectedData &&
|
119
|
+
(changes.selectedData.currentValue.length > 0 ||
|
120
|
+
JSON.stringify(changes.selectedData.currentValue) !==
|
121
|
+
JSON.stringify(changes.selectedData.previousValue))) {
|
119
122
|
this.checkSelected(changes.selectedData.currentValue);
|
120
123
|
}
|
121
124
|
else {
|
@@ -300,8 +303,8 @@ export class TreeComponent {
|
|
300
303
|
}
|
301
304
|
else {
|
302
305
|
const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);
|
303
|
-
this.checkSelectedSameNode(descendants, this.
|
304
|
-
this.
|
306
|
+
this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));
|
307
|
+
!this.descendantsAllSelected(node)
|
305
308
|
? this.checklistSelection.select(...descendants)
|
306
309
|
: this.checklistSelection.deselect(...descendants);
|
307
310
|
this.cdRef.markForCheck();
|
@@ -559,4 +562,4 @@ TreeComponent.propDecorators = {
|
|
559
562
|
checkBoxEvent: [{ type: Output }],
|
560
563
|
childCheckedEvent: [{ type: Output }]
|
561
564
|
};
|
562
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC90cmVlL3RyZWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzljLE9B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LEtBQUssUUFBUSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCO2dCQUNFLE9BQU8sVUFBVSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7O1lBL21CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLGluSUFBb0M7Z0JBRXBDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBeENRLGlCQUFpQjtZQUdqQixZQUFZO1lBRlosZUFBZTs7O3VCQXlDckIsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7K0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzhCQUNMLE1BQU07Z0NBQ04sTUFBTTs0QkFDTixNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRGF0YVR5cGUgfSBmcm9tICcuLi9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2RvY3VtZW50LWZvbGRlci10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBJdGVtSWNvblR5cGUgfSBmcm9tICcuLi9jb21tb24vaXRlbS1pY29uLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IENIRUNLTElTVF9JQ09OLCBERVBBUlRNRU5UX0ZPTERFUl9JQ09OLCBERVBBUlRNRU5UX0ZPTERFUl9PVVRMSU5FRF9JQ09OLCBERVZJQVRJT05fSUNPTiwgRE9DVU1FTlRfSUNPTiwgRU5URVJQUklTRV9GT0xERVJfSUNPTiwgRU5URVJQUklTRV9GT0xERVJfT1VUTElORURfSUNPTiwgS0VZQk9BUkRfRE9XTl9JQ09OLCBLRVlCT0FSRF9VUF9JQ09OLCBMT0NBTF9GT0xERVJfSUNPTiwgTE9DQUxfRk9MREVSX09VVExJTkVEX0lDT04sIE5PUk1BTF9GT0xERVJfSUNPTiwgTk9STUFMX0ZPTERFUl9PVVRMSU5FRF9JQ09OLCBQUk9DRVNTX0FSRUFfSUNPTiwgUFJPQ0VTU19BUkVBX09VVExJTkVEX0lDT04sIFBST0NFU1NfSUNPTiwgUkVHSU9OQUxfRk9MREVSX0lDT04sIFJFR0lPTkFMX0ZPTERFUl9PVVRMSU5FRF9JQ09OLCBSSVNLX0lDT04gfSBmcm9tICcuLi9jb21tb24vcW1zLWljb24uY29uc3QnO1xyXG5pbXBvcnQgeyBSZWxhdGVkQ29uc3QgfSBmcm9tICcuLi9jb21tb24vcmVsYXRlZC5jb25zdCc7XHJcbmltcG9ydCBUcmVlRnVuY3Rpb25zIGZyb20gJy4uL2NvbW1vbi90cmVlLmZ1bmN0aW9uJztcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3RyZWUtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvdHJlZS5tb2RlbCc7XHJcblxyXG5pbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogVHJlZU5vZGVbXTtcclxuICBwYXJlbnRJZD86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIFRyZWVGbGF0Tm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGhhc0NoaWxkOiBib29sZWFuO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNoZWNrZWROb2RlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGNoZWNrZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncW1zLXRyZWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdHJlZURhdGE6IEFycmF5PFRyZWVNb2RlbD4gPSBbXTtcclxuICBASW5wdXQoKSB0cmVlQ29uZmlnOiBUcmVlQ29uZmlnO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0YTogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUmlza0RhdGE6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkTGlzdDogYW55ID0gW107XHJcbiAgQE91dHB1dCgpIHNlbGVjdE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdEZvbGRlckV2ZW50OiBFdmVudEVtaXR0ZXI8VHJlZUZsYXROb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hlY2tCb3hFdmVudDogRXZlbnRFbWl0dGVyPFRyZWVGbGF0Tm9kZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2hpbGRDaGVja2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxJQ2hlY2tlZE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBsaXN0UGFyZW50T2JqID0ge307XHJcbiAgZmlsdGVyRGF0YTogVHJlZU1vZGVsW10gPSBbXTtcclxuICB0cmVlT2JqZWN0OiBvYmplY3Q7XHJcbiAgYXJySW5kZXg6IHN0cmluZ1tdID0gW107XHJcbiAgY2hlY2tlZE5vZGVMaXN0OiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgdXNlRXhwYW5kRmVhdHVyZSA9IHRydWU7XHJcbiAgYWxsb3dTZWxlY3RGb2xkZXIgPSBmYWxzZTtcclxuICBhcmVhT2ZDdXJyZW50UHJvY2VzcyA9ICcnO1xyXG4gIHNob3dDaGVja0JveCA9IGZhbHNlO1xyXG4gIGFsbG93TXVsdGlwbGVDaGVjayA9IHRydWU7XHJcbiAgc2luZ2xlU2VsZWN0ZWROb2RlID0gZmFsc2U7XHJcbiAgb25seUNoZWNrQm94Rm9yQ2hpbGQgPSBmYWxzZTtcclxuICBpdGVtSWNvblR5cGUgPSBJdGVtSWNvblR5cGU7XHJcbiAgZGlzcGxheVR5cGUgPSAxO1xyXG4gIG9wZW5JY29uID0gJyc7XHJcbiAgb3Blbkljb25Db2xvciA9ICcjMTk1NEE5JztcclxuICBjbG9zZUljb24gPSAnJztcclxuICBjbG9zZUljb25Db2xvciA9ICcjMDAwMDAwJztcclxuICBpdGVtSWNvbiA9ICcnO1xyXG4gIGl0ZW1JY29uU3ZnID0gJyc7XHJcbiAgaXRlbUljb25QYXRoID0gJyc7XHJcbiAgaXRlbUljb25CYXNlNjQgPSAnJztcclxuICBtb2R1bGVJZDogbnVtYmVyO1xyXG5cclxuICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8VHJlZUZsYXROb2RlPihcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmxldmVsO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgaXNDaGVja2VkID0gZmFsc2U7XHJcbiAgY2hlY2tsaXN0U2VsZWN0aW9uOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnkpIHtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2VzcycsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQUk9DRVNTX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2Vzc19hcmVhJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfQVJFQV9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3Byb2Nlc3NfYXJlYV9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQUk9DRVNTX0FSRUFfT1VUTElORURfSUNPTikpO1xyXG5cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZG9jdW1lbnQnLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRE9DVU1FTlRfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdjaGVja2xpc3QnLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoQ0hFQ0tMSVNUX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZGV2aWF0aW9uJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERFVklBVElPTl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3Jpc2snLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUklTS19JQ09OKSk7XHJcblxyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdmb2xkZXInLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoTk9STUFMX0ZPTERFUl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2ZvbGRlcl9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChOT1JNQUxfRk9MREVSX09VVExJTkVEX0lDT04pKTtcclxuXHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2xvY2FsX2ZvbGRlcicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChMT0NBTF9GT0xERVJfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdsb2NhbF9mb2xkZXJfb3V0bGluZWQnLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoTE9DQUxfRk9MREVSX09VVExJTkVEX0lDT04pKTtcclxuXHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2VudGVycHJpc2VfZm9sZGVyJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEVOVEVSUFJJU0VfRk9MREVSX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRU5URVJQUklTRV9GT0xERVJfT1VUTElORURfSUNPTikpO1xyXG5cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncmVnaW9uYWxfZm9sZGVyJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFJFR0lPTkFMX0ZPTERFUl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ3JlZ2lvbmFsX2ZvbGRlcl9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChSRUdJT05BTF9GT0xERVJfT1VUTElORURfSUNPTikpO1xyXG5cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZGVwYXJ0bWVudF9mb2xkZXInLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoREVQQVJUTUVOVF9GT0xERVJfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdkZXBhcnRtZW50X2ZvbGRlcl9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChERVBBUlRNRU5UX0ZPTERFUl9PVVRMSU5FRF9JQ09OKSk7XHJcblxyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdrZXlib2FyZF91cCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChLRVlCT0FSRF9VUF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2tleWJvYXJkX2Rvd24nLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoS0VZQk9BUkRfRE9XTl9JQ09OKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMudHJlZURhdGEgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy50cmVlRGF0YS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudHJlZURhdGEgPSBbLi4udGhpcy50cmVlRGF0YSwgY2hhbmdlcy50cmVlRGF0YS5jdXJyZW50VmFsdWVdO1xyXG4gICAgICB0aGlzLmluaXRUcmVlRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzLnNlbGVjdGVkRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnNlbGVjdGVkRGF0YS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnNlbGVjdGVkRGF0YS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmNoZWNrU2VsZWN0ZWQoY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFRyZWVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBpbml0VHJlZURhdGEoKSB7XHJcbiAgICB0aGlzLnRyZWVEYXRhLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICghIWl0ZW0ucGFyZW50SWQgJiYgaXRlbS5wYXJlbnRJZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UGFyZW50T2JqW2l0ZW0ucGFyZW50SWRdID0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXRlbS5jaGlsZElkICYmIGl0ZW0uY2hpbGRJZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UGFyZW50T2JqW2l0ZW0ucm9vdElkXSA9IDE7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyRGF0YSA9IHRoaXMudHJlZURhdGE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgICByZXR1cm4geC5wYXJlbnRJZCA9PT0gJyc7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJlZU9iamVjdCA9IFRyZWVGdW5jdGlvbnMuYnVpbGRPYmplY3RUcmVlKHRoaXMuZmlsdGVyRGF0YSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFRyZWVGdW5jdGlvbnMuYnVpbGRBcnJheVRyZWUodGhpcy50cmVlT2JqZWN0LCAwKS5tYXAoZWxlbWVudCA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnNvcnREYXRhVHJlZShlbGVtZW50KTtcclxuICAgICAgZWxlbWVudCA9IG51bGw7XHJcbiAgICAgIGVsZW1lbnQgPSB7IC4uLnt9LCAuLi5pdGVtIH07XHJcbiAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51c2VFeHBhbmRGZWF0dXJlID0gIXRoaXMudHJlZUNvbmZpZy5zaG93Q2hlY2tCb3g7XHJcbiAgICB0aGlzLmFsbG93U2VsZWN0Rm9sZGVyID0gdGhpcy50cmVlQ29uZmlnLmFsbG93U2VsZWN0Rm9sZGVyO1xyXG4gICAgdGhpcy5hcmVhT2ZDdXJyZW50UHJvY2VzcyA9IHRoaXMudHJlZUNvbmZpZy5hcmVhT2ZDdXJyZW50UHJvY2VzcztcclxuICAgIHRoaXMuc2hvd0NoZWNrQm94ID0gdGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveDtcclxuICAgIHRoaXMub25seUNoZWNrQm94Rm9yQ2hpbGQgPSB0aGlzLnRyZWVDb25maWcub25seUNoZWNrQm94Rm9yQ2hpbGQ7XHJcbiAgICB0aGlzLm1vZHVsZUlkID0gdGhpcy50cmVlQ29uZmlnLm1vZHVsZUlkO1xyXG4gICAgdGhpcy5vcGVuSWNvbiA9IHRoaXMudHJlZUNvbmZpZy5vcGVuSWNvbjtcclxuICAgIHRoaXMub3Blbkljb25Db2xvciA9IHRoaXMudHJlZUNvbmZpZy5vcGVuSWNvbkNvbG9yID8gdGhpcy50cmVlQ29uZmlnLm9wZW5JY29uQ29sb3IgOiB0aGlzLm9wZW5JY29uQ29sb3I7XHJcbiAgICB0aGlzLmNsb3NlSWNvbiA9IHRoaXMudHJlZUNvbmZpZy5jbG9zZUljb247XHJcbiAgICB0aGlzLmNsb3NlSWNvbkNvbG9yID0gdGhpcy50cmVlQ29uZmlnLmNsb3NlSWNvbkNvbG9yID8gdGhpcy50cmVlQ29uZmlnLmNsb3NlSWNvbkNvbG9yIDogdGhpcy5jbG9zZUljb25Db2xvcjtcclxuICAgIHRoaXMuaXRlbUljb24gPSB0aGlzLnRyZWVDb25maWcuaXRlbUljb247XHJcbiAgICB0aGlzLml0ZW1JY29uU3ZnID0gdGhpcy50cmVlQ29uZmlnLml0ZW1JY29uU3ZnO1xyXG4gICAgdGhpcy5pdGVtSWNvblBhdGggPSB0aGlzLnRyZWVDb25maWcuaXRlbUljb25QYXRoO1xyXG4gICAgdGhpcy5pdGVtSWNvbkJhc2U2NCA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWcuaXRlbUljb25CYXNlNjQpIGFzIHN0cmluZztcclxuICAgIHRoaXMuYWxsb3dNdWx0aXBsZUNoZWNrID0gdGhpcy50cmVlQ29uZmlnLmFsbG93TXVsdGlwbGVDaGVjaztcclxuICAgIHRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID0gdGhpcy50cmVlQ29uZmlnLnNpbmdsZVNlbGVjdGVkTm9kZTtcclxuICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPFRyZWVGbGF0Tm9kZT4odGhpcy5hbGxvd011bHRpcGxlQ2hlY2spOyAvKiB0cnVlOiBtdWx0aXBsZSAqL1xyXG5cclxuICAgIHRoaXMuZGlzcGxheVR5cGUgPSB0aGlzLmdldEl0ZW1JY29uVHlwZSh0aGlzLnRyZWVDb25maWcpO1xyXG5cclxuICAgIC8vIEV4cGFuZCBjaGlsZCBub2RlIHRyZWVcclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuZXhwYW5kQWxsKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmlzayBUcmVlXHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJpc2tEYXRhLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSaXNrRGF0YS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSBzZWxlY3RlZERhdGEuZmluZEluZGV4KGVsID0+IGVsLmlkID09PSB4LnJvb3RJZCk7XHJcbiAgICAgICAgICBpZiAoeC5yb290SWQgPT09IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkICYmIGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZERhdGEucHVzaCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZChzZWxlY3RlZERhdGEpO1xyXG4gICAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdChzZWxlY3RlZERhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIERpc2FibGUgTGlzdFxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZExpc3QuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgIGlmICh4LmlkID09PSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCBcclxuICAgICAgICAgICAgJiYgKCF4LnBhcmVudElkIHx8IHgucGFyZW50SWQgPT09IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkKSkge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgc29ydERhdGFUcmVlKG9iaikge1xyXG4gICAgaWYgKG9iai5jaGlsZHJlbikge1xyXG4gICAgICBsZXQgY2hpbGQgPSBbXTtcclxuICAgICAgY29uc3QgbGVhZk5vZGUgPSBvYmouY2hpbGRyZW4uZmlsdGVyKHggPT4gIXguY2hpbGRyZW4pO1xyXG4gICAgICBjb25zdCBzdWJGb2xkZXJOb2RlID0gb2JqLmNoaWxkcmVuLmZpbHRlcih4ID0+IHguY2hpbGRyZW4pO1xyXG4gICAgICBzdWJGb2xkZXJOb2RlLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgbGV0IGVsID0gZWxlbWVudDtcclxuICAgICAgICB0aGlzLnNvcnREYXRhVHJlZShlbCk7XHJcbiAgICAgICAgY2hpbGQucHVzaChlbCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbGVhZk5vZGUuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICBsZXQgZWwgPSBlbGVtZW50O1xyXG4gICAgICAgIGNoaWxkLnB1c2goZWwpO1xyXG4gICAgICB9KTtcclxuICAgICAgb2JqLmNoaWxkcmVuID0gY2hpbGQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1hZ2VQYXRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLnRyZWVDb25maWcuaXRlbUljb25CYXNlNjQpIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0ZWQoaXRlbVNlbGVjdGVkOiBUcmVlRmxhdE5vZGVbXSkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy50cmVlQ29udHJvbFsnZGF0YU5vZGVzJ10pIHJldHVybjtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IHRyZWUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXTtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0cmVlKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBpdGVtU2VsZWN0ZWQubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtU2VsZWN0ZWRbal07XHJcbiAgICAgICAgICBpZiAodHJlZS5pZCA9PT0gZWxlbWVudC5pZCAmJiB0cmVlLnBhcmVudElkID09PSBlbGVtZW50LnBhcmVudElkICYmICF0cmVlLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCh0cmVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RlZFNhbWVOb2RlKGl0ZW1TZWxlY3RlZDogVHJlZUZsYXROb2RlW10sIGZsYWc6IGJvb2xlYW4pIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgdHJlZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZW1TZWxlY3RlZC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBpdGVtU2VsZWN0ZWRbal07XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuaWQgJiYgdHJlZS5pZCA9PT0gZWxlbWVudC5pZCBcclxuICAgICAgICAgICYmIHRyZWUucGFyZW50SWQgPT09IGVsZW1lbnQucGFyZW50SWQgJiYgIXRyZWUuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIGZsYWcgPyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QodHJlZSkgOiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCh0cmVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEl0ZW1JY29uVHlwZSh0cmVlQ29uZmlnOiBUcmVlQ29uZmlnKSB7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvbiAmJiB0cmVlQ29uZmlnLml0ZW1JY29uLmxlbmd0aCkgcmV0dXJuIHRoaXMuaXRlbUljb25UeXBlLm5hbWU7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblBhdGggJiYgdHJlZUNvbmZpZy5pdGVtSWNvblBhdGgubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUucGF0aDtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uQmFzZTY0ICYmIHRyZWVDb25maWcuaXRlbUljb25CYXNlNjQubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUuYmFzZTY0O1xyXG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25TdmcgJiYgdHJlZUNvbmZpZy5pdGVtSWNvblN2Zy5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5zdmc7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUubm9uZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgIGxldCBjaGVja0hhc0NoaWxkID0gdHJ1ZTtcclxuICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCEoISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgICEhbm9kZS5jaGlsZHJlbiAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAhbm9kZS5jaGlsZHJlblswXS5uYW1lLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmlkLnRvU3RyaW5nKCkgPT09IHRoaXMuYXJlYU9mQ3VycmVudFByb2Nlc3NcclxuICAgICkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCEodGhpcy5saXN0UGFyZW50T2JqW25vZGUuaWRdID09PSAxKSkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcclxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICBsZXZlbCxcclxuICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgIGhhc0NoaWxkOiBjaGVja0hhc0NoaWxkLFxyXG4gICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcclxuICAgICAgZGlzYWJsZWQ6IGZhbHNlXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcclxuICAgIHRoaXMudHJhbnNmb3JtZXIsXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5sZXZlbDtcclxuICAgIH0sXHJcbiAgICAobm9kZSkgPT4ge1xyXG4gICAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMudHJlZUZsYXR0ZW5lcik7XHJcblxyXG5cclxuICAvKiogV2hldGhlciBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIHRoZSBub2RlIGFyZSBzZWxlY3RlZCAqL1xyXG4gIGRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZTogVHJlZUZsYXROb2RlKTogYm9vbGVhbiB7XHJcblxyXG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPyB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKSA6IFtdO1xyXG5cclxuICAgIGlmICghZGVzY2VuZGFudHMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpO1xyXG5cclxuICAgIGNvbnN0IGFsbFNlbGVjdGVkID0gZGVzY2VuZGFudHMuZXZlcnkoY2hpbGQgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xyXG4gICAgaWYgKCFzZWxlY3RlZCAmJiBhbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3Qobm9kZSk7XHJcbiAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWxsU2VsZWN0ZWQ7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqIFdoZXRoZXIgcGFydCBvZiB0aGUgZGVzY2VuZGFudHMgYXJlIHNlbGVjdGVkICovXHJcbiAgZGVzY2VuZGFudHNQYXJ0aWFsbHlTZWxlY3RlZChub2RlOiBUcmVlRmxhdE5vZGUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gIXRoaXMuc2luZ2xlU2VsZWN0ZWROb2RlID8gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCkgOiBbXTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSBkZXNjZW5kYW50cy5zb21lKGNoaWxkID0+IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQoY2hpbGQpKTtcclxuICAgIHJldHVybiByZXN1bHQgJiYgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKTtcclxuICB9XHJcblxyXG4gIC8qKiBUb2dnbGUgdGhlIHRvLWRvIGl0ZW0gc2VsZWN0aW9uLiBTZWxlY3QvZGVzZWxlY3QgYWxsIHRoZSBkZXNjZW5kYW50cyBub2RlICovXHJcbiAgdG9kb0l0ZW1TZWxlY3Rpb25Ub2dnbGUobm9kZTogVHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICAvLyB0cmVlIGhhdmUgZHVwbGljYXRlIG5vZGVcclxuICAgIGlmICh0aGlzLnRyZWVDb25maWcuY2FuSGF2ZUR1cElkKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWQgXHJcbiAgICAgICAgICAmJiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCBcclxuICAgICAgICAgICYmICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnRvZ2dsZShub2RlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gcHJvY2Vzcy8gZG9jdW1lbnQgc2luZ2xlIHNlbGVjdGVkXHJcbiAgICBpZiAodGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gdGhpcy50cmVlQ29udHJvbC5nZXREZXNjZW5kYW50cyhub2RlKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5kaXNhYmxlZCk7XHJcblxyXG4gICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRTYW1lTm9kZShkZXNjZW5kYW50cywgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlKSk7XHJcblxyXG4gICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUpXHJcbiAgICAgICAgPyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3QoLi4uZGVzY2VuZGFudHMpXHJcbiAgICAgICAgOiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5kZXNlbGVjdCguLi5kZXNjZW5kYW50cyk7XHJcblxyXG4gICAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgICAgY29uc3QgYWxsTm9kZUlzUGFyZW50ID0gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQuZXZlcnkoY2hpbGQgPT4gY2hpbGQuZXhwYW5kYWJsZSk7XHJcbiAgICAgIGlmIChhbGxOb2RlSXNQYXJlbnQpIHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoZWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICB0b2RvQ2hpbGRTZWxlY3Rpb25Ub2dnbGUobm9kZTogVHJlZUZsYXROb2RlKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZCBcclxuICAgICAgICAmJiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCBcclxuICAgICAgICAmJiAhdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQpIHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUobm9kZSk7XHJcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2RvSXRlbVNlbGVjdGlvbkJ5SWQoaWRzOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWRzLmZvckVhY2goXHJcbiAgICAgIGlkID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IGlkIFxyXG4gICAgICAgICAgICAmJiAhdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKSlcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZG9JdGVtU2VsZWN0aW9uKG5vZGVzOiBUcmVlTm9kZVtdKTogdm9pZHtcclxuICAgIG5vZGVzLmZvckVhY2goXHJcbiAgICAgIG5vZGUgPT4ge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZCAmJlxyXG4gICAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiBcclxuICAgICAgICAgICAgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKSlcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gICAgdGhpcy5jaGVja0JveEV2ZW50LmVtaXQodGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBUcmVlRmxhdE5vZGUpID0+IHtcclxuICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0Tm9kZShub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGlmICh3aW5kb3dbUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0pIHtcclxuICAgICAgd2luZG93LnBvc3RNZXNzYWdlKFJlbGF0ZWRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQsICcqJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZvbGRlcihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIHRoaXMuc2VsZWN0Rm9sZGVyRXZlbnQuZW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTm9kZShub2RlOiBUcmVlRmxhdE5vZGUsIGlzRXhwYW5kTm9kZT86IGJvb2xlYW4pIHtcclxuICAgIGlmICh3aW5kb3dbUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0pIHtcclxuICAgICAgd2luZG93LnBvc3RNZXNzYWdlKFJlbGF0ZWRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQsICcqJyk7XHJcbiAgICB9XHJcbiAgICAvLyBzZXQgdXNlRXhwYW5kRmVhdHVyZSA9IHRydWUgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSBvZiB0cmVlIGxvYWRpbmdcclxuICAgIGlmICghaXNFeHBhbmROb2RlIHx8ICF0aGlzLnVzZUV4cGFuZEZlYXR1cmUpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFyckluZGV4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXJySW5kZXhbaV0gPT09IG5vZGUuaWQpIHtcclxuICAgICAgICAgIHRoaXMuYXJySW5kZXguc3BsaWNlKGksIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGdldCBhcnJheSBpbmRleCB0byBleHBhbmQgbm9kZSBhZnRlciByZWZyZXNoIGRhdGFzb3VyY2VcclxuICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICBsZXQgaXNDaGFuZ2UgPSBmYWxzZTtcclxuICAgIGxldCBpc1JlbW92ZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5hcnJJbmRleC5wdXNoKG5vZGUuaWQpO1xyXG5cclxuICAgIGNvbnN0IGNoaWxkQXJyYXkgPSB0aGlzLnRyZWVEYXRhLmZpbHRlcigoeCkgPT4ge1xyXG4gICAgICByZXR1cm4geC5wYXJlbnRJZCA9PT0gbm9kZS5pZDtcclxuICAgIH0pO1xyXG4gICAgbGV0IHJvb3RJZCA9ICcwJztcclxuICAgIGxldCBwYXJlbnRFbGVtZW50OiBUcmVlTm9kZTtcclxuICAgIGxldCBjaGlsZHJlbkxpc3Q6IFRyZWVOb2RlW107XHJcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY2hpbGRBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLnJvb3RJZCA9PT0gcm9vdElkKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBnZXQgY2hpbGQgbm9kZSBmcm9tIG9yaWdpbmFsIGRhdGFzb3VyY2VcclxuICAgICAgY29uc3QgY2hpbGQgPSB0aGlzLmdldENoaWxkTm9kZShpdGVtLnJvb3RJZCwgY2hpbGRBcnJheSk7XHJcbiAgICAgIHJvb3RJZCA9IGl0ZW0ucm9vdElkO1xyXG5cclxuICAgICAgaW5kZXggPSB0aGlzLmdldE5vZGVJbmRleChjaGlsZC5pZCwgdW5kZWZpbmVkLCB0aGlzLmRhdGFTb3VyY2VbJ190cmVlQ29udHJvbCddLmRhdGFOb2Rlcyk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBhZGQgY2hpbGQgbm9kZSB0byBleHBhbmQgbm9kZVxyXG4gICAgICBwYXJlbnRFbGVtZW50ID0gdGhpcy5maW5kUGFyZW50Tm9kZShub2RlLmlkLCB0aGlzLmRhdGFTb3VyY2UuZGF0YSk7XHJcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50KSB7XHJcbiAgICAgICAgLy8gdGVtcG9yYXJ5IHJlbW92ZSBhbGwgbm9kZSB3aXRob3V0IGNoaWxkcmVuID0+IHB1cnBvc2UgdG8gYWRkIG5vZGUgZm9sZGVyIGZpcnN0XHJcbiAgICAgICAgaWYgKCFpc1JlbW92ZSkge1xyXG4gICAgICAgICAgY2hpbGRyZW5MaXN0ID0gWy4uLnBhcmVudEVsZW1lbnQuY2hpbGRyZW5dO1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZHJlbihwYXJlbnRFbGVtZW50KTtcclxuICAgICAgICAgIGlzUmVtb3ZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gYWRkIG5vZGUgZm9sZGVyIGZpcnN0XHJcbiAgICAgICAgcGFyZW50RWxlbWVudC5jaGlsZHJlbi5wdXNoKGNoaWxkKTtcclxuICAgICAgICBpc0NoYW5nZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gYWRkIG5vZGUgd2l0aG91dCBjaGlsZHJlbiBhZ2FpblxyXG4gICAgaWYgKGlzUmVtb3ZlKSB7XHJcbiAgICAgIHRoaXMuYWRkQ2hpbGRyZW4ocGFyZW50RWxlbWVudCwgY2hpbGRyZW5MaXN0KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyByZWZyZXNoIGRhdGEgYW5kIGV4cGFuZCB0cmVlIG5vZGUgZnJvbSByb290IG5vZGVcclxuICAgIGlmIChpc0NoYW5nZSkge1xyXG4gICAgICB0aGlzLnJlZnJlc2hUcmVlRGF0YSgpO1xyXG4gICAgICB0aGlzLmFyckluZGV4LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICBpbmRleCA9IHRoaXMuZ2V0Tm9kZUluZGV4KGl0ZW0sIHVuZGVmaW5lZCwgdGhpcy5kYXRhU291cmNlWydfdHJlZUNvbnRyb2wnXS5kYXRhTm9kZXMpO1xyXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2luZGV4XSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpc0NoYW5nZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ2hpbGRyZW4ocGFyZW50RWxlbWVudD86IFRyZWVOb2RlKSB7XHJcbiAgICBpZiAocGFyZW50RWxlbWVudC5jaGlsZHJlbikge1xyXG4gICAgICBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRDaGlsZHJlbihwYXJlbnRFbGVtZW50PzogVHJlZU5vZGUsIGNoaWxkcmVuTGlzdD86IFRyZWVOb2RlW10pIHtcclxuICAgIGlmIChjaGlsZHJlbkxpc3QpIHtcclxuICAgICAgY2hpbGRyZW5MaXN0LmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLnB1c2goZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Tm9kZUluZGV4KGlkOiBzdHJpbmcsIGxldmVsPzogbnVtYmVyLCBkYXRhPzogYW55W10pIHtcclxuICAgIGlmIChsZXZlbCkge1xyXG4gICAgICByZXR1cm4gZGF0YS5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICByZXR1cm4geC5pZCA9PT0gaWQgJiYgeC5sZXZlbCA9PT0gbGV2ZWw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRhLmZpbmRJbmRleCgoeCkgPT4ge1xyXG4gICAgICByZXR1cm4geC5pZCA9PT0gaWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkTm9kZShyb290SWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjaGlsZEFycmF5ID0gZGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucm9vdElkID09PSByb290SWQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNoaWxkID0geyBpZDogY2hpbGRBcnJheVswXS5yb290SWQsIG5hbWU6IGNoaWxkQXJyYXlbMF0uc3ViTmFtZSwgY2hpbGRyZW46IFtdIH0gYXMgVHJlZU5vZGU7XHJcbiAgICBjaGlsZEFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY2hpbGQuY2hpbGRyZW4ucHVzaCh7IGlkOiBpdGVtLmNoaWxkSWQsIG5hbWU6IGl0ZW0uY2hpbGROYW1lLCBwYXJlbnRJZDogcm9vdElkIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2hpbGQ7XHJcbiAgfVxyXG5cclxuICBmaW5kUGFyZW50Tm9kZShpZDogc3RyaW5nLCBkYXRhOiBUcmVlTm9kZVtdKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgIGZvciAoY29uc3QgY3VycmVudEZhdGhlciBvZiBkYXRhKSB7XHJcbiAgICAgIGlmIChjdXJyZW50RmF0aGVyLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50RmF0aGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGlsZCA9IGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4uZmluZCgoeCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChjdXJyZW50Q2hpbGQpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Q2hpbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnRDaGlsZDEgb2YgY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKGlkICE9PSBjdXJyZW50Q2hpbGQxLmlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFBhcmVudE5vZGUoaWQsIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlRGF0YSgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBnZXROb2RlSWNvbihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIGlmICh0aGlzLm9wZW5JY29uICYmIHRoaXMuY2xvc2VJY29uKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyB0aGlzLm9wZW5JY29uIDogdGhpcy5jbG9zZUljb247XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kdWxlSWQpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5kb2N1bWVudDoge1xyXG4gICAgICAgIGNvbnN0IG5vZGVEYXRhID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoeCA9PiB7IHJldHVybiB4LnJvb3RJZCA9PT0gbm9kZS5pZDsgfSk7XHJcbiAgICAgICAgaWYgKG5vZGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHN3aXRjaCAobm9kZURhdGFbMF0ubGV2ZWxUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZGVwYXJ0bWVudF9mb2xkZXJfb3V0bGluZWQnIDogJ2RlcGFydG1lbnRfZm9sZGVyJztcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlJlZ2lvbmFsRm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJyA6ICdyZWdpb25hbF9mb2xkZXInO1xyXG4gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZW50ZXJwcmlzZV9mb2xkZXJfb3V0bGluZWQnIDogJ2VudGVycHJpc2VfZm9sZGVyJztcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCcgOiAnbG9jYWxfZm9sZGVyJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2ZvbGRlcl9vdXRsaW5lZCcgOiAnZm9sZGVyJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdrZXlib2FyZF91cCcgOiAna2V5Ym9hcmRfZG93bic7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAncHJvY2Vzc19hcmVhX291dGxpbmVkJyA6ICdwcm9jZXNzX2FyZWEnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAna2V5Ym9hcmRfdXAnIDogJ2tleWJvYXJkX2Rvd24nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUljb24oKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMubW9kdWxlSWQpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5kb2N1bWVudDpcclxuICAgICAgICByZXR1cm4gJ2RvY3VtZW50JztcclxuICAgICAgY2FzZSBEYXRhVHlwZS5wcm9jZXNzOlxyXG4gICAgICAgIHJldHVybiAncHJvY2Vzcyc7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuY2hlY2tsaXN0OlxyXG4gICAgICAgIHJldHVybiAnY2hlY2tsaXN0JztcclxuICAgICAgY2FzZSBEYXRhVHlwZS5kZXZpYXRpb246XHJcbiAgICAgICAgcmV0dXJuICdkZXZpYXRpb24nO1xyXG4gICAgICBjYXNlIERhdGFUeXBlLnJpc2s6XHJcbiAgICAgICAgcmV0dXJuICdyaXNrJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ2RvY3VtZW50JztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
565
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcmVsYXRlZC90cmVlL3RyZWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzljLE9B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ckIsS0FBSyxRQUFRLENBQUMsU0FBUztnQkFDckIsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxRQUFRLENBQUMsSUFBSTtnQkFDaEIsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxVQUFVLENBQUM7U0FDckI7SUFDSCxDQUFDOzs7WUFsbkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsaW5JQUFvQztnQkFFcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUF4Q1EsaUJBQWlCO1lBR2pCLFlBQVk7WUFGWixlQUFlOzs7dUJBeUNyQixLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7OEJBQ0wsTUFBTTtnQ0FDTixNQUFNOzRCQUNOLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9kYXRhLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IERvY3VtZW50Tm9kZVR5cGUgfSBmcm9tICcuLi9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IEl0ZW1JY29uVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9pdGVtLWljb24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgQ0hFQ0tMSVNUX0lDT04sIERFUEFSVE1FTlRfRk9MREVSX0lDT04sIERFUEFSVE1FTlRfRk9MREVSX09VVExJTkVEX0lDT04sIERFVklBVElPTl9JQ09OLCBET0NVTUVOVF9JQ09OLCBFTlRFUlBSSVNFX0ZPTERFUl9JQ09OLCBFTlRFUlBSSVNFX0ZPTERFUl9PVVRMSU5FRF9JQ09OLCBLRVlCT0FSRF9ET1dOX0lDT04sIEtFWUJPQVJEX1VQX0lDT04sIExPQ0FMX0ZPTERFUl9JQ09OLCBMT0NBTF9GT0xERVJfT1VUTElORURfSUNPTiwgTk9STUFMX0ZPTERFUl9JQ09OLCBOT1JNQUxfRk9MREVSX09VVExJTkVEX0lDT04sIFBST0NFU1NfQVJFQV9JQ09OLCBQUk9DRVNTX0FSRUFfT1VUTElORURfSUNPTiwgUFJPQ0VTU19JQ09OLCBSRUdJT05BTF9GT0xERVJfSUNPTiwgUkVHSU9OQUxfRk9MREVSX09VVExJTkVEX0lDT04sIFJJU0tfSUNPTiB9IGZyb20gJy4uL2NvbW1vbi9xbXMtaWNvbi5jb25zdCc7XHJcbmltcG9ydCB7IFJlbGF0ZWRDb25zdCB9IGZyb20gJy4uL2NvbW1vbi9yZWxhdGVkLmNvbnN0JztcclxuaW1wb3J0IFRyZWVGdW5jdGlvbnMgZnJvbSAnLi4vY29tbW9uL3RyZWUuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvdHJlZS1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTW9kZWwgfSBmcm9tICcuLi9tb2RlbC90cmVlLm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBUcmVlTm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBUcmVlTm9kZVtdO1xyXG4gIHBhcmVudElkPzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgVHJlZUZsYXROb2RlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIGV4cGFuZGFibGU6IGJvb2xlYW47XHJcbiAgaGFzQ2hpbGQ6IGJvb2xlYW47XHJcbiAgcGFyZW50SWQ/OiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ2hlY2tlZE5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2hlY2tlZDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdxbXMtdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyZWUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU1vZGVsPiA9IFtdO1xyXG4gIEBJbnB1dCgpIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRhOiBBcnJheTxUcmVlRmxhdE5vZGU+ID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgZGlzYWJsZWRMaXN0OiBhbnkgPSBbXTtcclxuICBAT3V0cHV0KCkgc2VsZWN0Tm9kZUV2ZW50OiBFdmVudEVtaXR0ZXI8VHJlZUZsYXROb2RlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0Rm9sZGVyRXZlbnQ6IEV2ZW50RW1pdHRlcjxUcmVlRmxhdE5vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGVja0JveEV2ZW50OiBFdmVudEVtaXR0ZXI8VHJlZUZsYXROb2RlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGlsZENoZWNrZWRFdmVudDogRXZlbnRFbWl0dGVyPElDaGVja2VkTm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGxpc3RQYXJlbnRPYmogPSB7fTtcclxuICBmaWx0ZXJEYXRhOiBUcmVlTW9kZWxbXSA9IFtdO1xyXG4gIHRyZWVPYmplY3Q6IG9iamVjdDtcclxuICBhcnJJbmRleDogc3RyaW5nW10gPSBbXTtcclxuICBjaGVja2VkTm9kZUxpc3Q6IEFycmF5PFRyZWVGbGF0Tm9kZT4gPSBbXTtcclxuICB1c2VFeHBhbmRGZWF0dXJlID0gdHJ1ZTtcclxuICBhbGxvd1NlbGVjdEZvbGRlciA9IGZhbHNlO1xyXG4gIGFyZWFPZkN1cnJlbnRQcm9jZXNzID0gJyc7XHJcbiAgc2hvd0NoZWNrQm94ID0gZmFsc2U7XHJcbiAgYWxsb3dNdWx0aXBsZUNoZWNrID0gdHJ1ZTtcclxuICBzaW5nbGVTZWxlY3RlZE5vZGUgPSBmYWxzZTtcclxuICBvbmx5Q2hlY2tCb3hGb3JDaGlsZCA9IGZhbHNlO1xyXG4gIGl0ZW1JY29uVHlwZSA9IEl0ZW1JY29uVHlwZTtcclxuICBkaXNwbGF5VHlwZSA9IDE7XHJcbiAgb3Blbkljb24gPSAnJztcclxuICBvcGVuSWNvbkNvbG9yID0gJyMxOTU0QTknO1xyXG4gIGNsb3NlSWNvbiA9ICcnO1xyXG4gIGNsb3NlSWNvbkNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIGl0ZW1JY29uID0gJyc7XHJcbiAgaXRlbUljb25TdmcgPSAnJztcclxuICBpdGVtSWNvblBhdGggPSAnJztcclxuICBpdGVtSWNvbkJhc2U2NCA9ICcnO1xyXG4gIG1vZHVsZUlkOiBudW1iZXI7XHJcblxyXG4gIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxUcmVlRmxhdE5vZGU+KFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUubGV2ZWw7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICAgIH1cclxuICApO1xyXG5cclxuICBpc0NoZWNrZWQgPSBmYWxzZTtcclxuICBjaGVja2xpc3RTZWxlY3Rpb246IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSkge1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdwcm9jZXNzX2FyZWEnLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUFJPQ0VTU19BUkVBX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncHJvY2Vzc19hcmVhX291dGxpbmVkJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFBST0NFU1NfQVJFQV9PVVRMSU5FRF9JQ09OKSk7XHJcblxyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdkb2N1bWVudCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChET0NVTUVOVF9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2NoZWNrbGlzdCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChDSEVDS0xJU1RfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdkZXZpYXRpb24nLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoREVWSUFUSU9OX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncmlzaycsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChSSVNLX0lDT04pKTtcclxuXHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2ZvbGRlcicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChOT1JNQUxfRk9MREVSX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZm9sZGVyX291dGxpbmVkJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKE5PUk1BTF9GT0xERVJfT1VUTElORURfSUNPTikpO1xyXG5cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnbG9jYWxfZm9sZGVyJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKExPQ0FMX0ZPTERFUl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChMT0NBTF9GT0xERVJfT1VUTElORURfSUNPTikpO1xyXG5cclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgnZW50ZXJwcmlzZV9mb2xkZXInLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoRU5URVJQUklTRV9GT0xERVJfSUNPTikpO1xyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdlbnRlcnByaXNlX2ZvbGRlcl9vdXRsaW5lZCcsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChFTlRFUlBSSVNFX0ZPTERFUl9PVVRMSU5FRF9JQ09OKSk7XHJcblxyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdyZWdpb25hbF9mb2xkZXInLCBkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoUkVHSU9OQUxfRk9MREVSX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFJFR0lPTkFMX0ZPTERFUl9PVVRMSU5FRF9JQ09OKSk7XHJcblxyXG4gICAgaWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKCdkZXBhcnRtZW50X2ZvbGRlcicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChERVBBUlRNRU5UX0ZPTERFUl9JQ09OKSk7XHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2RlcGFydG1lbnRfZm9sZGVyX291dGxpbmVkJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKERFUEFSVE1FTlRfRk9MREVSX09VVExJTkVEX0lDT04pKTtcclxuXHJcbiAgICBpY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoJ2tleWJvYXJkX3VwJywgZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKEtFWUJPQVJEX1VQX0lDT04pKTtcclxuICAgIGljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbCgna2V5Ym9hcmRfZG93bicsIGRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChLRVlCT0FSRF9ET1dOX0lDT04pKTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy50cmVlRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCBjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZV07XHJcbiAgICAgIHRoaXMuaW5pdFRyZWVEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuc2VsZWN0ZWREYXRhICYmIFxyXG4gICAgICAoY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlLmxlbmd0aCA+IDAgfHwgXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5zZWxlY3RlZERhdGEuY3VycmVudFZhbHVlKSAhPT0gXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy5zZWxlY3RlZERhdGEucHJldmlvdXNWYWx1ZSkpKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZChjaGFuZ2VzLnNlbGVjdGVkRGF0YS5jdXJyZW50VmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0VHJlZURhdGEoKTtcclxuICB9XHJcblxyXG4gIGluaXRUcmVlRGF0YSgpIHtcclxuICAgIHRoaXMudHJlZURhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKCEhaXRlbS5wYXJlbnRJZCAmJiBpdGVtLnBhcmVudElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5wYXJlbnRJZF0gPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkSWQgJiYgaXRlbS5jaGlsZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxpc3RQYXJlbnRPYmpbaXRlbS5yb290SWRdID0gMTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5zaG93Q2hlY2tCb3gpIHtcclxuICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy50cmVlRGF0YTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlckRhdGEgPSB0aGlzLnRyZWVEYXRhLmZpbHRlcigoeCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB4LnBhcmVudElkID09PSAnJztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50cmVlT2JqZWN0ID0gVHJlZUZ1bmN0aW9ucy5idWlsZE9iamVjdFRyZWUodGhpcy5maWx0ZXJEYXRhKTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gVHJlZUZ1bmN0aW9ucy5idWlsZEFycmF5VHJlZSh0aGlzLnRyZWVPYmplY3QsIDApLm1hcChlbGVtZW50ID0+IHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc29ydERhdGFUcmVlKGVsZW1lbnQpO1xyXG4gICAgICBlbGVtZW50ID0gbnVsbDtcclxuICAgICAgZWxlbWVudCA9IHsgLi4ue30sIC4uLml0ZW0gfTtcclxuICAgICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVzZUV4cGFuZEZlYXR1cmUgPSAhdGhpcy50cmVlQ29uZmlnLnNob3dDaGVja0JveDtcclxuICAgIHRoaXMuYWxsb3dTZWxlY3RGb2xkZXIgPSB0aGlzLnRyZWVDb25maWcuYWxsb3dTZWxlY3RGb2xkZXI7XHJcbiAgICB0aGlzLmFyZWFPZkN1cnJlbnRQcm9jZXNzID0gdGhpcy50cmVlQ29uZmlnLmFyZWFPZkN1cnJlbnRQcm9jZXNzO1xyXG4gICAgdGhpcy5zaG93Q2hlY2tCb3ggPSB0aGlzLnRyZWVDb25maWcuc2hvd0NoZWNrQm94O1xyXG4gICAgdGhpcy5vbmx5Q2hlY2tCb3hGb3JDaGlsZCA9IHRoaXMudHJlZUNvbmZpZy5vbmx5Q2hlY2tCb3hGb3JDaGlsZDtcclxuICAgIHRoaXMubW9kdWxlSWQgPSB0aGlzLnRyZWVDb25maWcubW9kdWxlSWQ7XHJcbiAgICB0aGlzLm9wZW5JY29uID0gdGhpcy50cmVlQ29uZmlnLm9wZW5JY29uO1xyXG4gICAgdGhpcy5vcGVuSWNvbkNvbG9yID0gdGhpcy50cmVlQ29uZmlnLm9wZW5JY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWcub3Blbkljb25Db2xvciA6IHRoaXMub3Blbkljb25Db2xvcjtcclxuICAgIHRoaXMuY2xvc2VJY29uID0gdGhpcy50cmVlQ29uZmlnLmNsb3NlSWNvbjtcclxuICAgIHRoaXMuY2xvc2VJY29uQ29sb3IgPSB0aGlzLnRyZWVDb25maWcuY2xvc2VJY29uQ29sb3IgPyB0aGlzLnRyZWVDb25maWcuY2xvc2VJY29uQ29sb3IgOiB0aGlzLmNsb3NlSWNvbkNvbG9yO1xyXG4gICAgdGhpcy5pdGVtSWNvbiA9IHRoaXMudHJlZUNvbmZpZy5pdGVtSWNvbjtcclxuICAgIHRoaXMuaXRlbUljb25TdmcgPSB0aGlzLnRyZWVDb25maWcuaXRlbUljb25Tdmc7XHJcbiAgICB0aGlzLml0ZW1JY29uUGF0aCA9IHRoaXMudHJlZUNvbmZpZy5pdGVtSWNvblBhdGg7XHJcbiAgICB0aGlzLml0ZW1JY29uQmFzZTY0ID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMudHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NCkgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5hbGxvd011bHRpcGxlQ2hlY2sgPSB0aGlzLnRyZWVDb25maWcuYWxsb3dNdWx0aXBsZUNoZWNrO1xyXG4gICAgdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPSB0aGlzLnRyZWVDb25maWcuc2luZ2xlU2VsZWN0ZWROb2RlO1xyXG4gICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VHJlZUZsYXROb2RlPih0aGlzLmFsbG93TXVsdGlwbGVDaGVjayk7IC8qIHRydWU6IG11bHRpcGxlICovXHJcblxyXG4gICAgdGhpcy5kaXNwbGF5VHlwZSA9IHRoaXMuZ2V0SXRlbUljb25UeXBlKHRoaXMudHJlZUNvbmZpZyk7XHJcblxyXG4gICAgLy8gRXhwYW5kIGNoaWxkIG5vZGUgdHJlZVxyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5leHBhbmRBbGwpIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmRBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSaXNrIFRyZWVcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUmlza0RhdGEubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkRGF0YS5maW5kSW5kZXgoZWwgPT4gZWwuaWQgPT09IHgucm9vdElkKTtcclxuICAgICAgICAgIGlmICh4LnJvb3RJZCA9PT0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgJiYgaW5kZXggPCAwKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkRGF0YS5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkKHNlbGVjdGVkRGF0YSk7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHNlbGVjdGVkRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGlzYWJsZSBMaXN0XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZExpc3QubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkTGlzdC5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHguaWQgPT09IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkIFxyXG4gICAgICAgICAgICAmJiAoIXgucGFyZW50SWQgfHwgeC5wYXJlbnRJZCA9PT0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBzb3J0RGF0YVRyZWUob2JqKSB7XHJcbiAgICBpZiAob2JqLmNoaWxkcmVuKSB7XHJcbiAgICAgIGxldCBjaGlsZCA9IFtdO1xyXG4gICAgICBjb25zdCBsZWFmTm9kZSA9IG9iai5jaGlsZHJlbi5maWx0ZXIoeCA9PiAheC5jaGlsZHJlbik7XHJcbiAgICAgIGNvbnN0IHN1YkZvbGRlck5vZGUgPSBvYmouY2hpbGRyZW4uZmlsdGVyKHggPT4geC5jaGlsZHJlbik7XHJcbiAgICAgIHN1YkZvbGRlck5vZGUuZm9yRWFjaCgoZWxlbWVudCwgaW5kZXgpID0+IHtcclxuICAgICAgICBsZXQgZWwgPSBlbGVtZW50O1xyXG4gICAgICAgIHRoaXMuc29ydERhdGFUcmVlKGVsKTtcclxuICAgICAgICBjaGlsZC5wdXNoKGVsKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBsZWFmTm9kZS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgIGxldCBlbCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgY2hpbGQucHVzaChlbCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBvYmouY2hpbGRyZW4gPSBjaGlsZDtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBnZXRJbWFnZVBhdGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHRoaXMudHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NCkgYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RlZChpdGVtU2VsZWN0ZWQ6IFRyZWVGbGF0Tm9kZVtdKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnRyZWVDb250cm9sWydkYXRhTm9kZXMnXSkgcmV0dXJuO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgdHJlZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG4gICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRyZWUpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGl0ZW1TZWxlY3RlZC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IGl0ZW1TZWxlY3RlZFtqXTtcclxuICAgICAgICAgIGlmICh0cmVlLmlkID09PSBlbGVtZW50LmlkICYmIHRyZWUucGFyZW50SWQgPT09IGVsZW1lbnQucGFyZW50SWQgJiYgIXRyZWUuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KHRyZWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGVja1NlbGVjdGVkU2FtZU5vZGUoaXRlbVNlbGVjdGVkOiBUcmVlRmxhdE5vZGVbXSwgZmxhZzogYm9vbGVhbikge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCB0cmVlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV07XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgaXRlbVNlbGVjdGVkLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGl0ZW1TZWxlY3RlZFtqXTtcclxuICAgICAgICBpZiAoZWxlbWVudC5pZCAmJiB0cmVlLmlkID09PSBlbGVtZW50LmlkIFxyXG4gICAgICAgICAgJiYgdHJlZS5wYXJlbnRJZCA9PT0gZWxlbWVudC5wYXJlbnRJZCAmJiAhdHJlZS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgZmxhZyA/IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdCh0cmVlKSA6IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KHRyZWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0SXRlbUljb25UeXBlKHRyZWVDb25maWc6IFRyZWVDb25maWcpIHtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uICYmIHRyZWVDb25maWcuaXRlbUljb24ubGVuZ3RoKSByZXR1cm4gdGhpcy5pdGVtSWNvblR5cGUubmFtZTtcclxuICAgIGlmICh0cmVlQ29uZmlnLml0ZW1JY29uUGF0aCAmJiB0cmVlQ29uZmlnLml0ZW1JY29uUGF0aC5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5wYXRoO1xyXG4gICAgaWYgKHRyZWVDb25maWcuaXRlbUljb25CYXNlNjQgJiYgdHJlZUNvbmZpZy5pdGVtSWNvbkJhc2U2NC5sZW5ndGgpIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5iYXNlNjQ7XHJcbiAgICBpZiAodHJlZUNvbmZpZy5pdGVtSWNvblN2ZyAmJiB0cmVlQ29uZmlnLml0ZW1JY29uU3ZnLmxlbmd0aCkgcmV0dXJuIHRoaXMuaXRlbUljb25UeXBlLnN2ZztcclxuICAgIHJldHVybiB0aGlzLml0ZW1JY29uVHlwZS5ub25lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1lciA9IChub2RlOiBUcmVlTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgbGV0IGNoZWNrSGFzQ2hpbGQgPSB0cnVlO1xyXG4gICAgaWYgKCFub2RlLmNoaWxkcmVuKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAoISghIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgICBlbHNlIGlmIChcclxuICAgICAgISFub2RlLmNoaWxkcmVuICYmXHJcbiAgICAgIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmXHJcbiAgICAgIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmXHJcbiAgICAgICFub2RlLmNoaWxkcmVuWzBdLm5hbWUubGVuZ3RoICYmXHJcbiAgICAgIG5vZGUuaWQudG9TdHJpbmcoKSA9PT0gdGhpcy5hcmVhT2ZDdXJyZW50UHJvY2Vzc1xyXG4gICAgKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoISh0aGlzLmxpc3RQYXJlbnRPYmpbbm9kZS5pZF0gPT09IDEpKSB7XHJcbiAgICAgIGNoZWNrSGFzQ2hpbGQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGxldmVsLFxyXG4gICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgaGFzQ2hpbGQ6IGNoZWNrSGFzQ2hpbGQsXHJcbiAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxyXG4gICAgICBkaXNhYmxlZDogZmFsc2VcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmxldmVsO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcclxuXHJcblxyXG4gIC8qKiBXaGV0aGVyIGFsbCB0aGUgZGVzY2VuZGFudHMgb2YgdGhlIG5vZGUgYXJlIHNlbGVjdGVkICovXHJcbiAgZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlOiBUcmVlRmxhdE5vZGUpOiBib29sZWFuIHtcclxuXHJcbiAgICBjb25zdCBkZXNjZW5kYW50cyA9ICF0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSA/IHRoaXMudHJlZUNvbnRyb2wuZ2V0RGVzY2VuZGFudHMobm9kZSkuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uZGlzYWJsZWQpIDogW107XHJcblxyXG4gICAgaWYgKCFkZXNjZW5kYW50cy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZSk7XHJcblxyXG4gICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBkZXNjZW5kYW50cy5ldmVyeShjaGlsZCA9PiB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5pc1NlbGVjdGVkKGNoaWxkKSk7XHJcbiAgICBpZiAoIXNlbGVjdGVkICYmIGFsbFNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdChub2RlKTtcclxuICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIHJldHVybiBhbGxTZWxlY3RlZDtcclxuXHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciBwYXJ0IG9mIHRoZSBkZXNjZW5kYW50cyBhcmUgc2VsZWN0ZWQgKi9cclxuICBkZXNjZW5kYW50c1BhcnRpYWxseVNlbGVjdGVkKG5vZGU6IFRyZWVGbGF0Tm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSAhdGhpcy5zaW5nbGVTZWxlY3RlZE5vZGUgPyB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKSA6IFtdO1xyXG5cclxuICAgIGNvbnN0IHJlc3VsdCA9IGRlc2NlbmRhbnRzLnNvbWUoY2hpbGQgPT4gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZChjaGlsZCkpO1xyXG4gICAgcmV0dXJuIHJlc3VsdCAmJiAhdGhpcy5kZXNjZW5kYW50c0FsbFNlbGVjdGVkKG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRvZ2dsZSB0aGUgdG8tZG8gaXRlbSBzZWxlY3Rpb24uIFNlbGVjdC9kZXNlbGVjdCBhbGwgdGhlIGRlc2NlbmRhbnRzIG5vZGUgKi9cclxuICB0b2RvSXRlbVNlbGVjdGlvblRvZ2dsZShub2RlOiBUcmVlRmxhdE5vZGUpOiB2b2lkIHtcclxuICAgIC8vIHRyZWUgaGF2ZSBkdXBsaWNhdGUgbm9kZVxyXG4gICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5pZCA9PT0gbm9kZS5pZCBcclxuICAgICAgICAgICYmIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLnBhcmVudElkID09PSBub2RlLnBhcmVudElkIFxyXG4gICAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi50b2dnbGUodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBwcm9jZXNzLyBkb2N1bWVudCBzaW5nbGUgc2VsZWN0ZWRcclxuICAgIGlmICh0aGlzLnNpbmdsZVNlbGVjdGVkTm9kZSkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94RXZlbnQuZW1pdCh0aGlzLmNoZWNrbGlzdFNlbGVjdGlvbi5zZWxlY3RlZCk7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSB0aGlzLnRyZWVDb250cm9sLmdldERlc2NlbmRhbnRzKG5vZGUpLmZpbHRlcihpdGVtID0+ICFpdGVtLmRpc2FibGVkKTtcclxuXHJcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZFNhbWVOb2RlKGRlc2NlbmRhbnRzLCB0aGlzLmRlc2NlbmRhbnRzQWxsU2VsZWN0ZWQobm9kZSkpO1xyXG5cclxuICAgICAgIXRoaXMuZGVzY2VuZGFudHNBbGxTZWxlY3RlZChub2RlKVxyXG4gICAgICAgID8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0KC4uLmRlc2NlbmRhbnRzKVxyXG4gICAgICAgIDogdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uZGVzZWxlY3QoLi4uZGVzY2VuZGFudHMpO1xyXG5cclxuICAgICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAgIGNvbnN0IGFsbE5vZGVJc1BhcmVudCA9IHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkLmV2ZXJ5KGNoaWxkID0+IGNoaWxkLmV4cGFuZGFibGUpO1xyXG4gICAgICBpZiAoYWxsTm9kZUlzUGFyZW50KSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uc2VsZWN0ZWQuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLmRlc2VsZWN0KGVsZW1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgdG9kb0NoaWxkU2VsZWN0aW9uVG9nZ2xlKG5vZGU6IFRyZWVGbGF0Tm9kZSk6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWQgXHJcbiAgICAgICAgJiYgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWQgXHJcbiAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKG5vZGUpO1xyXG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9kb0l0ZW1TZWxlY3Rpb25CeUlkKGlkczogYW55W10pOiB2b2lkIHtcclxuICAgIGlkcy5mb3JFYWNoKFxyXG4gICAgICBpZCA9PiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBpZCBcclxuICAgICAgICAgICAgJiYgIXRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSkpXHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2RvSXRlbVNlbGVjdGlvbihub2RlczogVHJlZU5vZGVbXSk6IHZvaWR7XHJcbiAgICBub2Rlcy5mb3JFYWNoKFxyXG4gICAgICBub2RlID0+IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IG5vZGUuaWQgJiZcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0ucGFyZW50SWQgPT09IG5vZGUucGFyZW50SWQgJiYgXHJcbiAgICAgICAgICAgICF0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICBpZighdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24uaXNTZWxlY3RlZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpXSkpXHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2xpc3RTZWxlY3Rpb24udG9nZ2xlKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICAgIHRoaXMuY2hlY2tCb3hFdmVudC5lbWl0KHRoaXMuY2hlY2tsaXN0U2VsZWN0aW9uLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogVHJlZUZsYXROb2RlKSA9PiB7XHJcbiAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xyXG4gIH07XHJcblxyXG4gIHNlbGVjdE5vZGUobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICBpZiAod2luZG93W1JlbGF0ZWRDb25zdC5JU19ESVNQTEFZX1NFQVJDSF9SRVNVTFRdKSB7XHJcbiAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShSZWxhdGVkQ29uc3QuSElERV9TRUFSQ0hfUkVTVUxULCAnKicpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0Tm9kZUV2ZW50LmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGb2xkZXIobm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICB0aGlzLnNlbGVjdEZvbGRlckV2ZW50LmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cGFuZE5vZGUobm9kZTogVHJlZUZsYXROb2RlLCBpc0V4cGFuZE5vZGU/OiBib29sZWFuKSB7XHJcbiAgICBpZiAod2luZG93W1JlbGF0ZWRDb25zdC5JU19ESVNQTEFZX1NFQVJDSF9SRVNVTFRdKSB7XHJcbiAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShSZWxhdGVkQ29uc3QuSElERV9TRUFSQ0hfUkVTVUxULCAnKicpO1xyXG4gICAgfVxyXG4gICAgLy8gc2V0IHVzZUV4cGFuZEZlYXR1cmUgPSB0cnVlIHRvIGltcHJvdmUgcGVyZm9ybWFuY2Ugb2YgdHJlZSBsb2FkaW5nXHJcbiAgICBpZiAoIWlzRXhwYW5kTm9kZSB8fCAhdGhpcy51c2VFeHBhbmRGZWF0dXJlKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hcnJJbmRleC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmFyckluZGV4W2ldID09PSBub2RlLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLmFyckluZGV4LnNwbGljZShpLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBnZXQgYXJyYXkgaW5kZXggdG8gZXhwYW5kIG5vZGUgYWZ0ZXIgcmVmcmVzaCBkYXRhc291cmNlXHJcbiAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgbGV0IGlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICBsZXQgaXNSZW1vdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuYXJySW5kZXgucHVzaChub2RlLmlkKTtcclxuXHJcbiAgICBjb25zdCBjaGlsZEFycmF5ID0gdGhpcy50cmVlRGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucGFyZW50SWQgPT09IG5vZGUuaWQ7XHJcbiAgICB9KTtcclxuICAgIGxldCByb290SWQgPSAnMCc7XHJcbiAgICBsZXQgcGFyZW50RWxlbWVudDogVHJlZU5vZGU7XHJcbiAgICBsZXQgY2hpbGRyZW5MaXN0OiBUcmVlTm9kZVtdO1xyXG4gICAgaWYgKGNoaWxkQXJyYXkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNoaWxkQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5yb290SWQgPT09IHJvb3RJZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gZ2V0IGNoaWxkIG5vZGUgZnJvbSBvcmlnaW5hbCBkYXRhc291cmNlXHJcbiAgICAgIGNvbnN0IGNoaWxkID0gdGhpcy5nZXRDaGlsZE5vZGUoaXRlbS5yb290SWQsIGNoaWxkQXJyYXkpO1xyXG4gICAgICByb290SWQgPSBpdGVtLnJvb3RJZDtcclxuXHJcbiAgICAgIGluZGV4ID0gdGhpcy5nZXROb2RlSW5kZXgoY2hpbGQuaWQsIHVuZGVmaW5lZCwgdGhpcy5kYXRhU291cmNlWydfdHJlZUNvbnRyb2wnXS5kYXRhTm9kZXMpO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gYWRkIGNoaWxkIG5vZGUgdG8gZXhwYW5kIG5vZGVcclxuICAgICAgcGFyZW50RWxlbWVudCA9IHRoaXMuZmluZFBhcmVudE5vZGUobm9kZS5pZCwgdGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gICAgICBpZiAocGFyZW50RWxlbWVudCkge1xyXG4gICAgICAgIC8vIHRlbXBvcmFyeSByZW1vdmUgYWxsIG5vZGUgd2l0aG91dCBjaGlsZHJlbiA9PiBwdXJwb3NlIHRvIGFkZCBub2RlIGZvbGRlciBmaXJzdFxyXG4gICAgICAgIGlmICghaXNSZW1vdmUpIHtcclxuICAgICAgICAgIGNoaWxkcmVuTGlzdCA9IFsuLi5wYXJlbnRFbGVtZW50LmNoaWxkcmVuXTtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRyZW4ocGFyZW50RWxlbWVudCk7XHJcbiAgICAgICAgICBpc1JlbW92ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGFkZCBub2RlIGZvbGRlciBmaXJzdFxyXG4gICAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ucHVzaChjaGlsZCk7XHJcbiAgICAgICAgaXNDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIGFkZCBub2RlIHdpdGhvdXQgY2hpbGRyZW4gYWdhaW5cclxuICAgIGlmIChpc1JlbW92ZSkge1xyXG4gICAgICB0aGlzLmFkZENoaWxkcmVuKHBhcmVudEVsZW1lbnQsIGNoaWxkcmVuTGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVmcmVzaCBkYXRhIGFuZCBleHBhbmQgdHJlZSBub2RlIGZyb20gcm9vdCBub2RlXHJcbiAgICBpZiAoaXNDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoVHJlZURhdGEoKTtcclxuICAgICAgdGhpcy5hcnJJbmRleC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaW5kZXggPSB0aGlzLmdldE5vZGVJbmRleChpdGVtLCB1bmRlZmluZWQsIHRoaXMuZGF0YVNvdXJjZVsnX3RyZWVDb250cm9sJ10uZGF0YU5vZGVzKTtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlc1tpbmRleF0pO1xyXG4gICAgICB9KTtcclxuICAgICAgaXNDaGFuZ2UgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUNoaWxkcmVuKHBhcmVudEVsZW1lbnQ/OiBUcmVlTm9kZSkge1xyXG4gICAgaWYgKHBhcmVudEVsZW1lbnQuY2hpbGRyZW4pIHtcclxuICAgICAgcGFyZW50RWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ2hpbGRyZW4ocGFyZW50RWxlbWVudD86IFRyZWVOb2RlLCBjaGlsZHJlbkxpc3Q/OiBUcmVlTm9kZVtdKSB7XHJcbiAgICBpZiAoY2hpbGRyZW5MaXN0KSB7XHJcbiAgICAgIGNoaWxkcmVuTGlzdC5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgICAgcGFyZW50RWxlbWVudC5jaGlsZHJlbi5wdXNoKGUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE5vZGVJbmRleChpZDogc3RyaW5nLCBsZXZlbD86IG51bWJlciwgZGF0YT86IGFueVtdKSB7XHJcbiAgICBpZiAobGV2ZWwpIHtcclxuICAgICAgcmV0dXJuIGRhdGEuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkICYmIHgubGV2ZWwgPT09IGxldmVsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YS5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZE5vZGUocm9vdElkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IGRhdGEuZmlsdGVyKCh4KSA9PiB7XHJcbiAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gcm9vdElkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBjaGlsZCA9IHsgaWQ6IGNoaWxkQXJyYXlbMF0ucm9vdElkLCBuYW1lOiBjaGlsZEFycmF5WzBdLnN1Yk5hbWUsIGNoaWxkcmVuOiBbXSB9IGFzIFRyZWVOb2RlO1xyXG4gICAgY2hpbGRBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNoaWxkLmNoaWxkcmVuLnB1c2goeyBpZDogaXRlbS5jaGlsZElkLCBuYW1lOiBpdGVtLmNoaWxkTmFtZSwgcGFyZW50SWQ6IHJvb3RJZCB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGNoaWxkO1xyXG4gIH1cclxuXHJcbiAgZmluZFBhcmVudE5vZGUoaWQ6IHN0cmluZywgZGF0YTogVHJlZU5vZGVbXSkge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XHJcbiAgICBmb3IgKGNvbnN0IGN1cnJlbnRGYXRoZXIgb2YgZGF0YSkge1xyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5pZCA9PT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gY3VycmVudEZhdGhlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50Q2hpbGQgPSBjdXJyZW50RmF0aGVyLmNoaWxkcmVuLmZpbmQoKHgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LmlkID09PSBpZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoY3VycmVudENoaWxkKSB7XHJcbiAgICAgICAgICByZXR1cm4gY3VycmVudENoaWxkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XHJcbiAgICAgICAgZm9yIChjb25zdCBjdXJyZW50Q2hpbGQxIG9mIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChpZCAhPT0gY3VycmVudENoaWxkMS5pZCkge1xyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRQYXJlbnROb2RlKGlkLCBjdXJyZW50RmF0aGVyLmNoaWxkcmVuKTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVHJlZURhdGEoKSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhU291cmNlLmRhdGE7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFtdO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Tm9kZUljb24obm9kZTogVHJlZUZsYXROb2RlKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuSWNvbiAmJiB0aGlzLmNsb3NlSWNvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gdGhpcy5vcGVuSWNvbiA6IHRoaXMuY2xvc2VJY29uO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0aGlzLm1vZHVsZUlkKSB7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgICAgICBjb25zdCBub2RlRGF0YSA9IHRoaXMudHJlZURhdGEuZmlsdGVyKHggPT4geyByZXR1cm4geC5yb290SWQgPT09IG5vZGUuaWQ7IH0pO1xyXG4gICAgICAgIGlmIChub2RlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBzd2l0Y2ggKG5vZGVEYXRhWzBdLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2RlcGFydG1lbnRfZm9sZGVyX291dGxpbmVkJyA6ICdkZXBhcnRtZW50X2ZvbGRlcic7XHJcbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5SZWdpb25hbEZvbGRlcjpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ3JlZ2lvbmFsX2ZvbGRlcl9vdXRsaW5lZCcgOiAncmVnaW9uYWxfZm9sZGVyJztcclxuICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLlRvcEZvbGRlcjpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2VudGVycHJpc2VfZm9sZGVyX291dGxpbmVkJyA6ICdlbnRlcnByaXNlX2ZvbGRlcic7XHJcbiAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Gb2xkZXI6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdsb2NhbF9mb2xkZXJfb3V0bGluZWQnIDogJ2xvY2FsX2ZvbGRlcic7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/ICdmb2xkZXJfb3V0bGluZWQnIDogJ2ZvbGRlcic7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAna2V5Ym9hcmRfdXAnIDogJ2tleWJvYXJkX2Rvd24nO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcclxuICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ3Byb2Nlc3NfYXJlYV9vdXRsaW5lZCcgOiAncHJvY2Vzc19hcmVhJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdGhpcy50cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2tleWJvYXJkX3VwJyA6ICdrZXlib2FyZF9kb3duJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEl0ZW1JY29uKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZHVsZUlkKSB7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6XHJcbiAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUucHJvY2VzczpcclxuICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgICBjYXNlIERhdGFUeXBlLmNoZWNrbGlzdDpcclxuICAgICAgICByZXR1cm4gJ2NoZWNrbGlzdCc7XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuZGV2aWF0aW9uOlxyXG4gICAgICAgIHJldHVybiAnZGV2aWF0aW9uJztcclxuICAgICAgY2FzZSBEYXRhVHlwZS5yaXNrOlxyXG4gICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/model/en.js
CHANGED
@@ -38,6 +38,7 @@ export const en = {
|
|
38
38
|
"MUST_BE_EVALUATED": "Must be evaluated",
|
39
39
|
"ACCEPTED": "Accepted",
|
40
40
|
"ARCHIVED": "Archived",
|
41
|
+
"CAUSE": "Cause",
|
41
42
|
"ERROR": {
|
42
43
|
"SELECT_DANGER": "You must select one or more events"
|
43
44
|
},
|
@@ -105,4 +106,4 @@ export const en = {
|
|
105
106
|
"CONFIRM_CHANGE_TEMPLATE": "Are you sure you want to apply this template to the editor?"
|
106
107
|
}
|
107
108
|
};
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsY0FBYztJQUM5QixhQUFhLEVBQUUsTUFBTTtJQUNyQixlQUFlLEVBQUUsUUFBUTtJQUN6Qix3QkFBd0IsRUFBRSxnQ0FBZ0M7SUFDMUQsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLE1BQU07SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsTUFBTTtJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxXQUFXLEVBQUUsV0FBVztJQUN4QixzQkFBc0IsRUFBRSwwQ0FBMEM7SUFDbEUsMkJBQTJCLEVBQUUsMkJBQTJCO0lBQ3hELGtCQUFrQixFQUFFLHFCQUFxQjtJQUN6QyxRQUFRLEVBQUUsUUFBUTtJQUNsQixXQUFXLEVBQUUsV0FBVztJQUN4QixXQUFXLEVBQUUsV0FBVztJQUN4QixXQUFXLEVBQUUsWUFBWTtJQUN6QixXQUFXLEVBQUUsWUFBWTtJQUN6QixZQUFZLEVBQUUsYUFBYTtJQUMzQixLQUFLLEVBQUUsS0FBSztJQUNaLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGVBQWUsRUFBRSx3REFBd0Q7SUFDekUsZUFBZSxFQUFFLGlGQUFpRjtJQUNsRyxpQkFBaUIsRUFBRSxzQkFBc0I7SUFDekMsVUFBVSxFQUFFLFVBQVU7SUFDdEIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsYUFBYSxFQUFFLGFBQWE7SUFDNUIsY0FBYyxFQUFFLGNBQWM7SUFDOUIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsZ0JBQWdCLEVBQUUsZ0JBQWdCO0lBQ2xDLG9CQUFvQixFQUFFLFlBQVk7SUFDbEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGNBQWMsRUFBRSxjQUFjO0lBQzlCLG1CQUFtQixFQUFFLG1CQUFtQjtJQUN4QyxVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsT0FBTztJQUNoQixPQUFPLEVBQUU7UUFDUCxlQUFlLEVBQUUsb0NBQW9DO0tBQ3REO0lBQ0QsU0FBUyxFQUFFLEVBRVY7SUFFRCxhQUFhLEVBQUU7UUFDYixVQUFVLEVBQUUsVUFBVTtRQUN0QixrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMscUJBQXFCLEVBQUUsc0JBQXNCO1FBQzdDLGlCQUFpQixFQUFFLGtCQUFrQjtRQUNyQyxPQUFPLEVBQUUsT0FBTztRQUNoQixhQUFhLEVBQUUsYUFBYTtRQUM1QixNQUFNLEVBQUUsTUFBTTtRQUNkLGlCQUFpQixFQUFFLGtEQUFrRDtRQUNyRSxpQkFBaUIsRUFBRSx5QkFBeUI7UUFDNUMsT0FBTyxFQUFFLE9BQU87UUFDaEIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsZUFBZSxFQUFFLGVBQWU7UUFDaEMsaUJBQWlCLEVBQUUsaUJBQWlCO1FBQ3BDLGlCQUFpQixFQUFFLGlCQUFpQjtRQUNwQyxRQUFRLEVBQUUsUUFBUTtRQUNsQixNQUFNLEVBQUUsTUFBTTtRQUNkLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLHFCQUFxQixFQUFFLDRCQUE0QjtRQUNuRCxZQUFZLEVBQUUsT0FBTztRQUNyQixzQkFBc0IsRUFBRSwwQkFBMEI7UUFDbEQsUUFBUSxFQUFFLFFBQVE7UUFDbEIsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxnQkFBZ0IsRUFBRSx1QkFBdUI7UUFDekMsYUFBYSxFQUFFLHFCQUFxQjtRQUNwQyxlQUFlLEVBQUUseUJBQXlCO1FBQzFDLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGdCQUFnQixFQUFFLFVBQVU7UUFDNUIsY0FBYyxFQUFFLFFBQVE7UUFDeEIsY0FBYyxFQUFFLFNBQVM7UUFDekIsZ0JBQWdCLEVBQUUsU0FBUztRQUMzQixnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsVUFBVSxFQUFFLFdBQVc7UUFDdkIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsSUFBSSxFQUFFLElBQUk7UUFDVixZQUFZLEVBQUUsaUJBQWlCO1FBQy9CLG9CQUFvQixFQUFFLGtCQUFrQjtRQUN4QyxnQkFBZ0IsRUFBRSxnQkFBZ0I7UUFDbEMsY0FBYyxFQUFFLG1CQUFtQjtRQUNuQyxlQUFlLEVBQUUsU0FBUztRQUMxQixlQUFlLEVBQUUsU0FBUztRQUMxQixZQUFZLEVBQUUsTUFBTTtRQUNwQixtQkFBbUIsRUFBRSxhQUFhO1FBQ2xDLHlCQUF5QixFQUFFLGtCQUFrQjtRQUM3QyxzQkFBc0IsRUFBRSx1QkFBdUI7UUFDL0MsY0FBYyxFQUFFLGNBQWM7UUFDOUIsS0FBSyxFQUFFLEtBQUs7UUFDWixXQUFXLEVBQUUsV0FBVztRQUN4QixXQUFXLEVBQUUsV0FBVztRQUN4QixRQUFRLEVBQUUsUUFBUTtRQUNsQixVQUFVLEVBQUUsVUFBVTtRQUN0QixTQUFTLEVBQUUsU0FBUztRQUNwQixRQUFRLEVBQUUsUUFBUTtLQUNuQjtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLHlCQUF5QixFQUFFLGdEQUFnRDtRQUMzRSx5QkFBeUIsRUFBRSw2REFBNkQ7S0FDekY7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVuID0ge1xyXG4gIFwiTVlfQ09NUE9ORU5UXCI6IFwiTXkgY29tcG9uZW50XCIsXHJcbiAgXCJTQVZFX0JVVFRPTlwiOiBcIlNhdmVcIixcclxuICBcIkNBTkNFTF9CVVRUT05cIjogXCJDYW5jZWxcIixcclxuICBcIkRFTEVURV9NRVNTQUdFX0NPTU1FTlRcIjogXCJUaGlzIG1lc3NhZ2UgaGFzIGJlZW4gZGVsZXRlZC5cIixcclxuICBcIlJFR1JFVFwiOiBcIlJlZ3JldFwiLFxyXG4gIFwiRURJVFwiOiBcIkVkaXRcIixcclxuICBcIkRFTEVURVwiOiBcIkRlbGV0ZVwiLFxyXG4gIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gIFwiRURJVF9GSUxFX05BTUVcIjogXCJFZGl0IGZpbGUgbmFtZVwiLFxyXG4gIFwiRklMRV9OQU1FXCI6IFwiRmlsZSBuYW1lXCIsXHJcbiAgXCJVUExPQURfTEVBVkVfV0FSTklOR1wiOiBcIkZpbGVzIHlvdSdyZSB1cGxvYWRpbmcgbWF5IG5vdCBiZSBzYXZlZC5cIixcclxuICBcIlNPTUVfRklMRVNfV0VSRV9OT1RfQURERURcIjogXCJTb21lIGZpbGVzIHdlcmUgbm90IGFkZGVkXCIsXHJcbiAgXCJZT1VfQ0FOX09OTFlfQUREXCI6IFwiWW91IGNhbiBvbmx5IHVwbG9hZFwiLFxyXG4gIFwiU0VMRUNUXCI6IFwiU2VsZWN0XCIsXHJcbiAgXCJQUk9DRVNTRVNcIjogXCJQcm9jZXNzZXNcIixcclxuICBcIkRPQ1VNRU5UU1wiOiBcIkRvY3VtZW50c1wiLFxyXG4gIFwiREVWSUFUSU9OXCI6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gIFwiQ0hFQ0tMSVNUXCI6IFwiQ2hlY2tsaXN0c1wiLFxyXG4gIFwiQVNTRVNTTUVOVFwiOiBcIkFzc2Vzc21lbnRzXCIsXHJcbiAgXCJBRERcIjogXCJBZGRcIixcclxuICBcIlNFQVJDSFwiOiBcIlNlYXJjaFwiLFxyXG4gIFwiUkVHVUxBUl9USVRMRVwiOiBcIldoYXQgZG8geW91IHdhbnQgdG8gaW5jbHVkZSBpbiB0aGUgcmlzayBhc3Nlc3NtZW50KHMpP1wiLFxyXG4gIFwiQ0FQVElPTl9USVRMRVwiOiBcIkluIGNhdXNhbCBhc3Nlc3NtZW50cywgYWxsIGNhdXNlcyByZWxhdGVkIHRvIHRoZSBldmVudCBhcmUgYXV0b21hdGljYWxseSBhZGRlZC5cIixcclxuICBcIkNBVVNBTF9BTkFMWVpFU1wiOiBcIlNlbGVjdGVkIEFzc2Vzc21lbnRzXCIsXHJcbiAgXCJGSU5JU0hFRFwiOiBcIkZpbmlzaGVkXCIsXHJcbiAgXCJQUk9DRVNTX0lEXCI6IFwiUHJvY2VzcyBJRFwiLFxyXG4gIFwiRE9DVU1FTlRfSURcIjogXCJEb2N1bWVudCBJRFwiLFxyXG4gIFwiUFJPQ0VTU19BUkVBXCI6IFwiUHJvY2VzcyBhcmVhXCIsXHJcbiAgXCJGT0xERVJcIjogXCJGb2xkZXJcIixcclxuICBcIkRFVklBVElPTl9UWVBFXCI6IFwiRGV2aWF0aW9uIHR5cGVcIixcclxuICBcIkNIRUNLTElTVF9DQVRFR09SWVwiOiBcIkNhdGVnb3JpZXNcIixcclxuICBcIkVWRU5UXCI6IFwiRXZlbnRcIixcclxuICBcIkFSRUFfT0ZfSU1QQUNUXCI6IFwiQ29uc2VxdWVuY2UgQXJlYVwiLFxyXG4gIFwiUkVTVUxUXCI6IFwiUmVzdWx0XCIsXHJcbiAgXCJOT1RfQUNDRVBURURcIjogXCJOb3QgYWNjZXB0ZWRcIixcclxuICBcIk1VU1RfQkVfRVZBTFVBVEVEXCI6IFwiTXVzdCBiZSBldmFsdWF0ZWRcIixcclxuICBcIkFDQ0VQVEVEXCI6IFwiQWNjZXB0ZWRcIixcclxuICBcIkFSQ0hJVkVEXCI6IFwiQXJjaGl2ZWRcIixcclxuICBcIkNBVVNFXCI6IFwiQ2F1c2VcIixcclxuICBcIkVSUk9SXCI6IHtcclxuICAgIFwiU0VMRUNUX0RBTkdFUlwiOiBcIllvdSBtdXN0IHNlbGVjdCBvbmUgb3IgbW9yZSBldmVudHNcIlxyXG4gIH0sXHJcbiAgXCJNRVNTQUdFXCI6IHtcclxuXHJcbiAgfVxyXG4gICxcclxuICBcIlFNU0NLRURJVE9SXCI6IHtcclxuICAgIFwiVEVNUExBVEVcIjogXCJUZW1wbGF0ZVwiLFxyXG4gICAgXCJDT05URU5UX1RFTVBMQVRFXCI6IFwiQ29udGVudCBUZW1wbGF0ZVwiLFxyXG4gICAgXCJDUkVBVEVfTkVXX1RFTVBMQVRFXCI6IFwiQ3JlYXRlIG5ldyB0ZW1wcGxhdGVcIixcclxuICAgIFwiVVBEQVRFX1RFTVBMQVRFXCI6IFwiVXBkYXRlIHRlbXBwbGF0ZVwiLFxyXG4gICAgXCJUSVRMRVwiOiBcIlRpdGxlXCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiRGVzY3JpcHRpb25cIixcclxuICAgIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICAgIFwiQ0hPT1NFX1RFTVBMQVRFXCI6IFwiUGxlYXNlIHNlbGVjdCB0aGUgdGVtcGxhdGUgdG8gb3BlbiBpbiB0aGUgZWRpdG9yXCIsXHJcbiAgICBcIlJFUExBQ0VfQ09OVEVOVFwiOiBcIlJlcGxhY2UgYWN0dWFsIGNvbnRlbnRzXCIsXHJcbiAgICBcIlNBVkVEXCI6IFwiU2F2ZWRcIixcclxuICAgIFwiU0FWRV9GQUlMRURcIjogXCJTYXZlIGZhaWxlZFwiLFxyXG4gICAgXCJERUxFVEVcIjogXCJEZWxldGVcIixcclxuICAgIFwiREVMRVRFRFwiOiBcIkRlbGV0ZWRcIixcclxuICAgIFwiREVMRVRFX0ZBSUxFRFwiOiBcIkRlbGV0ZSBmYWlsZWRcIixcclxuICAgIFwiREVMRVRFX1RFTVBMQVRFXCI6IFwiRGVsZXRlIHRlbXBsYXRlXCIsXHJcbiAgICBcIkNIQU5HRV9URU1QTEFURVwiOiBcIkNoYW5nZSB0ZW1wbGF0ZVwiLFxyXG4gICAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICAgIFwiTElOS1wiOiBcIkxpbmtcIixcclxuICAgIFwiTElOS19UWVBFXCI6IFwiTGluayB0eXBlXCIsXHJcbiAgICBcIkxJTktfVVJMXCI6IFwiVVJMXCIsXHJcbiAgICBcIkxJTktfQU5DSE9SX0lOX1RFWFRcIjogXCJMaW5rIHRvIGFuY2hvciBpbiB0aGUgdGV4dFwiLFxyXG4gICAgXCJMSU5LX0VNQUlMXCI6IFwiRW1haWxcIixcclxuICAgIFwiTElOS19BTkNIT1JfRE9DVU1FTlRcIjogXCJBbmNob3IgaW4gb3RoZXIgZG9jdW1lbnRcIixcclxuICAgIFwiVEFSR0VUXCI6IFwiVGFyZ2V0XCIsXHJcbiAgICBcIlRBUlRHRVRfTkVXXCI6IFwiTmV3IFdpbmRvdyAoX2JsYW5rKVwiLFxyXG4gICAgXCJUQVJHRVRfVE9QTU9TVFwiOiBcIlRvcG1vc3QgV2luZG93IChfdG9wKVwiLFxyXG4gICAgXCJUQVJHRVRfU0FNRVwiOiBcIlNhbWUgV2luZG93IChfc2VsZilcIixcclxuICAgIFwiVEFSR0VUX1BBUkVOVFwiOiBcIlBhcmVudCBXaW5kb3cgKF9wYXJlbnQpXCIsXHJcbiAgICBcIlBST1RPQ09MXCI6IFwiUHJvdG9jb2xcIixcclxuICAgIFwiUFJPVE9DT0xfSFRUUFwiOiBcImh0dHA6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfSFRUUFNcIjogXCJodHRwczovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9GVFBcIjogXCJmdHA6Ly9cIixcclxuICAgIFwiUFJPVE9DT0xfTkVXXCI6IFwibmV3czovL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9PVEhFUlwiOiBcIjxvdGhlcj5cIixcclxuICAgIFwiQURWSVNPUllfVElUTEVcIjogXCJBZHZpc29yeSBUaXRsZVwiLFxyXG4gICAgXCJIQU5EQk9PS1wiOiBcImVIYW5kYm9va1wiLFxyXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudFwiLFxyXG4gICAgXCJPS1wiOiBcIk9rXCIsXHJcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwgaW5mb3JtYXRpb25cIixcclxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiU2VsZWN0IGFuIEFuY2hvclwiLFxyXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFuY2hvciBieSBuYW1lXCIsXHJcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkVtYWlsIGluZm9ybWF0aW9uXCIsXHJcbiAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICBcIkVNQUlMX1NVQkpFQ1RcIjogXCJTdWJqZWN0XCIsXHJcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJCb2R5XCIsXHJcbiAgICBcIkFOQ0hPUl9BVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudHNcIixcclxuICAgIFwiQU5DSE9SX1JFTEFURURfRE9DVU1FTlRcIjogXCJSZWxhdGVkIGRvY3VtZW50XCIsXHJcbiAgICBcIkFERF9ET0NVTUVOVF9QUk9DRVNTXCI6IFwiQWRkIGRvY3VtZW50LyBwcm9jZXNzXCIsXHJcbiAgICBcIkFERF9ET0NVTUVOVFwiOiBcIkFkZCBkb2N1bWVudFwiLFxyXG4gICAgXCJBRERcIjogXCJBZGRcIixcclxuICAgIFwiUFJPQ0VTU0VTXCI6IFwiUHJvY2Vzc2VzXCIsXHJcbiAgICBcIkRPQ1VNRU5UU1wiOiBcIkRvY3VtZW50c1wiLFxyXG4gICAgXCJVUERBVEVcIjogXCJVcGRhdGVcIixcclxuICAgIFwiRE9DVU1FTlRcIjogXCJEb2N1bWVudFwiLFxyXG4gICAgXCJDT05GSVJNXCI6IFwiQ29uZmlybVwiLFxyXG4gICAgXCJTRUFSQ0hcIjogXCJTZWFyY2hcIixcclxuICB9LFxyXG4gIFwiUU1TQ0tFRElUT1JfTUVTU0FHRVwiOiB7XHJcbiAgICBcIkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFXCI6IFwiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHRlbXBsYXRlP1wiLFxyXG4gICAgXCJDT05GSVJNX0NIQU5HRV9URU1QTEFURVwiOiBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhcHBseSB0aGlzIHRlbXBsYXRlIHRvIHRoZSBlZGl0b3I/XCJcclxuICB9XHJcbn1cclxuIl19
|
package/esm2015/lib/model/no.js
CHANGED
@@ -38,6 +38,7 @@ export const no = {
|
|
38
38
|
"MUST_BE_EVALUATED": "Må vurderes",
|
39
39
|
"ACCEPTED": "Akseptert",
|
40
40
|
"ARCHIVED": "Arkivert",
|
41
|
+
"CAUSE": "Årsak",
|
41
42
|
"ERROR": {
|
42
43
|
"SELECT_DANGER": "Du må velge en eller flere hendelser"
|
43
44
|
},
|
@@ -105,4 +106,4 @@ export const no = {
|
|
105
106
|
"CONFIRM_CHANGE_TEMPLATE": "Er du sikker på at du vil bruke denne malen på redaktøren?"
|
106
107
|
}
|
107
108
|
};
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL21vZGVsL25vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsZUFBZTtJQUMvQixhQUFhLEVBQUUsT0FBTztJQUN0QixlQUFlLEVBQUUsUUFBUTtJQUN6Qix3QkFBd0IsRUFBRSw2QkFBNkI7SUFDdkQsUUFBUSxFQUFFLE9BQU87SUFDakIsTUFBTSxFQUFFLFNBQVM7SUFDakIsUUFBUSxFQUFFLE9BQU87SUFDakIsTUFBTSxFQUFFLE9BQU87SUFDZixRQUFRLEVBQUUsUUFBUTtJQUNsQixnQkFBZ0IsRUFBRSxpQkFBaUI7SUFDbkMsV0FBVyxFQUFFLFNBQVM7SUFDdEIsc0JBQXNCLEVBQUUsa0RBQWtEO0lBQzFFLDJCQUEyQixFQUFFLDhCQUE4QjtJQUMzRCxrQkFBa0IsRUFBRSxzQkFBc0I7SUFDMUMsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsV0FBVyxFQUFFLFlBQVk7SUFDekIsV0FBVyxFQUFFLFlBQVk7SUFDekIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsWUFBWSxFQUFFLFVBQVU7SUFDeEIsS0FBSyxFQUFFLFVBQVU7SUFDakIsUUFBUSxFQUFFLEtBQUs7SUFDZixlQUFlLEVBQUUsNERBQTREO0lBQzdFLGVBQWUsRUFBRSwrRUFBK0U7SUFDaEcsaUJBQWlCLEVBQUUsaUJBQWlCO0lBQ3BDLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFlBQVksRUFBRSxZQUFZO0lBQzFCLGFBQWEsRUFBRSxhQUFhO0lBQzVCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsUUFBUSxFQUFFLE9BQU87SUFDakIsZ0JBQWdCLEVBQUUsVUFBVTtJQUM1QixvQkFBb0IsRUFBRSxZQUFZO0lBQ2xDLE9BQU8sRUFBRSxVQUFVO0lBQ25CLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxRQUFRLEVBQUUsVUFBVTtJQUNwQixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLG1CQUFtQixFQUFFLGFBQWE7SUFDbEMsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsT0FBTyxFQUFFO1FBQ1AsZUFBZSxFQUFFLHNDQUFzQztLQUN4RDtJQUNELFNBQVMsRUFBRSxFQUVWO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsVUFBVSxFQUFFLEtBQUs7UUFDakIsa0JBQWtCLEVBQUUsYUFBYTtRQUNqQyxxQkFBcUIsRUFBRSxZQUFZO1FBQ25DLGlCQUFpQixFQUFFLGNBQWM7UUFDakMsT0FBTyxFQUFFLFFBQVE7UUFDakIsYUFBYSxFQUFFLGFBQWE7UUFDNUIsTUFBTSxFQUFFLE9BQU87UUFDZixpQkFBaUIsRUFBRSxnREFBZ0Q7UUFDbkUsaUJBQWlCLEVBQUUseUJBQXlCO1FBQzVDLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsUUFBUSxFQUFFLE9BQU87UUFDakIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxpQkFBaUIsRUFBRSxXQUFXO1FBQzlCLGlCQUFpQixFQUFFLFdBQVc7UUFDOUIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsTUFBTSxFQUFFLE1BQU07UUFDZCxXQUFXLEVBQUUsY0FBYztRQUMzQixVQUFVLEVBQUUsS0FBSztRQUNqQixxQkFBcUIsRUFBRSwyQkFBMkI7UUFDbEQsWUFBWSxFQUFFLFFBQVE7UUFDdEIsc0JBQXNCLEVBQUUsd0JBQXdCO1FBQ2hELFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGFBQWEsRUFBRSxxQkFBcUI7UUFDcEMsZ0JBQWdCLEVBQUUsNEJBQTRCO1FBQzlDLGFBQWEsRUFBRSxvQkFBb0I7UUFDbkMsZUFBZSxFQUFFLDRCQUE0QjtRQUM3QyxVQUFVLEVBQUUsVUFBVTtRQUN0QixlQUFlLEVBQUUsVUFBVTtRQUMzQixnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGNBQWMsRUFBRSxhQUFhO1FBQzdCLGdCQUFnQixFQUFFLFNBQVM7UUFDM0IsZ0JBQWdCLEVBQUUsbUJBQW1CO1FBQ3JDLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFlBQVksRUFBRSxZQUFZO1FBQzFCLElBQUksRUFBRSxJQUFJO1FBQ1YsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixvQkFBb0IsRUFBRSxlQUFlO1FBQ3JDLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxjQUFjLEVBQUUsbUJBQW1CO1FBQ25DLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLFlBQVksRUFBRSxPQUFPO1FBQ3JCLG1CQUFtQixFQUFFLFNBQVM7UUFDOUIseUJBQXlCLEVBQUUsb0JBQW9CO1FBQy9DLHNCQUFzQixFQUFFLDZCQUE2QjtRQUNyRCxjQUFjLEVBQUUsbUJBQW1CO1FBQ25DLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLFFBQVEsRUFBRSxLQUFLO0tBQ2hCO0lBQ0QscUJBQXFCLEVBQUU7UUFDckIseUJBQXlCLEVBQUUsK0NBQStDO1FBQzFFLHlCQUF5QixFQUFFLDREQUE0RDtLQUN4RjtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgbm8gPSB7XHJcbiAgXCJNWV9DT01QT05FTlRcIjogXCJNaW4ga29tcG9uZW50XCIsXHJcbiAgXCJTQVZFX0JVVFRPTlwiOiBcIkxhZ3JlXCIsXHJcbiAgXCJDQU5DRUxfQlVUVE9OXCI6IFwiQXZicnl0XCIsXHJcbiAgXCJERUxFVEVfTUVTU0FHRV9DT01NRU5UXCI6IFwiRGVubmUgbWVsZGluZ2VuIGVyIHNsZXR0ZXQuXCIsXHJcbiAgXCJSRUdSRVRcIjogXCJBbmdyZVwiLFxyXG4gIFwiRURJVFwiOiBcIlJlZGlnZXJcIixcclxuICBcIkRFTEVURVwiOiBcIlNsZXR0XCIsXHJcbiAgXCJTQVZFXCI6IFwiTGFncmVcIixcclxuICBcIkNBTkNFTFwiOiBcIkF2YnJ5dFwiLFxyXG4gIFwiRURJVF9GSUxFX05BTUVcIjogXCJSZWRpZ2VyIGZpbG5hdm5cIixcclxuICBcIkZJTEVfTkFNRVwiOiBcIkZpbG5hdm5cIixcclxuICBcIlVQTE9BRF9MRUFWRV9XQVJOSU5HXCI6IFwiRmlsZW5lIGR1IGxhc3RlciBvcHAgdmlsIGthbnNramUgaWtrZSBibGkgbGFncmV0XCIsXHJcbiAgXCJTT01FX0ZJTEVTX1dFUkVfTk9UX0FEREVEXCI6IFwiTm9lbiBmaWxlciBibGUgaWtrZSBsYWd0IHRpbFwiLFxyXG4gIFwiWU9VX0NBTl9PTkxZX0FERFwiOiBcIkR1IGthbiBrdW4gbGFzdGUgb3BwXCIsXHJcbiAgXCJTRUxFQ1RcIjogXCJWZWxnXCIsXHJcbiAgXCJQUk9DRVNTRVNcIjogXCJQcm9zZXNzZXJcIixcclxuICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50ZXJcIixcclxuICBcIkRFVklBVElPTlwiOiBcIkthdGVnb3JpZXJcIixcclxuICBcIkNIRUNLTElTVFwiOiBcIlNqZWtrbGlzdGVyXCIsXHJcbiAgXCJBU1NFU1NNRU5UXCI6IFwiQW5hbHlzZXJcIixcclxuICBcIkFERFwiOiBcIkxlZ2cgdGlsXCIsXHJcbiAgXCJTRUFSQ0hcIjogXCJTw7hrXCIsXHJcbiAgXCJSRUdVTEFSX1RJVExFXCI6IFwiSHZhIMO4bnNrZXIgZHUgw6UgaW5rbHVkZXJlIGF2IGhlbmRlbGVyIGkgcmlzaWtvYW5hbHlzZW4oZSk/XCIsXHJcbiAgXCJDQVBUSU9OX1RJVExFXCI6IFwiSSDDpXJzYWtzYW5hbHlzZXIgYmxpciBhdXRvbWF0aXNrIGFsbGUgw6Vyc2FrZXIga255dHRldCB0aWwgaGVuZGVsc2VuIGxhZ3QgdGlsLlwiLFxyXG4gIFwiQ0FVU0FMX0FOQUxZWkVTXCI6IFwiVmFsZ3RlIEFuYWx5c2VyXCIsXHJcbiAgXCJGSU5JU0hFRFwiOiBcIkZlcmRpZ1wiLFxyXG4gIFwiUFJPQ0VTU19JRFwiOiBcIlByb3Nlc3MgSURcIixcclxuICBcIkRPQ1VNRU5UX0lEXCI6IFwiRG9rdW1lbnQgSURcIixcclxuICBcIlBST0NFU1NfQVJFQVwiOiBcIlByb3Nlc3NvbXLDpWRlclwiLFxyXG4gIFwiRk9MREVSXCI6IFwiTWFwcGVcIixcclxuICBcIkRFVklBVElPTl9UWVBFXCI6IFwiU2Frc3R5cGVcIixcclxuICBcIkNIRUNLTElTVF9DQVRFR09SWVwiOiBcIkthdGVnb3JpZXJcIixcclxuICBcIkVWRU5UXCI6IFwiSGVuZGVsc2VcIixcclxuICBcIkFSRUFfT0ZfSU1QQUNUXCI6IFwiS29uc2VrdmVuc29tcsOlZGVcIixcclxuICBcIlJFU1VMVFwiOiBcIlJlc3VsdGF0XCIsXHJcbiAgXCJOT1RfQUNDRVBURURcIjogXCJJa2tlIGFrc2VwdGVydFwiLFxyXG4gIFwiTVVTVF9CRV9FVkFMVUFURURcIjogXCJNw6UgdnVyZGVyZXNcIixcclxuICBcIkFDQ0VQVEVEXCI6IFwiQWtzZXB0ZXJ0XCIsXHJcbiAgXCJBUkNISVZFRFwiOiBcIkFya2l2ZXJ0XCIsXHJcbiAgXCJDQVVTRVwiOiBcIsOFcnNha1wiLFxyXG4gIFwiRVJST1JcIjoge1xyXG4gICAgXCJTRUxFQ1RfREFOR0VSXCI6IFwiRHUgbcOlIHZlbGdlIGVuIGVsbGVyIGZsZXJlIGhlbmRlbHNlclwiXHJcbiAgfSxcclxuICBcIk1FU1NBR0VcIjoge1xyXG5cclxuICB9LFxyXG4gIFwiUU1TQ0tFRElUT1JcIjoge1xyXG4gICAgXCJURU1QTEFURVwiOiBcIk1hbFwiLFxyXG4gICAgXCJDT05URU5UX1RFTVBMQVRFXCI6IFwiSW5uaG9sZHNtYWxcIixcclxuICAgIFwiQ1JFQVRFX05FV19URU1QTEFURVwiOiBcIkxhZyBueSBtYWxcIixcclxuICAgIFwiVVBEQVRFX1RFTVBMQVRFXCI6IFwiT3BwZGF0ZXIgbWFsXCIsXHJcbiAgICBcIlRJVExFXCI6IFwiVGl0dGVsXCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiQmVza3JpdmVsc2VcIixcclxuICAgIFwiU0FWRVwiOiBcIkxhZ3JlXCIsXHJcbiAgICBcIkNIT09TRV9URU1QTEFURVwiOiBcIlZlbGcgbWFsZW4gZHUgdmlsIMOlcG5lIGkgcmVkaWdlcmluZ3Nwcm9ncmFtbWV0XCIsXHJcbiAgICBcIlJFUExBQ0VfQ09OVEVOVFwiOiBcIkJ5dHQgdXQgZmFrdGlzayBpbm5ob2xkXCIsXHJcbiAgICBcIlNBVkVEXCI6IFwiTGFncmV0XCIsXHJcbiAgICBcIlNBVkVfRkFJTEVEXCI6IFwiTGFncmluZ2VuIG1pc2x5a3Rlc1wiLFxyXG4gICAgXCJERUxFVEVcIjogXCJTbGV0dFwiLFxyXG4gICAgXCJERUxFVEVEXCI6IFwiU2xldHRldFwiLFxyXG4gICAgXCJERUxFVEVfRkFJTEVEXCI6IFwiU2xldHRpbmcgbWlzbHlrdGVzXCIsXHJcbiAgICBcIkRFTEVURV9URU1QTEFURVwiOiBcIlNsZXR0IG1hbFwiLFxyXG4gICAgXCJDSEFOR0VfVEVNUExBVEVcIjogXCJFbmRyZSBtYWxcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQXZicnl0XCIsXHJcbiAgICBcIkxJTktcIjogXCJMaW5rXCIsXHJcbiAgICBcIkxJTktfVFlQRVwiOiBcIktvYmxpbmdzdHlwZVwiLFxyXG4gICAgXCJMSU5LX1VSTFwiOiBcIlVSTFwiLFxyXG4gICAgXCJMSU5LX0FOQ0hPUl9JTl9URVhUXCI6IFwiTGVua2UgdGlsIGFua2VyIGkgdGVrc3RlblwiLFxyXG4gICAgXCJMSU5LX0VNQUlMXCI6IFwiRS1wb3N0XCIsXHJcbiAgICBcIkxJTktfQU5DSE9SX0RPQ1VNRU5UXCI6IFwiQW5rZXIgaSBhbm5ldCBkb2t1bWVudFwiLFxyXG4gICAgXCJUQVJHRVRcIjogXCJUYXJnZXRcIixcclxuICAgIFwiVEFSVEdFVF9ORVdcIjogXCJOeXR0IHZpbmR1IChfYmxhbmspXCIsXHJcbiAgICBcIlRBUkdFVF9UT1BNT1NUXCI6IFwiRGV0IMO4dmVyc3RlIHZpbmR1ZXQgKF90b3ApXCIsXHJcbiAgICBcIlRBUkdFVF9TQU1FXCI6IFwiU2FtbWUgdmluZHUgKHNlbHYpXCIsXHJcbiAgICBcIlRBUkdFVF9QQVJFTlRcIjogXCJPdmVyb3JkbmV0IHZpbmR1IChfcGFyZW50KVwiLFxyXG4gICAgXCJQUk9UT0NPTFwiOiBcIlByb3RvY29sXCIsXHJcbiAgICBcIlBST1RPQ09MX0hUVFBcIjogXCJodHRwOiAvL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9IVFRQU1wiOiBcImh0dHBzOiAvL1wiLFxyXG4gICAgXCJQUk9UT0NPTF9GVFBcIjogXCJmdHA6IC8vXCIsXHJcbiAgICBcIlBST1RPQ09MX05FV1wiOiBcIm55aGV0ZXI6IC8vXCIsXHJcbiAgICBcIlBST1RPQ09MX09USEVSXCI6IFwiPG90aGVyPlwiLFxyXG4gICAgXCJBRFZJU09SWV9USVRMRVwiOiBcIlLDpWRnaXZlbmRlIHRpdHRlbFwiLFxyXG4gICAgXCJIQU5EQk9PS1wiOiBcImVIYW5kYm9va1wiLFxyXG4gICAgXCJBVFRBQ0hNRU5UXCI6IFwiQXR0YWNobWVudFwiLFxyXG4gICAgXCJPS1wiOiBcIk9LXCIsXHJcbiAgICBcIlVSTF9IRUFERVJcIjogXCJVUkwtaW5mb3JtYXNqb25cIixcclxuICAgIFwiQU5DSE9SX1RFWFRfSEVBREVSXCI6IFwiVmVsZyBldCBhbmtlclwiLFxyXG4gICAgXCJBTkNIT1JfQllfTkFNRVwiOiBcIkFua2VyIHZlZCBuYXZuXCIsXHJcbiAgICBcIkVNQUlMX0hFQURFUlwiOiBcIkUtcG9zdGluZm9ybWFzam9uXCIsXHJcbiAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJBZHJlc3NlXCIsXHJcbiAgICBcIkVNQUlMX1NVQkpFQ1RcIjogXCJFbW5lXCIsXHJcbiAgICBcIkVNQUlMX0JPRFlcIjogXCJLcm9wcFwiLFxyXG4gICAgXCJBTkNIT1JfQVRUQUNITUVOVFwiOiBcIlZlZGxlZ2dcIixcclxuICAgIFwiQU5DSE9SX1JFTEFURURfRE9DVU1FTlRcIjogXCJCZXNsZWt0ZXQgZG9rdW1lbnRcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UX1BST0NFU1NcIjogXCJMZWdnIHRpbCBkb2t1bWVudCAvIHByb3Nlc3NcIixcclxuICAgIFwiQUREX0RPQ1VNRU5UXCI6IFwiTGVnZyB0aWwgZG9rdW1lbnRcIixcclxuICAgIFwiQUREXCI6IFwiTGVnZyB0aWxcIixcclxuICAgIFwiUFJPU0VTU0VSXCI6IFwiUHJvc2Vzc2VyXCIsXHJcbiAgICBcIkRPQ1VNRU5UU1wiOiBcIkRva3VtZW50ZXJcIixcclxuICAgIFwiVVBEQVRFXCI6IFwiT3BwZGF0ZXJcIixcclxuICAgIFwiRE9DVU1FTlRcIjogXCJEb2t1bWVudFwiLFxyXG4gICAgXCJDT05GSVJNXCI6IFwiQmVrcmVmdFwiLFxyXG4gICAgXCJTRUFSQ0hcIjogXCJTw7hrXCIsXHJcbiAgfSxcclxuICBcIlFNU0NLRURJVE9SX01FU1NBR0VcIjoge1xyXG4gICAgXCJDT05GSVJNX0RFTEVURV9URU1QTEFURVwiOiBcIkVyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBkZW5uZSBtYWxlbj9cIixcclxuICAgIFwiQ09ORklSTV9DSEFOR0VfVEVNUExBVEVcIjogXCJFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBicnVrZSBkZW5uZSBtYWxlbiBww6UgcmVkYWt0w7hyZW4/XCJcclxuICB9XHJcbn1cclxuIl19
|
package/fesm2015/qms-angular.js
CHANGED
@@ -91,6 +91,7 @@ const en = {
|
|
91
91
|
"MUST_BE_EVALUATED": "Must be evaluated",
|
92
92
|
"ACCEPTED": "Accepted",
|
93
93
|
"ARCHIVED": "Archived",
|
94
|
+
"CAUSE": "Cause",
|
94
95
|
"ERROR": {
|
95
96
|
"SELECT_DANGER": "You must select one or more events"
|
96
97
|
},
|
@@ -199,6 +200,7 @@ const no = {
|
|
199
200
|
"MUST_BE_EVALUATED": "Må vurderes",
|
200
201
|
"ACCEPTED": "Akseptert",
|
201
202
|
"ARCHIVED": "Arkivert",
|
203
|
+
"CAUSE": "Årsak",
|
202
204
|
"ERROR": {
|
203
205
|
"SELECT_DANGER": "Du må velge en eller flere hendelser"
|
204
206
|
},
|
@@ -3359,7 +3361,10 @@ class TreeComponent {
|
|
3359
3361
|
this.treeData = [...this.treeData, changes.treeData.currentValue];
|
3360
3362
|
this.initTreeData();
|
3361
3363
|
}
|
3362
|
-
if (changes.selectedData &&
|
3364
|
+
if (changes.selectedData &&
|
3365
|
+
(changes.selectedData.currentValue.length > 0 ||
|
3366
|
+
JSON.stringify(changes.selectedData.currentValue) !==
|
3367
|
+
JSON.stringify(changes.selectedData.previousValue))) {
|
3363
3368
|
this.checkSelected(changes.selectedData.currentValue);
|
3364
3369
|
}
|
3365
3370
|
else {
|
@@ -3544,8 +3549,8 @@ class TreeComponent {
|
|
3544
3549
|
}
|
3545
3550
|
else {
|
3546
3551
|
const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);
|
3547
|
-
this.checkSelectedSameNode(descendants, this.
|
3548
|
-
this.
|
3552
|
+
this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));
|
3553
|
+
!this.descendantsAllSelected(node)
|
3549
3554
|
? this.checklistSelection.select(...descendants)
|
3550
3555
|
: this.checklistSelection.deselect(...descendants);
|
3551
3556
|
this.cdRef.markForCheck();
|
@@ -3921,6 +3926,8 @@ class RelatedPopupComponent {
|
|
3921
3926
|
this.checkedNodeList = this.checkedNodeList.filter(x => (x.id !== item.id || x.parentId !== item.parentId));
|
3922
3927
|
const tempArr = [];
|
3923
3928
|
const tempArrDocument = [];
|
3929
|
+
const newSelectProcessList = [];
|
3930
|
+
const newSelectDocumentList = [];
|
3924
3931
|
this.commonCheckedList.forEach(element => {
|
3925
3932
|
this.checkedNodeList.forEach(x => {
|
3926
3933
|
if (element.id === x.id && element.parentId === x.parentId) {
|
@@ -3928,6 +3935,14 @@ class RelatedPopupComponent {
|
|
3928
3935
|
}
|
3929
3936
|
});
|
3930
3937
|
});
|
3938
|
+
this.singleProcessList.forEach(element => {
|
3939
|
+
this.checkedNodeList.forEach(x => {
|
3940
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
3941
|
+
newSelectProcessList.push(element);
|
3942
|
+
}
|
3943
|
+
});
|
3944
|
+
});
|
3945
|
+
this.singleProcessList = newSelectProcessList;
|
3931
3946
|
this.selectedData = [...tempArr];
|
3932
3947
|
this.documentCheckedList.forEach(element => {
|
3933
3948
|
this.checkedNodeList.forEach(x => {
|
@@ -3936,6 +3951,14 @@ class RelatedPopupComponent {
|
|
3936
3951
|
}
|
3937
3952
|
});
|
3938
3953
|
});
|
3954
|
+
this.singleDocumentList.forEach(element => {
|
3955
|
+
this.checkedNodeList.forEach(x => {
|
3956
|
+
if (element.id === x.id && element.parentId === x.parentId) {
|
3957
|
+
newSelectDocumentList.push(element);
|
3958
|
+
}
|
3959
|
+
});
|
3960
|
+
});
|
3961
|
+
this.singleDocumentList = newSelectDocumentList;
|
3939
3962
|
this.selectedData2 = [...tempArrDocument];
|
3940
3963
|
}
|
3941
3964
|
isMatchTrue(arr, arr2) {
|
@@ -4169,13 +4192,14 @@ class RelatedPopupComponent {
|
|
4169
4192
|
else {
|
4170
4193
|
position = this.treeData1.findIndex(p => p.childId === item.id);
|
4171
4194
|
}
|
4172
|
-
if (position >
|
4195
|
+
if (position > -1) {
|
4173
4196
|
this.singleProcessList.push({
|
4174
4197
|
moduleId: this.moduleId,
|
4175
4198
|
id: item.id,
|
4176
4199
|
itemName: item.name,
|
4177
4200
|
itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,
|
4178
|
-
itemNumberId: this.treeData1[position].displayId.toString()
|
4201
|
+
itemNumberId: this.treeData1[position].displayId.toString(),
|
4202
|
+
parentId: item.parentId
|
4179
4203
|
});
|
4180
4204
|
}
|
4181
4205
|
}
|
@@ -4211,24 +4235,37 @@ class RelatedPopupComponent {
|
|
4211
4235
|
this.documentCheckedList.push(item);
|
4212
4236
|
}
|
4213
4237
|
if (this.singleSelectedNode) {
|
4214
|
-
|
4215
|
-
|
4216
|
-
|
4217
|
-
|
4218
|
-
|
4219
|
-
|
4220
|
-
|
4221
|
-
|
4238
|
+
let position;
|
4239
|
+
if (item.expandable) {
|
4240
|
+
position = this.treeData2.findIndex(p => p.rootId === item.id);
|
4241
|
+
}
|
4242
|
+
else {
|
4243
|
+
position = this.treeData2.findIndex(p => p.childId === item.id);
|
4244
|
+
}
|
4245
|
+
if (position > -1) {
|
4246
|
+
this.singleDocumentList.push({
|
4247
|
+
moduleId: this.moduleId,
|
4248
|
+
id: item.id,
|
4249
|
+
itemName: item.name,
|
4250
|
+
itemType: item.expandable ? this.dataType.folder : this.dataType.document,
|
4251
|
+
itemNumberId: this.treeData2[position].displayId.toString(),
|
4252
|
+
parentId: item.parentId
|
4253
|
+
});
|
4254
|
+
}
|
4222
4255
|
}
|
4223
4256
|
if (index < 0 && !item.expandable && !this.singleSelectedNode) {
|
4224
4257
|
const position = this.treeData2.findIndex(p => p.childId === item.id);
|
4225
|
-
|
4226
|
-
|
4227
|
-
|
4228
|
-
|
4229
|
-
|
4230
|
-
|
4231
|
-
|
4258
|
+
if (position > -1) {
|
4259
|
+
this.checkedNodeList.push({
|
4260
|
+
moduleId: this.moduleId,
|
4261
|
+
id: item.id,
|
4262
|
+
itemName: item.name,
|
4263
|
+
itemType: this.dataType.document,
|
4264
|
+
itemNumberId: this.treeData2[position].displayId.toString(),
|
4265
|
+
parentId: item.parentId,
|
4266
|
+
parentName: this.treeData2[position].rootName,
|
4267
|
+
});
|
4268
|
+
}
|
4232
4269
|
}
|
4233
4270
|
});
|
4234
4271
|
if (this.singleSelectedNode) {
|
@@ -4412,6 +4449,7 @@ class RiskResult {
|
|
4412
4449
|
constructor() {
|
4413
4450
|
this.title = '';
|
4414
4451
|
this.results = [];
|
4452
|
+
this.isSimple = 0;
|
4415
4453
|
}
|
4416
4454
|
}
|
4417
4455
|
class Result {
|
@@ -4424,8 +4462,10 @@ class RiskResultComponent {
|
|
4424
4462
|
this.data = data;
|
4425
4463
|
this.results = [];
|
4426
4464
|
this.color = Color;
|
4465
|
+
this.isSimple = 0;
|
4427
4466
|
this.title = data.title;
|
4428
4467
|
this.results = data.results;
|
4468
|
+
this.isSimple = data.isSimple || 0;
|
4429
4469
|
}
|
4430
4470
|
ngOnInit() {
|
4431
4471
|
this.translate.getLanguageSubject$.pipe().subscribe((res) => {
|
@@ -4441,7 +4481,7 @@ class RiskResultComponent {
|
|
4441
4481
|
RiskResultComponent.decorators = [
|
4442
4482
|
{ type: Component, args: [{
|
4443
4483
|
selector: 'qms-risk-result',
|
4444
|
-
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ LANG.EVENT }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
4484
|
+
template: "<div class=\"dialog-container\">\r\n <div mat-dialog-title class=\"dialog-title\">\r\n <h3 class=\"title\">{{ title }}</h3>\r\n <button\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <mat-dialog-content>\r\n <div class=\"flex-container-header\">\r\n <div class=\"first\">{{ isSimple ? LANG.EVENT : LANG.CAUSE }}</div>\r\n <div class=\"second\">{{ LANG.AREA_OF_IMPACT }}</div>\r\n <div class=\"third\">{{ LANG.RESULT }}</div>\r\n </div>\r\n <div class=\"flex-container\" *ngFor=\"let item of results\">\r\n <!-- g y r 1 2 3 done -->\r\n <div class=\"first\" [ngSwitch]=\"item.color\">\r\n <label *ngSwitchCase=\"3\" class=\"label-red\"></label>\r\n <label *ngSwitchCase=\"1\" class=\"label-green\"></label>\r\n <label *ngSwitchCase=\"2\" class=\"label-yellow\"></label>\r\n {{ item.cause }}\r\n </div>\r\n <div class=\"second\">{{ item.consequenceArea }}</div>\r\n <ng-container [ngSwitch]=\"item.color\">\r\n <div class=\"third text-red\" *ngSwitchCase=\"3\">\r\n <span class=\"material-icons-outlined\">report_problem</span>\r\n {{ LANG.NOT_ACCEPTED }}\r\n </div>\r\n <div class=\"third text-yellow\" *ngSwitchCase=\"2\">\r\n <mat-icon>error_outline</mat-icon>\r\n {{ LANG.MUST_BE_EVALUATED }}\r\n </div>\r\n <div class=\"third text-green\" *ngSwitchCase=\"1\">\r\n <mat-icon>done</mat-icon>\r\n {{ LANG.ACCEPTED }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </mat-dialog-content>\r\n</div>\r\n",
|
4445
4485
|
styles: ["@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format(\"woff2\");unicode-range:U+1f??}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format(\"woff2\");unicode-range:U+0370-03ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFW50bbck.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Open Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v20/mem8YaGs126MiZpBA-UFVZ0b.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCFPrEHJA.woff2) format(\"woff2\");unicode-range:U+0460-052f,U+1c80-1c88,U+20b4,U+2de0-2dff,U+a640-a69f,U+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCMPrEHJA.woff2) format(\"woff2\");unicode-range:U+0400-045f,U+0490-0491,U+04b0-04b1,U+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCHPrEHJA.woff2) format(\"woff2\");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01a0-01a1,U+01af-01b0,U+1ea0-1ef9,U+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCGPrEHJA.woff2) format(\"woff2\");unicode-range:U+0100-024f,U+0259,U+1e??,U+2020,U+20a0-20ab,U+20ad-20cf,U+2113,U+2c60-2c7f,U+a720-a7ff}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/raleway/v19/1Ptxg8zYS_SKggPN4iEgvnHyvveLxVvaorCIPrE.woff2) format(\"woff2\");unicode-range:U+00??,U+0131,U+0152-0153,U+02bb-02bc,U+02c6,U+02da,U+02dc,U+2000-206f,U+2074,U+20ac,U+2122,U+2191,U+2193,U+2212,U+2215,U+feff,U+fffd}.dialog-title{display:flex;justify-content:space-between}.dialog-title h3.title{font-family:Raleway;font-style:normal;font-weight:500;font-size:22px;line-height:26px}.flex-container-header{display:flex;align-items:center;font-size:.75rem;border-radius:4px;line-height:16px}.flex-container-header>div{font-family:Open Sans;font-style:normal;font-weight:600;text-align:left;padding:10px 25px;color:rgba(0,0,0,.6)}.flex-container-header .first{flex:0 1 40%}.flex-container-header .second,.flex-container-header .third{flex:0 1 30%}.flex-container{display:flex;align-items:center;font-size:.875rem;line-height:22px;border-radius:4px;border:1px solid #ddd;min-height:48px;margin-bottom:10px}.flex-container>div{font-family:Open Sans;font-style:normal;text-align:left;padding:10px 25px;color:#323232}.flex-container .first{display:flex;flex:0 1 40%;align-items:center;font-weight:600}.flex-container .second{flex:0 1 30%;font-weight:400}.flex-container .third{display:flex;flex:0 1 30%;align-items:center;font-weight:600;font-size:.75rem}.flex-container .third.text-green,.flex-container .third.text-red,.flex-container .third.text-yellow{font-size:.75rem}.flex-container .third.text-green .mat-icon,.flex-container .third.text-green .material-icons-outlined,.flex-container .third.text-red .mat-icon,.flex-container .third.text-red .material-icons-outlined,.flex-container .third.text-yellow .mat-icon,.flex-container .third.text-yellow .material-icons-outlined{margin-right:1rem}.flex-container .third.text-red{color:#b00020}.flex-container .third.text-yellow{color:#726729}.flex-container .third.text-green{color:#005935}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:flex;text-align:center;margin-right:1rem;width:24px;height:24px;flex:0 0 24px;border-radius:1px}.label-red{background-color:#9e360f;color:#fff}.label-yellow{background-color:#e4cf53;color:rgba(0,0,0,.87)}.label-green{background-color:#00804c;color:#fff}"]
|
4446
4486
|
},] }
|
4447
4487
|
];
|
@@ -4560,7 +4600,8 @@ class RiskListComponent {
|
|
4560
4600
|
remain: 0,
|
4561
4601
|
dangers: [],
|
4562
4602
|
folderId: d.folderId,
|
4563
|
-
statusId: d.statusId
|
4603
|
+
statusId: d.statusId,
|
4604
|
+
simple: d.simple
|
4564
4605
|
});
|
4565
4606
|
dangers.forEach(d => {
|
4566
4607
|
const index = this.analysisDanger[i].dangers.findIndex(x => {
|