qms-angular 1.0.20 → 1.0.24

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.
Files changed (42) hide show
  1. package/bundles/qms-angular.umd.js +141 -56
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/related/common/tree.function.js +2 -2
  4. package/esm2015/lib/components/related/list-other-related/list-related.component.js +9 -3
  5. package/esm2015/lib/components/related/model/danger-assessment.model.js +1 -1
  6. package/esm2015/lib/components/related/model/danger.model.js +1 -1
  7. package/esm2015/lib/components/related/model/risk-result.model.js +2 -1
  8. package/esm2015/lib/components/related/model/selected-node.model.js +1 -1
  9. package/esm2015/lib/components/related/popup/related-popup.component.js +83 -27
  10. package/esm2015/lib/components/related/risk/list/list.component.js +7 -4
  11. package/esm2015/lib/components/related/risk/result/result.component.js +4 -2
  12. package/esm2015/lib/components/related/tree/tree.component.js +7 -4
  13. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +4 -3
  14. package/esm2015/lib/model/en.js +3 -1
  15. package/esm2015/lib/model/no.js +3 -1
  16. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +9 -5
  17. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +8 -2
  18. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +3 -3
  19. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +2 -2
  20. package/fesm2015/qms-angular.js +141 -56
  21. package/fesm2015/qms-angular.js.map +1 -1
  22. package/lib/components/related/list-other-related/list-related.component.d.ts +2 -0
  23. package/lib/components/related/model/danger-assessment.model.d.ts +3 -0
  24. package/lib/components/related/model/danger.model.d.ts +3 -0
  25. package/lib/components/related/model/risk-result.model.d.ts +1 -0
  26. package/lib/components/related/model/selected-node.model.d.ts +1 -0
  27. package/lib/components/related/popup/related-popup.component.d.ts +1 -0
  28. package/lib/components/related/risk/result/result.component.d.ts +1 -0
  29. package/lib/model/en.d.ts +2 -0
  30. package/lib/model/no.d.ts +2 -0
  31. package/lib/qms-ckeditor-components/common/functions/common.function.d.ts +2 -0
  32. package/package.json +1 -1
  33. package/qms-angular.metadata.json +1 -1
  34. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  35. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  36. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -0
  37. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +3 -1
  38. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +47 -6
  39. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkui.js +10 -4
  40. package/src/assets/qms-ckeditor-plugin/src/themes/tyles/linkactions.css +0 -1
  41. package/src/lib/components/related/popup/related-popup.component.scss +21 -13
  42. package/src/lib/components/related/risk/list/list.component.scss +18 -4
