qms-angular 1.0.72 → 1.0.76

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 (190) hide show
  1. package/bundles/qms-angular.umd.js +826 -467
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/button/button.js +1 -1
  4. package/esm2015/lib/components/comment/comment.js +2 -2
  5. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +12 -8
  6. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.js +4 -4
  7. package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +5 -3
  8. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +1 -1
  9. package/esm2015/lib/components/related/popup/related-popup.component.js +10 -10
  10. package/esm2015/lib/components/select-include-children/select-include-children.component.js +112 -45
  11. package/esm2015/lib/components/select-process-document/select-process-document.component.js +64 -143
  12. package/esm2015/lib/components/side-sheet/directives/drawer-content.directive.js +20 -0
  13. package/esm2015/lib/components/side-sheet/directives/drawer-header-action.directive.js +20 -0
  14. package/esm2015/lib/components/side-sheet/directives/drawer-header.directive.js +20 -0
  15. package/esm2015/lib/components/side-sheet/directives/drawer.directive.js +20 -0
  16. package/esm2015/lib/components/side-sheet/index.js +2 -0
  17. package/esm2015/lib/components/side-sheet/public-api.js +6 -0
  18. package/esm2015/lib/components/side-sheet/side-sheet.module.js +28 -0
  19. package/esm2015/lib/components/tree/tree.component.js +10 -14
  20. package/esm2015/lib/directives/table/table-row.directive.js +50 -0
  21. package/esm2015/lib/directives/table/table.directive.js +18 -61
  22. package/esm2015/lib/model/en.js +19 -2
  23. package/esm2015/lib/model/no.js +19 -2
  24. package/esm2015/lib/qms-angular.module.js +5 -18
  25. package/esm2015/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.js +89 -0
  26. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +3 -1
  27. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  28. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-video-tree.model.js +4 -0
  29. package/esm2015/lib/qms-ckeditor-components/common/models/wproofreader-config.model.js +6 -0
  30. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +38 -0
  31. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +22 -3
  32. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +9 -8
  33. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +4 -1
  34. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +3 -4
  35. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +161 -11
  36. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +7 -3
  37. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +4 -1
  38. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.js +20 -0
  39. package/esm2015/public-api.js +4 -5
  40. package/esm2015/qms-angular.js +6 -4
  41. package/fesm2015/qms-angular.js +744 -418
  42. package/fesm2015/qms-angular.js.map +1 -1
  43. package/lib/components/button/button.d.ts +1 -1
  44. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.d.ts +2 -2
  45. package/lib/components/select-include-children/select-include-children.component.d.ts +2 -1
  46. package/lib/components/select-process-document/select-process-document.component.d.ts +3 -0
  47. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-content.directive.d.ts +0 -0
  48. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-header-action.directive.d.ts +0 -0
  49. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer-header.directive.d.ts +0 -0
  50. package/lib/{directives/side-sheet → components/side-sheet/directives}/drawer.directive.d.ts +0 -0
  51. package/lib/components/side-sheet/index.d.ts +1 -0
  52. package/lib/components/side-sheet/public-api.d.ts +5 -0
  53. package/lib/components/side-sheet/side-sheet.module.d.ts +2 -0
  54. package/lib/directives/table/table-row.directive.d.ts +13 -0
  55. package/lib/directives/table/table.directive.d.ts +2 -11
  56. package/lib/model/en.d.ts +17 -0
  57. package/lib/model/no.d.ts +17 -0
  58. package/lib/qms-ckeditor-components/common/classes/qmsUploadAdapter.d.ts +18 -0
  59. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +2 -0
  60. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +4 -0
  61. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-video-tree.model.d.ts +5 -0
  62. package/lib/qms-ckeditor-components/common/models/wproofreader-config.model.d.ts +25 -0
  63. package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +15 -0
  64. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -1
  65. package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +2 -1
  66. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +15 -1
  67. package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +2 -0
  68. package/lib/qms-ckeditor-components/services/qms-ckeditor-upload.service.d.ts +5 -0
  69. package/lib.theme.scss +1 -0
  70. package/package.json +1 -1
  71. package/public-api.d.ts +2 -4
  72. package/qms-angular.d.ts +5 -3
  73. package/qms-angular.metadata.json +1 -1
  74. package/src/assets/images/ckeditor5.svg +1 -0
  75. package/src/assets/jointjs/scss/rappid.scss +1 -1
  76. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  77. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  78. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  79. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  80. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  81. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  82. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  83. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  84. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  85. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  86. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  87. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  88. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  89. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  90. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  91. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  92. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  93. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  94. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  95. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  96. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  97. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  98. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  99. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  100. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  101. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  102. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  103. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  104. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  105. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  106. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  107. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  108. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  109. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  110. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  111. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  112. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  113. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  114. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  115. package/src/assets/qms-ckeditor-plugin/package-lock.json +23 -0
  116. package/src/assets/qms-ckeditor-plugin/package.json +2 -0
  117. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +18 -4
  118. package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +28 -0
  119. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/bpmndialogcommand.js +74 -0
  120. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -68
  121. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/contexts.json +3 -0
  122. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/de.po +21 -0
  123. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/en.po +21 -0
  124. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/gl.po +21 -0
  125. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/hu.po +21 -0
  126. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/it.po +21 -0
  127. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/ru.po +21 -0
  128. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/lang/translations/zh.po +21 -0
  129. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/index.js +10 -0
  130. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/sourceediting.js +386 -0
  131. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/src/utils/formathtml.js +142 -0
  132. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/theme/icons/source-editing.svg +1 -0
  133. package/src/assets/qms-ckeditor-plugin/src/plugins/ckeditor5-source-editing/theme/sourceediting.css +48 -0
  134. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +4 -0
  135. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +21 -0
  136. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/qmsCKEditorFullscreenPlugin.js +1 -5
  137. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapcommand.js +1 -0
  138. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +1 -1
  139. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkcommand.js +131 -176
  140. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkdialogcommand.js +88 -0
  141. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkediting.js +2 -0
  142. package/src/assets/qms-ckeditor-plugin/src/plugins/link/linkui.js +41 -32
  143. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontents.js +14 -0
  144. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentscommand.js +87 -0
  145. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentsediting.js +59 -0
  146. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/tableofcontentsui.js +35 -0
  147. package/src/assets/qms-ckeditor-plugin/src/plugins/tableofcontents/utils.js +62 -0
  148. package/src/assets/qms-ckeditor-plugin/src/plugins/template/loadtemplatedialogcommand.js +14 -0
  149. package/src/assets/qms-ckeditor-plugin/src/plugins/template/qmsCKEditorLoadTemplatePlugin.js +10 -12
  150. package/src/assets/qms-ckeditor-plugin/src/plugins/template/qmsCKEdtiorTemplatePlugin.js +10 -7
  151. package/src/assets/qms-ckeditor-plugin/src/plugins/template/templatedialogcommand.js +9 -0
  152. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +15 -18
  153. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestampcommand.js +17 -0
  154. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/removetooltipcommand.js +42 -26
  155. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltip.js +3 -3
  156. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipcommand.js +75 -0
  157. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipdialogcommand.js +68 -0
  158. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipediting.js +206 -131
  159. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +424 -136
  160. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/ui/actionsview.js +67 -12
  161. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/utils.js +17 -55
  162. package/src/assets/qms-ckeditor-plugin/src/plugins/video/autovideo.js +1 -5
  163. package/src/assets/qms-ckeditor-plugin/src/plugins/video/video/videoediting.js +5 -2
  164. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/browsevideodialogcommand.js +25 -0
  165. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/uploadvideocommand.js +3 -16
  166. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/videouploadediting.js +4 -0
  167. package/src/assets/qms-ckeditor-plugin/src/plugins/video/videoupload/videouploadui.js +12 -23
  168. package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +1 -50
  169. package/src/assets/qms-ckeditor-plugin/src/themes/icons/table-excel.svg +44 -0
  170. package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
  171. package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +1 -0
  172. package/src/assets/qms-ckeditor-plugin/src/themes/styles/heading.css +54 -0
  173. package/src/assets/qms-ckeditor-plugin/src/themes/styles/tooltip.css +11 -53
  174. package/src/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.scss +47 -23
  175. package/src/lib/components/qms-paginator/qms-paginator.component.scss +40 -3
  176. package/src/lib/components/qms-stepper/qms-stepper.component.scss +2 -1
  177. package/src/lib/components/select-process-document/select-process-document.component.scss +2 -2
  178. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +16 -0
  179. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.scss +25 -23
  180. package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +11 -11
  181. package/src/themes/core/_range-slider.scss +10 -12
  182. package/src/themes/core/_side-sheet.scss +2 -2
  183. package/src/themes/core/_table.scss +176 -37
  184. package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +0 -20
  185. package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +0 -20
  186. package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +0 -20
  187. package/esm2015/lib/directives/side-sheet/drawer.directive.js +0 -20
  188. package/esm2015/lib/qms-ckeditor-components/common/classes/uploadAdapter.js +0 -26
  189. package/lib/qms-ckeditor-components/common/classes/uploadAdapter.d.ts +0 -5
  190. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/inserttooltipcommand.js +0 -88
@@ -40,8 +40,10 @@ import { CKEditorModule as CKEditorModule$1 } from '@ckeditor/ckeditor5-angular'
40
40
  import { __awaiter } from 'tslib';
41
41
  import * as $$1 from 'jquery';
42
42
  import * as _ from 'lodash';
43
+ import { Buffer } from 'buffer';
43
44
  import { MatTooltipModule } from '@angular/material/tooltip';
44
45
  import { MatTabsModule } from '@angular/material/tabs';
46
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
45
47
  import { MatBadgeModule } from '@angular/material/badge';
46
48
  import { MatToolbarModule } from '@angular/material/toolbar';
47
49
  import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
@@ -188,7 +190,24 @@ const en = {
188
190
  "INVALID_URL": "Invalid URL",
189
191
  "REQUIRED_URL": "URL is required",
190
192
  "CLOSE": "Close",
191
- "DOCUMENT_PROCESS": "Document / Process"
193
+ "DOCUMENT_PROCESS": "Document / Process",
194
+ "UPLOAD_FILE_NOT_VALID_FORMAT": "The file uploaded is invalid format. Supported file formats: {0}",
195
+ "UPLOAD_FILE_OVERSIZE": "The file uploaded is over the limit size. The limit size is {0}MB",
196
+ "UPLOAD_FILE_FAILED": "Failed to upload file.",
197
+ "ASSISTIVE_TEXT": "Assistive text",
198
+ "WORDS": "Words",
199
+ "CHARACTERS": "Characters",
200
+ "SELECT_VIDEO_FROM_ARCHIVE": "Select video from the archive"
201
+ },
202
+ "ABOUT": {
203
+ "ABOUT_CKEDITOR": "About CKEditor",
204
+ "CKEDITOR5_VERSION": "CKEditor 5 version",
205
+ "FOR_LICENSING_INFORMATION_PLEASE_VISIT_OUR_WEBSITE": "For licensing information please visit our website",
206
+ "ALL_RIGHTS_RESERVED": "All rights reserved",
207
+ "CHECK": "Check",
208
+ "FOR_HELP": "for help",
209
+ "CKEDITOR_USERS_GUIDE": "CKEditor User's Guide",
210
+ "COPYRIGHT": "Copyright ©"
192
211
  },