@@ -90,6 +90,8 @@ const en = {
90
90
  "NOT_ACCEPTED": "Not accepted",
91
91
  "MUST_BE_EVALUATED": "Must be evaluated",
92
92
  "ACCEPTED": "Accepted",
93
+ "ARCHIVED": "Archived",
94
+ "CAUSE": "Cause",
93
95
  "ERROR": {
94
96
  "SELECT_DANGER": "You must select one or more events"
95
97
  },
@@ -197,6 +199,8 @@ const no = {
197
199
  "NOT_ACCEPTED": "Ikke akseptert",
198
200
  "MUST_BE_EVALUATED": "Må vurderes",
199
201
  "ACCEPTED": "Akseptert",
202
+ "ARCHIVED": "Arkivert",
203
+ "CAUSE": "Årsak",
200
204
  "ERROR": {
201
205
  "SELECT_DANGER": "Du må velge en eller flere hendelser"
202
206
  },
@@ -1690,9 +1694,10 @@ class QMSToolTipRendererDirective {
1690
1694
  */
1691
1695
  show() {
1692
1696
  //attach the component if it has not already attached to the overlay
1693
- if (this._overlayRef && !this._overlayRef.hasAttached()) {
1697
+ if ((this.text || this.contentTemplate) && this._overlayRef && !this._overlayRef.hasAttached()) {
1694
1698
  const tooltipRef = this._overlayRef.attach(new ComponentPortal(QMSToolTipComponent));
1695
- tooltipRef.instance.text = this.text;
1699
+ if (this.text)
1700
+ tooltipRef.instance.text = this.text;
1696
1701
  if (this.mode) {
1697
1702
  tooltipRef.instance.mode = this.mode;
1698
1703
  }
@@ -3242,7 +3247,7 @@ function findChild$1(id, objParent, array) {
3242
3247
  name: item.subName,
3243
3248
  parentId: id
3244
3249
  };
3245
- objParent[json.stringify(key)] = Object.assign(Object.assign({}, objParent[`${item.rootId}_${item.subName}_${id}`]), processNode);
3250
+ objParent[json.stringify(key)] = Object.assign(Object.assign({}, objParent[json.stringify(key)]), processNode);
3246
3251
  });
3247
3252
  }
3248
3253
  const TreeFunctions = {
@@ -3357,7 +3362,10 @@ class TreeComponent {
3357
3362
  this.treeData = [...this.treeData, changes.treeData.currentValue];
3358
3363
  this.initTreeData();
3359
3364
  }
3360
- if (changes.selectedData && JSON.stringify(changes.selectedData.currentValue) !== JSON.stringify(changes.selectedData.previousValue)) {
3365
+ if (changes.selectedData &&
3366
+ (changes.selectedData.currentValue.length > 0 ||
3367
+ JSON.stringify(changes.selectedData.currentValue) !==
3368
+ JSON.stringify(changes.selectedData.previousValue))) {
3361
3369
  this.checkSelected(changes.selectedData.currentValue);
3362
3370
  }
3363
3371
  else {
@@ -3542,8 +3550,8 @@ class TreeComponent {
3542
3550
  }
3543
3551
  else {
3544
3552
  const descendants = this.treeControl.getDescendants(node).filter(item => !item.disabled);
3545
- this.checkSelectedSameNode(descendants, this.checklistSelection.isSelected(node));
3546
- this.checklistSelection.isSelected(node)
3553
+ this.checkSelectedSameNode(descendants, this.descendantsAllSelected(node));
3554
+ !this.descendantsAllSelected(node)
3547
3555
  ? this.checklistSelection.select(...descendants)
3548
3556
  : this.checklistSelection.deselect(...descendants);
3549
3557
  this.cdRef.markForCheck();
@@ -3919,6 +3927,8 @@ class RelatedPopupComponent {
3919
3927
  this.checkedNodeList = this.checkedNodeList.filter(x => (x.id !== item.id || x.parentId !== item.parentId));
3920
3928
  const tempArr = [];
3921
3929
  const tempArrDocument = [];
3930
+ const newSelectProcessList = [];
3931
+ const newSelectDocumentList = [];
3922
3932
  this.commonCheckedList.forEach(element => {
3923
3933
  this.checkedNodeList.forEach(x => {
3924
3934
  if (element.id === x.id && element.parentId === x.parentId) {
@@ -3926,6 +3936,14 @@ class RelatedPopupComponent {
3926
3936
  }
3927
3937
  });
3928
3938
  });
3939
+ this.singleProcessList.forEach(element => {
3940
+ this.checkedNodeList.forEach(x => {
3941
+ if (element.id === x.id && element.parentId === x.parentId) {
3942
+ newSelectProcessList.push(element);
3943
+ }
3944
+ });
3945
+ });
3946
+ this.singleProcessList = newSelectProcessList;
3929
3947
  this.selectedData = [...tempArr];
3930
3948
  this.documentCheckedList.forEach(element => {
3931
3949
  this.checkedNodeList.forEach(x => {
@@ -3934,6 +3952,14 @@ class RelatedPopupComponent {
3934
3952
  }
3935
3953
  });
3936
3954
  });
3955
+ this.singleDocumentList.forEach(element => {
3956
+ this.checkedNodeList.forEach(x => {
3957
+ if (element.id === x.id && element.parentId === x.parentId) {
3958
+ newSelectDocumentList.push(element);
3959
+ }
3960
+ });
3961
+ });
3962
+ this.singleDocumentList = newSelectDocumentList;
3937
3963
  this.selectedData2 = [...tempArrDocument];
3938
3964
  }
3939
3965
  isMatchTrue(arr, arr2) {
@@ -3962,7 +3988,7 @@ class RelatedPopupComponent {
3962
3988
  onSearchRelated(_val) {
3963
3989
  this.filteredOptions = [];
3964
3990
  if (typeof (_val) === 'object') {
3965
- return;
3991
+ this.myControl.setValue('');
3966
3992
  }
3967
3993
  else if (typeof (_val) === 'string') {
3968
3994
  if (!!_val) {
@@ -3984,7 +4010,7 @@ class RelatedPopupComponent {
3984
4010
  this.selectedNode = [];
3985
4011
  if (this.treeConfig1.showCheckBox) {
3986
4012
  index = this.checkedNodeList.findIndex(x => {
3987
- return x.id === item.id;
4013
+ return x.id === item.id && x.parentId === item.parentId;
3988
4014
  });
3989
4015
  }
3990
4016
  if (index < 0) {
@@ -4013,6 +4039,7 @@ class RelatedPopupComponent {
4013
4039
  id: item.id,
4014
4040
  itemName: item.itemName,
4015
4041
  itemType: typeId,
4042
+ itemNumberId: item.itemNumberId
4016
4043
  });
4017
4044
  }
4018
4045
  else {
@@ -4021,6 +4048,7 @@ class RelatedPopupComponent {
4021
4048
  id: item.id,
4022
4049
  itemName: item.itemName,
4023
4050
  itemType: typeId,
4051
+ itemNumberId: item.itemNumberId
4024
4052
  });
4025
4053
  }
4026
4054
  this.dataTrees.toArray()[1].todoItemSelectionById([item.id]);
@@ -4048,6 +4076,7 @@ class RelatedPopupComponent {
4048
4076
  id: node.rootId,
4049
4077
  itemName: node.rootName,
4050
4078
  itemType: typeId,
4079
+ itemNumberId: item.itemNumberId
4051
4080
  });
4052
4081
  }
4053
4082
  else {
@@ -4056,6 +4085,7 @@ class RelatedPopupComponent {
4056
4085
  id: node.rootId,
4057
4086
  itemName: node.rootName,
4058
4087
  itemType: typeId,
4088
+ itemNumberId: item.itemNumberId
4059
4089
  });
4060
4090
  }
4061
4091
  }
@@ -4117,6 +4147,7 @@ class RelatedPopupComponent {
4117
4147
  id: x.id,
4118
4148
  itemName: x.name,
4119
4149
  itemType: itemType,
4150
+ itemNumberId: item.displayId.toString()
4120
4151
  });
4121
4152
  });
4122
4153
  }
@@ -4127,6 +4158,7 @@ class RelatedPopupComponent {
4127
4158
  id: x.id,
4128
4159
  itemName: x.name,
4129
4160
  itemType: itemType,
4161
+ itemNumberId: item.displayId.toString()
4130
4162
  });
4131
4163
  });
4132
4164
  }
@@ -4154,13 +4186,23 @@ class RelatedPopupComponent {
4154
4186
  this.commonCheckedList.push(item);
4155
4187
  }
4156
4188
  if (this.singleSelectedNode) {
4157
- const position = this.treeData1.findIndex(p => p.childId === item.id);
4158
- this.singleProcessList.push({
4159
- moduleId: this.moduleId,
4160
- id: item.id,
4161
- itemName: item.name,
4162
- itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType
4163
- });
4189
+ let position;
4190
+ if (item.expandable) {
4191
+ position = this.treeData1.findIndex(p => p.rootId === item.id);
4192
+ }
4193
+ else {
4194
+ position = this.treeData1.findIndex(p => p.childId === item.id);
4195
+ }
4196
+ if (position > -1) {
4197
+ this.singleProcessList.push({
4198
+ moduleId: this.moduleId,
4199
+ id: item.id,
4200
+ itemName: item.name,
4201
+ itemType: (this.itemType === 2) ? this.setTypeProcess(item.expandable) : this.itemType,
4202
+ itemNumberId: this.treeData1[position].displayId.toString(),
4203
+ parentId: item.parentId
4204
+ });
4205
+ }
4164
4206
  }
4165
4207
  if (item.id && index < 0 && !item.expandable && !this.singleSelectedNode) {
4166
4208
  const position = this.treeData1.findIndex(p => p.childId === item.id && p.rootId === item.parentId);
@@ -4171,7 +4213,8 @@ class RelatedPopupComponent {
4171
4213
  itemName: item.name,
4172
4214
  itemType: this.itemType,
4173
4215
  parentId: item.parentId,
4174
- parentName: this.treeData1[position].rootName
4216
+ parentName: this.treeData1[position].rootName,
4217
+ itemNumberId: this.treeData1[position].displayId.toString()
4175
4218
  });
4176
4219
  }
4177
4220
  }
@@ -4193,22 +4236,37 @@ class RelatedPopupComponent {
4193
4236
  this.documentCheckedList.push(item);
4194
4237
  }
4195
4238
  if (this.singleSelectedNode) {
4196
- const position = this.treeData2.findIndex(p => p.childId === item.id);
4197
- this.singleDocumentList.push({
4198
- moduleId: this.moduleId,
4199
- id: item.id,
4200
- itemName: item.name,
4201
- itemType: item.expandable ? this.dataType.folder : this.dataType.document
4202
- });
4239
+ let position;
4240
+ if (item.expandable) {
4241
+ position = this.treeData2.findIndex(p => p.rootId === item.id);
4242
+ }
4243
+ else {
4244
+ position = this.treeData2.findIndex(p => p.childId === item.id);
4245
+ }
4246
+ if (position > -1) {
4247
+ this.singleDocumentList.push({
4248
+ moduleId: this.moduleId,
4249
+ id: item.id,
4250
+ itemName: item.name,
4251
+ itemType: item.expandable ? this.dataType.folder : this.dataType.document,
4252
+ itemNumberId: this.treeData2[position].displayId.toString(),
4253
+ parentId: item.parentId
4254
+ });
4255
+ }
4203
4256
  }
4204
4257
  if (index < 0 && !item.expandable && !this.singleSelectedNode) {
4205
4258
  const position = this.treeData2.findIndex(p => p.childId === item.id);
4206
- this.checkedNodeList.push({
4207
- moduleId: this.moduleId,
4208
- id: item.id,
4209
- itemName: item.name,
4210
- itemType: this.dataType.document
4211
- });
4259
+ if (position > -1) {
4260
+ this.checkedNodeList.push({
4261
+ moduleId: this.moduleId,
4262
+ id: item.id,
4263
+ itemName: item.name,
4264
+ itemType: this.dataType.document,
4265
+ itemNumberId: this.treeData2[position].displayId.toString(),
4266
+ parentId: item.parentId,
4267
+ parentName: this.treeData2[position].rootName,
4268
+ });
4269
+ }
4212
4270
  }
4213
4271
  });
4214
4272
  if (this.singleSelectedNode) {
@@ -4238,15 +4296,21 @@ class RelatedPopupComponent {
4238
4296
  return (elmHeight + elmMargin);
4239
4297
  }
4240
4298
  getItemChipName(item) {
4241
- return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;
4299
+ if (item.itemType === DataType.checklist || item.itemType === DataType.deviation) {
4300
+ return item.parentName ? `${item.parentName}/${item.itemName}` : item.itemName;
4301
+ }
4302
+ return item.itemName;
4303
+ }
4304
+ isEllipsisActive(e) {
4305
+ return e ? (e.clientWidth < e.scrollWidth) : false;
4242
4306
  }
4243
4307
  }
4244
4308
  RelatedPopupComponent.decorators = [
4245
4309
  { type: Component, args: [{
4246
4310
  selector: 'qms-related-popup',
4247
- template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <!-- Process -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.process).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.PROCESSES }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.process)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"process\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ LANG.PROCESS_ID }}: {{ option.itemNumberId }};\r\n {{ option.statusName }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Document -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.document).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DOCUMENTS }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.document)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"document\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ LANG.DOCUMENT_ID }}: {{ option.itemNumberId }};\r\n {{ option.statusName }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Process Area -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.area).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.PROCESS_AREA }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.area)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"process_area_outlined\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Document Folder -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.folder).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.FOLDER }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.folder)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon>folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Categories -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.deviation).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DEVIATION }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.deviation)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"deviation\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"caption\">{{ option.parentName }}</div>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n\r\n <!-- Deviation types -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.deviationType).length > 0\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DEVIATION_TYPE }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"\r\n let option of getModuleFilteredOptions(dataType.deviationType)\r\n \"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon>folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Checklist -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.checklist).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.CHECKLIST }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.checklist)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"checklist\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"caption\">{{ option.parentName }}</div>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Checklist category -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.checklistCategory).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.CHECKLIST_CATEGORY }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"\r\n let option of getModuleFilteredOptions(dataType.checklistCategory)\r\n \"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon type=\"image-square\">folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Risk -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.risk).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.ASSESSMENT }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.risk)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"risk\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Risk folder -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.riskFolder).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.FOLDER }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.riskFolder)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon type=\"image-square\">folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{ isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\" }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title> {{ LANG.DOCUMENTS | uppercase }} </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <div *ngIf=\"item.itemName\" class=\"related__item__content\">\r\n <span class=\"related__item__content_name\"\r\n >{{ getItemChipName(item) }}\r\n <mat-icon (click)=\"removeCheckedNodeList(item)\">cancel</mat-icon>\r\n </span>\r\n </div>\r\n <!-- <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n title=\"{{ getItemChipName(item) }}\"\r\n >\r\n <span class=\"related__item__content_name\">{{ getItemChipName(item) }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList(item)\">cancel</mat-icon>\r\n </button> -->\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
4311
+ template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n >\r\n <!-- Process -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.process).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.PROCESSES }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.process)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"process\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ LANG.PROCESS_ID }}: {{ option.itemNumberId }};\r\n {{ option.statusName }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Document -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.document).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DOCUMENTS }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.document)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"document\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ LANG.DOCUMENT_ID }}: {{ option.itemNumberId }};\r\n {{ option.statusName }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Process Area -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.area).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.PROCESS_AREA }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.area)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"process_area_outlined\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Document Folder -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.folder).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.FOLDER }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.folder)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon>folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Categories -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.deviation).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DEVIATION }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.deviation)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"deviation\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"caption\">{{ option.parentName }}</div>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n\r\n <!-- Deviation types -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.deviationType).length > 0\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.DEVIATION_TYPE }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"\r\n let option of getModuleFilteredOptions(dataType.deviationType)\r\n \"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon>folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Checklist -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.checklist).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.CHECKLIST }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.checklist)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"checklist\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"caption\">{{ option.parentName }}</div>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Checklist category -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.checklistCategory).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.CHECKLIST_CATEGORY }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"\r\n let option of getModuleFilteredOptions(dataType.checklistCategory)\r\n \"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon type=\"image-square\">folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Risk -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.risk).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.ASSESSMENT }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.risk)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n svgIcon=\"risk\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n <!-- Risk folder -->\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"getModuleFilteredOptions(dataType.riskFolder).length\"\r\n >\r\n <span class=\"search__module-title\">{{ LANG.FOLDER }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(dataType.riskFolder)\"\r\n [value]=\"option\"\r\n (click)=\"selectRelated(option)\"\r\n >\r\n <qms-list-item>\r\n <mat-icon leading-icon type=\"image-square\">folder_open</mat-icon>\r\n <div qms-list-header>\r\n <div qms-line type=\"subtitle\">{{ option.itemName }}</div>\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div\r\n class=\"qms-scrollbar qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.deviation\">\r\n {{ LANG.DEVIATION | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.checklist\">\r\n {{ LANG.CHECKLIST | uppercase }}\r\n </mat-panel-title>\r\n <mat-panel-title *ngIf=\"moduleId === module.risk\">\r\n {{ LANG.ASSESSMENT | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{ isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\" }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (checkBoxEvent)=\"getCommonCheckedNode($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title> {{ LANG.DOCUMENTS | uppercase }} </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (checkBoxEvent)=\"getDocumentCheckedNode($event)\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{ isEllipsisActive(itemName) ? getItemChipName(item) : '' }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)}}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList(item)\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
4248
4312
  encapsulation: ViewEncapsulation.None,