193
212
  "BPMN": {
194
213
  "DEFAULT": "Default",
@@ -468,7 +487,24 @@ const no = {
468
487
  "INVALID_URL": "Ugyldig URL",
469
488
  "REQUIRED_URL": "URL er påkrevd",
470
489
  "CLOSE": "Close",
471
- "DOCUMENT_PROCESS": "Dokument / Prosess"
490
+ "DOCUMENT_PROCESS": "Dokument / Prosess",
491
+ "UPLOAD_FILE_NOT_VALID_FORMAT": "Filen som er lastet opp er ugyldig format. Støttede filformater: {0}",
492
+ "UPLOAD_FILE_OVERSIZE": "Filen som er lastet opp er over grensestørrelsen. Grensestørrelsen er {0}MB",
493
+ "UPLOAD_FILE_FAILED": "Kunne ikke laste opp filen.",
494
+ "ASSISTIVE_TEXT": "Hjelpende tekst",
495
+ "WORDS": "Ord",
496
+ "CHARACTERS": "Tegn",
497
+ "SELECT_VIDEO_FROM_ARCHIVE": "Velg video fra arkivet"
498
+ },
499
+ "ABOUT": {
500
+ "ABOUT_CKEDITOR": "Om CKEditor",
501
+ "CKEDITOR5_VERSION": "CKEditor 5 versjon",
502
+ "FOR_LICENSING_INFORMATION_PLEASE_VISIT_OUR_WEBSITE": "For lisensieringsinformasjon, besøk vår nettside",
503
+ "ALL_RIGHTS_RESERVED": "Alle rettigheter er forbeholdt",
504
+ "CHECK": "Se",
505
+ "FOR_HELP": "for hjelp",
506
+ "CKEDITOR_USERS_GUIDE": "brukerhåndboken for CKEditor",
507
+ "COPYRIGHT": "Opphavsrett ©"
472
508
  },
473
509
  "BPMN": {
474
510
  "DEFAULT": "Standard",
@@ -715,7 +751,7 @@ class QMSComment {
715
751
  QMSComment.decorators = [
716
752
  { type: Component, args: [{
717
753
  selector: 'qms-comment',
718
- template: "<div class=\"qms-comment\" *ngFor=\"let item of sourceLog; let i = index\">\r\n <mat-card-header *ngIf=\"!item.isDelete\">\r\n <mat-card-subtitle\r\n >{{ item.user }} {{ item.date | dateFormat }}\r\n </mat-card-subtitle>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <div\r\n qms-scrollbar\r\n *ngIf=\"!item.isEdit && !item.isDelete\"\r\n class=\"content\"\r\n [ngClass]=\"{ secondary: 0 != i % 2 }\"\r\n [innerHTML]=\"showContent(item.content)\"\r\n ></div>\r\n <div class=\"content delete-action-wrap\" *ngIf=\"item.isDelete\">\r\n <i>{{ LANG.DELETE_MESSAGE_COMMENT }}</i>\r\n <button qms-btn-text class=\"btn-action\" (click)=\"regretItem(item)\">\r\n {{ LANG.REGRET }}\r\n </button>\r\n </div>\r\n <mat-form-field *ngIf=\"item.isEdit && !item.isDelete\" qms-form-textarea>\r\n <textarea\r\n qms-scrollbar\r\n class=\"textarea-comment\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n [(ngModel)]=\"item.editedContent\"\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions *ngIf=\"item.isDraft && !item.isEdit && !item.isDelete\">\r\n <a class=\"btn-action\" (click)=\"editContent(item)\"> {{ LANG.EDIT }} </a>\r\n <a class=\"btn-action ml-20\" (click)=\"removeItem(item)\">{{ LANG.DELETE }}</a>\r\n </mat-card-actions>\r\n <mat-card-actions *ngIf=\"item.isEdit\" class=\"edit-action-wrap\">\r\n <button qms-btn (click)=\"saveEditedContent(item)\">{{ LANG.SAVE }}</button>\r\n <button qms-btn-text (click)=\"item.isEdit = false\" class=\"ml-10\">\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </mat-card-actions>\r\n</div>\r\n",
754
+ template: "<div class=\"qms-comment\" *ngFor=\"let item of sourceLog; let i = index\">\r\n <mat-card-header *ngIf=\"!item.isDelete\">\r\n <mat-card-subtitle>{{ item.user }} {{ item.date }} </mat-card-subtitle>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <div\r\n qms-scrollbar\r\n *ngIf=\"!item.isEdit && !item.isDelete\"\r\n class=\"content\"\r\n [ngClass]=\"{ secondary: 0 != i % 2 }\"\r\n [innerHTML]=\"showContent(item.content)\"\r\n ></div>\r\n <div class=\"content delete-action-wrap\" *ngIf=\"item.isDelete\">\r\n <i>{{ LANG.DELETE_MESSAGE_COMMENT }}</i>\r\n <button qms-btn-text class=\"btn-action\" (click)=\"regretItem(item)\">\r\n {{ LANG.REGRET }}\r\n </button>\r\n </div>\r\n <mat-form-field *ngIf=\"item.isEdit && !item.isDelete\" qms-form-textarea>\r\n <textarea\r\n qms-scrollbar\r\n class=\"textarea-comment\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n [(ngModel)]=\"item.editedContent\"\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-card-content>\r\n <mat-card-actions *ngIf=\"item.isDraft && !item.isEdit && !item.isDelete\">\r\n <a class=\"btn-action\" (click)=\"editContent(item)\"> {{ LANG.EDIT }} </a>\r\n <a class=\"btn-action ml-20\" (click)=\"removeItem(item)\">{{ LANG.DELETE }}</a>\r\n </mat-card-actions>\r\n <mat-card-actions *ngIf=\"item.isEdit\" class=\"edit-action-wrap\">\r\n <button qms-btn (click)=\"saveEditedContent(item)\">{{ LANG.SAVE }}</button>\r\n <button qms-btn-text (click)=\"item.isEdit = false\" class=\"ml-10\">\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </mat-card-actions>\r\n</div>\r\n",
719
755
  host: { 'class': 'qms-comment' },
720
756
  changeDetection: ChangeDetectionStrategy.OnPush,
721
757
  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}.qms-comment{font-family:Open Sans;margin-bottom:1rem;display:block}.qms-comment .mat-card-subtitle{font-size:.75rem;color:rgba(0,0,0,.6)}.qms-comment .mat-card-content .content{padding:10px 16px;background-color:rgba(0,0,0,.04);display:block;border-radius:4px;font-size:.875rem;max-height:125px;overflow-y:auto}.qms-comment .mat-card-content .content.delete-action-wrap{display:flex;justify-content:space-between;align-items:center}.qms-comment .mat-card-content .content.secondary{background-color:rgba(62,87,183,.12)}.qms-comment .mat-card-content .qms-form{width:100%}.qms-comment .btn-action{color:#1954a9;font-weight:600;font-size:13px;cursor:pointer}.qms-comment .textarea-comment{font-size:.875rem}.ml-10{margin-left:10px}.mt-15{margin-top:15px}.ml-20{margin-left:20px}.edit-action-wrap{display:block;margin-top:-10px}"]
@@ -1741,82 +1777,6 @@ QMSSearchFieldDirective.propDecorators = {
1741
1777
  isLoading: [{ type: Input }]
1742
1778
  };
1743
1779
 
1744
- class QMSDrawerContentDirective {
1745
- constructor(ele) {
1746
- this.ele = ele;
1747
- }
1748
- ngOnInit() {
1749
- if (this.ele) {
1750
- this.ele.nativeElement.classList.add('qms-drawer-content');
1751
- }
1752
- }
1753
- }
1754
- QMSDrawerContentDirective.decorators = [
1755
- { type: Directive, args: [{
1756
- selector: '[qms-drawer-content]',
1757
- },] }
1758
- ];
1759
- QMSDrawerContentDirective.ctorParameters = () => [
1760
- { type: ElementRef }
1761
- ];
1762
-
1763
- class QMSDrawerHeaderActionDirective {
1764
- constructor(ele) {
1765
- this.ele = ele;
1766
- }
1767
- ngOnInit() {
1768
- if (this.ele) {
1769
- this.ele.nativeElement.classList.add('qms-drawer-header__action');
1770
- }
1771
- }
1772
- }
1773
- QMSDrawerHeaderActionDirective.decorators = [
1774
- { type: Directive, args: [{
1775
- selector: '[qms-drawer-header-action]',
1776
- },] }
1777
- ];
1778
- QMSDrawerHeaderActionDirective.ctorParameters = () => [
1779
- { type: ElementRef }
1780
- ];
1781
-
1782
- class QMSDrawerHeaderDirective {
1783
- constructor(ele) {
1784
- this.ele = ele;
1785
- }
1786
- ngOnInit() {
1787
- if (this.ele) {
1788
- this.ele.nativeElement.classList.add('qms-drawer-header');
1789
- }
1790
- }
1791
- }
1792
- QMSDrawerHeaderDirective.decorators = [
1793
- { type: Directive, args: [{
1794
- selector: '[qms-drawer-header]',
1795
- },] }
1796
- ];
1797
- QMSDrawerHeaderDirective.ctorParameters = () => [
1798
- { type: ElementRef }
1799
- ];
1800
-
1801
- class QMSDrawerDirective {
1802
- constructor(ele) {
1803
- this.ele = ele;
1804
- }
1805
- ngOnInit() {
1806
- if (this.ele) {
1807
- this.ele.nativeElement.classList.add('qms-drawer');
1808
- }
1809
- }
1810
- }
1811
- QMSDrawerDirective.decorators = [
1812
- { type: Directive, args: [{
1813
- selector: '[qms-drawer]',
1814
- },] }
1815
- ];
1816
- QMSDrawerDirective.ctorParameters = () => [
1817
- { type: ElementRef }
1818
- ];
1819
-
1820
1780
  class QMSTextBlockLine {
1821
1781
  constructor(elRef, renderer) {
1822
1782
  this.elRef = elRef;
@@ -2729,39 +2689,12 @@ QMSAppBar.propDecorators = {
2729
2689
  mode: [{ type: Input, args: ['mode',] }]
2730
2690
  };
2731
2691
 
2732
- class QMSTableExpandDirective {
2733
- constructor(_el, renderer) {
2734
- this._el = _el;
2735
- this.renderer = renderer;
2736
- this._el.nativeElement.classList.add('qms-table');
2737
- }
2738
- ngAfterViewChecked() {
2739
- let matRows = this._el.nativeElement.querySelectorAll('mat-row');
2740
- for (const [key, value] of Object.entries(matRows)) {
2741
- this.renderer.addClass(value, 'qms-row');
2742
- }
2743
- }
2744
- }
2745
- QMSTableExpandDirective.decorators = [
2746
- { type: Directive, args: [{
2747
- selector: '[qms-table-expand]',
2748
- host: { 'class': 'qms-table-expand' }
2749
- },] }
2750
- ];
2751
- QMSTableExpandDirective.ctorParameters = () => [
2752
- { type: ElementRef },
2753
- { type: Renderer2 }
2754
- ];
2755
2692
  class QMSTableDirective {
2756
2693
  constructor(_el, renderer) {
2757
2694
  this._el = _el;
2758
2695
  this.renderer = renderer;
2759
2696
  }
2760
2697
  ngAfterViewChecked() {
2761
- let matRows = this._el.nativeElement.querySelectorAll('mat-row');
2762
- for (const [key, value] of Object.entries(matRows)) {
2763
- this.renderer.addClass(value, 'qms-row');
2764
- }
2765
2698
  }
2766
2699
  }
2767
2700
  QMSTableDirective.decorators = [
@@ -2783,7 +2716,6 @@ class QMSTableChildrenDirective {
2783
2716
  let matRows = this._el.nativeElement.querySelectorAll('mat-row');
2784
2717
  for (const [key, value] of Object.entries(matRows)) {
2785
2718
  this.renderer.addClass(value, 'qms-row-children');
2786
- this.renderer.addClass(value, 'qms-row-group');
2787
2719
  }
2788
2720
  }
2789
2721
  }
@@ -2797,16 +2729,6 @@ QMSTableChildrenDirective.ctorParameters = () => [
2797
2729
  { type: ElementRef },
2798
2730
  { type: Renderer2 }
2799
2731
  ];
2800
- class QMSRowExpandDirective {
2801
- constructor() { }
2802
- }
2803
- QMSRowExpandDirective.decorators = [
2804
- { type: Directive, args: [{
2805
- selector: '[qms-row-expand]',
2806
- host: { 'class': 'qms-row-expand' }
2807
- },] }
2808
- ];
2809
- QMSRowExpandDirective.ctorParameters = () => [];
2810
2732
  class QMSRowDetailDirective {
2811
2733
  constructor() { }
2812
2734
  }
@@ -2835,7 +2757,7 @@ class CdkDetailRowDirective {
2835
2757
  this.focusClass = 'focus-grid-style';
2836
2758
  this.onRowExpandEvent = new EventEmitter();
2837
2759
  }
2838
- get expended() {
2760
+ get expanded() {
2839
2761
  return this.opened;
2840
2762
  }
2841
2763
  set cdkDetailRow(value) {
@@ -2856,6 +2778,8 @@ class CdkDetailRowDirective {
2856
2778
  ngOnChanges(changes) {
2857
2779
  this.vcRef.clear();
2858
2780
  if (this.othertRef && this.row) {
2781
+ if (this.opened)
2782
+ this.vcRef.createEmbeddedView(this.tRef, { $implicit: this.row });
2859
2783
  this.vcRef.createEmbeddedView(this.othertRef, { $implicit: this.row });
2860
2784
  }
2861
2785
  }
@@ -2865,13 +2789,17 @@ class CdkDetailRowDirective {
2865
2789
  if (this.othertRef && this.row) {
2866
2790
  this.vcRef.createEmbeddedView(this.othertRef, { $implicit: this.row });
2867
2791
  if (((_a = this.row) === null || _a === void 0 ? void 0 : _a.children) && ((_b = this.row) === null || _b === void 0 ? void 0 : _b.children.length) > 0) {
2868
- this._el.nativeElement.classList.add('qms-row-group');
2792
+ this._el.nativeElement.classList.add('expandable-group');
2869
2793
  }
2870
2794
  }
2871
2795
  }
2872
2796
  onClick() {
2873
2797
  this.toggle();
2874
2798
  }
2799
+ onKeydownHandler(event) {
2800
+ if (event.target == event.currentTarget)
2801
+ this.toggle();
2802
+ }
2875
2803
  onClickItem(event) {
2876
2804
  if (event && event.parentNode && event.parentNode.classList && !event.parentNode.classList.contains(this.focusClass)) {
2877
2805
  const elements = document.getElementsByClassName(this.focusClass);
@@ -2887,25 +2815,13 @@ class CdkDetailRowDirective {
2887
2815
  }
2888
2816
  }
2889
2817
  toggle() {
2890
- if (this.opened) {
2891
- this.vcRef.clear();
2892
- if (this.othertRef) {
2893
- this.vcRef.createEmbeddedView(this.othertRef, { $implicit: this.row });
2894
- }
2895
- }
2896
- else {
2897
- this.render();
2898
- }
2899
- this.opened = !this.opened;
2900
- this.onRowExpandEvent.emit(this.opened);
2901
- }
2902
- render() {
2903
- this.vcRef.clear();
2904
- if (this.tRef && this.row) {
2905
- this.vcRef.createEmbeddedView(this.tRef, { $implicit: this.row });
2906
- if (this.othertRef) {
2907
- this.vcRef.createEmbeddedView(this.othertRef, { $implicit: this.row });
2908
- }
2818
+ if (this.tRef) {
2819
+ if (this.opened)
2820
+ this.vcRef.detach(0);
2821
+ else
2822
+ this.vcRef.createEmbeddedView(this.tRef, { $implicit: this.row }, 0);
2823
+ this.opened = !this.opened;
2824
+ this.onRowExpandEvent.emit(this.opened);
2909
2825
  }
2910
2826
  }
2911
2827
  }
@@ -2920,15 +2836,65 @@ CdkDetailRowDirective.ctorParameters = () => [
2920
2836
  ];
2921
2837
  CdkDetailRowDirective.propDecorators = {
2922
2838
  onRowExpandEvent: [{ type: Output }],
2923
- expended: [{ type: HostBinding, args: ['class.expanded',] }],
2839
+ expanded: [{ type: HostBinding, args: ['class.qms-row-expanded',] }],
2924
2840
  cdkDetailRow: [{ type: Input }],
2925
2841
  template: [{ type: Input, args: ['cdkDetailRowTpl',] }],
2926
2842
  otherTemplate: [{ type: Input, args: ['cdkotherTemplate',] }],
2927
2843
  onClick: [{ type: HostListener, args: ['click',] }],
2844
+ onKeydownHandler: [{ type: HostListener, args: ['keydown.enter', ['$event'],] }],
2928
2845
  onClickItem: [{ type: HostListener, args: ['document:click', ['$event.target'],] }],
2929
2846
  onKeydown: [{ type: HostListener, args: ['document:keydown', ['$event.target'],] }]
2930
2847
  };
2931
2848
 
2849
+ class QMSTableRowDirective {
2850
+ constructor(_el, renderer) {
2851
+ this._el = _el;
2852
+ this.renderer = renderer;
2853
+ }
2854
+ ngAfterViewChecked() {
2855
+ if (!this._rowData.disabled)
2856
+ this.renderer.setAttribute(this._el.nativeElement, 'tabindex', "0");
2857
+ else {
2858
+ let matButtons = this._el.nativeElement.querySelectorAll('button, [tabindex]');
2859
+ for (const [key, value] of Object.entries(matButtons)) {
2860
+ this.renderer.setAttribute(value, "tabindex", "-1");
2861
+ }
2862
+ }
2863
+ }
2864
+ set cdkDetailRow(value) {
2865
+ this._rowData = value;
2866
+ }
2867
+ get disable() {
2868
+ return this._rowData.disabled;
2869
+ }
2870
+ get select() {
2871
+ return this._rowData.selected;
2872
+ }
2873
+ get group() {
2874
+ return this._rowData.childen;
2875
+ }
2876
+ get isDraft() {
2877
+ return this._rowData.isDraft;
2878
+ }
2879
+ }
2880
+ QMSTableRowDirective.decorators = [
2881
+ { type: Directive, args: [{
2882
+ selector: '[qms-table-row]',
2883
+ host: { 'class': 'qms-table-row' }
2884
+ },] }
2885
+ ];
2886
+ QMSTableRowDirective.ctorParameters = () => [
2887
+ { type: ElementRef },
2888
+ { type: Renderer2 }
2889
+ ];
2890
+ QMSTableRowDirective.propDecorators = {
2891
+ cdkDetailRow: [{ type: Input }],
2892
+ disable: [{ type: HostBinding, args: ['class.qms-table-row-disabled',] }],
2893
+ select: [{ type: HostBinding, args: ['class.qms-table-row-selected',] }],
2894
+ group: [{ type: HostBinding, args: ['class.qms-table-row-group',] }],
2895
+ isDraft: [{ type: HostBinding, args: ['class.qms-table-row-draft',] }]
2896
+ };
2897
+
2932
2898
  const ɵ0$2 = { appearance: 'fill' }, ɵ1 = { color: 'none' };
2933
2899
  class QmsAngularModule {
2934
2900
  }
@@ -2964,16 +2930,11 @@ QmsAngularModule.decorators = [
2964
2930
  QMSScrollbarDirective,
2965
2931
  QMSTextBlockDirective,
2966
2932
  QMSTextBlockLine,
2967
- QMSDrawerDirective,
2968
- QMSDrawerHeaderDirective,
2969
- QMSDrawerContentDirective,
2970
- QMSDrawerHeaderActionDirective,
2971
2933
  QMSToolTipRendererDirective,
2972
- QMSTableExpandDirective,
2973
2934
  QMSTableDirective,
2935
+ QMSTableRowDirective,
2974
2936
  QMSRowDetailDirective,
2975
2937
  QMSTableChildrenDirective,
2976
- QMSRowExpandDirective,
2977
2938
  CdkDetailRowDirective,
2978
2939
  QMSCollapseGroupDirective,
2979
2940
  DateFormatPipe,
@@ -3023,10 +2984,6 @@ QmsAngularModule.decorators = [
3023
2984
  QMSScrollbarDirective,
3024
2985
  QMSTextBlockDirective,
3025
2986
  QMSTextBlockLine,
3026
- QMSDrawerDirective,
3027
- QMSDrawerHeaderDirective,
3028
- QMSDrawerContentDirective,
3029
- QMSDrawerHeaderActionDirective,
3030
2987
  QMSToolTipRendererDirective,
3031
2988
  DateFormatPipe,
3032
2989
  QMSChipInputDirective,
@@ -3038,11 +2995,10 @@ QmsAngularModule.decorators = [
3038
2995
  QMSTooltipImageDirective,
3039
2996
  SelectDialog,
3040
2997
  QMSAppBar,
3041
- QMSTableExpandDirective,
3042
2998
  QMSTableDirective,
2999
+ QMSTableRowDirective,
3043
3000
  QMSTableChildrenDirective,
3044
3001
  QMSRowDetailDirective,
3045
- QMSRowExpandDirective,
3046
3002
  CdkDetailRowDirective,
3047
3003
  QMSCollapseGroupDirective
3048
3004
  ],
@@ -4448,15 +4404,12 @@ class TreeComponent {
4448
4404
  this.treeControl.dataNodes[i].disabled = false;
4449
4405
  }
4450
4406
  if (this.disabledList.length) {
4451
- for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
4452
- this.disabledList.forEach(x => {
4453
- var _a;
4454
- if (x.id === this.treeControl.dataNodes[i].id
4455
- && (!x.parentId || x.parentId === ((_a = this.treeControl.dataNodes[i]) === null || _a === void 0 ? void 0 : _a.parentId))) {
4456
- this.treeControl.dataNodes[i].disabled = true;
4457
- }
4458
- });
4459
- }
4407
+ this.disabledList.forEach(x => {
4408
+ const index = this.treeControl.dataNodes.findIndex(node => node.id === x.id && (!x.parentId || x.parentId === node.parentId));
4409
+ if (index >= 0) {
4410
+ this.treeControl.dataNodes[index].disabled = true;
4411
+ }
4412
+ });
4460
4413
  }
4461
4414
  //Selected node with select one
4462
4415
  if (this.disabledList.length && this.treeConfig.selectOne) {
@@ -4490,7 +4443,6 @@ class TreeComponent {
4490
4443
  }
4491
4444
  else {
4492
4445
  this.idCheckIcon = '';
4493
- this.treeControl.collapseAll();
4494
4446
  this.cdRef.detectChanges();
4495
4447
  }
4496
4448
  }
@@ -4923,7 +4875,7 @@ class TreeComponent {
4923
4875
  }
4924
4876
  }
4925
4877
  getNodeId(node) {
4926
- return `_${node.parentId ? node.parentId : ''}_${node.id}_${node.level}`;
4878
+ return `_${node.parentId ? node.parentId.toLowerCase() : ''}_${node.id.toLowerCase()}_${node.level}`;
4927
4879
  }
4928
4880
  getNodeByIdAndParentId(nodeId, parentId) {
4929
4881
  return this.treeControl.dataNodes.find(x => {
@@ -4934,13 +4886,13 @@ class TreeComponent {
4934
4886
  this.treeControl.expand(node);
4935
4887
  }
4936
4888
  idToCheckSelectOne(id, parentId) {
4937
- return parentId ? `${id}-${parentId}` : `${id}`;
4889
+ return `${id}-${parentId}`;
4938
4890
  }
4939
4891
  }
4940
4892
  TreeComponent.decorators = [
4941
4893
  { type: Component, args: [{
4942
4894
  selector: 'qms-tree',
4943
- template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span\r\n class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n </div>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node)\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolderNode(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
4895
+ template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span\r\n class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n </div>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolderNode(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
4944
4896
  encapsulation: ViewEncapsulation.None,
4945
4897
  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}.tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}.mat-checkbox.mat-checkbox-disabled.qms-group-options.mat-checkbox-checked .mat-checkbox-background{background-color:#e0e0e0!important}"]
4946
4898
  },] }
@@ -5536,7 +5488,7 @@ class RelatedPopupComponent {
5536
5488
  this.selectedNode = [];
5537
5489
  if (this.treeConfig1.showCheckBox) {
5538
5490
  index = this.checkedNodeList.findIndex(x => {
5539
- return x.id === item.id && x.parentId === item.parentId;
5491
+ return x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase();
5540
5492
  });
5541
5493
  }
5542
5494
  if (index < 0) {
@@ -5546,13 +5498,13 @@ class RelatedPopupComponent {
5546
5498
  if (item.itemType === this.dataType.document) {
5547
5499
  // document
5548
5500
  const isExistInDisabled = this.disabledList2.findIndex(x => {
5549
- return x.id && x.id.toLowerCase() === item.id.toLowerCase();
5501
+ return x.id && x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase();
5550
5502
  });
5551
5503
  if (isExistInDisabled >= 0) {
5552
5504
  return;
5553
5505
  }
5554
5506
  position = this.treeData2.findIndex(x => {
5555
- return x.childId === item.id;
5507
+ return x.childId === item.id && x.rootId.toLowerCase() === item.parentId.toLowerCase();
5556
5508
  });
5557
5509
  if (position >= 0) {
5558
5510
  node = this.treeData2[position];
@@ -5641,7 +5593,7 @@ class RelatedPopupComponent {
5641
5593
  }
5642
5594
  else if (item.itemType === this.dataType.folder) {
5643
5595
  position = this.treeData2.findIndex(x => {
5644
- return x.rootId === item.id;
5596
+ return x.rootId === item.id && x.parentId === item.parentId;
5645
5597
  });
5646
5598
  typeId = item.itemType;
5647
5599
  if (position >= 0) {
@@ -5682,13 +5634,13 @@ class RelatedPopupComponent {
5682
5634
  || item.itemType === this.dataType.checklistCategory
5683
5635
  || item.itemType === this.dataType.riskFolder) && !this.canOnlySelectItem) {
5684
5636
  position = this.treeData1.findIndex(x => {
5685
- return x.rootId === item.id;
5637
+ return x.rootId.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase();
5686
5638
  });
5687
5639
  this.selectNodeRecursive(this.treeData1[position], item.itemType);
5688
5640
  }
5689
5641
  else if (item.itemType === this.dataType.area) {
5690
5642
  position = this.treeData1.findIndex(x => {
5691
- return x.rootId === item.id;
5643
+ return x.rootId.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase();
5692
5644
  });
5693
5645
  typeId = item.itemType;
5694
5646
  if (position >= 0) {
@@ -5728,7 +5680,7 @@ class RelatedPopupComponent {
5728
5680
  else if (item.itemType === this.dataType.deviation ||
5729
5681
  item.itemType === this.dataType.checklist) {
5730
5682
  position = this.treeData1.findIndex(x => {
5731
- return x.childId && x.childId.toLowerCase() === item.id.toLowerCase();
5683
+ return x.childId && x.childId.toLowerCase() === item.id.toLowerCase() && x.rootId.toLowerCase() === item.parentId.toLowerCase();
5732
5684
  });
5733
5685
  if (position >= 0) {
5734
5686
  node = this.treeData1[position];
@@ -5744,13 +5696,13 @@ class RelatedPopupComponent {
5744
5696
  }
5745
5697
  else {
5746
5698
  const isExistInDisabled = this.disabledList.findIndex(x => {
5747
- return x.id && x.id.toLowerCase() === item.id.toLowerCase();
5699
+ return x.id && x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase();
5748
5700
  });
5749
5701
  if (isExistInDisabled >= 0) {
5750
5702
  return;
5751
5703
  }
5752
5704
  position = this.treeData1.findIndex(x => {
5753
- return x.childId && x.childId.toLowerCase() === item.id.toLowerCase();
5705
+ return x.childId && x.childId.toLowerCase() === item.id.toLowerCase() && x.rootId.toLowerCase() === item.parentId.toLowerCase();
5754
5706
  });
5755
5707
  if (position >= 0) {
5756
5708
  node = this.treeData1[position];
@@ -7402,6 +7354,9 @@ class QMSCKEditorTreeService extends QMSCKEditorBaseService {
7402
7354
  getProcessList() {
7403
7355
  return this.get('ckeditorTree/GetProcessList');
7404
7356
  }
7357
+ getUploadVideoList(folderId = null) {
7358
+ return this.get('ckeditorTree/GetUploadVideoList', { folderId });
7359
+ }
7405
7360
  }
7406
7361
  QMSCKEditorTreeService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorTreeService_Factory() { return new QMSCKEditorTreeService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(QMSCKEditorGlobalService)); }, token: QMSCKEditorTreeService, providedIn: "root" });
7407
7362
  QMSCKEditorTreeService.decorators = [
@@ -7834,6 +7789,9 @@ class QMSCKEditorLinkComponent extends QMSCKEditorBaseComponent {
7834
7789
  this.anchorByName = url.substr(hashIndex + 1, url.length - hashIndex);
7835
7790
  this.anchorTitle = this.data.title;
7836
7791
  }
7792
+ else if (typeId === LinkType.url) {
7793
+ //selectedProtocol
7794
+ }
7837
7795
  }
7838
7796
  onSelectedLinkType() {
7839
7797
  if (this.selectedLink === LinkType.anchorText) {
@@ -8459,24 +8417,87 @@ QMSCKEditorLoadTemplateComponent.ctorParameters = () => [
8459
8417
  { type: String, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
8460
8418
  ];
8461
8419
 
8462
- class UploadAdapter {
8463
- constructor(loader) {
8420
+ class QmsUploadAdapter {
8421
+ constructor(loader, config) {
8464
8422
  this.loader = loader;
8423
+ this.config = config;
8424
+ this.config.imageUploadTypes = this.config.imageUploadTypes || 'png,jpeg,jpg';
8425
+ this.config.maxFileSizeMB = this.config.maxFileSizeMB || 2;
8426
+ if (this.config.imageUploadTypes.indexOf('jpeg') > -1) {
8427
+ this.config.imageUploadTypes += ',jpg';
8428
+ }
8429
+ else if (this.config.imageUploadTypes.indexOf('jpg') > -1) {
8430
+ this.config.imageUploadTypes += ',jpeg';
8431
+ }
8432
+ }
8433
+ abort() {
8434
+ if (this.xhr) {
8435
+ this.xhr.abort();
8436
+ }
8437
+ }
8438
+ _initRequest() {
8439
+ const xhr = this.xhr = new XMLHttpRequest();
8440
+ xhr.open('POST', `${this.config.apiUrl}ckeditorUpload/UploadImage`, true);
8441
+ xhr.responseType = 'json';
8442
+ }
8443
+ _initListeners(resolve, reject, filename) {
8444
+ const xhr = this.xhr;
8445
+ const loader = this.loader;
8446
+ const genericErrorText = `${this.config.LANG.QMSCKEDITOR.FAILED_TO_UPLOAD_FILE}: ${filename}.`;
8447
+ xhr.addEventListener('error', () => reject(genericErrorText));
8448
+ xhr.addEventListener('abort', () => reject());
8449
+ xhr.addEventListener('load', () => {
8450
+ const response = xhr.response;
8451
+ if (!response || response.error) {
8452
+ return reject(response && response.error ? response.error.message : genericErrorText);
8453
+ }
8454
+ resolve({ default: response });
8455
+ });
8456
+ if (xhr.upload) {
8457
+ xhr.upload.addEventListener('progress', evt => {
8458
+ if (evt.lengthComputable) {
8459
+ loader.uploadTotal = evt.total;
8460
+ loader.uploaded = evt.loaded;
8461
+ }
8462
+ });
8463
+ }
8464
+ }
8465
+ _sendRequest(file) {
8466
+ const data = new FormData();
8467
+ data.append('file', file, file.name);
8468
+ data.append('name', file.name);
8469
+ this.xhr.send(data);
8470
+ }
8471
+ _getExtension(file) {
8472
+ if (!file.name) {
8473
+ return '';
8474
+ }
8475
+ const filenames = file.name.toLowerCase().split('.');
8476
+ if (filenames.length < 1) {
8477
+ return '';
8478
+ }
8479
+ return filenames[1];
8465
8480
  }
8466
8481
  upload() {
8467
8482
  return this.loader.file
8468
8483
  .then((file) => {
8469
8484
  return new Promise((resolve, reject) => {
8470
- const myReader = new FileReader();
8471
- myReader.onloadend = () => {
8472
- resolve({ default: myReader.result });
8485
+ const reader = new FileReader();
8486
+ reader.readAsArrayBuffer(file);
8487
+ reader.onload = () => {
8488
+ const fileExtension = this._getExtension(file);
8489
+ if (this.config.imageUploadTypes.indexOf(fileExtension) > -1) {
8490
+ if (file.size > (this.config.maxFileSizeMB * 1024 * 1024)) {
8491
+ reject(`${this.config.LANG.QMSCKEDITOR.UPLOAD_FILE_OVERSIZE}`.replace('{0}', this.config.maxFileSizeMB.toString()));
8492
+ }
8493
+ this._initRequest();
8494
+ this._initListeners(resolve, reject, file.name);
8495
+ this._sendRequest(file);
8496
+ }
8497
+ else {
8498
+ reject(`${this.config.LANG.QMSCKEDITOR.UPLOAD_FILE_NOT_VALID_FORMAT}`.replace('{0}', this.config.imageUploadTypes));
8499
+ }
8473
8500
  };
8474
- // if (file.size > 512000) {
8475
- // const msg = `${file.name} is more than 500kb. Sorry, it has to be less than or equal to 500kb`;
8476
- // QMSCKEditorToastService.error(msg);
8477
- // reject();
8478
- // }
8479
- myReader.readAsDataURL(file);
8480
8501
  });
8481
8502
  })
8482
8503
  .catch((error) => {
@@ -8504,7 +8525,9 @@ CKEditorEventConst.QMSCK_ABOUT_CKEDITOR_PLUGIN_MSG = "QMSCK_ABOUT_CKEDITOR_PLUGI
8504
8525
  CKEditorEventConst.QMSCK_FLOWCHART_PLUGIN_MSG = 'QMSCK_FLOWCHART_PLUGIN_MSG';
8505
8526
  CKEditorEventConst.QMSCK_FLOWCHART_PLUGIN_RESP = 'QMSCK_FLOWCHART_PLUGIN_RESP';
8506
8527
  CKEditorEventConst.QMSCK_FLOWCHART = 'flowchart';
8507
- CKEditorEventConst.QMSCK_TOGGLE_TOOLBAR_MSG = 'QMSCK_TOGGLE_TOOLBAR_MSG';
8528
+ CKEditorEventConst.QMSCK_TOGGLE_TOOLBAR_MSG = 'QMSCK_TOGGLE_TOOLBAR_MSG';
8529
+ CKEditorEventConst.QMSCK_BROWSE_VIDEO_MSG = 'QMSCK_BROWSE_VIDEO_MSG';
8530
+ CKEditorEventConst.QMSCK_BROWSE_VIDEO_RESP = 'QMSCK_BROWSE_VIDEO_RESP';
8508
8531
 
8509
8532
  var IFRAME_SRC = '//cdn.iframe.ly/api/iframe';
8510
8533
  var API_KEY = 'b499e92e857f435c39c14d';
@@ -12587,6 +12610,21 @@ CKEditorLinkConst.DOCUMENT_PARTIAL_URL = '/document/';
12587
12610
  CKEditorLinkConst.AREA_PARTIAL_URL = '/area/detail/';
12588
12611
  CKEditorLinkConst.PROCESS_PARTIAL_URL = '/process-detail/';
12589
12612
 
12613
+ class QMSCKEditorUploadService extends QMSCKEditorBaseService {
12614
+ uploadImage(file) {
12615
+ const formData = new FormData();
12616
+ formData.append('name', file.name);
12617
+ formData.append('file', file);
12618
+ return this.post('ckeditorUpload/UploadImage', formData);
12619
+ }
12620
+ }
12621
+ QMSCKEditorUploadService.ɵprov = i0.ɵɵdefineInjectable({ factory: function QMSCKEditorUploadService_Factory() { return new QMSCKEditorUploadService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(QMSCKEditorGlobalService)); }, token: QMSCKEditorUploadService, providedIn: "root" });
12622
+ QMSCKEditorUploadService.decorators = [
12623
+ { type: Injectable, args: [{
12624
+ providedIn: 'root'
12625
+ },] }
12626
+ ];
12627
+
12590
12628
  class ILink {
12591
12629
  constructor() {
12592
12630
  this.target = TargetTypeName.new;
@@ -12598,13 +12636,14 @@ class ILink {
12598
12636
  }
12599
12637
  }
12600
12638
  class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
12601
- constructor(dialog, translate, bmpnService, bpmnApiService, linkService, dialogRef, data) {
12639
+ constructor(dialog, translate, bmpnService, bpmnApiService, linkService, uploadService, dialogRef, data) {
12602
12640
  super();
12603
12641
  this.dialog = dialog;
12604
12642
  this.translate = translate;
12605
12643
  this.bmpnService = bmpnService;
12606
12644
  this.bpmnApiService = bpmnApiService;
12607
12645
  this.linkService = linkService;
12646
+ this.uploadService = uploadService;
12608
12647
  this.dialogRef = dialogRef;
12609
12648
  this.data = data;
12610
12649
  this.expandedPanel = true;
@@ -12760,6 +12799,19 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
12760
12799
  });
12761
12800
  });
12762
12801
  }
12802
+ dataUrlToFile(dataUrl, filename) {
12803
+ const arr = dataUrl.split(',');
12804
+ if (arr.length < 2) {
12805
+ return undefined;
12806
+ }
12807
+ const mimeArr = arr[0].match(/:(.*?);/);
12808
+ if (!mimeArr || mimeArr.length < 2) {
12809
+ return undefined;
12810
+ }
12811
+ const mime = mimeArr[1];
12812
+ const buff = Buffer.from(arr[1], 'base64');
12813
+ return new File([buff], filename, { type: mime });
12814
+ }
12763
12815
  getImageContent(paper) {
12764
12816
  return __awaiter(this, void 0, void 0, function* () {
12765
12817
  return new Promise((resolve) => {
@@ -12778,8 +12830,10 @@ class QMSCKEditorBpmnComponent extends QMSCKEditorBaseComponent {
12778
12830
  const graphObject = graph.toJSON();
12779
12831
  const id = yield this.saveImageContent(graphObject);
12780
12832
  const imageContent = 'data:image/png;base64,' + (yield this.getImageContent(paper));
12833
+ const file = this.dataUrlToFile(imageContent, `${CKEditorEventConst.QMSCK_BPMN}#${id}`);
12834
+ const imageUrl = yield this.uploadService.uploadImage(file).toPromise();
12781
12835
  const imagemap = this.toImageMap(id, graphObject.cells, clientRect);
12782
- const result = { key: `${CKEditorEventConst.QMSCK_BPMN}#${id}`, values: imageContent, imagemap: imagemap };
12836
+ const result = { key: `${CKEditorEventConst.QMSCK_BPMN}#${id}`, values: imageUrl, imagemap: imagemap };
12783
12837
  this.dialogRef.close(result);
12784
12838
  });
12785
12839
  }
@@ -13330,6 +13384,7 @@ QMSCKEditorBpmnComponent.ctorParameters = () => [
13330
13384
  { type: BpmnService },
13331
13385
  { type: QMSCKEditorBpmnApiService },
13332
13386
  { type: QMSCKEditorLinkService },
13387
+ { type: QMSCKEditorUploadService },
13333
13388
  { type: MatDialogRef },
13334
13389
  { type: QMSCKEditorBpmnData, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
13335
13390
  ];
@@ -15360,6 +15415,7 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
15360
15415
  this.anchorText = '';
15361
15416
  //anchorByName = '';
15362
15417
  this.advisoryTitle = '';
15418
+ this.isImageLoading = false;
15363
15419
  this.isUrlProcessing = false;
15364
15420
  this.naturalImageWidth = 0;
15365
15421
  this.naturalImageHeight = 0;
@@ -15491,8 +15547,10 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
15491
15547
  }
15492
15548
  ngAfterViewInit() {
15493
15549
  if (this.myImageRef) {
15550
+ this.isImageLoading = true;
15494
15551
  this.imageListeners.push(this.renderer.listen(this.myImageRef.nativeElement, 'load', () => {
15495
15552
  this.onImageLoad();
15553
+ this.isImageLoading = false;
15496
15554
  }));
15497
15555
  }
15498
15556
  // Avoid drag&drop of the image
@@ -15527,9 +15585,9 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
15527
15585
  }
15528
15586
  });
15529
15587
  }
15530
- parseLinkUrl(url, defaultProtocolName) {
15588
+ parseLinkUrl(url) {
15531
15589
  const protocol = this.protocolRegex.exec(url);
15532
- if (protocol) {
15590
+ if (!!protocol) {
15533
15591
  this.processedUrl = url.substr(protocol[0].length);
15534
15592
  this.url = this.processedUrl;
15535
15593
  this.selectedProtocol = protocol[0].toLowerCase();
@@ -15542,9 +15600,7 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
15542
15600
  else {
15543
15601
  this.processedUrl = url;
15544
15602
  this.url = this.processedUrl;
15545
- if (!!this.selectedProtocol) {
15546
- this.selectedProtocol = defaultProtocolName || ProtocolTypeName.http;
15547
- }
15603
+ this.selectedProtocol = ProtocolTypeName.other;
15548
15604
  }
15549
15605
  }
15550
15606
  onSelectArea(area) {
@@ -15813,8 +15869,8 @@ class QMSCKEditorImageMapComponent extends QMSCKEditorBaseComponent {
15813
15869
  QMSCKEditorImageMapComponent.decorators = [
15814
15870
  { type: Component, args: [{
15815
15871
  selector: 'app-qmsck-imagemap',
15816
- template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\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 <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\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>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\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=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\">\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>",
15817
- 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,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.qmsckeditor__imagemap__container .mat-form-field{width:100%}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__information{position:relative}.qmsckeditor__imagemap__container .qmsckeditor__imagemap__map{overflow:auto;width:800px;min-height:371px;position:relative;max-height:460px}.qmsckeditor__imagemap__container .mat-button-toggle-checked{border:1px solid #000!important}.qmsckeditor__imagemap__container .hidden{visibility:hidden}"]
15872
+ template: "<div id=\"qmsckeditor-imagemap\" class=\"qmsckeditor qmsckeditor__imagemap__container\">\r\n <div id=\"qmsckeditor-imagemap-header\">\r\n <span id=\"qmsckeditor-imagemap-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-imagemap-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-imagemap_002_001\">\r\n {{ LANG.QMSCKEDITOR.IMAGE_MAP_PROPERTIES }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-content\">\r\n <div id=\"qmsckeditor-imagemap-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-imagemap-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-imagemap-panel_001\">\r\n <div id=\"qmsckeditor-imagemap-panel_001_001\" class=\"qmsckeditor__imagemap__information\">\r\n <form [formGroup]=\"imageMapFormGroup\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <mat-button-toggle-group [(ngModel)]=\"selectedMode\" formControlName=\"modeList\"\r\n (change)=\"onModeChange($event)\">\r\n <mat-button-toggle *ngFor=\"let mode of modes\" [value]=\"mode.id\"\r\n [matTooltip]=\"mode.name\">\r\n <mat-icon color=\"red\" [svgIcon]=\"mode.icon\" aria-hidden=\"true\">\r\n </mat-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n <span style=\"margin-left: 15px;\" #myStatus></span>\r\n </div>\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.ZOOM }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedZoom\" formControlName=\"zoomList\"\r\n (ngModelChange)=\"onZoomChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let zoomType of zoomTypes\" [value]=\"zoomType.id\">\r\n {{ zoomType.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_TYPE }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLinkType\" formControlName=\"linkTypeList\"\r\n (ngModelChange)=\"onLinkTypeChange()\" disableOptionCentering>\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 <div class=\"col-3\" *ngIf=\"selectedLinkType === 0\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TARGET }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedTarget\" formControlName=\"targetList\"\r\n (ngModelChange)=\"onTargetChange()\" disableOptionCentering>\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>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 1\">\r\n <div class=\"col-3\">\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=\"anchorTextList\"\r\n (ngModelChange)=\"onAnchorTextChange()\">\r\n <mat-option *ngFor=\"let editorAnchor of editorAnchors\"\r\n [value]=\"editorAnchor.anchorValue\" disableOptionCentering>\r\n {{ editorAnchor.viewValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"row\" [ngClass]=\"{'hidden': !showImageMapInformation}\"\r\n *ngIf=\"selectedLinkType === 0\">\r\n <div class=\"col-3\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.PROTOCOL }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedProtocol\" formControlName=\"protocolList\"\r\n (ngModelChange)=\"onProtocolChange()\" disableOptionCentering>\r\n <mat-option *ngFor=\"let protocol of protocols\" [value]=\"protocol.id\">\r\n {{ protocol.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-5\">\r\n <mat-form-field appearance=\"fill\" class=\"col-12 pl-3 pr-3 pb-1\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.LINK_URL }}</mat-label>\r\n <input matInput [(ngModel)]=\"url\" name=\"url\" formControlName=\"url\"\r\n (ngModelChange)=\"onUrlChange()\" (keyup)=\"onUrlKeyup()\" />\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('required')\">{{\r\n LANG.QMSCKEDITOR.REQUIRED_URL }}\r\n </mat-error>\r\n <mat-error *ngIf=\"imageMapFormGroup.get('url').hasError('invalidURL')\">{{\r\n LANG.QMSCKEDITOR.INVALID_URL }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"row button__groups\">\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"attachment()\">\r\n {{ LANG.QMSCKEDITOR.ATTACHMENT }}\r\n </button>\r\n </div>\r\n <div class=\"col-6\">\r\n <button class=\"save\" mat-stroked-button (click)=\"eHandbook(false, false)\">\r\n {{ LANG.QMSCKEDITOR.HANDBOOK }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_002\" class=\"qmsckeditor__imagemap__map\">\r\n <img #myImage [src]=\"imageMapData.imageUrl\">\r\n <mat-spinner diameter=\"40\" mode=\"indeterminate\" *ngIf=\"isImageLoading\"></mat-spinner>\r\n </div>\r\n <div id=\"qmsckeditor-imagemap-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\">\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"removeMap()\">\r\n {{ LANG.QMSCKEDITOR.REMOVE_MAP }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"save()\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-4 pl-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancel()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n</div>\r\n",
15873
+ 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,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}::ng-deep .qmsckeditor__imagemap__container .mat-form-field{width:100%}::ng-deep .qmsckeditor__imagemap__container .qmsckeditor__imagemap__information{position:relative}::ng-deep .qmsckeditor__imagemap__container .qmsckeditor__imagemap__map{overflow:auto;width:800px;min-height:371px;position:relative;max-height:460px;display:flex;align-items:flex-start}::ng-deep .qmsckeditor__imagemap__container .mat-button-toggle-checked{border:1px solid #000!important}::ng-deep .qmsckeditor__imagemap__container .hidden{visibility:hidden}"]
15818
15874
  },] }
15819
15875
  ];
15820
15876
  QMSCKEditorImageMapComponent.ctorParameters = () => [
@@ -15860,7 +15916,7 @@ class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent {
15860
15916
  this.LANG = this.translate.getObjectLang(res);
15861
15917
  }
15862
15918
  });
15863
- this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(',heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat');
15919
+ this.editorConfig = CKEditorCommonFunctions.getCKEditorConfiguration('heading,|,fontsize,fontfamily,fontColor,fontBackgroundColor,|,bold,italic,underline,strikethrough,|,alignment,|,bulletedList,numberedList,|,outdent,indent,|,subscript,superscript,|,undo,redo,|,specialCharacters,blockQuote,insertTable,|,link,anchor,|,timestamp,|,removeformat');
15864
15920
  }
15865
15921
  ngAfterViewChecked() {
15866
15922
  this.cdr.detectChanges();
@@ -15896,7 +15952,7 @@ class QMSCKEditorTooltipComponent extends QMSCKEditorBaseComponent {
15896
15952
  QMSCKEditorTooltipComponent.decorators = [
15897
15953
  { type: Component, args: [{
15898
15954
  selector: 'app-qmsck-tooltip',
15899
- template: "<div\r\n id=\"qmsckeditor-tooltip\"\r\n class=\"qmsckeditor qmsckeditor__tooltip__container\"\r\n>\r\n <div id=\"qmsckeditor-tooltip-header\">\r\n <span\r\n id=\"qmsckeditor-tooltip-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-tooltip-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-tooltip_002_001\">\r\n {{ LANG.QMSCKEDITOR.INSERT_TOOLTIP }}\r\n </h2>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"tooltipFormGroup\">\r\n <div\r\n id=\"qmsckeditor-tooltip-content\"\r\n class=\"qmsckeditor tooltip-content height\"\r\n >\r\n <div id=\"qmsckeditor-tooltip-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor-tooltip-panel\"\r\n [expanded]=\"true\"\r\n (opened)=\"(true)\"\r\n (closed)=\"(false)\"\r\n >\r\n <div id=\"qmsckeditor-tooltip-panel_001\">\r\n <div id=\"qmsckeditor-tooltip-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TITLE }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"tooltip.text\"\r\n formControlName=\"title\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-tooltip-panel_001_002\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.CONTENT }}</mat-label>\r\n <div class=\"qmsckeditor_container col-12 pl-0 pr-0\">\r\n <ckeditor\r\n class=\"qms-ckeditor\"\r\n [(editor)]=\"editor\"\r\n [config]=\"editorConfig\"\r\n (ready)=\"onReady($event)\"\r\n [(ngModel)]=\"tooltip.content\"\r\n (change)=\"onChanged($event)\"\r\n (blur)=\"onBlur($event)\"\r\n formControlName=\"content\"\r\n >\r\n </ckeditor>\r\n </div>\r\n </div>\r\n <div\r\n id=\"qmsckeditor-tooltip-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\"\r\n >\r\n <div class=\"col-6 pr-0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"saveTooltip()\"\r\n [disabled]=\"tooltipFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"cancelTooltip()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n",
15955
+ template: "<div id=\"qmsckeditor-tooltip\" class=\"qmsckeditor qmsckeditor__tooltip__container\">\r\n <div id=\"qmsckeditor-tooltip-header\">\r\n <span id=\"qmsckeditor-tooltip-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-tooltip-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-tooltip_002_001\">\r\n {{ LANG.QMSCKEDITOR.INSERT_TOOLTIP }}\r\n </h2>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"tooltipFormGroup\">\r\n <div id=\"qmsckeditor-tooltip-content\" class=\"qmsckeditor tooltip-content height\">\r\n <div id=\"qmsckeditor-tooltip-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel id=\"qmsckeditor-tooltip-panel\" [expanded]=\"true\" (opened)=\"(true)\" (closed)=\"(false)\">\r\n <div id=\"qmsckeditor-tooltip-panel_001\">\r\n <div id=\"qmsckeditor-tooltip-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TITLE }}</mat-label>\r\n <input matInput [(ngModel)]=\"tooltip.text\" formControlName=\"title\" />\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-tooltip-panel_001_002\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.CONTENT }}</mat-label>\r\n <div class=\"qmsckeditor_container col-12 pl-0 pr-0\">\r\n <ckeditor class=\"qms-ckeditor\" [(editor)]=\"editor\" [config]=\"editorConfig\" (ready)=\"onReady($event)\"\r\n [(ngModel)]=\"tooltip.content\" (change)=\"onChanged($event)\" (blur)=\"onBlur($event)\"\r\n formControlName=\"content\">\r\n </ckeditor>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-tooltip-panel_001_003\" class=\"qmsckeditor button__groups row mr-0 ml-0 mt-4\">\r\n <div class=\"col-6 pr-0\">\r\n <button class=\"save\" mat-flat-button (click)=\"saveTooltip()\" [disabled]=\"tooltipFormGroup.invalid\">\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\">\r\n <button class=\"cancel\" mat-flat-button (click)=\"cancelTooltip()\">\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n </form>\r\n</div>",
15900
15956
  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,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.qmsckeditor__tooltip__container .mat-form-field{width:100%}.qmsckeditor__tooltip__container textarea.mat-input-element{min-height:150px}"]
15901
15957
  },] }
15902
15958
  ];
@@ -15907,15 +15963,49 @@ QMSCKEditorTooltipComponent.ctorParameters = () => [
15907
15963
  { type: QMSCKEditorTooltip, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
15908
15964
  ];
15909
15965
 
15910
- //import { CKEditor5 } from '@ckeditor/ckeditor5-angular/ckeditor';
15966
+ class QMSCKEditorAboutComponent extends QMSCKEditorBaseComponent {
15967
+ constructor(translate, dialogRef, data) {
15968
+ super();
15969
+ this.translate = translate;
15970
+ this.dialogRef = dialogRef;
15971
+ this.data = data;
15972
+ this.currentVersion = data;
15973
+ }
15974
+ ngOnInit() {
15975
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
15976
+ if (res) {
15977
+ this.LANG = this.translate.getObjectLang(res);
15978
+ }
15979
+ });
15980
+ this.currentYear = new Date().getFullYear();
15981
+ }
15982
+ onCloseDialog() {
15983
+ this.dialogRef.close();
15984
+ }
15985
+ }
15986
+ QMSCKEditorAboutComponent.decorators = [
15987
+ { type: Component, args: [{
15988
+ selector: 'app-about-ckeditor',
15989
+ template: "<div id=\"qmsckeditor-about\" class=\"qmsckeditor qmsckeditor__about__container\">\r\n <div id=\"qmsckeditor-about-header\">\r\n <span id=\"qmsckeditor-about-header_001\" mat-icon-button class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\">\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-about-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-about_002_001\">\r\n {{ LANG.ABOUT.ABOUT_CKEDITOR }}\r\n </h2>\r\n </div>\r\n </div>\r\n <div id=\"qmsckeditor-about-content\">\r\n <div class=\"col-12 qmsckeditor__about__logo__container\">\r\n <img class=\"qmsckeditor__about__logo\" src=\"../../../../assets/images/ckeditor5.svg\" alt=\"CKEditor logo\">\r\n </div>\r\n <div class=\"col-12\">\r\n <p>{{LANG.ABOUT.CKEDITOR5_VERSION}} {{currentVersion}}.<br><a target=\"_blank\"\r\n href=\"https://ckeditor.com/\">https://ckeditor.com</a></p>\r\n <p>{{LANG.ABOUT.CHECK}} <a target=\"_blank\"\r\n href=\"https://ckeditor.com/docs/\">{{LANG.ABOUT.CKEDITOR_USERS_GUIDE}}</a> {{LANG.ABOUT.FOR_HELP}}.\r\n </p>\r\n <p>{{LANG.ABOUT.FOR_LICENSING_INFORMATION_PLEASE_VISIT_OUR_WEBSITE}}:<br><a target=\"_blank\"\r\n href=\"https://ckeditor.com/legal/ckeditor-oss-license/\">https://ckeditor.com/legal/ckeditor-oss-license/</a>\r\n </p>\r\n <p>{{LANG.ABOUT.COPYRIGHT}} 2003-{{currentYear}}, <a target=\"_blank\"\r\n href=\"https://cksource.com/\">CKSource</a> - Frederico Knabben.\r\n <br>{{LANG.ABOUT.ALL_RIGHTS_RESERVED}}.\r\n </p>\r\n </div>\r\n <div class=\"col-12\">\r\n <button mat-stroked-button class=\"qmsckeditor__about__button\" (click)=\"onCloseDialog()\">\r\n {{ LANG.QMSCKEDITOR.CLOSE }}\r\n </button>\r\n </div>\r\n </div>\r\n</div>",
15990
+ 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,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.qmsckeditor__about__container .qmsckeditor__about__logo__container{display:flex;justify-content:center;margin-bottom:10px}.qmsckeditor__about__container .qmsckeditor__about__logo{height:64px}.qmsckeditor__about__container .qmsckeditor__about__button{float:right}"]
15991
+ },] }
15992
+ ];
15993
+ QMSCKEditorAboutComponent.ctorParameters = () => [
15994
+ { type: TranslateLibraryService },
15995
+ { type: MatDialogRef },
15996
+ { type: String, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
15997
+ ];
15998
+
15911
15999
  class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
15912
16000
  /**
15913
16001
  * Constructor
15914
16002
  */
15915
- constructor(dialog, globalService, qmsCKEditorFullscreenComponent, renderer, elRef) {
16003
+ constructor(dialog, translate, globalService, treeService, qmsCKEditorFullscreenComponent, renderer, elRef) {
15916
16004
  super();
15917
16005
  this.dialog = dialog;
16006
+ this.translate = translate;
15918
16007
  this.globalService = globalService;
16008
+ this.treeService = treeService;
15919
16009
  this.qmsCKEditorFullscreenComponent = qmsCKEditorFullscreenComponent;
15920
16010
  this.renderer = renderer;
15921
16011
  this.elRef = elRef;
@@ -15944,9 +16034,15 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
15944
16034
  case this.ckEditorEventConst.QMSCK_BPMN_PLUGIN_MSG:
15945
16035
  this.bpmnEventHandling(event.data.value);
15946
16036
  break;
16037
+ case this.ckEditorEventConst.QMSCK_ABOUT_CKEDITOR_PLUGIN_MSG:
16038
+ this.aboutCKEditorEventHandling(event.data.value);
16039
+ break;
15947
16040
  case this.ckEditorEventConst.QMSCK_TOGGLE_TOOLBAR_MSG:
15948
16041
  this.toggleToolbarEventHandling();
15949
16042
  break;
16043
+ case this.ckEditorEventConst.QMSCK_BROWSE_VIDEO_MSG:
16044
+ this.browseVideoEventHandling(event.data.value);
16045
+ break;
15950
16046
  default:
15951
16047
  break;
15952
16048
  }
@@ -15954,6 +16050,11 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
15954
16050
  ngOnInit() {
15955
16051
  this.name = 'CKEditor custom build';
15956
16052
  this.ckEditor = this.qmsckPlugin.pluginObject;
16053
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
16054
+ if (res) {
16055
+ this.LANG = this.translate.getObjectLang(res);
16056
+ }
16057
+ });
15957
16058
  this.ckeditorConfig = CKEditorCommonFunctions.getCKEditorConfiguration(this.qmsckPlugin.itemToolbar);
15958
16059
  this.globalService.setApiUrl(this.qmsckData.apiUrl);
15959
16060
  if (this.isEnabledMathtypeConfig()) {
@@ -15965,6 +16066,12 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
15965
16066
  if (this.isEnabledToggleToolbar()) {
15966
16067
  this.addToggleToolbarConfig();
15967
16068
  }
16069
+ if (this.isEnabledWProofreader()) {
16070
+ this.addWProofreaderConfig();
16071
+ }
16072
+ if (this.isEnabledTOCToolbar()) {
16073
+ this.addToggleTOCConfig();
16074
+ }
15968
16075
  if (this.isEnabledFullScreenConfig()) {
15969
16076
  this.addFullScreenConfig();
15970
16077
  }
@@ -15985,6 +16092,23 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
15985
16092
  this.renderer.addClass(this.elRef.nativeElement, 'ck-disabled');
15986
16093
  }
15987
16094
  }
16095
+ isEnabledWProofreader() {
16096
+ const pattern = /(wproofreader)/gmi;
16097
+ return !!this.qmsckData.wproofreader
16098
+ && !!this.qmsckData.wproofreader.srcUrl
16099
+ && !!this.qmsckPlugin.itemToolbar
16100
+ && this.qmsckPlugin.itemToolbar.search(pattern) > -1;
16101
+ }
16102
+ addWProofreaderConfig() {
16103
+ const wproofreaderConfig = {
16104
+ wproofreader: Object.assign({}, this.qmsckData.wproofreader)
16105
+ };
16106
+ if (!this.qmsckData.wproofreader.serviceId || this.qmsckData.wproofreader.serviceId.length == 0) {
16107
+ //Fallback value of serviceId property to demo serviceId
16108
+ this.qmsckData.wproofreader.serviceId = '1:KpkvQ2-6KNUj-L1W3u2-C9j0K1-Zv2tY1-CfDOx-WfGRg2-qXtci-YyyE34-j09H42-b0aCt3-d9a';
16109
+ }
16110
+ this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, wproofreaderConfig);
16111
+ }
15988
16112
  isEnabledToggleToolbar() {
15989
16113
  const pattern = /(toggleToolbar)/gmi;
15990
16114
  return !!this.qmsckData.toggleToolbar
@@ -16014,6 +16138,21 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
16014
16138
  };
16015
16139
  this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, fullScreenConfig);
16016
16140
  }
16141
+ isEnabledTOCToolbar() {
16142
+ const pattern = /(tableOfContents)/gmi;
16143
+ return !!this.qmsckData.tableOfContentHeadings
16144
+ && !!this.qmsckPlugin.itemToolbar
16145
+ && this.qmsckPlugin.itemToolbar.search(pattern) > -1;
16146
+ }
16147
+ addToggleTOCConfig() {
16148
+ const items = this.qmsckData.tableOfContentHeadings.split(',');
16149
+ const tableOfContents = {
16150
+ tableOfContents: {
16151
+ supportedHeadings: items
16152
+ }
16153
+ };
16154
+ this.ckEditor.defaultConfig = Object.assign(this.ckEditor.defaultConfig || {}, tableOfContents);
16155
+ }
16017
16156
  isEnabledTimestampConfig() {
16018
16157
  const pattern = /(timestamp)/gmi;
16019
16158
  return !!this.qmsckData.timestampFormat
@@ -16075,17 +16214,20 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
16075
16214
  this.initEditor(editor);
16076
16215
  }
16077
16216
  initEditor(editor) {
16217
+ const imageUploadTypes = editor.config.get('image.upload.types');
16218
+ const maxFileSizeMB = this.qmsckData.maxFileSizeMB;
16219
+ const config = { apiUrl: this.qmsckData.apiUrl, LANG: this.LANG, imageUploadTypes, maxFileSizeMB };
16220
+ editor.plugins.get("FileRepository").createUploadAdapter = (loader) => {
16221
+ return new QmsUploadAdapter(loader, config);
16222
+ };
16078
16223
  editor.ui
16079
16224
  .getEditableElement()
16080
16225
  .parentElement.insertBefore(editor.ui.view.toolbar.element, editor.ui.getEditableElement());
16081
- editor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
16082
- return new UploadAdapter(loader);
16083
- };
16084
16226
  // Apped Wordcount to CKeditor
16085
16227
  editor.plugins.get('WordCount').on('update', (evt, stats) => {
16086
16228
  // Prints the current content statistics.
16087
16229
  const wordsBox = document.querySelector('.wordcount-content');
16088
- wordsBox.textContent = `Words: ${stats.words} / Characters: ${stats.characters}`;
16230
+ wordsBox.textContent = `${this.LANG.QMSCKEDITOR.WORDS}: ${stats.words} / ${this.LANG.QMSCKEDITOR.CHARACTERS}: ${stats.characters}`;
16089
16231
  });
16090
16232
  }
16091
16233
  /**
@@ -16170,7 +16312,7 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
16170
16312
  data.ckEditor = this.qmsckPlugin.pluginObject;
16171
16313
  const dialogTemplate = this.dialog.open(QMSCKEditorTooltipComponent, {
16172
16314
  width: '650px',
16173
- height: '550px',
16315
+ height: '555px',
16174
16316
  data,
16175
16317
  disableClose: true
16176
16318
  });
@@ -16245,6 +16387,21 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
16245
16387
  }
16246
16388
  });
16247
16389
  }
16390
+ /*
16391
+ About CKEditor
16392
+ */
16393
+ aboutCKEditorEventHandling(version) {
16394
+ const dialogTemplate = this.dialog.open(QMSCKEditorAboutComponent, {
16395
+ width: '500px',
16396
+ data: version,
16397
+ disableClose: true
16398
+ });
16399
+ dialogTemplate
16400
+ .afterClosed()
16401
+ .pipe(takeUntil(this.ngUnsubcribe))
16402
+ .subscribe((result) => {
16403
+ });
16404
+ }
16248
16405
  /*
16249
16406
  Toolbar toggle
16250
16407
  */
@@ -16303,19 +16460,92 @@ class QMSCKEditorComponent extends QMSCKEditorBaseComponent {
16303
16460
  }
16304
16461
  }
16305
16462
  }
16306
- }
16307
- QMSCKEditorComponent.decorators = [
16308
- { type: Component, args: [{
16309
- selector: 'qms-ckeditor',
16310
- template: "<div id=\"qmsckeditor\" class=\"qmsckeditor_container\">\r\n <ckeditor class=\"qms-ckeditor\" [tagName]=\"ckTagname\" [(editor)]=\"ckEditor\" [config]=\"ckeditorConfig\"\r\n (ready)=\"onReady($event)\" [(ngModel)]=\"qmsckContentInput\" (change)=\"onChanged($event)\" (blur)=\"onBlur($event)\"\r\n [disabled]=\"isDisabled\">\r\n </ckeditor>\r\n <div class=\"sub-container\">\r\n <div class=\"\">\r\n <span>Assistive text</span>\r\n </div>\r\n <div class=\"wordcount-content\"></div>\r\n </div>\r\n</div>",
16311
- providers: [
16312
- QMSCKEditorFullscreenComponent,
16313
- {
16314
- provide: NG_VALUE_ACCESSOR,
16315
- useExisting: forwardRef(() => QMSCKEditorComponent),
16316
- multi: true
16317
- },
16318
- {
16463
+ /**
16464
+ * Browse Video
16465
+ */
16466
+ browseVideoEventHandling(value) {
16467
+ this.treeService
16468
+ .getUploadVideoList()
16469
+ .pipe(takeUntil(this.ngUnsubcribe))
16470
+ .subscribe((response) => {
16471
+ const videos = response || [];
16472
+ const config = {
16473
+ allowSelectFolder: false,
16474
+ areaOfCurrentProcess: '',
16475
+ showCheckBox: true,
16476
+ allowMultipleCheck: value.allowMultipleFiles,
16477
+ onlyCheckBoxForChild: true,
16478
+ moduleId: DataType$2.document,
16479
+ openIcon: 'folder_open',
16480
+ openIconColor: '#1954A9',
16481
+ closeIcon: 'folder_filled',
16482
+ closeIconColor: '#4acaff',
16483
+ itemIcon: 'insert_drive_file',
16484
+ itemIconPath: '',
16485
+ itemIconBase64: '',
16486
+ singleSelectedNode: true,
16487
+ expandAll: true
16488
+ };
16489
+ const data = new PopupData();
16490
+ data.moduleId = 2;
16491
+ data.moduleName = this.LANG.QMSCKEDITOR.SELECT_VIDEO_FROM_ARCHIVE;
16492
+ data.treeData1 = videos.map((item) => {
16493
+ return {
16494
+ rootId: item.rootId,
16495
+ parentId: item.parentId,
16496
+ rootName: item.rootName,
16497
+ subName: item.subName,
16498
+ childId: item.childId,
16499
+ childName: item.childName,
16500
+ statusId: item.statusId,
16501
+ displayId: item.displayId,
16502
+ contentType: item.contentType,
16503
+ url: item.url
16504
+ };
16505
+ });
16506
+ data.treeData2 = [];
16507
+ data.treeConfig1 = config;
16508
+ const dialogRef = this.dialog.open(RelatedPopupComponent, {
16509
+ minWidth: '450px',
16510
+ maxWidth: '800px',
16511
+ minHeight: '620px',
16512
+ data,
16513
+ panelClass: 'qmsckeditor-browse-video-popup'
16514
+ });
16515
+ setTimeout(() => {
16516
+ const searchBox = window.document.querySelector('.qmsckeditor-browse-video-popup #qmslib_related_popup_search');
16517
+ if (searchBox) {
16518
+ searchBox.style.display = 'none';
16519
+ }
16520
+ }, 100);
16521
+ dialogRef
16522
+ .afterClosed()
16523
+ .subscribe((result) => {
16524
+ if (result) {
16525
+ const ids = result.reduce((result, item) => {
16526
+ result[item.id.toString()] = item.id;
16527
+ return result;
16528
+ }, {});
16529
+ const urls = videos.filter(i => i.childId && !!ids[i.childId.toString()]).map(i => i.url);
16530
+ const evt = new CustomEvent(this.ckEditorEventConst.QMSCK_BROWSE_VIDEO_RESP, { detail: { urls: urls } });
16531
+ window.dispatchEvent(evt);
16532
+ }
16533
+ });
16534
+ });
16535
+ }
16536
+ }
16537
+ QMSCKEditorComponent.decorators = [
16538
+ { type: Component, args: [{
16539
+ selector: 'qms-ckeditor',
16540
+ template: "<div id=\"qmsckeditor\" class=\"qmsckeditor_container\">\r\n <ckeditor class=\"qms-ckeditor\" [tagName]=\"ckTagname\" [(editor)]=\"ckEditor\" [config]=\"ckeditorConfig\"\r\n (ready)=\"onReady($event)\" [(ngModel)]=\"qmsckContentInput\" (change)=\"onChanged($event)\" (blur)=\"onBlur($event)\"\r\n [disabled]=\"isDisabled\">\r\n </ckeditor>\r\n <div class=\"sub-container\">\r\n <div class=\"\">\r\n <span>{{LANG.QMSCKEDITOR.ASSISTIVE_TEXT}}</span>\r\n </div>\r\n <div class=\"wordcount-content\"></div>\r\n </div>\r\n</div>\r\n",
16541
+ providers: [
16542
+ QMSCKEditorFullscreenComponent,
16543
+ {
16544
+ provide: NG_VALUE_ACCESSOR,
16545
+ useExisting: forwardRef(() => QMSCKEditorComponent),
16546
+ multi: true
16547
+ },
16548
+ {
16319
16549
  provide: NG_VALIDATORS,
16320
16550
  useExisting: forwardRef(() => QMSCKEditorComponent),
16321
16551
  multi: true
@@ -16323,12 +16553,14 @@ QMSCKEditorComponent.decorators = [
16323
16553
  ],
16324
16554
  encapsulation: ViewEncapsulation.None,
16325
16555
  changeDetection: ChangeDetectionStrategy.OnPush,
16326
- 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{overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}@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}.qmsckeditor_container .qmsckeditor__minwidth{width:100%}.qmsckeditor_container .ck-editor__editable{overflow-y:auto}.qms-ckeditor .ck.ck-editor__editable{max-height:172px;min-height:172px;background-color:rgba(0,0,0,.04);font-family:Open Sans}.qms-ckeditor .ck.ck-editor__editable:not(.ck-focused,.ck-read-only):hover{background-color:rgba(0,0,0,.08);border-bottom:2px solid rgba(0,0,0,.38)}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar{width:12px}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-ckeditor .ck-placeholder{font-size:1rem;font-weight:600;color:rgba(0,0,0,.6)}.qms-ckeditor .ck-disabled .ck.ck-editor__main>.ck-editor__editable,.qms-ckeditor .ck-disabled .ck.ck-toolbar{background-color:#e4e4e4;pointer-events:none}.qms-ckeditor .ck-disabled .ck-button{pointer-events:none}.qms-ckeditor .ck.ck-editor__main>.ck-editor__editable:not(.ck-focused):focus{border-radius:4px}.qms-ckeditor .ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{border:1px solid #c4c4c4;border-bottom:2px solid #1954a9;border-radius:4px;box-shadow:none;background-color:rgba(0,0,0,.08)}.qms-ckeditor .ck.ck-toolbar{box-shadow:0 1px 3px rgba(51,51,51,.2)}.qms-ckeditor .ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:none;border-width:0}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;bottom:0;right:0;overflow:auto;background:#fff}.qmsckeditor__fullscreen .qms-ckeditor{height:98%;display:inline-block;width:100%}.qmsckeditor__fullscreen .ck.ck-editor__main{height:98%}.qmsckeditor__fullscreen .ck.ck-editor__editable{height:inherit}.sub-container{display:flex;justify-content:space-between;padding:0 10px;font-family:Open Sans;font-size:.75rem;font-weight:400;line-height:16px;color:rgba(0,0,0,.6)}"]
16556
+ 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{overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.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.tooltip-content.height{min-height:400px;max-height:472px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}@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}.qmsckeditor_container .qmsckeditor__minwidth{width:100%}.qmsckeditor_container .ck-editor__editable{overflow-y:auto}.qms-ckeditor .ck.ck-editor__editable{max-height:172px;min-height:172px;background-color:rgba(0,0,0,.04);font-family:Open Sans}.qms-ckeditor .ck.ck-editor__editable:not(.ck-focused,.ck-read-only):hover{background-color:rgba(0,0,0,.08);border-bottom:2px solid rgba(0,0,0,.38)}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar{width:12px}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-ckeditor .ck.ck-editor__editable::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-ckeditor .ck-placeholder{font-size:1rem;font-weight:600;color:rgba(0,0,0,.6)}.qms-ckeditor .ck-disabled .ck.ck-editor__main>.ck-editor__editable,.qms-ckeditor .ck-disabled .ck.ck-toolbar{background-color:#e4e4e4;pointer-events:none}.qms-ckeditor .ck-disabled .ck-button{pointer-events:none}.qms-ckeditor .ck.ck-editor__main>.ck-editor__editable:not(.ck-focused):focus{border-radius:4px}.qms-ckeditor .ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused{border:1px solid #c4c4c4;border-bottom:2px solid #1954a9;border-radius:4px;box-shadow:none;background-color:rgba(0,0,0,.08)}.qms-ckeditor .ck.ck-toolbar{box-shadow:0 1px 3px rgba(51,51,51,.2)}.qms-ckeditor .ck.ck-sticky-panel .ck-sticky-panel__content_sticky{box-shadow:none;border-width:0}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;bottom:0;right:0;overflow:auto;background:#fff}.qmsckeditor__fullscreen .qms-ckeditor{height:98%;display:block;width:100%}.qmsckeditor__fullscreen .ck.ck-editor__main{height:98%}.qmsckeditor__fullscreen .ck.ck-editor__editable{height:inherit}.sub-container{display:flex;justify-content:space-between;padding:0 10px;font-family:Open Sans;font-size:.75rem;font-weight:400;line-height:16px;color:rgba(0,0,0,.6)}"]
16327
16557
  },] }
16328
16558
  ];
16329
16559
  QMSCKEditorComponent.ctorParameters = () => [
16330
16560
  { type: MatDialog },
16561
+ { type: TranslateLibraryService },
16331
16562
  { type: QMSCKEditorGlobalService },
16563
+ { type: QMSCKEditorTreeService },
16332
16564
  { type: QMSCKEditorFullscreenComponent },
16333
16565
  { type: Renderer2 },
16334
16566
  { type: ElementRef }
@@ -16364,7 +16596,8 @@ QMSCKEditorModule.decorators = [
16364
16596
  QMSCKEditorTooltipComponent,
16365
16597
  QMSCKEditorImageMapComponent,
16366
16598
  QMSCKEditorBpmnComponent,
16367
- SaveTemplateComponent
16599
+ SaveTemplateComponent,
16600
+ QMSCKEditorAboutComponent
16368
16601
  ],
16369
16602
  imports: [
16370
16603
  CKEditorModule$1,
@@ -16390,8 +16623,9 @@ QMSCKEditorModule.decorators = [
16390
16623
  MatAutocompleteModule,
16391
16624
  ScrollingModule,
16392
16625
  HttpClientModule,
16393
- SharedModule,
16394
16626
  MatTabsModule,
16627
+ MatProgressBarModule,
16628
+ SharedModule
16395
16629
  ],
16396
16630
  providers: [],
16397
16631
  exports: [QMSCKEditorComponent],
@@ -16559,6 +16793,104 @@ class QMSDialogConfig extends MatDialogConfig {
16559
16793
  }
16560
16794
  }
16561
16795
 
16796
+ class QMSDrawerContentDirective {
16797
+ constructor(ele) {
16798
+ this.ele = ele;
16799
+ }
16800
+ ngOnInit() {
16801
+ if (this.ele) {
16802
+ this.ele.nativeElement.classList.add('qms-drawer-content');
16803
+ }
16804
+ }
16805
+ }
16806
+ QMSDrawerContentDirective.decorators = [
16807
+ { type: Directive, args: [{
16808
+ selector: '[qms-drawer-content]',
16809
+ },] }
16810
+ ];
16811
+ QMSDrawerContentDirective.ctorParameters = () => [
16812
+ { type: ElementRef }
16813
+ ];
16814
+
16815
+ class QMSDrawerHeaderActionDirective {
16816
+ constructor(ele) {
16817
+ this.ele = ele;
16818
+ }
16819
+ ngOnInit() {
16820
+ if (this.ele) {
16821
+ this.ele.nativeElement.classList.add('qms-drawer-header__action');
16822
+ }
16823
+ }
16824
+ }
16825
+ QMSDrawerHeaderActionDirective.decorators = [
16826
+ { type: Directive, args: [{
16827
+ selector: '[qms-drawer-header-action]',
16828
+ },] }
16829
+ ];
16830
+ QMSDrawerHeaderActionDirective.ctorParameters = () => [
16831
+ { type: ElementRef }
16832
+ ];
16833
+
16834
+ class QMSDrawerHeaderDirective {
16835
+ constructor(ele) {
16836
+ this.ele = ele;
16837
+ }
16838
+ ngOnInit() {
16839
+ if (this.ele) {
16840
+ this.ele.nativeElement.classList.add('qms-drawer-header');
16841
+ }
16842
+ }
16843
+ }
16844
+ QMSDrawerHeaderDirective.decorators = [
16845
+ { type: Directive, args: [{
16846
+ selector: '[qms-drawer-header]',
16847
+ },] }
16848
+ ];
16849
+ QMSDrawerHeaderDirective.ctorParameters = () => [
16850
+ { type: ElementRef }
16851
+ ];
16852
+
16853
+ class QMSDrawerDirective {
16854
+ constructor(ele) {
16855
+ this.ele = ele;
16856
+ }
16857
+ ngOnInit() {
16858
+ if (this.ele) {
16859
+ this.ele.nativeElement.classList.add('qms-drawer');
16860
+ }
16861
+ }
16862
+ }
16863
+ QMSDrawerDirective.decorators = [
16864
+ { type: Directive, args: [{
16865
+ selector: '[qms-drawer]',
16866
+ },] }
16867
+ ];
16868
+ QMSDrawerDirective.ctorParameters = () => [
16869
+ { type: ElementRef }
16870
+ ];
16871
+
16872
+ class QMSSideSheetModule {
16873
+ }
16874
+ QMSSideSheetModule.decorators = [
16875
+ { type: NgModule, args: [{
16876
+ declarations: [
16877
+ QMSDrawerDirective,
16878
+ QMSDrawerHeaderDirective,
16879
+ QMSDrawerContentDirective,
16880
+ QMSDrawerHeaderActionDirective,
16881
+ ],
16882
+ imports: [
16883
+ CommonModule
16884
+ ],
16885
+ exports: [
16886
+ QMSDrawerDirective,
16887
+ QMSDrawerHeaderDirective,
16888
+ QMSDrawerContentDirective,
16889
+ QMSDrawerHeaderActionDirective,
16890
+ ]
16891
+ },] }
16892
+ ];
16893
+
16562
16894
  class QMSTooltipModule {
16563
16895
  }
16564
16896
  QMSTooltipModule.decorators = [
@@ -17013,7 +17345,7 @@ QmsStepperComponent.decorators = [
17013
17345
  changeDetection: ChangeDetectionStrategy.OnPush,
17014
17346
  selector: 'app-qms-stepper',
17015
17347
  template: "<div class=\"qms-stepper-container\">\r\n <div *ngIf=\"isHorizontal\">\r\n <mat-horizontal-stepper [style.width.px]=\"width\" labelPosition=\"{{labelPosition}}\" #stepper\r\n (selectionChange)=\"changeStep($event.selectedIndex)\" class=\"overflow-auto\" [selectedIndex]=\"currentStep\">\r\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\r\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\r\n <ng-template matStepLabel>\r\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\">{{step.name}}</span>\r\n </ng-template>\r\n <ng-template matStepContent>\r\n </ng-template>\r\n </mat-step>\r\n <ng-template matStepperIcon=\"edit\">\r\n {{stepper.selectedIndex + 1}}\r\n </ng-template>\r\n </mat-horizontal-stepper>\r\n </div>\r\n <div *ngIf=\"!isHorizontal\">\r\n <mat-vertical-stepper [style.height.px]=\"height\" #stepper (selectionChange)=\"changeStep($event.selectedIndex)\"\r\n [selectedIndex]=\"currentStep\" class=\"overflow-auto\">\r\n <mat-step *ngFor=\"let step of steps; let i = index;\" [completed]=\"false\"\r\n [aria-labelledby]=\"step.disabled ? 'disabled' : 'step-item'\">\r\n <ng-template matStepLabel>\r\n <span tabindex=\"0\" (keydown.enter)=\"changeStep(i)\" class=\"title-step\">{{step.name}}</span>\r\n </ng-template>\r\n <ng-template matStepContent>\r\n </ng-template>\r\n </mat-step>\r\n <ng-template matStepperIcon=\"edit\">\r\n <span>{{stepper.selectedIndex + 1}}</span>\r\n </ng-template>\r\n </mat-vertical-stepper>\r\n </div>\r\n</div>",
17016
- styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{width:auto}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:rgba(0,0,0,.6);margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:rgba(229,238,251,.3)}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid #1954a9}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid #1954a9;background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}"]
17348
+ styles: [".qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item]{height:22px!important;padding:8px 12px;left:0;top:0;border-radius:4px;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-horizontal-stepper-header{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=step-item].mat-vertical-stepper-header{width:156px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon{background:rgba(0,0,0,.6);margin-right:14px}.qms-stepper-container ::ng-deep .mat-step-header .mat-step-icon-selected{background-color:#1954a9!important;color:#fff}.qms-stepper-container ::ng-deep .mat-step-header[aria-selected=true] .title-step{font-weight:600!important;outline:none!important;-webkit-font-smoothing:antialiased!important}.qms-stepper-container ::ng-deep mat-step-header:active{background:#e5eefb}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:active mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep mat-step-header .mat-ripple-element{background-color:rgba(229,238,251,.3)}.qms-stepper-container ::ng-deep mat-step-header:hover{background:#f2f7fd}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:hover mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed;opacity:.6;height:22px!important;width:156px;left:0;top:0;border-radius:4px;padding:8px 12px}.qms-stepper-container ::ng-deep mat-step-header:focus{border:2px solid #1954a9}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-label{color:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus mat-step-icon{color:#323232;background:rgba(0,0,0,.6)}.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-keyboard-focused,.qms-stepper-container ::ng-deep mat-step-header.mat-step-header.cdk-program-focused{border:3px solid #1954a9;background:#fff}.qms-stepper-container ::ng-deep mat-step-header:focus:not(:focus-visible){border:none}.qms-stepper-container ::ng-deep .mat-step-header[aria-labelledby=active]{pointer-events:none!important;cursor:not-allowed;opacity:.6}.qms-stepper-container .title-step{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0;text-align:center;color:#323232;outline:none!important}.qms-stepper-container ::ng-deep .mat-step-icon{width:24px;height:24px}.qms-stepper-container ::ng-deep .mat-step-icon .mat-step-icon-content{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;letter-spacing:0;text-align:center;color:#fff;padding-top:1px}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line:before{border-left-width:0;border-right-width:0}.qms-stepper-container ::ng-deep .mat-stepper-vertical-line{margin-left:23px;background:#0000001f;height:30px;width:1px}.qms-stepper-container ::ng-deep .mat-stepper-horizontal-line{height:1px;width:22px!important;left:0;top:18px;border-radius:0;margin:8px;background:#0000001f;max-width:22px!important}"]
17017
17349
  },] }
17018
17350
  ];
17019
17351
  QmsStepperComponent.ctorParameters = () => [
@@ -17250,10 +17582,10 @@ class SelectIncludeChildrenPopUpComponent {
17250
17582
  appIconService.registerRiskIcon(iconRegistry, domSanitizer);
17251
17583
  }
17252
17584
  ngAfterViewInit() {
17585
+ this.initTree(this.checkedNodeList);
17253
17586
  if (this.editItem) {
17254
17587
  this.focusEditItem(this.editItem);
17255
17588
  }
17256
- this.initTree(this.checkedNodeList);
17257
17589
  }
17258
17590
  ngOnDestroy() {
17259
17591
  this.ngUnsubscribe.next();
@@ -17299,16 +17631,60 @@ class SelectIncludeChildrenPopUpComponent {
17299
17631
  this.selectedOptions.push(element);
17300
17632
  if (element.type === SelectOptionTypes.IncludeChildren) {
17301
17633
  this.selectedOptions = this.selectedOptions.concat(element.children);
17634
+ if (!this.includeChildren) {
17635
+ this.disabledList = [...this.disabledList, element];
17636
+ this.disabledList = [...this.disabledList, ...element.children.map(x => {
17637
+ return {
17638
+ id: x.id,
17639
+ itemName: x.itemName,
17640
+ children: [],
17641
+ parentId: x.parentId,
17642
+ type: x.type,
17643
+ noSelectedChildren: 0,
17644
+ noChildren: 0
17645
+ };
17646
+ })];
17647
+ }
17648
+ }
17649
+ else {
17650
+ if (this.includeChildren) {
17651
+ this.disabledList = [...this.disabledList, element];
17652
+ }
17302
17653
  }
17303
17654
  this.selectedData = this.mapSelectOptionToTreeNode(this.selectedOptions);
17304
17655
  });
17305
17656
  }
17306
17657
  }
17307
17658
  focusEditItem(selectedOption) {
17308
- const node = this.dataTrees.toArray()[0].getNodeByIdAndParentId(selectedOption.id, selectedOption.parentId);
17659
+ let parent;
17660
+ let parentList = [];
17661
+ parent = this.treeData.find(x => x.rootId === selectedOption.parentId);
17662
+ if (parent) {
17663
+ parentList.push({
17664
+ id: parent.rootId,
17665
+ itemName: parent.rootName,
17666
+ parentId: parent.parentId,
17667
+ type: SelectOptionTypes.IncludeChildren
17668
+ });
17669
+ parentList = this.getParentLineOfNode(parentList, parent);
17670
+ }
17671
+ let node;
17672
+ if (parentList.length > 0) {
17673
+ parentList.forEach(parent => {
17674
+ node = this.dataTrees.toArray()[0].getNodeByIdAndParentId(parent.id, parent.parentId);
17675
+ if (node) {
17676
+ this.dataTrees.toArray()[0].expandNode(node);
17677
+ const element = document.getElementById(`_${node.parentId ? node.parentId.toLowerCase() : ''}_${node.id.toLowerCase()}_${node.level}`);
17678
+ if (element) {
17679
+ element.scrollIntoView(false);
17680
+ }
17681
+ }
17682
+ });
17683
+ }
17684
+ node = this.dataTrees.toArray()[0].getNodeByIdAndParentId(selectedOption.id, selectedOption.parentId);
17309
17685
  if (node) {
17310
17686
  this.dataTrees.toArray()[0].expandNode(node);
17311
- const element = document.getElementById(`_${node.parentId ? node.parentId : ''}_${node.id}_${node.level}`);
17687
+ const element = document.getElementById(`_${node.parentId ? node.parentId.toLowerCase() : ''}_${node.id.toLowerCase()}_${node.level}`);
17312
17688
  if (element) {
17313
17689
  element.scrollIntoView(false);
17314
17690
  }
@@ -17319,7 +17695,7 @@ class SelectIncludeChildrenPopUpComponent {
17319
17695
  if (index >= 0) {
17320
17696
  if (this.checkedNodeList[index].type === SelectOptionTypes.IncludeChildren) {
17321
17697
  this.removeIncludeChildren(item);
17322
- this.refactorSelectList(item);
17698
+ this.deleteNodeFromSelectedNode(item);
17323
17699
  }
17324
17700
  else {
17325
17701
  let position = this.selectedOptions.findIndex(x => x.id === item.id && x.parentId === item.parentId);
@@ -17327,8 +17703,9 @@ class SelectIncludeChildrenPopUpComponent {
17327
17703
  this.selectedOptions.splice(position, 1);
17328
17704
  }
17329
17705
  }
17706
+ this.focusEditItem(this.checkedNodeList[index]);
17707
+ this.enableSelectedNode(this.checkedNodeList[index]);
17330
17708
  this.checkedNodeList.splice(index, 1);
17331
- this.enableSelectedNode({ id: item.id, parentId: item.parentId, itemName: item.name, type: SelectOptionTypes.IncludeChildren });
17332
17709
  this.selectedData = this.mapSelectOptionToTreeNode(this.selectedOptions);
17333
17710
  }
17334
17711
  }
@@ -17360,7 +17737,7 @@ class SelectIncludeChildrenPopUpComponent {
17360
17737
  this.checkedNodeList.push({
17361
17738
  id: item.id,
17362
17739
  itemName: item.itemName,
17363
- type: SelectOptionTypes.SelectOne,
17740
+ type: item.type,
17364
17741
  parentId: item.parentId,
17365
17742
  children: [],
17366
17743
  noChildren: 0,
@@ -17369,6 +17746,15 @@ class SelectIncludeChildrenPopUpComponent {
17369
17746
  }
17370
17747
  }
17371
17748
  this.selectedData = this.mapSelectOptionToTreeNode(this.selectedOptions);
17749
+ this.focusEditItem({
17750
+ id: item.id,
17751
+ itemName: item.itemName,
17752
+ type: item.type,
17753
+ parentId: item.parentId,
17754
+ children: [],
17755
+ noChildren: 0,
17756
+ noSelectedChildren: 0
17757
+ });
17372
17758
  }
17373
17759
  getItemIconType(item) {
17374
17760
  if (item.itemIcon && item.itemIcon.length)
@@ -17439,12 +17825,29 @@ class SelectIncludeChildrenPopUpComponent {
17439
17825
  });
17440
17826
  }
17441
17827
  removeIncludeChildren(item) {
17828
+ const index = this.checkedNodeList.findIndex(x => x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === x.parentId.toLowerCase() && x.type === SelectOptionTypes.IncludeChildren);
17829
+ if (index >= 0) {
17830
+ let listChildren = this.checkedNodeList[index].children;
17831
+ const itemIndex = this.selectedOptions.findIndex(node => node.id.toLowerCase() === item.id.toLowerCase() && node.parentId.toLowerCase() === item.parentId.toLowerCase());
17832
+ if (itemIndex >= 0) {
17833
+ this.enableSelectedNode(this.checkedNodeList[index]);
17834
+ this.selectedOptions.splice(itemIndex, 1);
17835
+ }
17836
+ listChildren.forEach(x => {
17837
+ const index = this.selectedOptions.findIndex(node => node.id.toLowerCase() === x.id.toLowerCase() && node.parentId.toLowerCase() === x.parentId.toLowerCase());
17838
+ if (index >= 0) {
17839
+ this.selectedOptions.splice(index, 1);
17840
+ this.disabledList = this.disabledList.filter(node => !(x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase()));
17841
+ }
17842
+ });
17843
+ return;
17844
+ }
17442
17845
  let listChildren = [];
17443
17846
  listChildren = this.getAllChildrenNodeRecursive(listChildren, item);
17444
17847
  const itemIndex = this.selectedOptions.findIndex(node => node.id === item.id && node.parentId === item.parentId);
17445
17848
  if (itemIndex >= 0) {
17446
- this.enableSelectedNode(this.selectedOptions[itemIndex]);
17447
17849
  this.selectedOptions.splice(itemIndex, 1);
17850
+ this.disabledList = this.disabledList.filter(x => !(x.id === item.id && x.parentId === item.parentId));
17448
17851
  }
17449
17852
  listChildren.forEach(x => {
17450
17853
  const index = this.selectedOptions.findIndex(node => node.id === x.id && node.parentId === x.parentId);
@@ -17563,7 +17966,7 @@ class SelectIncludeChildrenPopUpComponent {
17563
17966
  }
17564
17967
  }
17565
17968
  this.checkedNodeList = this.checkedNodeList.filter(x => x.id !== node.id || x.parentId !== node.parentId);
17566
- this.refactorSelectList(node);
17969
+ this.deleteNodeFromSelectedNode(node);
17567
17970
  }
17568
17971
  else {
17569
17972
  const itemIndex = this.selectedOptions.findIndex(item => node.id === item.id && node.parentId === item.parentId);
@@ -17636,6 +18039,16 @@ class SelectIncludeChildrenPopUpComponent {
17636
18039
  });
17637
18040
  }
17638
18041
  refactorSelectList(node) {
18042
+ this.combineNodes({
18043
+ id: node.id,
18044
+ itemName: node.name,
18045
+ type: SelectOptionTypes.IncludeChildren,
18046
+ parentId: node.parentId
18047
+ });
18048
+ }
18049
+ deleteNodeFromSelectedNode(node) {
18050
+ let children = [];
18051
+ children = this.getAllChildrenNodeRecursive(children, node);
17639
18052
  let parent;
17640
18053
  let parentList = [];
17641
18054
  parent = this.treeData.find(x => x.rootId === node.parentId);
@@ -17648,30 +18061,23 @@ class SelectIncludeChildrenPopUpComponent {
17648
18061
  });
17649
18062
  parentList = this.getParentLineOfNode(parentList, parent);
17650
18063
  }
18064
+ let parentIndex = -1;
17651
18065
  if (parentList.length > 0) {
17652
- const selectedParentList = parentList.filter(x => this.selectedOptions
17653
- .findIndex(selectedNode => x.id === selectedNode.id && x.parentId === selectedNode.parentId) >= 0);
17654
- if (selectedParentList.length > 0) {
17655
- const highestSelectedNode = selectedParentList[selectedParentList.length - 1];
17656
- this.combineNodes(highestSelectedNode);
17657
- this.disabledList = this.disabledList.filter(x => !(x.id === highestSelectedNode.id && x.parentId === highestSelectedNode.parentId));
17658
- }
17659
- else {
17660
- this.combineNodes({
17661
- id: node.id,
17662
- itemName: node.name,
17663
- type: SelectOptionTypes.IncludeChildren,
17664
- parentId: node.parentId
17665
- });
17666
- this.disabledList = this.disabledList.filter(x => !(x.id === node.id && x.parentId === node.parentId));
17667
- }
17668
- }
17669
- else {
17670
- this.combineNodes({
17671
- id: node.id,
17672
- itemName: node.name,
17673
- type: SelectOptionTypes.IncludeChildren,
17674
- parentId: node.parentId
18066
+ parentList.forEach(parent => {
18067
+ parentIndex = this.checkedNodeList.findIndex(x => x.id.toLowerCase() === parent.id.toLowerCase() && x.parentId.toLowerCase() === parent.parentId.toLowerCase());
18068
+ if (parentIndex >= 0) {
18069
+ const index = this.checkedNodeList[parentIndex].children.findIndex(x => x.id.toLowerCase() === node.id.toLowerCase() && x.parentId.toLowerCase() === node.parentId.toLowerCase());
18070
+ if (index >= 0) {
18071
+ this.checkedNodeList[parentIndex].children.splice(index, 1);
18072
+ }
18073
+ children.forEach(child => {
18074
+ const index = this.checkedNodeList[parentIndex].children.findIndex(x => x.id.toLowerCase() === child.id.toLowerCase() && x.parentId.toLowerCase() === child.parentId.toLowerCase());
18075
+ if (index >= 0) {
18076
+ this.checkedNodeList[parentIndex].children.splice(index, 1);
18077
+ }
18078
+ });
18079
+ this.checkedNodeList[parentIndex].noSelectedChildren = this.checkedNodeList[parentIndex].children.length;
18080
+ }
17675
18081
  });
17676
18082
  }
17677
18083
  }
@@ -17715,7 +18121,7 @@ class SelectIncludeChildrenPopUpComponent {
17715
18121
  this.checkedNodeList[selectedNodeIndex].children = nodeList;
17716
18122
  this.checkedNodeList[selectedNodeIndex].noChildren = children.length;
17717
18123
  this.checkedNodeList[selectedNodeIndex].noSelectedChildren = nodeList.length;
17718
- this.checkedNodeList[selectedNodeIndex].type = children.length === 0 ? SelectOptionTypes.SelectOne : SelectOptionTypes.IncludeChildren;
18124
+ this.checkedNodeList[selectedNodeIndex].type = SelectOptionTypes.IncludeChildren;
17719
18125
  }
17720
18126
  }
17721
18127
  getParentLineOfNode(listParent, node) {
@@ -17739,7 +18145,7 @@ class SelectIncludeChildrenPopUpComponent {
17739
18145
  return {
17740
18146
  id: x.id,
17741
18147
  name: x.itemName,
17742
- parentId: node.id,
18148
+ parentId: x.parentId,
17743
18149
  level: 0,
17744
18150
  expandable: true,
17745
18151
  hasChild: true,
@@ -17771,18 +18177,11 @@ class SelectIncludeChildrenPopUpComponent {
17771
18177
  }
17772
18178
  }
17773
18179
  enableSelectedNode(node) {
17774
- let children = [];
17775
- children = this.getAllChildrenNodeRecursive(children, {
17776
- id: node.id,
17777
- name: node.itemName,
17778
- parentId: node.parentId,
17779
- level: 0,
17780
- expandable: true,
17781
- hasChild: true,
17782
- disabled: false
17783
- });
17784
- this.disabledList = this.disabledList.filter(x => children.filter(child => (x.id === child.id && x.parentId === child.parentId)).length === 0);
17785
18180
  this.disabledList = this.disabledList.filter(x => !(x.id === node.id && x.parentId === node.parentId));
18181
+ if (node.type === SelectOptionTypes.IncludeChildren) {
18182
+ let children = node.children;
18183
+ this.disabledList = this.disabledList.filter(x => children.filter(child => (x.id === child.id && x.parentId === child.parentId)).length === 0);
18184
+ }
17786
18185
  }
17787
18186
  }
17788
18187
  SelectIncludeChildrenPopUpComponent.decorators = [
@@ -19426,7 +19825,7 @@ class SelectProcessDocumentPopupComponent {
19426
19825
  });
19427
19826
  this.globalService.searchRelated.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
19428
19827
  if (res && res.length) {
19429
- this.filteredOptions = res;
19828
+ this.filteredOptions = this.toRelatedOptions(res);
19430
19829
  }
19431
19830
  });
19432
19831
  this.globalService.splitViewValue.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {
@@ -19518,6 +19917,11 @@ class SelectProcessDocumentPopupComponent {
19518
19917
  this.searchOrder = this.getSearchOrder();
19519
19918
  }
19520
19919
  ngAfterViewChecked() {
19920
+ this.cdRef.detectChanges();
19921
+ if (this.filteredOptions && this.filteredOptions.length) {
19922
+ // this.autoComplete.openPanel();
19923
+ this.setResultHeight();
19924
+ }
19521
19925
  }
19522
19926
  removeCheckedNodeList(item) {
19523
19927
  this.selectedData = [];
@@ -19619,136 +20023,36 @@ class SelectProcessDocumentPopupComponent {
19619
20023
  this.selectedNode = [];
19620
20024
  if (this.treeConfig1.showCheckBox) {
19621
20025
  index = this.checkedNodeList.findIndex(x => {
19622
- return x.id === item.id && x.parentId === item.parentId;
20026
+ return x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase() && x.itemType === item.itemType;
19623
20027
  });
19624
20028
  }
19625
20029
  if (index < 0) {
19626
- let position = -1;
19627
- let node;
19628
- let typeId;
19629
- if (item.itemType === this.dataType.document) {
20030
+ if (item.itemType === this.dataType.document || item.itemType === this.dataType.folder) {
19630
20031
  // document
19631
20032
  const isExistInDisabled = this.disabledList2.findIndex(x => {
19632
- return x.id && x.id.toLowerCase() === item.id.toLowerCase();
19633
- });
19634
- if (isExistInDisabled >= 0) {
20033
+ var _a;
20034
+ return ((_a = x.id) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase() && x.itemType === item.itemType);
20035
+ }) >= 0;
20036
+ if (isExistInDisabled) {
19635
20037
  return;
19636
20038
  }
19637
- position = this.treeData2.findIndex(x => {
19638
- return x.id === item.id && x.parentId === item.parentId && !x.expandable;
19639
- });
19640
- if (position >= 0) {
19641
- this.addToChecklistNodeAndSelectedData(item);
19642
- node = this.treeData2[position];
19643
- typeId = this.dataType.document;
19644
- const treeNode = {
19645
- id: node.childId,
19646
- name: node.childName,
19647
- children: [],
19648
- parentId: node.rootId,
19649
- expandable: false
19650
- };
19651
- this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
19652
- }
19653
- else {
19654
- this.addNodeToTree(item);
19655
- this.addToChecklistNodeAndSelectedData(item);
19656
- setTimeout(() => {
19657
- const treeNode = {
19658
- id: item.id,
19659
- name: item.itemName,
19660
- children: [],
19661
- parentId: item.parentId,
19662
- expandable: false
19663
- };
19664
- this.dataTrees.toArray()[1].todoItemSelectionProcessDocument([treeNode]);
19665
- }, 500);
19666
- }
20039
+ this.addToChecklistNodeAndSelectedData(item);
19667
20040
  }
19668
- else if (item.itemType === this.dataType.folder) {
19669
- position = this.treeData2.findIndex(x => {
19670
- return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase());
19671
- });
19672
- typeId = item.itemType;
19673
- if (position >= 0) {
19674
- node = this.treeData2[position];
19675
- const treeNode = {
19676
- id: node.id,
19677
- name: node.name,
19678
- children: [],
19679
- parentId: node.parentId,
19680
- expandable: true,
19681
- };
19682
- this.dataTrees.toArray()[1].todoFolderSelection([treeNode]);
19683
- }
19684
- else {
19685
- this.addNodeToTree(item);
19686
- this.addToChecklistNodeAndSelectedData(item);
19687
- }
19688
- return;
19689
- }
19690
- else if (item.itemType === this.dataType.area) {
19691
- position = this.treeData1.findIndex(x => {
19692
- return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase()) && x.expandable;
19693
- });
19694
- typeId = item.itemType;
19695
- if (position >= 0) {
19696
- node = this.treeData1[position];
19697
- const treeNode = {
19698
- id: node.id,
19699
- name: node.name,
19700
- children: [],
19701
- parentId: node.parentId,
19702
- expandable: true
19703
- };
19704
- this.dataTrees.toArray()[0].todoFolderSelection([treeNode]);
19705
- }
19706
- else {
19707
- this.addNodeToTree(item);
19708
- this.addToChecklistNodeAndSelectedData(item);
19709
- }
19710
- return;
19711
- }
19712
- else {
20041
+ else if (item.itemType === this.dataType.area || item.itemType === this.dataType.process) {
19713
20042
  const isExistInDisabled = this.disabledList.findIndex(x => {
19714
- return x.id.toLowerCase() === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase());
19715
- });
19716
- if (isExistInDisabled >= 0) {
20043
+ var _a;
20044
+ return ((_a = x.id) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === item.id.toLowerCase() && (!item.parentId || x.parentId.toLowerCase() === item.parentId.toLowerCase() && x.itemType === item.itemType);
20045
+ }) >= 0;
20046
+ if (isExistInDisabled) {
19717
20047
  return;
19718
20048
  }
19719
- position = this.treeData1.findIndex(x => {
19720
- return x.id.toLowerCase() === item.id.toLowerCase() && x.parentId.toLowerCase() === item.parentId.toLowerCase() && !x.expandable;
19721
- });
19722
- if (position >= 0) {
19723
- node = this.treeData1[position];
19724
- typeId = this.itemType;
19725
- const treeNode = {
19726
- id: node.childId,
19727
- name: node.childName,
19728
- children: [],
19729
- parentId: node.rootId,
19730
- expandable: false
19731
- };
19732
- this.addToChecklistNodeAndSelectedData(item);
19733
- this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
19734
- }
19735
- else {
19736
- this.addNodeToTree(item);
19737
- this.addToChecklistNodeAndSelectedData(item);
19738
- setTimeout(() => {
19739
- const treeNode = {
19740
- id: item.id,
19741
- name: item.itemName,
19742
- children: [],
19743
- parentId: item.parentId,
19744
- expandable: false
19745
- };
19746
- this.dataTrees.toArray()[0].todoItemSelectionProcessDocument([treeNode]);
19747
- }, 500);
19748
- }
20049
+ this.addToChecklistNodeAndSelectedData(item);
19749
20050
  }
19750
20051
  }
19751
20052
  }
20053
+ displayWhenSelectRelatedOption($event) {
20054
+ return '';
20055
+ }
19752
20056
  addNodeToTree(item) {
19753
20057
  let newNodeDocs = new NewTreeModel();
19754
20058
  newNodeDocs.id = item.id;
@@ -19789,30 +20093,34 @@ class SelectProcessDocumentPopupComponent {
19789
20093
  (!newNodeDocs.parentId || x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) && x.expandable === newNodeDocs.expandable);
19790
20094
  if (index < 0) {
19791
20095
  if (item.itemType == DataType$1.folder || item.itemType == DataType$1.document) {
19792
- this.documentCheckedList.push({
19793
- id: newNodeDocs.id,
19794
- name: newNodeDocs.name,
19795
- itemType: item.itemType,
19796
- parentId: newNodeDocs.parentId,
19797
- levelType: newNodeDocs.levelType,
19798
- level: 0,
19799
- disabled: false,
19800
- expandable: newNodeDocs.expandable,
19801
- hasChild: newNodeDocs.expandable
19802
- });
20096
+ if (this.documentCheckedList.findIndex(x => x.id.toLowerCase() === newNodeDocs.id.toLowerCase() && x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) < 0) {
20097
+ this.documentCheckedList.push({
20098
+ id: newNodeDocs.id,
20099
+ name: newNodeDocs.name,
20100
+ itemType: item.itemType,
20101
+ parentId: newNodeDocs.parentId,
20102
+ levelType: newNodeDocs.levelType,
20103
+ level: 0,
20104
+ disabled: false,
20105
+ expandable: newNodeDocs.expandable,
20106
+ hasChild: newNodeDocs.expandable
20107
+ });
20108
+ }
19803
20109
  }
19804
20110
  else {
19805
- this.commonCheckedList.push({
19806
- id: newNodeDocs.id,
19807
- name: newNodeDocs.name,
19808
- itemType: item.itemType,
19809
- parentId: newNodeDocs.parentId,
19810
- levelType: newNodeDocs.levelType,
19811
- level: 0,
19812
- disabled: false,
19813
- expandable: newNodeDocs.expandable,
19814
- hasChild: newNodeDocs.expandable
19815
- });
20111
+ if (this.commonCheckedList.findIndex(x => x.id.toLowerCase() === newNodeDocs.id.toLowerCase() && x.parentId.toLowerCase() === newNodeDocs.parentId.toLowerCase()) < 0) {
20112
+ this.commonCheckedList.push({
20113
+ id: newNodeDocs.id,
20114
+ name: newNodeDocs.name,
20115
+ itemType: item.itemType,
20116
+ parentId: newNodeDocs.parentId,
20117
+ levelType: newNodeDocs.levelType,
20118
+ level: 0,
20119
+ disabled: false,
20120
+ expandable: newNodeDocs.expandable,
20121
+ hasChild: newNodeDocs.expandable
20122
+ });
20123
+ }
19816
20124
  }
19817
20125
  this.checkedNodeList.push({
19818
20126
  moduleId: this.moduleId,
@@ -19891,6 +20199,7 @@ class SelectProcessDocumentPopupComponent {
19891
20199
  level: 0,
19892
20200
  disabled: false,
19893
20201
  hasChild: item.itemType == DataType$1.area || item.itemType == DataType$1.folder,
20202
+ itemType: item.itemType
19894
20203
  });
19895
20204
  }
19896
20205
  setTypeProcess(expand) {
@@ -20055,7 +20364,7 @@ class SelectProcessDocumentPopupComponent {
20055
20364
  return;
20056
20365
  }
20057
20366
  const index = this.checkedNodeList.findIndex(x => x.id.toLowerCase() === node.id.toLowerCase()
20058
- && (!node.parentId || x.parentId.toLowerCase() === node.parentId.toLowerCase()) && x.itemType == node.itemType);
20367
+ && (!node.parentId || x.parentId.toLowerCase() === node.parentId.toLowerCase()) && x.itemType === node.itemType);
20059
20368
  if (index >= 0) {
20060
20369
  this.removeCheckedNodeList({
20061
20370
  id: node.id,
@@ -20128,13 +20437,24 @@ class SelectProcessDocumentPopupComponent {
20128
20437
  this.onSelectFolderItem.emit(item);
20129
20438
  }
20130
20439
  }
20440
+ hasSelected(related) {
20441
+ const arrDisabledList = this.disabledList.concat(this.disabledList2);
20442
+ return arrDisabledList.some(node => node.id.toUpperCase() === related.id.toUpperCase());
20443
+ }
20444
+ toRelatedOptions(relateds) {
20445
+ const results = [];
20446
+ for (const related of relateds) {
20447
+ results.push(Object.assign(Object.assign({}, related), { disabled: this.hasSelected(related) }));
20448
+ }
20449
+ return results;
20450
+ }
20131
20451
  }
20132
20452
  SelectProcessDocumentPopupComponent.decorators = [
20133
20453
  { type: Component, args: [{
20134
20454
  selector: 'qms-select-process-document',
20135
- 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 id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\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 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]=\"isInputValue\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\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]=\"getNodeIcon(option)\"\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 class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n \r\n <div class=\"row\">\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 'col-6': splitView,\r\n 'col-12': !splitView\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 class=\"panel-tree\"\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 <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"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_common_002\">\r\n <qms-tree-new\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.area)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree-new>\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 class=\"panel-tree\"\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-new\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.folder)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree-new>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"\r\n qms-scrollbar\r\n qmslib-related-popup-splitview qmslib_related_popup_content\r\n col-6\r\n \"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\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=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\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 ",
20455
+ 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 id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\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 class=\"mat-autocomplete_related-viewport\"\r\n (optionSelected)=\"selectRelated($event.option.value)\"\r\n [displayWith]=\"displayWhenSelectRelatedOption\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n [class.related-viewport]=\"isInputValue\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n [disabled]=\"option.disabled\"\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]=\"getNodeIcon(option)\"\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 class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </ng-container>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n \r\n <div class=\"row\">\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 'col-6': splitView,\r\n 'col-12': !splitView\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 class=\"panel-tree\"\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 <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"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_common_002\">\r\n <qms-tree-new\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.area)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree-new>\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 class=\"panel-tree\"\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-new\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.folder)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree-new>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"\r\n qms-scrollbar\r\n qmslib-related-popup-splitview qmslib_related_popup_content\r\n col-6\r\n \"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n ></mat-checkbox>\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\">{{ node.itemName }}</span>\r\n </div>\r\n </div>\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=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\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 ",
20136
20456
  encapsulation: ViewEncapsulation.None,
20137
- 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-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.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 .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.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;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}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 .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}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 .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}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}"]
20457
+ 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-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.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 .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.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;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}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 .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}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 .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}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:300px}"]
20138
20458
  },] }
20139
20459
  ];
20140
20460
  SelectProcessDocumentPopupComponent.ctorParameters = () => [
@@ -20207,6 +20527,7 @@ class QMSNavigationDrawerComponent {
20207
20527
  this.addFavoriteTooltip = 'Legg til favoritt';
20208
20528
  this.deleteFavoriteTooltip = 'Slett favoritt';
20209
20529
  this.addNodeTooltip = 'Legg til lokasjon';
20530
+ this.activeNode = '';
20210
20531
  this.expandedNodeSet = new Set();
20211
20532
  this.dragging = false;
20212
20533
  this.expandDelay = 1000;
@@ -20216,7 +20537,6 @@ class QMSNavigationDrawerComponent {
20216
20537
  this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
20217
20538
  this.hoverNode = {};
20218
20539
  this.expandingNodes = [];
20219
- this.activeNode = '';
20220
20540
  this.hasChild = (_, node) => node.expandable;
20221
20541
  this.dataSource.data = this.treeData;
20222
20542
  }
@@ -20257,9 +20577,12 @@ class QMSNavigationDrawerComponent {
20257
20577
  }
20258
20578
  });
20259
20579
  }
20260
- onClickNode(nodeId) {
20261
- this.activeNode = nodeId;
20262
- this.onClickNodeEvent.emit(nodeId);
20580
+ onClickNode(node, setActiveNode) {
20581
+ if (setActiveNode) {
20582
+ this.activeNode = node.id;
20583
+ this.onClickNodeEvent.emit(node.id);
20584
+ }
20585
+ this.onClickToggleNode(node);
20263
20586
  }
20264
20587
  onOver(node) {
20265
20588
  this.hoverNode = node;
@@ -20515,8 +20838,8 @@ class QMSNavigationDrawerComponent {
20515
20838
  QMSNavigationDrawerComponent.decorators = [
20516
20839
  { type: Component, args: [{
20517
20840
  selector: 'app-qms-navigation-drawer',
20518
- template: "<mat-tree class=\"qms-navigation-drawer-container\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\" cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\" [cdkDropListDisabled]=\"dragDropListDisabled\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" (mouseover)=\"onOver(node)\" matTreeNodePadding matTreeNodePaddingIndent=\"34\"\r\n cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\" (mouseleave)=\"dragHoverEnd()\"\r\n (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"{'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\" class=\"tree-content\">\r\n <div class=\"span-text\" mode=\"dark\" position=\"below\">{{ node.name }}</div>\r\n <button tabindex=\"-1\" class=\"button-icon collapse-expand-icon space-icon\" mat-icon-button>\r\n <img class=\"img-icon\" [src]=\"faIconPath\" alt=\"\" />\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\" (mouseenter)=\"setHoverFavorite(node.id)\"\r\n (mouseleave)=\"setHoverFavorite(null)\" [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && showAddIcon)}\"\r\n matTooltip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\" mode=\"dark\" position=\"below\"\r\n mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\"\r\n [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && showAddIcon\"\r\n matTooltip=\"{{addNodeTooltip}}\" (click)=\"addNewNode(node.id, $event)\" mode=\"dark\" position=\"below\"\r\n mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" (mouseover)=\"onOver(node)\" matTreeNodePadding\r\n matTreeNodePaddingIndent=\"34\" cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\"\r\n (mouseleave)=\"dragHoverEnd()\" (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"\r\n {'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\" class=\"tree-content\"\r\n (keydown)=\"onKeyDownNode($event, node)\">\r\n <span class=\"span-text\" mode=\"dark\" position=\"below\">{{ node.name }}</span>\r\n <button tabindex=\"-1\" class=\"button-icon space-icon collapse-expand-icon\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.name\" (click)=\"onClickToggleNode(node)\">\r\n <mat-icon class=\"mat-icon-rtl-mirror arrow-icon left-icon\">\r\n {{treeControl.isExpanded(node) ? 'expand_less' : 'expand_more'}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n matTooltip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\"\r\n [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && showAddIcon)}\" (mouseenter)=\"setHoverFavorite(node.id)\"\r\n (mouseleave)=\"setHoverFavorite(null)\" mode=\"dark\" position=\"below\" mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\"\r\n [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && showAddIcon\"\r\n matTooltip=\"{{addNodeTooltip}}\" (click)=\"addNewNode(node.id, $event)\" mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>",
20519
- styles: ["::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{width:272px!important;height:48px!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{min-height:34px;margin:16px 0;padding-right:34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.active{background-color:#f2f7fd}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content{width:100%;position:relative;cursor:pointer}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .arrow-icon{color:#00324e}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon{color:#3e57b7}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .add-icon{color:#3e57b7}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .add-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .left-icon{color:#919191}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node{padding-left:0;position:static;height:32px;left:calc(50% - 216px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#1954a9;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node ::ng-deep mat-icon{color:#1954a9}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node{position:static;height:32px;left:calc(50% - 176px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#323232;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon{width:30px;height:30px;line-height:30px!important;border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon:hover{border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .img-icon{max-height:25px;max-width:25px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon{position:absolute;top:-2px;right:-34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon mat-icon{top:3px;right:3px;border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .favorite{color:#b13514}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .not-favorite{color:rgba(0,0,0,.6)!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .btn-favorite{right:-5px;color:unset}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .space-icon{position:absolute;top:-5px;left:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text{position:relative;overflow:hidden;text-overflow:ellipsis;padding-left:42px;max-width:calc(100% - 56px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text:after{content:\"\";display:block;clear:both}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node:first-child{margin:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:hover{background:#00000014}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:active{background:#0000001f}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node:active{background:#f2f7fd}"]
20841
+ template: "\r\n<mat-tree class=\"qms-navigation-drawer-container\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\" cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\" [cdkDropListDisabled]=\"dragDropListDisabled\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" (mouseover)=\"onOver(node)\" matTreeNodePadding matTreeNodePaddingIndent=\"34\"\r\n cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\" (mouseleave)=\"dragHoverEnd()\"\r\n (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"{'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *cdkDragPreview class=\"node-preview-item\">{{ node.name }}</div>\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node, true)\" class=\"tree-content\">\r\n <button tabindex=\"-1\" qms-btn-outlined disabled class=\"border-0 bg-transparent\">\r\n <img class=\"img-icon\" [src]=\"faIconPath\" alt=\"\" />\r\n </button>\r\n <div class=\"span-text\">{{ node.name }}</div>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\" (mouseenter)=\"setHoverFavorite(node.id)\"\r\n (mouseleave)=\"setHoverFavorite(null)\" [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && isHover)}\"\r\n qms-tool-tip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\" mode=\"dark\" position=\"bottom\"\r\n qms-btn-icon>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\"\r\n [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && isHover\"\r\n qms-tool-tip=\"{{addNodeTooltip}}\" (click)=\"addNewNode(node.id, $event)\" mode=\"dark\" position=\"bottom\" qms-btn-icon>\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" (mouseover)=\"onOver(node)\" matTreeNodePadding\r\n matTreeNodePaddingIndent=\"34\" cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\"\r\n (mouseleave)=\"dragHoverEnd()\" (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"\r\n {'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *cdkDragPreview class=\"node-preview-item\">{{ node.name }}</div>\r\n <div *ngIf=\"!node.isReadOnly\" class=\"tree-content\"\r\n (keydown)=\"onKeyDownNode($event, node)\">\r\n <button matTreeNodeToggle (click)=\"onClickNode(node, false)\" tabindex=\"-1\" class=\"button-icon collapse-expand-icon\" qms-btn-icon [attr.aria-label]=\"'toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror arrow-icon left-icon\">\r\n {{treeControl.isExpanded(node) ? 'expand_less' : 'expand_more'}}\r\n </mat-icon>\r\n </button>\r\n <div class=\"span-text\" matTreeNodeToggle (click)=\"onClickNode(node, true)\">{{ node.name }}</div>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n qms-tool-tip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\" [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && isHover)}\"\r\n (mouseenter)=\"setHoverFavorite(node.id)\" (mouseleave)=\"setHoverFavorite(null)\" mode=\"dark\" position=\"below\"\r\n qms-btn-icon>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\"\r\n [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && isHover\"\r\n qms-tool-tip=\"{{addNodeTooltip}}\" mode=\"dark\" position=\"bottom\" (click)=\"addNewNode(node.id, $event)\" qms-btn-icon>\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
20842
+ styles: ["::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{min-width:272px!important;height:48px!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{min-height:34px;margin:16px 0;padding-right:34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.active{background-color:#f2f7fd;color:#1954a9!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.active img{filter:opacity(.5) drop-shadow(0 0 0 #1954A9)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.active:hover{background-color:#e5eefb!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content{width:100%;position:relative;cursor:pointer;align-items:center}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .arrow-icon{color:#00324e}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon{color:#3e57b7}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .add-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .left-icon{color:#919191}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node{padding-left:0;position:static;height:32px;left:calc(50% - 216px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#1954a9;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node ::ng-deep mat-icon{color:#1954a9}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node:hover{background-color:#e5eefb!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node{position:static;height:32px;left:calc(50% - 176px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#323232;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content{display:flex}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon{width:40px;height:40px;line-height:30px!important;border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon:hover{border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .img-icon{max-height:25px;max-width:25px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon{position:absolute;right:-34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon mat-icon{top:3px;right:3px;border-radius:50%;color:rgba(0,0,0,.6)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .favorite{color:#b13514!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .not-favorite{color:rgba(0,0,0,.6)!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .btn-favorite{right:6px;color:unset}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .space-icon{position:absolute;top:-5px;left:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text{position:relative;overflow:hidden;text-overflow:ellipsis;padding-left:7px;max-width:calc(100% - 56px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text:after{content:\"\";display:block;clear:both}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node:first-child{margin:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:hover{background:#00000014}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:active{background:#0000001f}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node:active{background:#f2f7fd}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node:hover .span-text{max-width:calc(100% - 96px)}.node-preview-item{display:flex;background-color:#0000001f;min-width:272px!important;height:48px!important;margin:0 auto;align-items:center;padding:0 16px}"]
20520
20843
  },] }
20521
20844
  ];
20522
20845
  QMSNavigationDrawerComponent.ctorParameters = () => [];
@@ -20536,7 +20859,8 @@ QMSNavigationDrawerComponent.propDecorators = {
20536
20859
  onClickNodeEvent: [{ type: Output }],
20537
20860
  addFavoriteTooltip: [{ type: Input }],
20538
20861
  deleteFavoriteTooltip: [{ type: Input }],
20539
- addNodeTooltip: [{ type: Input }]
20862
+ addNodeTooltip: [{ type: Input }],
20863
+ activeNode: [{ type: Input }]
20540
20864
  };
20541
20865
 
20542
20866
  class QMSNavigationDrawerModule {
@@ -20550,11 +20874,11 @@ QMSNavigationDrawerModule.decorators = [
20550
20874
  CommonModule,
20551
20875
  MatIconModule,
20552
20876
  MatToolbarModule,
20553
- MatButtonModule,
20554
20877
  QMSButtonModule,
20555
20878
  MatTooltipModule,
20556
20879
  DragDropModule,
20557
- MatTreeModule
20880
+ MatTreeModule,
20881
+ QmsAngularModule
20558
20882
  ],
20559
20883
  exports: [
20560
20884
  QMSNavigationDrawerComponent
@@ -20604,6 +20928,7 @@ class QMSPaginatorComponent {
20604
20928
  }
20605
20929
  set length(value) {
20606
20930
  this._length = coerceNumberProperty(value);
20931
+ this.getNumberOfPages();
20607
20932
  }
20608
20933
  get pageIndex() {
20609
20934
  return this._pageIndex + 1;
@@ -20613,6 +20938,7 @@ class QMSPaginatorComponent {
20613
20938
  this._pageIndex = Math.max(coerceNumberProperty(value - 1), 0);
20614
20939
  this.displayNumberOfPages = this.pagination(this._pageIndex, this.numberOfPages.length);
20615
20940
  this._emitPageEvent(this.previousPageIndex);
20941
+ this.getNumberOfPages();
20616
20942
  }
20617
20943
  ngOnInit() {
20618
20944
  this.getNumberOfPages();
@@ -20716,11 +21042,11 @@ class QMSPaginatorComponent {
20716
21042
  QMSPaginatorComponent.decorators = [
20717
21043
  { type: Component, args: [{
20718
21044
  selector: 'qms-paginator',
20719
- template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall'>\r\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\r\n <div class=\"qms-total-result\">\r\n <span>Resultater: {{length}}</span>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\r\n <div class=\"qms-pagesize-label\">Rader per side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageSize\"\r\n (selectionChange)=\"_changePageSize($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\r\n <div class=\"qms-pagesize-label \">Hopp til side:</div>\r\n\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageIndex\"\r\n (selectionChange)=\"_changePageNumber($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field> \r\n </div>\r\n <div class=\"qms-paginator-range-actions\">\r\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <ng-container *ngFor='let item of displayNumberOfPages' >\r\n <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span>\r\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" active=\"true\" \r\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\r\n (click)='changePage(item)'>\r\n {{item}}\r\n </button>\r\n </ng-container>\r\n \r\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\r\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\r\n <div class=\"qms-paginator-range-actions\">\r\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <ng-container *ngFor='let item of displayNumberOfPages' >\r\n <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span>\r\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" active=\"true\" \r\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\r\n (click)='changePage(item)'>\r\n {{item}}\r\n </button>\r\n </ng-container>\r\n \r\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"qms-total-result\">\r\n <span>Resultater: {{length}}</span>\r\n </div>\r\n <div style=\"display: flex;\">\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\r\n <div class=\"qms-pagesize-label\">Rader per side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageSize\"\r\n (selectionChange)=\"_changePageSize($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\r\n <div class=\"qms-pagesize-label \">Hopp til side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageIndex\"\r\n (selectionChange)=\"_changePageNumber($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n</div>",
21045
+ template: "<div class=\"qms-paginator-outer-container\" [class.size-small]='size == sizeSmall'>\r\n <div class=\"mat-paginator-container\" *ngIf='size != sizeMobile'>\r\n <div class=\"qms-total-result\">\r\n <span>Resultater: {{length}}</span>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\r\n <div class=\"qms-pagesize-label\">Rader per side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageSize\"\r\n (selectionChange)=\"_changePageSize($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\r\n <div class=\"qms-pagesize-label \">Hopp til side:</div>\r\n\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size qms-form-select-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageIndex\"\r\n (selectionChange)=\"_changePageNumber($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field> \r\n </div>\r\n <div class=\"qms-paginator-range-actions\">\r\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <ng-container *ngFor='let item of displayNumberOfPages' >\r\n <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span>\r\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" \r\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\r\n (click)='changePage(item)'>\r\n {{item}}\r\n </button>\r\n </ng-container>\r\n \r\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mat-paginator-container-mobile\" *ngIf='size == sizeMobile'>\r\n <div class=\"mat-paginator-container\" *ngIf='size == sizeMobile'>\r\n <div class=\"qms-paginator-range-actions\">\r\n <button qms-btn-icon color=\"light\" (click)='previousPage()' [disabled]='minPage == pageIndex'>\r\n <mat-icon>chevron_left</mat-icon>\r\n </button>\r\n <ng-container *ngFor='let item of displayNumberOfPages' >\r\n <span *ngIf='item == \"...\"' class=\"qms-3d\">{{item}}</span>\r\n <button *ngIf='item != \"...\"' qms-btn-icon color=\"light\" \r\n [class.selected]='pageIndex == item' [disabled]='pageIndex == item'\r\n (click)='changePage(item)'>\r\n {{item}}\r\n </button>\r\n </ng-container>\r\n \r\n <button qms-btn-icon color=\"light\" (click)='nextPage()' [disabled]='maxpage == pageIndex'>\r\n <mat-icon>chevron_right</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"qms-total-result\">\r\n <span>Resultater: {{length}}</span>\r\n </div>\r\n <div style=\"display: flex;\">\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeSmall'>\r\n <div class=\"qms-pagesize-label\">Rader per side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageSize\"\r\n (selectionChange)=\"_changePageSize($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of pageSizeOptions\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"qms-paginator-page-size\" *ngIf='size != sizeMedium && size != sizeSmall'>\r\n <div class=\"qms-pagesize-label \">Hopp til side:</div>\r\n <mat-form-field\r\n qms-form\r\n qms-select-input\r\n class=\"qms-form-page-size qms-form-select-page-size\"\r\n appearance=\"fill\">\r\n <mat-select\r\n panelClass=\"qms-select-panel\"\r\n [value]=\"pageIndex\"\r\n (selectionChange)=\"_changePageNumber($event.value)\"\r\n qms-select>\r\n <mat-option *ngFor=\"let item of numberOfPages\" [value]=\"item\">\r\n {{ item }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field> \r\n </div>\r\n </div>\r\n \r\n </div>\r\n \r\n</div>",
20720
21046
  host: {
20721
21047
  'class': 'qms-paginator'
20722
21048
  },
20723
- styles: ["::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-weight:400;font-size:14px;line-height:22px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:7px;border-top:0;padding-bottom:0}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:7px;border-top:0;padding-bottom:0}::ng-deep .qms-paginator .size-small .mat-paginator-container{justify-content:flex-start}"]
21049
+ styles: ["::ng-deep .qms-paginator{display:block}::ng-deep .qms-paginator .qms-paginator-outer-container{display:flex}::ng-deep .qms-paginator .mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}::ng-deep .qms-paginator .mat-paginator-container .qms-btn-icon{width:40px;height:40px;line-height:40px}::ng-deep .qms-paginator .mat-paginator-container .mat-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result{margin-right:24px;margin-bottom:20px}::ng-deep .qms-paginator .mat-paginator-container .qms-total-result span{font-family:Open Sans;font-weight:400;font-size:14px;line-height:22px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:14px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .qms-form-select-page-size .mat-form-field-flex{width:51px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0;padding-bottom:0;height:25px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions{display:flex;align-items:center;margin-bottom:15px}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .selected{background-color:#e5eefb;color:#1954a9}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions .qms-3d{font-weight:600;font-size:14px;line-height:22px;color:#323232}::ng-deep .qms-paginator .mat-paginator-container .qms-paginator-range-actions button:not(.qms-btn-disabled) .qms-btn-icon-wrapper{color:#323232}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-select .mat-select-arrow{margin-top:20px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result{margin-bottom:16px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-total-result span{font-family:Open Sans;font-style:normal;font-weight:400;font-size:12px;line-height:16px;color:rgba(0,0,0,.6)}::ng-deep .qms-paginator .mat-paginator-container-mobile .mat-paginator-container{justify-content:flex-start}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size{margin-right:24px;display:flex;align-items:baseline}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-pagesize-label{font-weight:400;font-size:12px;line-height:22px;color:#323232;font-family:Open Sans;font-style:normal;margin-right:8px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-page-size .mat-form-field-flex{width:80px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .qms-form-select-page-size .mat-form-field-flex{width:51px;padding-left:9px;padding-right:5px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .jump-page .mat-form-field-wrapper .mat-form-field-flex{width:55px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex{height:40px}::ng-deep .qms-paginator .mat-paginator-container-mobile .qms-paginator-page-size .mat-form-field-flex .mat-form-field-infix{padding-top:4px;border-top:0;padding-bottom:0;height:25px}::ng-deep .qms-paginator .size-small .mat-paginator-container{justify-content:flex-start}"]
20724
21050
  },] }
20725
21051
  ];
20726
21052
  QMSPaginatorComponent.ctorParameters = () => [];
@@ -20765,5 +21091,5 @@ QmsPaginatorModule.decorators = [
20765
21091
  * Generated bundle index. Do not edit.
20766
21092
  */
20767
21093
 
20768
- export { AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NewTreeComponent, NewTreeModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropWDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSDialogConfig, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSRowExpandDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableExpandDirective, QMSTableModule, QMSTextBlockDirective, QMSTextBlockLine, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectConst, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeNode$1 as TreeNode, UploadErrorData, en, mixinColor, no, notExceedSize, requiredFileType, ɵ1, SharedMaterialModule as ɵa, QMSCKEditorTemplateComponent as ɵb, QMSCKEditorTreeService as ɵc, LinkAttachmentComponent as ɵd, QMSCKEditorTooltipComponent as ɵe, QMSCKEditorTooltip as ɵf, QMSCKEditorImageMapComponent as ɵg, QMSCKEditorImageMap as ɵh, QMSCKEditorBpmnData as ɵi };
21094
+ export { AutocompleteOffDirective, BREADCRUMB_DROPDOWN_ICON, BUTTON_TOGGLE_DEFAULT_OPTIONS, BUTTON_TOGGLE_GROUP, BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, BannerType, BpmnService, BreadcrumbNode, ButtonToggleChange, CHECKLIST_ICON, CKEditorEventConst, CKEditorModule, CdkDetailRowDirective, ConfirmDialog, DEPARTMENT_FOLDER_ICON, DEPARTMENT_FOLDER_OUTLINED_ICON, DEVIATION_ICON, DOCUMENT_DEPARTMENT_ICON, DOCUMENT_ENTERPRISE_ICON, DOCUMENT_ICON, DOCUMENT_LOCAL_ICON, DOCUMENT_REGIONAL_ICON, DataType$1 as DataType, DateFormatPipe, DocumentNodeType$1 as DocumentNodeType, ENTERPRISE_FOLDER_ICON, ENTERPRISE_FOLDER_OUTLINED_ICON, FileErrorType, FlowChartConst, FlowchartViewMode, ISelectOneItem, InformationCoverItem, KEYBOARD_DOWN_ICON, KEYBOARD_UP_ICON, LOCAL_FOLDER_ICON, LOCAL_FOLDER_OUTLINED_ICON, LinkAnchor, LinkType, MarginDirective, ModuleType$1 as ModuleType, NORMAL_FOLDER_ICON, NORMAL_FOLDER_OUTLINED_ICON, NewTreeComponent, NewTreeModel, PROCESS_AREA_ICON, PROCESS_AREA_OUTLINED_ICON, PROCESS_ICON, PaginationSize, PopupData, ProtocolType, ProtocolTypeName, QMSAnchor, QMSAppBar, QMSAppIconModule, QMSAttachmentListDirective, QMSBreadcrumb, QMSBreadcrumbDirectionIconDirective, QMSBreadcrumbItemDirective, QMSBreadcrumbModule, QMSButton, QMSButtonIcon, QMSButtonModule, QMSButtonToggle, QMSButtonToggleGroup, QMSCKEditorBaseComponent, QMSCKEditorBaseService, QMSCKEditorBpmn, QMSCKEditorBpmnApiService, QMSCKEditorBpmnComponent, QMSCKEditorBpmnTemplate, QMSCKEditorComponent, QMSCKEditorConfirmComponent, QMSCKEditorData, QMSCKEditorDialogData, QMSCKEditorDocumentType, QMSCKEditorFlowchart, QMSCKEditorFlowchartService, QMSCKEditorFullscreenComponent, QMSCKEditorGlobalService, QMSCKEditorInjector, QMSCKEditorLinkAnchorDocument, QMSCKEditorLinkComponent, QMSCKEditorLinkService, QMSCKEditorLoadTemplateComponent, QMSCKEditorModule, QMSCKEditorPlugin, QMSCKEditorRelatedComponent, QMSCKEditorRelation, QMSCKEditorSaveAsTemplate, QMSCKEditorTemplate, QMSCKEditorTemplateService, QMSCKEditorToastService, QMSCKEditorTreeComponent, QMSCKEdtiorInputData, QMSChipBodyDirective, QMSChipInputChipListDirective, QMSChipInputDirective, QMSChipInputSelectDropWDownDirective, QMSChipInputSelectFieldDirective, QMSChipInputSelectTriggerDirective, QMSCollapseGroupDirective, QMSComment, QMSConfirmDialog, QMSDialogConfig, QMSDrawerContentDirective, QMSDrawerDirective, QMSDrawerHeaderActionDirective, QMSDrawerHeaderDirective, QMSDropdownMenuItem, QMSEditFileNameDialog, QMSEditFileNameDialogModule, QMSFileAttachment, QMSFileUploadDirective, QMSFileUploadDisplayDirective, QMSFileUploadMultipleDirective, QMSFileUploadMultipleDisplayDirective, QMSFileUploadMultipleSelectorDirective, QMSFileUploadSelectorDirective, QMSFormDialog, QMSFormFieldDatePickerDirective, QMSFormFieldDirective, QMSFormFieldTextareaDirective, QMSGroupOptionDirective, QMSIconRegistryService, QMSInputChipDirective, QMSInputClearDirective, QMSList, QMSListExpansion, QMSListExpansionHeader, QMSListHeader, QMSListItem, QMSListLeadingIcon, QMSListLine, QMSListModule, QMSNavigationDrawerComponent, QMSNavigationDrawerModule, QMSNewTreeModule, QMSPaginatorComponent, QMSProcessDocumentItem, QMSRangeSliderDirective, QMSRangeSliderLockUpDirective, QMSRangeSliderModule, QMSRelatedGlobalService, QMSRelatedModule, QMSRichText, QMSRichTextModule, QMSRowDetailDirective, QMSScrolableAttachmentListDirective, QMSScrollbarDirective, QMSSearchFieldDirective, QMSSelectGlobalService, QMSSelectIncludeChildrenModule, QMSSelectOneGlobalService, QMSSelectOneModule, QMSSelectProcessDocumentGlobalService, QMSSelectProcessDocumentModule, QMSSideSheetModule, QMSSnackbarConfig, QMSSuffixDirective, QMSSuffixFieldDirective, QMSTabGroupAdvancedDirective, QMSTabGroupDirective, QMSTabLabelDirective, QMSTabModule, QMSTableAction, QMSTableActionBlock, QMSTableChildrenDirective, QMSTableDirective, QMSTableModule, QMSTableRowDirective, QMSTextBlockDirective, QMSTextBlockLine, QMSToolTipComponent, QMSToolTipRendererDirective, QMSTooltipImageDirective, QMSTooltipModule, QMSTreeModule, QMSUploadFileErrorDialog, QMSUploadFileErrorDialogModule, QMSUploadingFileGuard, QmsAngularComponent, QmsAngularModule, QmsAngularService, QmsAppBarComponent, QmsAppBarModule, QmsBadgesComponent, QmsBadgesModule, QmsBannerComponent, QmsBannerConfirmButton, QmsBannerConfirmButtonClick, QmsBannerConfirmComponent, QmsBannerConfirmModule, QmsBannerContent, QmsBannerLoadingComponent, QmsBannerLoadingModule, QmsBannerModule, QmsPaginatorModule, QmsReportContentPortraitComponent, QmsReportCoverPortraitComponent, QmsReportModule, QmsStatusDropdownComponent, QmsStatusDropdownModule, QmsStatusDropdownOption, QmsStatusDropdownType, QmsStepperComponent, QmsStepperModule, REGIONAL_FOLDER_ICON, REGIONAL_FOLDER_OUTLINED_ICON, RISK_ICON, RelatedConst, RelatedContentComponent, RelatedItemType, RelatedListComponent, RelatedPopupComponent, Result, RiskAnalysis, RiskAnalysisComponent, RiskDanger, RiskListComponent, RiskResult, RiskResultComponent, SaveTemplateComponent, ScrollToSelectedDirective, SelectConst, SelectDialog, SelectIncludeChildrenPopUpComponent, SelectOneDialog, SelectOnePopupData, SelectOption, SelectOptionTypes, SelectPopupData, SelectProcessDocumentPopupComponent, SelectProcessDocumentPopupData, SelectedOption, SelectedProcessDocumentItem, SharedModule, ShowHideSearchResultConst, SideNav, SideNavItem, SidenavComponent, TargetType, TargetTypeName, TranslateLibraryService, TreeComponent, TreeConfig, TreeFlatNode, TreeModel, TreeNode$1 as TreeNode, UploadErrorData, en, mixinColor, no, notExceedSize, requiredFileType, ɵ1, SharedMaterialModule as ɵa, QMSCKEditorTreeService as ɵb, QMSCKEditorTemplateComponent as ɵc, LinkAttachmentComponent as ɵd, QMSCKEditorTooltipComponent as ɵe, QMSCKEditorTooltip as ɵf, QMSCKEditorImageMapComponent as ɵg, QMSCKEditorImageMap as ɵh, QMSCKEditorUploadService as ɵi, QMSCKEditorBpmnData as ɵj, QMSCKEditorAboutComponent as ɵk };
20769
21095
  //# sourceMappingURL=qms-angular.js.map