4249
- styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__item .related__item__inline{display:inline;width:auto}.qmslib__related__popup__container .panel__item .related__item__content{background-color:rgba(0,0,0,.04);border:1px solid #e0e0e0;border-radius:4px;display:inline-block;padding:2px 4px;margin-left:5px;margin-bottom:5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:22px;vertical-align:middle;margin-left:7px;cursor:pointer}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
4313
+ styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
4250
4314
  },] }
4251
4315
  ];
4252
4316
  RelatedPopupComponent.ctorParameters = () => [
@@ -4386,6 +4450,7 @@ class RiskResult {
4386
4450
  constructor() {
4387
4451
  this.title = '';
4388
4452
  this.results = [];
4453
+ this.isSimple = 0;
4389
4454
  }
4390
4455
  }
4391
4456
  class Result {
@@ -4398,8 +4463,10 @@ class RiskResultComponent {
4398
4463
  this.data = data;
4399
4464
  this.results = [];
4400
4465
  this.color = Color;
4466
+ this.isSimple = 0;
4401
4467
  this.title = data.title;
4402
4468
  this.results = data.results;
4469
+ this.isSimple = data.isSimple || 0;
4403
4470
  }
4404
4471
  ngOnInit() {
4405
4472
  this.translate.getLanguageSubject$.pipe().subscribe((res) => {
@@ -4415,7 +4482,7 @@ class RiskResultComponent {
4415
4482
  RiskResultComponent.decorators = [
4416
4483
  { type: Component, args: [{
4417
4484
  selector: 'qms-risk-result',
4418
- 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",
4485
+ 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",
4419
4486
  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}"]
4420
4487
  },] }
4421
4488
  ];
@@ -4532,7 +4599,10 @@ class RiskListComponent {
4532
4599
  childNumber: 0,
4533
4600
  show: this.show,
4534
4601
  remain: 0,
4535
- dangers: []
4602
+ dangers: [],
4603
+ folderId: d.folderId,
4604
+ statusId: d.statusId,
4605
+ simple: d.simple
4536
4606
  });
4537
4607
  dangers.forEach(d => {
4538
4608
  const index = this.analysisDanger[i].dangers.findIndex(x => {
@@ -4616,8 +4686,8 @@ class RiskListComponent {
4616
4686
  RiskListComponent.decorators = [
4617
4687
  { type: Component, args: [{
4618
4688
  selector: 'qms-risk-list',
4619
- template: "<div class=\"container list-risk\">\r\n <div class=\"list-risk__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div class=\"list-risk__body\" *ngFor=\"let analysis of analysisDanger\">\r\n <div class=\"list-risk__body-parent\">\r\n <div class=\"block\">\r\n <mat-icon class=\"material-icons-outlined mat-icon\">border_all</mat-icon>\r\n <div class=\"title\">{{ analysis.name }}</div>\r\n </div>\r\n <div class=\"block\" *ngIf=\"!isNotEditedItem\">\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)=\"editDanger(analysis)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\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)=\"removeDanger(analysis.id)\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"list-risk__body-child\"\r\n *ngFor=\"let danger of analysis.dangers | slice: 0:analysis.show\"\r\n >\r\n <div class=\"default\">\r\n <div class=\"title\">{{ danger.dangerName }}</div>\r\n <div class=\"group-button\">\r\n <label\r\n class=\"label-red cursor\"\r\n *ngIf=\"danger.red > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.red }}</label\r\n >\r\n <label\r\n class=\"label-yellow cursor\"\r\n *ngIf=\"danger.yellow > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.yellow }}</label\r\n >\r\n <label\r\n class=\"label-green cursor\"\r\n *ngIf=\"danger.green > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.green }}</label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"remain\" *ngIf=\"analysis.remain > 0\">\r\n <span class=\"title cursor\" (click)=\"increaseShow(analysis.id)\"\r\n >+ {{ analysis.remain }}</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n",
4620
- 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}.list-risk{font-family:Open Sans;font-style:normal;font-weight:400;color:#323232}.list-risk .list-risk__title{font-weight:600;font-size:.875rem;line-height:22px;margin-bottom:1rem}.list-risk .list-risk__body .list-risk__body-parent{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-risk .list-risk__body .list-risk__body-parent .block{font-weight:400;font-size:1rem;line-height:28px;display:flex;align-items:center}.list-risk .list-risk__body .list-risk__body-parent .block .title{margin-left:1.5rem;padding-top:5px;padding-bottom:5px}.list-risk .list-risk__body .list-risk__body-parent .block mat-icon{color:rgba(0,0,0,.6)}.list-risk .list-risk__body .list-risk__body-parent .block button.qms-btn-icon{width:40px;height:40px;line-height:40px}.list-risk .list-risk__body .list-risk__body-child{font-weight:400;font-size:.875rem;line-height:22px}.list-risk .list-risk__body .list-risk__body-child .default{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-risk .list-risk__body .list-risk__body-child .default .title{margin-left:3rem}.list-risk .list-risk__body .list-risk__body-child .default .group-button{margin-right:2rem;display:flex}.list-risk .list-risk__body .remain{font-weight:600;font-size:.875rem;line-height:22px;display:flex;align-items:center;justify-content:space-between;background-color:#fafafa;color:#1954a9;min-height:48px;border-bottom:1px solid #ddd}.list-risk .list-risk__body .remain .title{margin-left:3rem}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:inline-block;text-align:center;margin-left:1rem;width:24px;height:24px;font-size:.75rem;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}.cursor{cursor:pointer}"]
4689
+ template: "<div class=\"container list-risk\">\r\n <div class=\"list-risk__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div class=\"list-risk__body\" *ngFor=\"let analysis of analysisDanger\">\r\n <div class=\"list-risk__body-parent\">\r\n <div class=\"block\">\r\n <mat-icon class=\"material-icons-outlined mat-icon\">border_all</mat-icon>\r\n <div class=\"title\">{{ analysis.name }}</div>\r\n </div>\r\n <div class=\"block\" *ngIf=\"!isNotEditedItem\">\r\n <span class=\"label-archived\" *ngIf=\"analysis.folderId == -1\">\r\n {{ LANG.ARCHIVED }}</span\r\n >\r\n <button\r\n *ngIf=\"analysis.folderId !== -1\"\r\n qms-btn-icon\r\n color=\"light\"\r\n qms-tool-tip=\"Caption\"\r\n mode=\"dark\"\r\n (click)=\"editDanger(analysis)\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\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)=\"removeDanger(analysis.id)\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n class=\"list-risk__body-child\"\r\n *ngFor=\"let danger of analysis.dangers | slice: 0:analysis.show\"\r\n >\r\n <div class=\"default\">\r\n <div class=\"title\">{{ danger.dangerName }}</div>\r\n <div class=\"group-button\">\r\n <label\r\n class=\"label-red cursor\"\r\n *ngIf=\"danger.red > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.red }}</label\r\n >\r\n <label\r\n class=\"label-yellow cursor\"\r\n *ngIf=\"danger.yellow > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.yellow }}</label\r\n >\r\n <label\r\n class=\"label-green cursor\"\r\n *ngIf=\"danger.green > 0\"\r\n (click)=\"dangerDetail(danger)\"\r\n >{{ danger.green }}</label\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"remain\" *ngIf=\"analysis.remain > 0\">\r\n <span class=\"title cursor\" (click)=\"increaseShow(analysis.id)\"\r\n >+ {{ analysis.remain }}</span\r\n >\r\n </div>\r\n </div>\r\n</div>\r\n",
4690
+ 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}.list-risk{font-family:Open Sans;font-style:normal;font-weight:400;color:#323232}.list-risk .list-risk__title{font-weight:600;font-size:.875rem;line-height:22px;margin-bottom:1rem}.list-risk .list-risk__body .list-risk__body-parent{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-risk .list-risk__body .list-risk__body-parent .block{font-weight:400;font-size:1rem;line-height:28px;display:flex;align-items:center}.list-risk .list-risk__body .list-risk__body-parent .block .title{margin-left:1.5rem;padding-top:5px;padding-bottom:5px}.list-risk .list-risk__body .list-risk__body-parent .block mat-icon{color:rgba(0,0,0,.6)}.list-risk .list-risk__body .list-risk__body-parent .block button.qms-btn-icon{width:40px;height:40px;line-height:40px}.list-risk .list-risk__body .list-risk__body-parent .block .label-archived{font-weight:600;font-size:.875rem;line-height:1rem;color:#525252;padding:5px;background:linear-gradient(0deg,rgba(0,0,0,.1),rgba(0,0,0,.1)),#fff;border-radius:2px}.list-risk .list-risk__body .list-risk__body-child{font-weight:400;font-size:.875rem;line-height:22px}.list-risk .list-risk__body .list-risk__body-child .default{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-risk .list-risk__body .list-risk__body-child .default .title{margin-left:3rem}.list-risk .list-risk__body .list-risk__body-child .default .group-button{margin-right:2rem;display:flex}.list-risk .list-risk__body .remain{font-weight:600;font-size:.875rem;line-height:22px;display:flex;align-items:center;justify-content:space-between;background-color:#fafafa;color:#1954a9;min-height:48px;border-bottom:1px solid #ddd}.list-risk .list-risk__body .remain .title{margin-left:3rem}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:inline-block;text-align:center;margin-left:1rem;width:24px;height:24px;font-size:.75rem;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}.cursor{cursor:pointer}"]
4621
4691
  },] }
4622
4692
  ];
4623
4693
  RiskListComponent.ctorParameters = () => [
@@ -4639,6 +4709,7 @@ class RelatedListComponent {
4639
4709
  // imageProcess = '../qms-angular/src/assets/images/union.svg';
4640
4710
  this.imageProcess = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAxOCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAwLjVWNi41SDJWMTYuNUgxMlYxOC41SDE4VjEyLjVIMTJWMTQuNUg0VjYuNUg2VjQuNUgxMlY2LjVIMThWMC41SDEyVjIuNUg2VjAuNUgwWk00IDIuNVY0LjVIMlYyLjVINFpNMTYgMi41VjQuNUgxNFYyLjVIMTZaTTE2IDE2LjVWMTQuNUgxNFYxNi41SDE2WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC42Ii8+DQo8L3N2Zz4NCg==';
4641
4711
  this.updateData = new EventEmitter();
4712
+ this.onItemSelect = new EventEmitter();
4642
4713
  iconRegistry.addSvgIconLiteral('process_area', domSanitizer.bypassSecurityTrustHtml(PROCESS_AREA_ICON));
4643
4714
  }
4644
4715
  ngOnChanges(changes) {
@@ -4669,11 +4740,15 @@ class RelatedListComponent {
4669
4740
  }
4670
4741
  onCloseClick() {
4671
4742
  }
4743
+ onItemClick(item) {
4744
+ if (this.onItemSelect)
4745
+ this.onItemSelect.emit(item);
4746
+ }
4672
4747
  }
4673
4748
  RelatedListComponent.decorators = [
4674
4749
  { type: Component, args: [{
4675
4750
  selector: 'qms-related-list',
4676
- template: "<div class=\"container list-related\">\r\n <div class=\"list-related__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div\r\n class=\"list-related__body\"\r\n *ngFor=\"let item of relatedData; let i = index\"\r\n >\r\n <div class=\"list-related__body-parent\">\r\n <div class=\"block\">\r\n <ng-container [ngSwitch]=\"item.itemType\">\r\n <ng-container *ngSwitchCase=\"dataType.document\">\r\n <mat-icon class=\"material-icons-outlined\"\r\n >insert_drive_file</mat-icon\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.folder\">\r\n <mat-icon class=\"material-icons-outlined\" leading-icon\r\n >folder</mat-icon\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.process\">\r\n <img class=\"mat-icon\" [src]=\"getImagePath()\" />\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.area\">\r\n <mat-icon svgIcon=\"process_area\"></mat-icon>\r\n </ng-container>\r\n\r\n <mat-icon\r\n *ngSwitchCase=\"dataType.deviation\"\r\n class=\"material-icons-outlined\"\r\n >report_problem</mat-icon\r\n >\r\n <mat-icon *ngSwitchCase=\"dataType.checklist\"\r\n >format_list_bulleted</mat-icon\r\n >\r\n </ng-container>\r\n <div class=\"title\">\r\n <div class=\"caption\" *ngIf=\"item?.parentName\">{{ item?.parentName }}</div>\r\n {{ item.itemName }}\r\n <div class=\"caption\" *ngIf=\"item?.displayId || item?.statusName\">\r\n <span class=\"material-icons-outlined\"> local_offer </span> ID:\r\n {{ item?.displayId }}, {{ item?.statusName }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"block\" *ngIf=\"!isNotEditedItem\">\r\n <button qms-btn-icon color=\"light\" mode=\"dark\" (click)=\"removeItem(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4751
+ template: "<div class=\"container list-related\">\r\n <div class=\"list-related__title\">\r\n <strong>{{ title }}</strong>\r\n </div>\r\n <div\r\n class=\"list-related__body\"\r\n *ngFor=\"let item of relatedData; let i = index\"\r\n >\r\n <div class=\"list-related__body-parent\">\r\n <div class=\"block\">\r\n <ng-container [ngSwitch]=\"item.itemType\">\r\n <ng-container *ngSwitchCase=\"dataType.document\">\r\n <mat-icon class=\"material-icons-outlined\"\r\n >insert_drive_file</mat-icon\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.folder\">\r\n <mat-icon class=\"material-icons-outlined\" leading-icon\r\n >folder</mat-icon\r\n >\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.process\">\r\n <img class=\"mat-icon\" [src]=\"getImagePath()\" />\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"dataType.area\">\r\n <mat-icon svgIcon=\"process_area\"></mat-icon>\r\n </ng-container>\r\n\r\n <mat-icon\r\n *ngSwitchCase=\"dataType.deviation\"\r\n class=\"material-icons-outlined\"\r\n >report_problem</mat-icon\r\n >\r\n <mat-icon *ngSwitchCase=\"dataType.checklist\"\r\n >format_list_bulleted</mat-icon\r\n >\r\n </ng-container>\r\n <div class=\"title\" (click)=\"onItemClick(item)\">\r\n <div class=\"caption\" *ngIf=\"item?.parentName\">{{ item?.parentName }}</div>\r\n {{ item.itemName }}\r\n <div class=\"caption\" *ngIf=\"item?.displayId || item?.statusName\">\r\n <span class=\"material-icons-outlined\"> local_offer </span> ID:\r\n {{ item?.displayId }}, {{ item?.statusName }}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"block\" *ngIf=\"!isNotEditedItem\">\r\n <button qms-btn-icon color=\"light\" mode=\"dark\" (click)=\"removeItem(i)\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4677
4752
  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}.list-related{font-family:Open Sans;font-style:normal;font-weight:400;color:#323232}.list-related .list-related__title{font-weight:600;font-size:.875rem;line-height:22px;margin-bottom:1rem}.list-related .list-related__body .list-related__body-parent{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-related .list-related__body .list-related__body-parent .block{font-weight:400;font-size:1rem;line-height:28px;display:flex;align-items:center}.list-related .list-related__body .list-related__body-parent .block .title{margin-left:1.5rem;padding-top:5px;padding-bottom:5px}.list-related .list-related__body .list-related__body-parent .block .title .caption{color:rgba(0,0,0,.6);font-size:.75rem;line-height:22px}.list-related .list-related__body .list-related__body-parent .block mat-icon{color:rgba(0,0,0,.6);padding:0}.list-related .list-related__body .list-related__body-parent .block button.qms-btn-icon{width:40px;height:40px;line-height:40px}.list-related .list-related__body .list-related__body-child{font-weight:400;font-size:.875rem;line-height:22px}.list-related .list-related__body .list-related__body-child .default{min-height:48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}.list-related .list-related__body .list-related__body-child .default .title{margin-left:3rem}.list-related .list-related__body .list-related__body-child .default .group-button{margin-right:2rem;display:flex}.list-related .list-related__body .remain{font-weight:600;font-size:.875rem;line-height:22px;display:flex;align-items:center;justify-content:space-between;background-color:#fafafa;color:#1954a9;min-height:48px;border-bottom:1px solid #ddd}.list-related .list-related__body .remain .title{margin-left:3rem}.label-green,.label-red,.label-yellow{font-family:Open Sans;font-style:normal;font-weight:600;display:inline-block;text-align:center;margin-left:1rem;width:24px;height:24px;font-size:.75rem;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}.cursor{cursor:pointer}"]
4678
4753
  },] }
4679
4754
  ];
@@ -4684,7 +4759,8 @@ RelatedListComponent.ctorParameters = () => [
4684
4759
  ];
4685
4760
  RelatedListComponent.propDecorators = {
4686
4761
  data: [{ type: Input }],
4687
- updateData: [{ type: Output }]
4762
+ updateData: [{ type: Output }],
4763
+ onItemSelect: [{ type: Output }]
4688
4764
  };
4689
4765
 
4690
4766
  class QMSRelatedModule {
@@ -5165,6 +5241,16 @@ QMSCKEditorLinkService.decorators = [
5165
5241
  class QMSCKEditorParamter {
5166
5242
  }
5167
5243
 
5244
+ var CKEditorModule;
5245
+ (function (CKEditorModule) {
5246
+ CKEditorModule[CKEditorModule["document"] = 1] = "document";
5247
+ CKEditorModule[CKEditorModule["process"] = 2] = "process";
5248
+ CKEditorModule[CKEditorModule["deviation"] = 3] = "deviation";
5249
+ CKEditorModule[CKEditorModule["risk"] = 4] = "risk";
5250
+ CKEditorModule[CKEditorModule["checklist"] = 5] = "checklist";
5251
+ CKEditorModule[CKEditorModule["dashboard"] = 6] = "dashboard";
5252
+ })(CKEditorModule || (CKEditorModule = {}));
5253
+
5168
5254
  class LinkAttachmentComponent extends QMSCKEditorBaseComponent {
5169
5255
  constructor(dialog, translate, linkService, dialogRef, data) {
5170
5256
  super();
@@ -5204,7 +5290,12 @@ class LinkAttachmentComponent extends QMSCKEditorBaseComponent {
5204
5290
  onSelectedAttachment(extraId, fileName) {
5205
5291
  this.linkUrl = { url: '', title: '' };
5206
5292
  if (extraId) {
5207
- this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;
5293
+ if (this.module === CKEditorModule.document) {
5294
+ this.linkUrl.url = `/api/File/GetFile?entityId=${extraId}`;
5295
+ }
5296
+ else if (this.module === CKEditorModule.process) {
5297
+ this.linkUrl.url = `/api/processes/GetFileContents?fileId=${extraId}`;
5298
+ }
5208
5299
  this.linkUrl.title = fileName;
5209
5300
  }
5210
5301
  this.dialogRef.close(this.linkUrl);
@@ -5781,7 +5872,7 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
5781
5872
  const p1 = url.indexOf('mailto:');
5782
5873
  const p2 = url.indexOf('?subject=');
5783
5874
  const p3 = url.indexOf('&body=');
5784
- this.emailAddress = url.substr(p1 + 7, p2 - 6);
5875
+ this.emailAddress = url.substr(p1 + 7, p2 - 7);
5785
5876
  this.emailSubject = url.substr(p2 + 9, p3 - p2 - 9);
5786
5877
  this.emailBody = url.substr(p3 + 6, url.length - p3 - 6);
5787
5878
  }
@@ -5982,7 +6073,7 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
5982
6073
  QMSCKEditorLinkComponent.decorators = [
5983
6074
  { type: Component, args: [{
5984
6075
  selector: 'qms-ckeditor-link',
5985
- template: "<div id=\"qmsckeditor_link\" class=\"qmsckeditor qmsckeditor__link__container\">\r\n <div id=\"qmsckeditor_link_header\">\r\n <span\r\n id=\"qmsckeditor_link_header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_link_header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor_link_header_001\">\r\n {{ LANG.QMSCKEDITOR.LINK }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_type\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select\r\n name=\"linkTypeList\"\r\n [(ngModel)]=\"selectedLink\"\r\n (ngModelChange)=\"onSelectedLinkType()\"\r\n >\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_content\">\r\n <form\r\n [formGroup]=\"linkFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 0\"\r\n >\r\n <div id=\"qmsckeditor_link_url\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_url_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.URL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_url_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedTarget\"\r\n formControlName=\"targetList\"\r\n >\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_002\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedProtocol\"\r\n formControlName=\"protocolList\"\r\n >\r\n <mat-option\r\n *ngFor=\"let protocol of protocols\"\r\n [value]=\"protocol.id\"\r\n >\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" formControlName=\"url\" />\r\n <mat-error\r\n *ngIf=\"linkFormGroup.get('url').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_004\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ADVISORY_TITLE }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"advisoryTitle\"\r\n formControlName=\"advisoryTitle\"\r\n />\r\n <mat-error\r\n *ngIf=\"linkFormGroup.get('advisoryTitle').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_link_url_005\"\r\n class=\"qmsckeditor button__groups row\"\r\n >\r\n <div class=\"col-6 pl-3\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"eHandbook(false, false)\"\r\n >\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"anchorTextFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 1\"\r\n >\r\n <div id=\"qmsckeditor_link_anchor_text\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_anchor_text_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.ANCHOR_TEXT_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_text_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorText\">\r\n <mat-option\r\n *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\"\r\n >\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n anchorTextFormGroup.get('anchorText').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"emailFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 2\"\r\n >\r\n <div id=\"qmsckeditor_link_email\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_email_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_email_001\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_ADDRESS }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"emailAddress\"\r\n formControlName=\"emailAddress\"\r\n />\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailAddress').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_002\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_SUBJECT }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"emailSubject\"\r\n formControlName=\"emailSubject\"\r\n />\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailSubject').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_BODY }}</mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"emailBody\"\r\n formControlName=\"emailBody\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailBody').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"anchorDocFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 3\"\r\n >\r\n <div id=\"qmsckeditor_link_anchor_doc\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_email_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div\r\n id=\"qmsckeditor_link_anchor_doc_001\"\r\n class=\"qmsckeditor button__groups row\"\r\n >\r\n <div class=\"col-6 pl-3\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"eHandbook(true, true)\"\r\n >\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_002\" class=\"row mt-4\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DOCUMENT }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"anchorTitle\"\r\n formControlName=\"anchorTitle\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n anchorDocFormGroup.get('anchorTitle').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_003\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"anchorByName\"\r\n formControlName=\"anchorByName\"\r\n >\r\n <mat-option\r\n *ngFor=\"let docAnchor of documentAnchors\"\r\n [value]=\"docAnchor.anchorValue\"\r\n >\r\n {{ docAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n anchorDocFormGroup.get('anchorByName').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_footer\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-12 mt-5 pl-3 pr-3\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"setLink()\"\r\n [disabled]=\"disableOkButton()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.OK }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
6076
+ template: "<div id=\"qmsckeditor_link\" class=\"qmsckeditor qmsckeditor__link__container\">\r\n <div id=\"qmsckeditor_link_header\">\r\n <span\r\n id=\"qmsckeditor_link_header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_link_header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor_link_header_001\">\r\n {{ LANG.QMSCKEDITOR.LINK }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_type\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select\r\n name=\"linkTypeList\"\r\n [(ngModel)]=\"selectedLink\"\r\n (ngModelChange)=\"onSelectedLinkType()\"\r\n >\r\n <mat-option *ngFor=\"let link of linkTypes\" [value]=\"link.id\">\r\n {{ link.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_content\">\r\n <form\r\n [formGroup]=\"linkFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 0\"\r\n >\r\n <div id=\"qmsckeditor_link_url\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_url_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.URL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_url_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedTarget\"\r\n formControlName=\"targetList\"\r\n >\r\n <mat-option *ngFor=\"let target of targets\" [value]=\"target.id\">\r\n {{ target.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_002\" class=\"row\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"selectedProtocol\"\r\n formControlName=\"protocolList\"\r\n >\r\n <mat-option\r\n *ngFor=\"let protocol of protocols\"\r\n [value]=\"protocol.id\"\r\n >\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" formControlName=\"url\" />\r\n <mat-error\r\n *ngIf=\"linkFormGroup.get('url').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_url_004\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ADVISORY_TITLE }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"advisoryTitle\"\r\n formControlName=\"advisoryTitle\"\r\n />\r\n <mat-error\r\n *ngIf=\"linkFormGroup.get('advisoryTitle').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_link_url_005\"\r\n class=\"qmsckeditor button__groups row\"\r\n >\r\n <div class=\"col-6 pl-3\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"eHandbook(false, false)\"\r\n >\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-3\">\r\n <button class=\"save\" mat-flat-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"anchorTextFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 1\"\r\n >\r\n <div id=\"qmsckeditor_link_anchor_text\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_anchor_text_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.ANCHOR_TEXT_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_anchor_text_001\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select [(ngModel)]=\"anchorText\" formControlName=\"anchorText\">\r\n <mat-option\r\n *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\"\r\n >\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n anchorTextFormGroup.get('anchorText').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"emailFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 2\"\r\n >\r\n <div id=\"qmsckeditor_link_email\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_email_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmsckeditor_link_email_001\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_ADDRESS }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"emailAddress\"\r\n formControlName=\"emailAddress\"\r\n />\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailAddress').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_002\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_SUBJECT }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"emailSubject\"\r\n formControlName=\"emailSubject\"\r\n />\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailSubject').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_email_003\" class=\"row\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.EMAIL_BODY }}</mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"emailBody\"\r\n formControlName=\"emailBody\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"emailFormGroup.get('emailBody').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n\r\n <form\r\n [formGroup]=\"anchorDocFormGroup\"\r\n class=\"qmsckeditor link__content height row\"\r\n *ngIf=\"selectedLink === 3\"\r\n >\r\n <div id=\"qmsckeditor_link_anchor_doc\" class=\"col-12 mt-1 pl-3 pr-3\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor_link_email_panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{ LANG.QMSCKEDITOR.EMAIL_HEADER }}\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div\r\n id=\"qmsckeditor_link_anchor_doc_001\"\r\n class=\"qmsckeditor button__groups row\"\r\n >\r\n <div class=\"col-6 pl-3\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"eHandbook(true, true)\"\r\n >\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_002\" class=\"row mt-4\">\r\n <mat-form-field class=\"col-12 pl-3 pr-3\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DOCUMENT }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"anchorTitle\"\r\n formControlName=\"anchorTitle\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n anchorDocFormGroup.get('anchorTitle').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor_link_anchor_doc_003\" class=\"row mt-2\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ANCHOR_BY_NAME }}</mat-label>\r\n <mat-select\r\n [(ngModel)]=\"anchorByName\"\r\n formControlName=\"anchorByName\"\r\n >\r\n <mat-option\r\n *ngFor=\"let docAnchor of documentAnchors\"\r\n [value]=\"docAnchor.anchorValue\"\r\n >\r\n {{ docAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error\r\n *ngIf=\"\r\n anchorDocFormGroup.get('anchorByName').hasError('required')\r\n \"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <div id=\"qmsckeditor_link_footer\" class=\"qmsckeditor button__groups row\">\r\n <div class=\"col-12 mt-3 pl-3 pr-3\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"setLink()\"\r\n [disabled]=\"disableOkButton()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.OK }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n",
5986
6077
  styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor__link__container textarea.mat-input-element{min-height:130px}"]
5987
6078
  },] }
5988
6079
  ];
@@ -6668,7 +6759,8 @@ function getCKEditorConfiguration(itemToolbar) {
6668
6759
  label: 'New window',
6669
6760
  attributes: {
6670
6761
  target: '_blank',
6671
- manualTarget: true
6762
+ manualTarget: true,
6763
+ url: 'url'
6672
6764
  }
6673
6765
  },
6674
6766
  {
@@ -6676,7 +6768,8 @@ function getCKEditorConfiguration(itemToolbar) {
6676
6768
  label: 'Topmost window',
6677
6769
  attributes: {
6678
6770
  target: '_top',
6679
- manualTarget: true
6771
+ manualTarget: true,
6772
+ url: 'url'
6680
6773
  }
6681
6774
  },
6682
6775
  {
@@ -6684,7 +6777,8 @@ function getCKEditorConfiguration(itemToolbar) {
6684
6777
  label: 'Same window',
6685
6778
  attributes: {
6686
6779
  target: '_self',
6687
- manualTarget: true
6780
+ manualTarget: true,
6781
+ url: 'url'
6688
6782
  }
6689
6783
  },
6690
6784
  {
@@ -6692,7 +6786,8 @@ function getCKEditorConfiguration(itemToolbar) {
6692
6786
  label: 'Parent window',
6693
6787
  attributes: {
6694
6788
  target: '_parent',
6695
- manualTarget: true
6789
+ manualTarget: true,
6790
+ url: 'url'
6696
6791
  }
6697
6792
  },
6698
6793
  {
@@ -6879,7 +6974,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
6879
6974
  data.entityId = this.qmsckData.entityId;
6880
6975
  const dialogTemplate = this.dialog.open(QMSCKEditorLinkComponent, {
6881
6976
  width: '650px',
6882
- height: '670px',
6977
+ height: '660px',
6883
6978
  data,
6884
6979
  disableClose: true
6885
6980
  });
@@ -6987,16 +7082,6 @@ QMSCKEditorModule.ctorParameters = () => [
6987
7082
  { type: Injector }
6988
7083
  ];
6989
7084
 
6990
- var CKEditorModule;
6991
- (function (CKEditorModule) {
6992
- CKEditorModule[CKEditorModule["document"] = 1] = "document";
6993
- CKEditorModule[CKEditorModule["process"] = 2] = "process";
6994
- CKEditorModule[CKEditorModule["deviation"] = 3] = "deviation";
6995
- CKEditorModule[CKEditorModule["risk"] = 4] = "risk";
6996
- CKEditorModule[CKEditorModule["checklist"] = 5] = "checklist";
6997
- CKEditorModule[CKEditorModule["dashboard"] = 6] = "dashboard";
6998
- })(CKEditorModule || (CKEditorModule = {}));
6999
-
7000
7085
  class QMSCKEditorData {
7001
7086
  constructor() {
7002
7087
  this.apiUrl = '';