vcomply-workflow-engine 3.5.3 → 3.5.4

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 (645) hide show
  1. package/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +897 -0
  2. package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +204 -0
  3. package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +1569 -0
  4. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +774 -0
  5. package/esm2022/lib/configurations.mjs +6 -0
  6. package/esm2022/lib/confirmation-alert/confirmation-alert.component.mjs +28 -0
  7. package/esm2022/lib/constants/link-responsibility.constants.mjs +9 -0
  8. package/esm2022/lib/constants/time.constants.mjs +3 -0
  9. package/esm2022/lib/create-documents/create-documents.component.mjs +145 -0
  10. package/esm2022/lib/formgroup/cs-checkbox/cs-checkbox.component.mjs +36 -0
  11. package/esm2022/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  12. package/esm2022/lib/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  13. package/esm2022/lib/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  14. package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +95 -0
  15. package/esm2022/lib/formgroup/cs-switch/cs-switch.component.mjs +31 -0
  16. package/esm2022/lib/formgroup/formgroup.module.mjs +56 -0
  17. package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +19 -0
  18. package/esm2022/lib/formgroup/select/cs-option/cs-option.component.mjs +42 -0
  19. package/esm2022/lib/formgroup/select/cs-select/cs-select.component.mjs +106 -0
  20. package/esm2022/lib/formgroup/select/select.module.mjs +21 -0
  21. package/esm2022/lib/formgroup/select/select.service.mjs +48 -0
  22. package/esm2022/lib/interfaces/categoryList.mjs +2 -0
  23. package/esm2022/lib/interfaces/confirmation-alert.mjs +2 -0
  24. package/esm2022/lib/interfaces/issue-data.mjs +2 -0
  25. package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +1212 -0
  26. package/esm2022/lib/more-option/more-option.component.mjs +790 -0
  27. package/esm2022/lib/pipes/data-type.pipe.mjs +16 -0
  28. package/esm2022/lib/pipes/dom-sanitizer.pipe.mjs +24 -0
  29. package/esm2022/lib/pipes/filter.pipe.mjs +24 -0
  30. package/esm2022/lib/pipes/is-read-more.pipe.mjs +21 -0
  31. package/esm2022/lib/pipes/list-mapper.pipe.mjs +21 -0
  32. package/esm2022/lib/pipes/pipes.module.mjs +67 -0
  33. package/esm2022/lib/pipes/search.pipe.mjs +37 -0
  34. package/esm2022/lib/pipes/space-breaker.pipe.mjs +21 -0
  35. package/esm2022/lib/pipes/uncategorized-filter.pipe.mjs +21 -0
  36. package/esm2022/lib/pipes/user-filter.pipe.mjs +30 -0
  37. package/esm2022/lib/services/bulk-upload.service.mjs +44 -0
  38. package/esm2022/lib/services/common.service.mjs +41 -0
  39. package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +265 -0
  40. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +73 -0
  41. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +83 -0
  42. package/esm2022/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.mjs +347 -0
  43. package/esm2022/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.mjs +75 -0
  44. package/esm2022/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.mjs +33 -0
  45. package/esm2022/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.mjs +124 -0
  46. package/esm2022/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.mjs +154 -0
  47. package/esm2022/lib/sharedComponents/assessment-editor/components/build/build.module.mjs +111 -0
  48. package/esm2022/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.mjs +37 -0
  49. package/esm2022/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.mjs +74 -0
  50. package/esm2022/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.mjs +18 -0
  51. package/esm2022/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.mjs +37 -0
  52. package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +15 -0
  53. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.mjs +14 -0
  54. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.mjs +14 -0
  55. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.mjs +37 -0
  56. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.mjs +14 -0
  57. package/esm2022/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.mjs +14 -0
  58. package/esm2022/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.mjs +14 -0
  59. package/esm2022/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.mjs +28 -0
  60. package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +14 -0
  61. package/esm2022/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.mjs +56 -0
  62. package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +14 -0
  63. package/esm2022/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.mjs +179 -0
  64. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/error.mjs +2 -0
  65. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/question.mjs +2 -0
  66. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.mjs +2 -0
  67. package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +104 -0
  68. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.mjs +26 -0
  69. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.mjs +14 -0
  70. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.mjs +56 -0
  71. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.mjs +33 -0
  72. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +17 -0
  73. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.mjs +26 -0
  74. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.mjs +16 -0
  75. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.mjs +101 -0
  76. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.mjs +16 -0
  77. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.mjs +24 -0
  78. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.mjs +14 -0
  79. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.mjs +16 -0
  80. package/esm2022/lib/sharedComponents/assessment-editor/components/move/move.component.mjs +103 -0
  81. package/esm2022/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.mjs +23 -0
  82. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.mjs +22 -0
  83. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.mjs +27 -0
  84. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.mjs +21 -0
  85. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.mjs +17 -0
  86. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.mjs +16 -0
  87. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.mjs +21 -0
  88. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.mjs +16 -0
  89. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.mjs +28 -0
  90. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.mjs +14 -0
  91. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.mjs +49 -0
  92. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.mjs +30 -0
  93. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.mjs +21 -0
  94. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.mjs +17 -0
  95. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.mjs +31 -0
  96. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.mjs +28 -0
  97. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.mjs +28 -0
  98. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.mjs +16 -0
  99. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.mjs +16 -0
  100. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.mjs +16 -0
  101. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.mjs +14 -0
  102. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.mjs +16 -0
  103. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.mjs +78 -0
  104. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview.module.mjs +152 -0
  105. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +14 -0
  106. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +14 -0
  107. package/esm2022/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.mjs +19 -0
  108. package/esm2022/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.mjs +252 -0
  109. package/esm2022/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.mjs +35 -0
  110. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.mjs +61 -0
  111. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.mjs +163 -0
  112. package/esm2022/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.mjs +118 -0
  113. package/esm2022/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.mjs +23 -0
  114. package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +97 -0
  115. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +493 -0
  116. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment.module.mjs +154 -0
  117. package/esm2022/lib/sharedComponents/assessment-editor/services/editor.service.mjs +635 -0
  118. package/esm2022/lib/sharedComponents/assessment-editor/services/result-criteria.service.mjs +48 -0
  119. package/esm2022/lib/sharedComponents/assessment-editor/services/validator.service.mjs +546 -0
  120. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.mjs +15 -0
  121. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.mjs +15 -0
  122. package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +207 -0
  123. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.interface.mjs +2 -0
  124. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.service.mjs +31 -0
  125. package/esm2022/lib/sharedComponents/assessment-preview/assessment-preview.module.mjs +113 -0
  126. package/esm2022/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.mjs +33 -0
  127. package/esm2022/lib/sharedComponents/assessment-preview/date-time/date-time.component.mjs +53 -0
  128. package/esm2022/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.mjs +24 -0
  129. package/esm2022/lib/sharedComponents/assessment-preview/device/device.component.mjs +21 -0
  130. package/esm2022/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.mjs +22 -0
  131. package/esm2022/lib/sharedComponents/assessment-preview/page-header/page-header.component.mjs +21 -0
  132. package/esm2022/lib/sharedComponents/assessment-preview/pipes/get-section-order.pipe.mjs +24 -0
  133. package/esm2022/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +62 -0
  134. package/esm2022/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.mjs +22 -0
  135. package/esm2022/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.mjs +22 -0
  136. package/esm2022/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.mjs +33 -0
  137. package/esm2022/lib/sharedComponents/assessment-preview/section-details/section-details.component.mjs +20 -0
  138. package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +35 -0
  139. package/esm2022/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.mjs +21 -0
  140. package/esm2022/lib/sharedComponents/assessment-preview/welcome/welcome.component.mjs +17 -0
  141. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +61 -0
  142. package/esm2022/lib/sharedComponents/audit-category-list/audit-category.model.mjs +2 -0
  143. package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +72 -0
  144. package/esm2022/lib/sharedComponents/bulk-view/bulk-view.component.mjs +75 -0
  145. package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +84 -0
  146. package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +166 -0
  147. package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +92 -0
  148. package/esm2022/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +315 -0
  149. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.mjs +25 -0
  150. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +149 -0
  151. package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +48 -0
  152. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +77 -0
  153. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.mjs +14 -0
  154. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +197 -0
  155. package/esm2022/lib/sharedComponents/directive/autofocus.directive.mjs +22 -0
  156. package/esm2022/lib/sharedComponents/directive/conditional-focus.directive.mjs +35 -0
  157. package/esm2022/lib/sharedComponents/directive/drag-drop.directive.mjs +52 -0
  158. package/esm2022/lib/sharedComponents/directive/input-trim.directive.mjs +21 -0
  159. package/esm2022/lib/sharedComponents/directive/scroll-in-view.directive.mjs +35 -0
  160. package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +184 -0
  161. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +122 -0
  162. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.module.mjs +20 -0
  163. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +308 -0
  164. package/esm2022/lib/sharedComponents/framework-list/framework-integration-interfaces.mjs +2 -0
  165. package/esm2022/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.mjs +38 -0
  166. package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +429 -0
  167. package/esm2022/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.mjs +43 -0
  168. package/esm2022/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.mjs +15 -0
  169. package/esm2022/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +95 -0
  170. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +297 -0
  171. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +218 -0
  172. package/esm2022/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.mjs +36 -0
  173. package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +303 -0
  174. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +152 -0
  175. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.mjs +21 -0
  176. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +83 -0
  177. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +199 -0
  178. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.mjs +12 -0
  179. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +223 -0
  180. package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +170 -0
  181. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +189 -0
  182. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +75 -0
  183. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +214 -0
  184. package/esm2022/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +36 -0
  185. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +253 -0
  186. package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +213 -0
  187. package/esm2022/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +133 -0
  188. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +200 -0
  189. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +573 -0
  190. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +300 -0
  191. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +216 -0
  192. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.mjs +29 -0
  193. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +296 -0
  194. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +110 -0
  195. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +227 -0
  196. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +213 -0
  197. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +212 -0
  198. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +33 -0
  199. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +128 -0
  200. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +197 -0
  201. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +259 -0
  202. package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +472 -0
  203. package/esm2022/lib/sharedComponents/link-program/link-program/program-list-model.mjs +2 -0
  204. package/esm2022/lib/sharedComponents/link-program/program-integration-interfaces.mjs +2 -0
  205. package/esm2022/lib/sharedComponents/link-program/restapi.service.mjs +149 -0
  206. package/esm2022/lib/sharedComponents/link-program/tooltip-validation.pipe.mjs +28 -0
  207. package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +221 -0
  208. package/esm2022/lib/sharedComponents/list-loader/list-loader.component.mjs +15 -0
  209. package/esm2022/lib/sharedComponents/list-loader/list-loader.module.mjs +18 -0
  210. package/esm2022/lib/sharedComponents/no-data/no-data.component.mjs +36 -0
  211. package/esm2022/lib/sharedComponents/no-data/no-data.module.mjs +18 -0
  212. package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +176 -0
  213. package/esm2022/lib/sharedComponents/pipes/array-filter.pipe.mjs +18 -0
  214. package/esm2022/lib/sharedComponents/pipes/filterPipe.mjs +30 -0
  215. package/esm2022/lib/sharedComponents/pipes/rcTreeToolTip.pipe.mjs +26 -0
  216. package/esm2022/lib/sharedComponents/pipes/short-merge.pipe.mjs +24 -0
  217. package/esm2022/lib/sharedComponents/pipes/spaceTrim.pipe.mjs +18 -0
  218. package/esm2022/lib/sharedComponents/pipes/within-data.pipe.mjs +21 -0
  219. package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +88 -0
  220. package/esm2022/lib/sharedComponents/program-listing/program-list-model.mjs +2 -0
  221. package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +739 -0
  222. package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +82 -0
  223. package/esm2022/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.mjs +14 -0
  224. package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +128 -0
  225. package/esm2022/lib/sharedComponents/responsibility-centers-list/rc-list.module.mjs +40 -0
  226. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +125 -0
  227. package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +81 -0
  228. package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +44 -0
  229. package/esm2022/lib/sharedComponents/risk-classification/risk-classification.component.mjs +102 -0
  230. package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +30 -0
  231. package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +78 -0
  232. package/esm2022/lib/sharedComponents/table-card-loader/table-card-loader.component.mjs +15 -0
  233. package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +83 -0
  234. package/esm2022/lib/sharedComponents/v-loader/loader/loader.component.mjs +21 -0
  235. package/esm2022/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.mjs +21 -0
  236. package/esm2022/lib/sharedComponents/v-loader/v-loader.module.mjs +19 -0
  237. package/esm2022/lib/ui-kit/action-dialog/action-dialog.module.mjs +21 -0
  238. package/esm2022/lib/ui-kit/action-dialog/active/active.component.mjs +32 -0
  239. package/esm2022/lib/ui-kit/action-dialog/deactivate/deactivate.component.mjs +33 -0
  240. package/esm2022/lib/ui-kit/action-dialog/delete/delete.component.mjs +26 -0
  241. package/esm2022/lib/ui-kit/action-dialog/duplicate/duplicate.component.mjs +28 -0
  242. package/esm2022/lib/ui-kit/click-outside/click-outside.directive.mjs +29 -0
  243. package/esm2022/lib/ui-kit/click-outside/click-outside.module.mjs +22 -0
  244. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +3 -0
  245. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +14 -0
  246. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  247. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +88 -0
  248. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
  249. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +58 -0
  250. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +16 -0
  251. package/esm2022/lib/ui-kit/directive/directive.module.mjs +24 -0
  252. package/esm2022/lib/ui-kit/directive/stop-propagation.directive.mjs +20 -0
  253. package/esm2022/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.mjs +15 -0
  254. package/esm2022/lib/ui-kit/editor-loader/editor-loader.module.mjs +22 -0
  255. package/esm2022/lib/ui-kit/format-html.pipe.mjs +20 -0
  256. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +29 -0
  257. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +31 -0
  258. package/esm2022/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  259. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +30 -0
  260. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  261. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +100 -0
  262. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +32 -0
  263. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +60 -0
  264. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
  265. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
  266. package/esm2022/lib/ui-kit/line-loader/line-loader.component.mjs +15 -0
  267. package/esm2022/lib/ui-kit/line-loader/line-loader.module.mjs +18 -0
  268. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +45 -0
  269. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
  270. package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +116 -0
  271. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +28 -0
  272. package/esm2022/lib/ui-kit/popover/popover-event.directive.mjs +28 -0
  273. package/esm2022/lib/ui-kit/popover/popover-longpress.directive.mjs +44 -0
  274. package/esm2022/lib/ui-kit/popover/popover.component.mjs +138 -0
  275. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +97 -0
  276. package/esm2022/lib/ui-kit/popover/popover.module.mjs +23 -0
  277. package/esm2022/lib/ui-kit/popover/popover.service.mjs +15 -0
  278. package/esm2022/lib/ui-kit/popover-hover/popover-hover.component.mjs +109 -0
  279. package/esm2022/lib/ui-kit/popover-hover/popover-hover.directive.mjs +34 -0
  280. package/esm2022/lib/ui-kit/popover-hover/popover-hover.module.mjs +31 -0
  281. package/esm2022/lib/ui-kit/popover-hover/popover-hover.service.mjs +14 -0
  282. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +43 -0
  283. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
  284. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.mjs +43 -0
  285. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.mjs +18 -0
  286. package/esm2022/lib/ui-kit/snack-bar/snack-bar.component.mjs +51 -0
  287. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  288. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -0
  289. package/esm2022/lib/ui-kit/time-picker/constants/constant.mjs +5 -0
  290. package/esm2022/lib/ui-kit/time-picker/time-picker/time-picker.component.mjs +220 -0
  291. package/esm2022/lib/ui-kit/time-picker/time-picker.module.mjs +24 -0
  292. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +156 -0
  293. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  294. package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +831 -0
  295. package/esm2022/lib/workflow/grc-object/grc-object.module.mjs +64 -0
  296. package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +95 -0
  297. package/esm2022/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.mjs +110 -0
  298. package/esm2022/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.mjs +118 -0
  299. package/esm2022/lib/workflow/shared/components/attributes/attributes.component.mjs +100 -0
  300. package/esm2022/lib/workflow/shared/components/attributes/date-picker/date-picker.component.mjs +116 -0
  301. package/esm2022/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +216 -0
  302. package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +119 -0
  303. package/esm2022/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +198 -0
  304. package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +202 -0
  305. package/esm2022/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.mjs +191 -0
  306. package/esm2022/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.mjs +86 -0
  307. package/esm2022/lib/workflow/shared/components/list-popup/list-popup.component.mjs +209 -0
  308. package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +411 -0
  309. package/esm2022/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.mjs +241 -0
  310. package/esm2022/lib/workflow/shared/components/table-card/table-card.component.mjs +32 -0
  311. package/esm2022/lib/workflow/shared/components/text-field/text-field.component.mjs +143 -0
  312. package/esm2022/lib/workflow/shared/components/text-field-icon/text-field-icon.component.mjs +56 -0
  313. package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +11 -0
  314. package/esm2022/lib/workflow/shared/constants/field-text.constant.mjs +17 -0
  315. package/esm2022/lib/workflow/shared/constants/grcObject.constant.mjs +88 -0
  316. package/esm2022/lib/workflow/shared/constants/link-responsibility.constant.mjs +19 -0
  317. package/esm2022/lib/workflow/shared/constants/message.contstant.mjs +5 -0
  318. package/esm2022/lib/workflow/shared/constants/pagination-limits.constant.mjs +6 -0
  319. package/esm2022/lib/workflow/shared/constants/svg-link.constant.mjs +4 -0
  320. package/esm2022/lib/workflow/shared/constants/validation-message.constant.mjs +8 -0
  321. package/esm2022/lib/workflow/shared/interfaces/add-grc.mjs +2 -0
  322. package/esm2022/lib/workflow/shared/services/grc.service.mjs +310 -0
  323. package/esm2022/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.mjs +30 -0
  324. package/esm2022/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.mjs +48 -0
  325. package/esm2022/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.mjs +24 -0
  326. package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +32 -0
  327. package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +668 -0
  328. package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +254 -0
  329. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +3913 -0
  330. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +734 -0
  331. package/esm2022/lib/workflow-engine.module.mjs +467 -0
  332. package/esm2022/lib/workflow-engine.service.mjs +14 -0
  333. package/esm2022/lib/workflow-interfaces/create-policy-form.mjs +2 -0
  334. package/esm2022/lib/workflow-pagination/workflow-pagination.component.mjs +116 -0
  335. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1875 -0
  336. package/esm2022/lib/workflow-program/constants.mjs +51 -0
  337. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.mjs +15 -0
  338. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +292 -0
  339. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.mjs +15 -0
  340. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.mjs +43 -0
  341. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.mjs +22 -0
  342. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.mjs +116 -0
  343. package/esm2022/lib/workflow-program/create-program-ui/checkbox/checkbox.component.mjs +39 -0
  344. package/esm2022/lib/workflow-program/create-program-ui/create-program-ui.module.mjs +194 -0
  345. package/esm2022/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.mjs +44 -0
  346. package/esm2022/lib/workflow-program/create-program-ui/custom-field/custom-field.component.mjs +82 -0
  347. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +267 -0
  348. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.mjs +44 -0
  349. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.mjs +15 -0
  350. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.mjs +23 -0
  351. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.mjs +23 -0
  352. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +26 -0
  353. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +68 -0
  354. package/esm2022/lib/workflow-program/create-program-ui/directives/input-trim.directive.mjs +21 -0
  355. package/esm2022/lib/workflow-program/create-program-ui/file-pill/file-pill.component.mjs +27 -0
  356. package/esm2022/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +106 -0
  357. package/esm2022/lib/workflow-program/create-program-ui/form-field/form-field.component.mjs +16 -0
  358. package/esm2022/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.mjs +30 -0
  359. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +166 -0
  360. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination.module.mjs +28 -0
  361. package/esm2022/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.mjs +16 -0
  362. package/esm2022/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +27 -0
  363. package/esm2022/lib/workflow-program/create-program-ui/pipes/filter.pipe.mjs +30 -0
  364. package/esm2022/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.mjs +16 -0
  365. package/esm2022/lib/workflow-program/create-program-ui/pipes/pager.pipe.mjs +21 -0
  366. package/esm2022/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.mjs +17 -0
  367. package/esm2022/lib/workflow-program/create-program-ui/pipes/search.pipe.mjs +23 -0
  368. package/esm2022/lib/workflow-program/create-program-ui/role-list/loader/loader.component.mjs +15 -0
  369. package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +240 -0
  370. package/esm2022/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.mjs +43 -0
  371. package/esm2022/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.mjs +15 -0
  372. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +434 -0
  373. package/esm2022/lib/workflow-program/workflow-program.component.mjs +1550 -0
  374. package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +1642 -0
  375. package/esm2022/lib/workflow-services/add-risk.service.mjs +150 -0
  376. package/esm2022/lib/workflow-services/assessment.service.mjs +117 -0
  377. package/esm2022/lib/workflow-services/auth.service.mjs +229 -0
  378. package/esm2022/lib/workflow-services/frequency.service.mjs +173 -0
  379. package/esm2022/lib/workflow-services/log-issue.service.mjs +360 -0
  380. package/esm2022/lib/workflow-services/policy.service.mjs +163 -0
  381. package/esm2022/lib/workflow-services/programs.service.mjs +319 -0
  382. package/esm2022/lib/workflow-services/responsibility.service.mjs +293 -0
  383. package/esm2022/lib/workflow-services/token-decoder.service.mjs +38 -0
  384. package/esm2022/lib/workflow-services/ui-kit.service.mjs +17 -0
  385. package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +26 -0
  386. package/esm2022/public-api.mjs +8 -0
  387. package/esm2022/vcomply-workflow-engine.mjs +5 -0
  388. package/fesm2022/vcomply-workflow-engine.mjs +44351 -0
  389. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -0
  390. package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +1 -1
  391. package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +1 -1
  392. package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +1 -1
  393. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
  394. package/lib/confirmation-alert/confirmation-alert.component.d.ts +1 -1
  395. package/lib/create-documents/create-documents.component.d.ts +1 -1
  396. package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  397. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  398. package/lib/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  399. package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  400. package/lib/formgroup/cs-select/cs-select.component.d.ts +1 -1
  401. package/lib/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  402. package/lib/formgroup/select/cs-option/cs-option.component.d.ts +1 -1
  403. package/lib/formgroup/select/cs-select/cs-select.component.d.ts +1 -1
  404. package/lib/log-an-issue/log-an-issue.component.d.ts +7 -3
  405. package/lib/more-option/more-option.component.d.ts +1 -1
  406. package/lib/services/common.service.d.ts +14 -0
  407. package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +1 -1
  408. package/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.d.ts +1 -1
  409. package/lib/sharedComponents/approval-workflow/approval-workflow.component.d.ts +1 -1
  410. package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +1 -1
  411. package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -1
  412. package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +1 -1
  413. package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +1 -1
  414. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +1 -1
  415. package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +1 -1
  416. package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +1 -1
  417. package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +1 -1
  418. package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +1 -1
  419. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +1 -1
  420. package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +1 -1
  421. package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +1 -1
  422. package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +1 -1
  423. package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +1 -1
  424. package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +1 -1
  425. package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +1 -1
  426. package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +1 -1
  427. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +1 -1
  428. package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +1 -1
  429. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +1 -1
  430. package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +1 -1
  431. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +1 -1
  432. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +1 -1
  433. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +1 -1
  434. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +7 -3
  435. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +1 -1
  436. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +1 -1
  437. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +1 -1
  438. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +1 -1
  439. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +1 -1
  440. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +1 -1
  441. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +1 -1
  442. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +1 -1
  443. package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +1 -1
  444. package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +1 -1
  445. package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +1 -1
  446. package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +1 -1
  447. package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +8 -5
  448. package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +1 -1
  449. package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +1 -1
  450. package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +1 -1
  451. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +1 -1
  452. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +1 -1
  453. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +1 -1
  454. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +1 -1
  455. package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +1 -1
  456. package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +1 -1
  457. package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +1 -1
  458. package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +1 -1
  459. package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +1 -1
  460. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +1 -1
  461. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +1 -1
  462. package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +1 -1
  463. package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +1 -1
  464. package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +1 -1
  465. package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +1 -1
  466. package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +1 -1
  467. package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +1 -1
  468. package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +1 -1
  469. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +1 -1
  470. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +1 -1
  471. package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +1 -1
  472. package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +1 -1
  473. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +1 -1
  474. package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +1 -1
  475. package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +8 -5
  476. package/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.d.ts +1 -1
  477. package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +1 -1
  478. package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +1 -1
  479. package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +1 -1
  480. package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +1 -1
  481. package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +1 -1
  482. package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +1 -1
  483. package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +1 -1
  484. package/lib/sharedComponents/assessment-preview/section-details/section-details.component.d.ts +1 -1
  485. package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +1 -1
  486. package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +1 -1
  487. package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +1 -1
  488. package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +1 -1
  489. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +1 -1
  490. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +1 -1
  491. package/lib/sharedComponents/category-list/category-list.component.d.ts +1 -1
  492. package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +1 -1
  493. package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +1 -1
  494. package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +1 -1
  495. package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +1 -1
  496. package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +6 -2
  497. package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +1 -1
  498. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +1 -1
  499. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +1 -1
  500. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +1 -1
  501. package/lib/sharedComponents/directive/autofocus.directive.d.ts +1 -1
  502. package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +1 -1
  503. package/lib/sharedComponents/directive/drag-drop.directive.d.ts +1 -1
  504. package/lib/sharedComponents/directive/input-trim.directive.d.ts +1 -1
  505. package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +1 -1
  506. package/lib/sharedComponents/document-section/document-section.component.d.ts +1 -1
  507. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +1 -1
  508. package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -1
  509. package/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.d.ts +1 -1
  510. package/lib/sharedComponents/framework-list/framework-list.component.d.ts +1 -1
  511. package/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.d.ts +1 -1
  512. package/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.d.ts +1 -1
  513. package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +1 -1
  514. package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +1 -1
  515. package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +1 -1
  516. package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +1 -1
  517. package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +1 -1
  518. package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +1 -1
  519. package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +1 -1
  520. package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +10 -4
  521. package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +1 -1
  522. package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
  523. package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +9 -5
  524. package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
  525. package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +1 -1
  526. package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +1 -1
  527. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -1
  528. package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +1 -1
  529. package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +1 -1
  530. package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +1 -1
  531. package/lib/sharedComponents/frequency/frequency.service.d.ts +1 -0
  532. package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +1 -1
  533. package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +1 -1
  534. package/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.d.ts +1 -1
  535. package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +1 -1
  536. package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +1 -1
  537. package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +1 -1
  538. package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +10 -5
  539. package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +1 -1
  540. package/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.d.ts +1 -1
  541. package/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.d.ts +1 -1
  542. package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +1 -1
  543. package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +1 -1
  544. package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +1 -1
  545. package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +1 -1
  546. package/lib/sharedComponents/list-loader/list-loader.component.d.ts +1 -1
  547. package/lib/sharedComponents/no-data/no-data.component.d.ts +1 -1
  548. package/lib/sharedComponents/owner-list/owner-list.component.d.ts +1 -1
  549. package/lib/sharedComponents/policy-access/policy-access.component.d.ts +1 -1
  550. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +1 -1
  551. package/lib/sharedComponents/radio-list/radio-list.component.d.ts +1 -1
  552. package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +1 -1
  553. package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +1 -1
  554. package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +1 -1
  555. package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +1 -1
  556. package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +1 -1
  557. package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +1 -1
  558. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +1 -1
  559. package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +1 -1
  560. package/lib/sharedComponents/table-card-loader/table-card-loader.component.d.ts +1 -1
  561. package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +1 -1
  562. package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +1 -1
  563. package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
  564. package/lib/ui-kit/action-dialog/active/active.component.d.ts +1 -1
  565. package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +1 -1
  566. package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +1 -1
  567. package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +1 -1
  568. package/lib/ui-kit/click-outside/click-outside.directive.d.ts +1 -1
  569. package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
  570. package/lib/ui-kit/dialog/dialog.component.d.ts +6 -4
  571. package/lib/ui-kit/dialog/dialog.service.d.ts +3 -3
  572. package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
  573. package/lib/ui-kit/directive/stop-propagation.directive.d.ts +1 -1
  574. package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +1 -1
  575. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
  576. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  577. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  578. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  579. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  580. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
  581. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  582. package/lib/ui-kit/line-loader/line-loader.component.d.ts +1 -1
  583. package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
  584. package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +1 -1
  585. package/lib/ui-kit/popover/popover-event.directive.d.ts +1 -1
  586. package/lib/ui-kit/popover/popover-longpress.directive.d.ts +1 -1
  587. package/lib/ui-kit/popover/popover.component.d.ts +1 -1
  588. package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
  589. package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +1 -1
  590. package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +1 -1
  591. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
  592. package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +1 -1
  593. package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +1 -1
  594. package/lib/ui-kit/time-picker/time-picker/time-picker.component.d.ts +1 -1
  595. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
  596. package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +1 -1
  597. package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +1 -1
  598. package/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.d.ts +1 -1
  599. package/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.d.ts +1 -1
  600. package/lib/workflow/shared/components/attributes/attributes.component.d.ts +1 -1
  601. package/lib/workflow/shared/components/attributes/date-picker/date-picker.component.d.ts +1 -1
  602. package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +1 -1
  603. package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +1 -1
  604. package/lib/workflow/shared/components/grc-object-list/grc-object-list.component.d.ts +1 -1
  605. package/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.d.ts +1 -1
  606. package/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.d.ts +1 -1
  607. package/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.d.ts +1 -1
  608. package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +1 -1
  609. package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +1 -1
  610. package/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.d.ts +1 -1
  611. package/lib/workflow/shared/components/table-card/table-card.component.d.ts +1 -1
  612. package/lib/workflow/shared/components/text-field/text-field.component.d.ts +1 -1
  613. package/lib/workflow/shared/components/text-field-icon/text-field-icon.component.d.ts +1 -1
  614. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
  615. package/lib/workflow-assessment/workflow-assessment.component.d.ts +1 -1
  616. package/lib/workflow-compliance/workflow-compliance.component.d.ts +1 -1
  617. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -1
  618. package/lib/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  619. package/lib/workflow-policy/workflow-policy.component.d.ts +7 -3
  620. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +1 -1
  621. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +1 -1
  622. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +1 -1
  623. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  624. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +1 -1
  625. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +1 -1
  626. package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.d.ts +1 -1
  627. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +1 -1
  628. package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.d.ts +1 -1
  629. package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +1 -1
  630. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +1 -1
  631. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +1 -1
  632. package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +1 -1
  633. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +1 -1
  634. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +1 -1
  635. package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.d.ts +1 -1
  636. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +1 -1
  637. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +1 -1
  638. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +1 -1
  639. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +1 -1
  640. package/lib/workflow-program/workflow-program.component.d.ts +1 -1
  641. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  642. package/lib/workflow-services/auth.service.d.ts +0 -1
  643. package/lib/workflow-services/log-issue.service.d.ts +1 -0
  644. package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +1 -1
  645. package/package.json +5 -12
@@ -0,0 +1,429 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../workflow-services/responsibility.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../no-data/no-data.component";
8
+ import * as i4 from "../v-loader/loader-inline/loader-inline.component";
9
+ import * as i5 from "../../ui-kit/pagination/pagination/pagination.component";
10
+ import * as i6 from "../floating-bar/floating-bar.component";
11
+ import * as i7 from "./framework-list-table/framework-list-table.component";
12
+ import * as i8 from "./framework-responsibility-table/framework-responsibility-table.component";
13
+ export class FrameworkListComponent {
14
+ constructor(responsibilityService) {
15
+ this.responsibilityService = responsibilityService;
16
+ this.breadCrumb = [];
17
+ this.search = '';
18
+ this.showParent = true;
19
+ this.showChild = false;
20
+ this.parentData = {};
21
+ this.entrustFramework = new EventEmitter();
22
+ this.closeFramework = new EventEmitter();
23
+ this.assignControl = new EventEmitter();
24
+ this.headerText = 'Select From a Framework';
25
+ this.workflowPage = ['FRAMEWORK', 'CATEGORY', 'RESPONSIBILITY'];
26
+ this.subCategoriesList = {
27
+ from: 1,
28
+ to: 0,
29
+ currentPage: 1,
30
+ totalPages: 0,
31
+ totalRecords: 0,
32
+ data: [],
33
+ };
34
+ this.responsibilitiesList = {
35
+ from: 1,
36
+ to: 0,
37
+ currentPage: 1,
38
+ totalPages: 0,
39
+ totalRecords: 0,
40
+ data: [],
41
+ };
42
+ this.searchText = {
43
+ frameWork: '',
44
+ category: '',
45
+ responsibility: '',
46
+ };
47
+ this.selectedValues = {
48
+ framework: {},
49
+ categories: {},
50
+ responsibilities: {}
51
+ };
52
+ this.submissionLoader = false;
53
+ this.currentCategory = {};
54
+ this.policy = {};
55
+ this.loader = false;
56
+ this.unsubscribe = new Subject();
57
+ //program
58
+ this.subList = false;
59
+ this.selectedCategories = [];
60
+ this.frameworkData = {
61
+ data: [],
62
+ from: 0,
63
+ to: 0,
64
+ totalPages: 0,
65
+ totalRecords: 0,
66
+ currentPage: 1,
67
+ };
68
+ this.frameworkCount = {
69
+ regulations: 0,
70
+ standards: 0,
71
+ internalControls: 0,
72
+ others: 0
73
+ };
74
+ this.frameTypeObject = {
75
+ regulations: 1,
76
+ standards: 2,
77
+ internalControls: 3,
78
+ others: 0,
79
+ };
80
+ this.placeholderText = {
81
+ framework: 'Search Frameworks',
82
+ categories: 'Search Categories',
83
+ responsibilities: 'Search Responsibilities'
84
+ };
85
+ this.controlsList = [];
86
+ this.displayConfirmationMessage = false;
87
+ this.activeTab = 'regulations';
88
+ this.currentList = 'framework';
89
+ this.floatingBarDisplayKeys = {
90
+ framework: 'name',
91
+ categories: 'name',
92
+ responsibilities: 'name',
93
+ };
94
+ }
95
+ ngOnChanges(changes) {
96
+ if (this.previousSelectedValues) {
97
+ this.selectedValues = {
98
+ framework: this.previousSelectedValues.framework ?? {},
99
+ categories: this.previousSelectedValues.categories ?? {},
100
+ responsibilities: this.previousSelectedValues.responsibilities ?? {},
101
+ };
102
+ }
103
+ }
104
+ ngOnInit() {
105
+ this.getFrameworksCount();
106
+ this.getFrameworksList();
107
+ }
108
+ expandCategory(category) {
109
+ if (category.category_name) {
110
+ this.breadCrumb = [];
111
+ category.category_name.forEach((categoryItem, index) => {
112
+ let obj;
113
+ if (index == category.category_name.length - 1) {
114
+ obj = {
115
+ itemName: categoryItem,
116
+ itemId: category._id
117
+ };
118
+ }
119
+ else {
120
+ obj = {
121
+ itemName: categoryItem,
122
+ itemId: category.parent_cat_obj_ids[index]
123
+ };
124
+ }
125
+ this.breadCrumb.push(obj);
126
+ });
127
+ }
128
+ }
129
+ entrustFrameworkDetails(report) {
130
+ this.entrustFramework.emit(report);
131
+ }
132
+ close() {
133
+ this.closeFramework.emit();
134
+ }
135
+ getFrameworksCount(data) {
136
+ let params = new HttpParams();
137
+ if (data?.search || this.searchText.frameWork) {
138
+ params = params.append('search', this.searchText.frameWork);
139
+ }
140
+ this.responsibilityService.getFrameWorkCount(params).pipe(takeUntil(this.unsubscribe)).subscribe({
141
+ next: (res) => {
142
+ this.frameworkCount = {
143
+ regulations: res.regulations ?? 0,
144
+ standards: res.standards ?? 0,
145
+ internalControls: res.internalControls ?? 0,
146
+ others: res.others ?? 0
147
+ };
148
+ },
149
+ error: (err) => {
150
+ },
151
+ });
152
+ }
153
+ getFrameworksList(data) {
154
+ this.loader = true;
155
+ let params = new HttpParams();
156
+ params = params.append('type', this.frameTypeObject[this.activeTab]);
157
+ if (data?.search || this.searchText.frameWork) {
158
+ params = params.append('search', this.searchText.frameWork);
159
+ }
160
+ else {
161
+ params = params.append('page', this.frameworkData.currentPage);
162
+ }
163
+ this.responsibilityService.getFrameWorkList(params).pipe(takeUntil(this.unsubscribe)).subscribe({
164
+ next: (res) => {
165
+ this.frameworkData.data = res.data;
166
+ this.frameworkData.from = res.items_from;
167
+ this.frameworkData.to = res.items_to;
168
+ this.frameworkData.totalPages = res.total_pages;
169
+ this.frameworkData.totalRecords = res.total_items;
170
+ this.loader = false;
171
+ },
172
+ error: (err) => {
173
+ this.loader = false;
174
+ },
175
+ });
176
+ }
177
+ getSubCategories(id, data) {
178
+ this.loader = true;
179
+ let params = new HttpParams();
180
+ if (data?.search || this.searchText.category) {
181
+ params = params.append('search', this.searchText.category);
182
+ }
183
+ else {
184
+ params = params.append('page', this.subCategoriesList.currentPage);
185
+ }
186
+ this.responsibilityService.getFrameworkSubCategories(id, params).pipe(takeUntil(this.unsubscribe)).subscribe({
187
+ next: (res) => {
188
+ this.subCategoriesList.from = res.items_from ?? 1;
189
+ this.subCategoriesList.to = res.items_to ?? 0;
190
+ this.subCategoriesList.totalPages = res.total_pages ?? 0;
191
+ this.subCategoriesList.totalRecords = res.total_items ?? 0;
192
+ this.subCategoriesList.data = res.data ?? [];
193
+ this.loader = false;
194
+ },
195
+ error: (err) => {
196
+ this.loader = false;
197
+ },
198
+ });
199
+ }
200
+ changeTab(type) {
201
+ this.activeTab = type;
202
+ this.frameworkData.currentPage = 1;
203
+ this.searchText.frameWork = '';
204
+ this.searchfield.nativeElement.value = '';
205
+ this.getFrameworksList();
206
+ }
207
+ getResponsibilities(id, data) {
208
+ this.loader = true;
209
+ let params = new HttpParams();
210
+ if (data?.search || this.searchText.responsibility) {
211
+ params = params.append('search', this.searchText.responsibility);
212
+ }
213
+ else {
214
+ params = params.append('page', this.responsibilitiesList.currentPage);
215
+ }
216
+ this.responsibilityService.getFrameworkControls(id, params).pipe(takeUntil(this.unsubscribe)).subscribe({
217
+ next: (res) => {
218
+ this.controlsList = res;
219
+ this.responsibilitiesList.from = res.items_from ?? 1;
220
+ this.responsibilitiesList.to = res.items_to ?? 0;
221
+ this.responsibilitiesList.totalPages = res.total_pages ?? 0;
222
+ this.responsibilitiesList.totalRecords = res.total_items ?? 0;
223
+ this.responsibilitiesList.data = res.data ?? res;
224
+ this.loader = false;
225
+ },
226
+ error: (err) => {
227
+ this.loader = false;
228
+ },
229
+ });
230
+ }
231
+ changePage(event, type) {
232
+ switch (type) {
233
+ case 'frameworks':
234
+ this.frameworkData.currentPage = event;
235
+ this.getFrameworksList();
236
+ break;
237
+ case 'categories':
238
+ this.subCategoriesList.currentPage = event;
239
+ this.getSubCategories(this.selectedValues.framework._id);
240
+ break;
241
+ case 'responsibilities':
242
+ this.responsibilitiesList.currentPage = event;
243
+ if (this.selectedValues?.framework?.parent_list_details?.length == 0 && this.selectedValues?.framework?.child_list_details.length == 0 && this.selectedValues?.framework?.totalControls > 0) {
244
+ this.getResponsibilities(this.selectedValues.framework._id);
245
+ }
246
+ else {
247
+ this.getResponsibilities(this.selectedValues.categories._id);
248
+ }
249
+ break;
250
+ }
251
+ }
252
+ searchBy(event, type) {
253
+ this.resetPagination();
254
+ switch (type) {
255
+ case 'framework':
256
+ if (this.searchText.frameWork != event) {
257
+ this.searchText.frameWork = event;
258
+ this.getFrameworksList({ search: true });
259
+ this.getFrameworksCount({ search: true });
260
+ }
261
+ break;
262
+ case 'categories':
263
+ if (this.searchText.category != event) {
264
+ this.searchText.category = event;
265
+ this.getSubCategories(this.selectedValues.framework._id, { search: true });
266
+ }
267
+ break;
268
+ case 'responsibilities':
269
+ if (this.searchText.responsibility != event) {
270
+ this.searchText.responsibility = event;
271
+ if (this.selectedValues?.framework?.parent_list_details?.length == 0 && this.selectedValues?.framework?.child_list_details.length == 0 && this.selectedValues?.framework?.totalControls > 0) {
272
+ this.getResponsibilities(this.selectedValues.framework._id);
273
+ }
274
+ else {
275
+ this.getSubCategories(this.selectedValues.categories._id);
276
+ }
277
+ }
278
+ break;
279
+ }
280
+ }
281
+ selectFramework(data) {
282
+ switch (this.currentList) {
283
+ case 'framework':
284
+ this.selectedValues.framework = data;
285
+ this.selectedValues.categories = {};
286
+ this.selectedValues.responsibilities = {};
287
+ break;
288
+ case 'categories':
289
+ this.selectedValues.categories = data;
290
+ this.selectedValues.responsibilities = {};
291
+ break;
292
+ case 'responsibilities':
293
+ this.selectedValues.responsibilities = data;
294
+ break;
295
+ default:
296
+ break;
297
+ }
298
+ }
299
+ save() {
300
+ this.resetPagination();
301
+ switch (this.currentList) {
302
+ case 'framework':
303
+ if (this.workflowPage?.length === 1 && this.workflowPage.includes('FRAMEWORK')) {
304
+ const frameworkDetails = this.selectedValues.framework;
305
+ this.assignControl.emit({ name: frameworkDetails?.name, _id: frameworkDetails?._id, type: frameworkDetails?.framework_type, id: frameworkDetails?.id, description: frameworkDetails?.description ?? '' });
306
+ }
307
+ else {
308
+ if (this.selectedValues?.framework?.parent_list_details?.length == 0 && this.selectedValues?.framework?.child_list_details.length == 0 && this.selectedValues?.framework?.totalControls > 0) {
309
+ this.currentList = 'responsibilities';
310
+ this.getResponsibilities(this.selectedValues.framework._id);
311
+ }
312
+ else {
313
+ this.currentList = 'categories';
314
+ this.getSubCategories(this.selectedValues.framework._id);
315
+ }
316
+ }
317
+ break;
318
+ case 'categories':
319
+ this.currentList = 'responsibilities';
320
+ this.getResponsibilities(this.selectedValues.categories._id);
321
+ break;
322
+ case 'responsibilities':
323
+ this.assignSelectedControl(this.selectedValues.responsibilities);
324
+ break;
325
+ default:
326
+ break;
327
+ }
328
+ }
329
+ goBack() {
330
+ this.resetPagination();
331
+ switch (this.currentList) {
332
+ case 'framework':
333
+ this.closeFramework.emit();
334
+ break;
335
+ case 'categories':
336
+ this.currentList = 'framework';
337
+ break;
338
+ case 'responsibilities':
339
+ if (this.selectedValues?.framework?.parent_list_details?.length == 0 && this.selectedValues?.framework?.child_list_details.length == 0 && this.selectedValues?.framework?.totalControls > 0) {
340
+ this.currentList = 'framework';
341
+ }
342
+ else {
343
+ this.currentList = 'categories';
344
+ }
345
+ break;
346
+ default:
347
+ break;
348
+ }
349
+ }
350
+ resetPagination() {
351
+ this.frameworkData.currentPage = 1;
352
+ this.subCategoriesList.currentPage = 1;
353
+ this.responsibilitiesList.currentPage = 1;
354
+ }
355
+ remove() {
356
+ switch (this.currentList) {
357
+ case 'framework':
358
+ this.selectedValues.framework = {};
359
+ this.selectedValues.categories = {};
360
+ this.selectedValues.responsibilities = {};
361
+ break;
362
+ case 'categories':
363
+ this.selectedValues.categories = {};
364
+ this.selectedValues.responsibilities = {};
365
+ break;
366
+ case 'responsibilities':
367
+ this.selectedValues.responsibilities = {};
368
+ break;
369
+ }
370
+ }
371
+ saveChanges(type) {
372
+ switch (type) {
373
+ case 'programs':
374
+ this.currentList = 'categories';
375
+ this.selectedValues.categories = [];
376
+ this.selectedValues.responsibilities = [];
377
+ this.getSubCategories();
378
+ break;
379
+ case 'categories':
380
+ this.currentList = 'responsibilities';
381
+ this.selectedValues.responsibilities = [];
382
+ this.getResponsibilities();
383
+ break;
384
+ case 'responsibilities':
385
+ // this.submitprogramIntegration();
386
+ break;
387
+ }
388
+ }
389
+ assignSelectedControl(data) {
390
+ let selectedFrameworkData = this.selectedValues;
391
+ this.assignControl.emit({ data, selectedFrameworkData });
392
+ }
393
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrameworkListComponent, deps: [{ token: i1.ResponsibilityService }], target: i0.ɵɵFactoryTarget.Component }); }
394
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrameworkListComponent, selector: "app-framework-list", inputs: { previousSelectedValues: "previousSelectedValues", headerText: "headerText", workflowPage: "workflowPage", policy: "policy", frameWorkList: "frameWorkList", selectedFrameWork: "selectedFrameWork", selectedCategories: "selectedCategories" }, outputs: { entrustFramework: "entrustFramework", closeFramework: "closeFramework", assignControl: "assignControl" }, viewQueries: [{ propertyName: "tableComponent", first: true, predicate: ["parentTable"], descendants: true }, { propertyName: "searchfield", first: true, predicate: ["searchField"], descendants: true }, { propertyName: "searchCategory", first: true, predicate: ["searchCategory"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <p>framework-list works!</p> -->\r\n<div class=\"framework-list\">\r\n <div class=\"framework-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div *ngIf=\"currentList=='framework'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"> {{headerText}}</div>\r\n <div *ngIf=\"currentList=='categories'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"> {{headerText}} >\r\n {{selectedValues?.framework?.name}}</div>\r\n\r\n <div *ngIf=\"currentList=='responsibilities'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <i class=\"icons\" (click)=\"goBack()\">&#xe91d;</i> {{selectedValues?.framework?.name}}</div>\r\n\r\n <!-- <div *ngIf=\"breadCrumb.length>0\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <i class=\"icons\" *ngIf=\"breadCrumb?.length > 0\" (click)=\"getCategoryDetailsById()\">&#xe91d;</i>\r\n <ng-container *ngFor=\"let item of breadCrumb; let i = index\">\r\n <span class=\"arrow\">{{(i>0)?'>':''}}</span>\r\n <span\r\n [class.link]=\"tableComponent.currentEntity || (!(tableComponent.currentEntity) && i !== breadCrumb?.length -1)\"\r\n (click)=\"getCategoryDetailsById(item.itemId)\" [appTooltip]=\"item.itemName\" placement=\"bottom\"\r\n delay=\"0\">{{item.itemName}}\r\n </span>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"tableComponent.currentEntity\"> <span class=\"arrow\">></span>\r\n {{breadCrumb[breadCrumb?.length - 1].itemName}}\r\n <span>&nbsp;for {{tableComponent.currentEntity}}</span>\r\n </ng-container>\r\n </div> -->\r\n </div>\r\n <div class=\"framework-list-body\">\r\n <div class=\"filter-card-row\" *ngIf=\"currentList=='framework'\">\r\n <!--this section will not appear on child part -->\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"changeTab('regulations')\">\r\n <div class=\"left\">\r\n <label>Regulations</label>\r\n </div>\r\n\r\n <span class=\"counter\">{{frameworkCount.regulations}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"changeTab('standards')\">\r\n <div class=\"left\">\r\n <label>Standards</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.standards}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"changeTab('internalControls')\">\r\n <div class=\"left\">\r\n <label>Internal Controls</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.internalControls}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'others'\" (click)=\"changeTab('others')\">\r\n <div class=\"left\">\r\n <label>Others</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.others}}</span>\r\n </div>\r\n </div>\r\n <div class=\"framework-list-search\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" #searchField [placeholder]=\"placeholderText[currentList]\"\r\n (keyup.enter)=\"searchBy($event.target.value,currentList)\" />\r\n </div>\r\n <!-- <app-workflow-pagination></app-workflow-pagination> -->\r\n <app-pagination *ngIf=\"currentList=='framework' && frameworkData.totalPages > 1\" [start]=\"frameworkData.from\"\r\n [end]=\"frameworkData.to\" [total]=\"frameworkData.totalRecords\" [pageCount]=\"frameworkData.totalPages\"\r\n [currentPage]=\"frameworkData.currentPage\" (selectedPage)=\"changePage($event,'frameworks')\"></app-pagination>\r\n <app-pagination *ngIf=\"currentList=='categories' && subCategoriesList.totalPages > 1\"\r\n [start]=\"subCategoriesList.from\" [end]=\"subCategoriesList.to\" [total]=\"subCategoriesList.totalRecords\"\r\n [pageCount]=\"subCategoriesList.totalPages\" [currentPage]=\"subCategoriesList.currentPage\"\r\n (selectedPage)=\"changePage($event,'categories')\"></app-pagination>\r\n <app-pagination *ngIf=\"currentList=='responsibilities' && responsibilitiesList.totalPages > 1\"\r\n [start]=\"responsibilitiesList.from\" [end]=\"responsibilitiesList.to\"\r\n [total]=\"responsibilitiesList.totalRecords\" [pageCount]=\"responsibilitiesList.totalPages\"\r\n [currentPage]=\"responsibilitiesList.currentPage\" (selectedPage)=\"changePage($event,'responsibilities')\">\r\n </app-pagination>\r\n <!-- For parent -->\r\n <!-- <div class=\"framework-list-pagination\">\r\n <app-workflow-pagination></app-workflow-pagination>\r\n </div> -->\r\n <!-- [class.no-card]=\"breadCrumb.length>0\" -->\r\n <div class=\"framework-list-table vx-mb-4\" [class.no-card]=\"currentList=='categories' || currentList=='responsibilities'\">\r\n <app-framework-list-table *ngIf=\"currentList=='framework'\" [listLoader]=\"loader\"\r\n [frameworkType]=\"'framework'\" (selectedFramework)=\"selectFramework($event)\"\r\n [currentFramework]=\"selectedValues[currentList]\" [frameworksList]=\"frameworkData\">\r\n </app-framework-list-table>\r\n <app-framework-list-table *ngIf=\"currentList=='categories'\" [listLoader]=\"loader\"\r\n [frameworksList]=\"subCategoriesList\" (selectedFramework)=\"selectFramework($event)\"\r\n [currentFramework]=\"selectedValues[currentList]\" [frameworkType]=\"'subFramework'\">\r\n </app-framework-list-table>\r\n <app-framework-responsibility-table *ngIf=\"currentList=='responsibilities'\" [listLoader]=\"loader\"\r\n [currentSelectedControl]=\"selectedValues[currentList]\" [controlsList]=\"responsibilitiesList\"\r\n (selectedControl)=\"selectFramework($event)\" (assignControl)=\"assignSelectedControl($event)\">\r\n </app-framework-responsibility-table>\r\n <app-no-data *ngIf=\"frameworkData?.data?.length==0 && currentList=='framework' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <app-no-data *ngIf=\"subCategoriesList?.data?.length==0 && currentList=='categories' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <app-no-data *ngIf=\"responsibilitiesList?.data?.length==0 && currentList=='responsibilities' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <!-- old table list -->\r\n <!-- <app-parent-table #parentTable *ngIf=\"showParent\" [search]=\"search\"\r\n (expandCategory)=\"expandCategory($event)\" [tableList]=\"categoryList[activeTab].list\"\r\n (entrustFramework)=\"entrustFrameworkDetails($event)\">\r\n </app-parent-table> -->\r\n </div>\r\n\r\n <app-floating-bar [selectedData]=\"(selectedValues[currentList]?.name)?[selectedValues[currentList]]:[]\" [displayElementKey]=\"floatingBarDisplayKeys[currentList]\" [isDisabled]=\"!selectedValues[currentList]?.name\" (closeEvent)=\"save()\" (closeList)=\"goBack()\" (deleteEvent)=\"remove()\"></app-floating-bar>\r\n </div>\r\n <!-- [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\"\r\n (closeList)=\"close()\" (deleteEvent)=\"deleteEvent($event)\"\r\n [isDisabled]=\"(groupsList?.length + usersList?.length) === 0 || selectedUsers?.length === 0\" -->\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .framework-list{position:fixed;inset:0 500px 0 0}::ng-deep .framework-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .framework-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .framework-list-search{position:relative}::ng-deep .framework-list-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .framework-list-search input:focus{border-color:#1e5dd3}::ng-deep .framework-list-search i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .framework-list app-workflow-pagination .pagination-sec{padding-top:0!important}::ng-deep .framework-list-body{padding:32px;height:calc(100vh - 94px)}::ng-deep .framework-list-body .filter-card{display:flex;align-items:center;box-shadow:0 0 2px #00000029;border-radius:2px;height:55px;padding:12px;width:100%;justify-content:space-between;cursor:pointer}::ng-deep .framework-list-body .filter-card.active{box-shadow:0 3px 12px #1e5dd326}::ng-deep .framework-list-body .filter-card.active .counter{background:#f1f1f1;color:#161b2f}::ng-deep .framework-list-body .filter-card label{font-weight:600;text-transform:uppercase;color:#747576;line-height:16px;margin-left:0;font-size:11px;width:100%;pointer-events:none}::ng-deep .framework-list-body .filter-card p{line-height:16px;font-size:10px;color:#161b2f;font-weight:600;margin:0}::ng-deep .framework-list-body .filter-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:600;justify-content:center;align-items:center;padding:0 5px;line-height:32px}::ng-deep .framework-list-body .filter-card .left{display:flex;flex-wrap:wrap}::ng-deep .framework-list-body .filter-card+.filter-card{margin-left:4px}::ng-deep .framework-list-body .filter-card-row{display:flex;padding-bottom:8px}::ng-deep .framework-list-table{position:relative;height:calc(100% - 120px);overflow:hidden;overflow-y:auto}::ng-deep .framework-list-table app-parent-table{height:calc(100vh - 260px);overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;display:block;padding-right:8px;margin-right:-8px}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .framework-list-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .framework-list-table::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .framework-list-table::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .framework-list-table.no-card{height:calc(100vh - 252px)}::ng-deep .framework-list-table:before{background:#fff;position:absolute;top:0;right:-8px;height:32px;width:8px;content:\"\"}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i4.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i5.PaginationComponent, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i6.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i7.FrameworkListTableComponent, selector: "app-framework-list-table", inputs: ["frameworksList", "frameworkType", "currentFramework", "listLoader"], outputs: ["selectedFramework"] }, { kind: "component", type: i8.FrameworkResponsibilityTableComponent, selector: "app-framework-responsibility-table", inputs: ["controlsList", "currentSelectedControl", "listLoader"], outputs: ["selectedControl", "assignControl"] }] }); }
395
+ }
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrameworkListComponent, decorators: [{
397
+ type: Component,
398
+ args: [{ selector: 'app-framework-list', template: "<!-- <p>framework-list works!</p> -->\r\n<div class=\"framework-list\">\r\n <div class=\"framework-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\">\r\n <div *ngIf=\"currentList=='framework'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"> {{headerText}}</div>\r\n <div *ngIf=\"currentList=='categories'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\"> {{headerText}} >\r\n {{selectedValues?.framework?.name}}</div>\r\n\r\n <div *ngIf=\"currentList=='responsibilities'\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <i class=\"icons\" (click)=\"goBack()\">&#xe91d;</i> {{selectedValues?.framework?.name}}</div>\r\n\r\n <!-- <div *ngIf=\"breadCrumb.length>0\" class=\"framework-list-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n <i class=\"icons\" *ngIf=\"breadCrumb?.length > 0\" (click)=\"getCategoryDetailsById()\">&#xe91d;</i>\r\n <ng-container *ngFor=\"let item of breadCrumb; let i = index\">\r\n <span class=\"arrow\">{{(i>0)?'>':''}}</span>\r\n <span\r\n [class.link]=\"tableComponent.currentEntity || (!(tableComponent.currentEntity) && i !== breadCrumb?.length -1)\"\r\n (click)=\"getCategoryDetailsById(item.itemId)\" [appTooltip]=\"item.itemName\" placement=\"bottom\"\r\n delay=\"0\">{{item.itemName}}\r\n </span>\r\n\r\n </ng-container>\r\n <ng-container *ngIf=\"tableComponent.currentEntity\"> <span class=\"arrow\">></span>\r\n {{breadCrumb[breadCrumb?.length - 1].itemName}}\r\n <span>&nbsp;for {{tableComponent.currentEntity}}</span>\r\n </ng-container>\r\n </div> -->\r\n </div>\r\n <div class=\"framework-list-body\">\r\n <div class=\"filter-card-row\" *ngIf=\"currentList=='framework'\">\r\n <!--this section will not appear on child part -->\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'regulations'\" (click)=\"changeTab('regulations')\">\r\n <div class=\"left\">\r\n <label>Regulations</label>\r\n </div>\r\n\r\n <span class=\"counter\">{{frameworkCount.regulations}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'standards'\" (click)=\"changeTab('standards')\">\r\n <div class=\"left\">\r\n <label>Standards</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.standards}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'internalControls'\"\r\n (click)=\"changeTab('internalControls')\">\r\n <div class=\"left\">\r\n <label>Internal Controls</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.internalControls}}</span>\r\n </div>\r\n <div class=\"filter-card\" [class.active]=\"activeTab == 'others'\" (click)=\"changeTab('others')\">\r\n <div class=\"left\">\r\n <label>Others</label>\r\n </div>\r\n <span class=\"counter\">{{frameworkCount.others}}</span>\r\n </div>\r\n </div>\r\n <div class=\"framework-list-search\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" #searchField [placeholder]=\"placeholderText[currentList]\"\r\n (keyup.enter)=\"searchBy($event.target.value,currentList)\" />\r\n </div>\r\n <!-- <app-workflow-pagination></app-workflow-pagination> -->\r\n <app-pagination *ngIf=\"currentList=='framework' && frameworkData.totalPages > 1\" [start]=\"frameworkData.from\"\r\n [end]=\"frameworkData.to\" [total]=\"frameworkData.totalRecords\" [pageCount]=\"frameworkData.totalPages\"\r\n [currentPage]=\"frameworkData.currentPage\" (selectedPage)=\"changePage($event,'frameworks')\"></app-pagination>\r\n <app-pagination *ngIf=\"currentList=='categories' && subCategoriesList.totalPages > 1\"\r\n [start]=\"subCategoriesList.from\" [end]=\"subCategoriesList.to\" [total]=\"subCategoriesList.totalRecords\"\r\n [pageCount]=\"subCategoriesList.totalPages\" [currentPage]=\"subCategoriesList.currentPage\"\r\n (selectedPage)=\"changePage($event,'categories')\"></app-pagination>\r\n <app-pagination *ngIf=\"currentList=='responsibilities' && responsibilitiesList.totalPages > 1\"\r\n [start]=\"responsibilitiesList.from\" [end]=\"responsibilitiesList.to\"\r\n [total]=\"responsibilitiesList.totalRecords\" [pageCount]=\"responsibilitiesList.totalPages\"\r\n [currentPage]=\"responsibilitiesList.currentPage\" (selectedPage)=\"changePage($event,'responsibilities')\">\r\n </app-pagination>\r\n <!-- For parent -->\r\n <!-- <div class=\"framework-list-pagination\">\r\n <app-workflow-pagination></app-workflow-pagination>\r\n </div> -->\r\n <!-- [class.no-card]=\"breadCrumb.length>0\" -->\r\n <div class=\"framework-list-table vx-mb-4\" [class.no-card]=\"currentList=='categories' || currentList=='responsibilities'\">\r\n <app-framework-list-table *ngIf=\"currentList=='framework'\" [listLoader]=\"loader\"\r\n [frameworkType]=\"'framework'\" (selectedFramework)=\"selectFramework($event)\"\r\n [currentFramework]=\"selectedValues[currentList]\" [frameworksList]=\"frameworkData\">\r\n </app-framework-list-table>\r\n <app-framework-list-table *ngIf=\"currentList=='categories'\" [listLoader]=\"loader\"\r\n [frameworksList]=\"subCategoriesList\" (selectedFramework)=\"selectFramework($event)\"\r\n [currentFramework]=\"selectedValues[currentList]\" [frameworkType]=\"'subFramework'\">\r\n </app-framework-list-table>\r\n <app-framework-responsibility-table *ngIf=\"currentList=='responsibilities'\" [listLoader]=\"loader\"\r\n [currentSelectedControl]=\"selectedValues[currentList]\" [controlsList]=\"responsibilitiesList\"\r\n (selectedControl)=\"selectFramework($event)\" (assignControl)=\"assignSelectedControl($event)\">\r\n </app-framework-responsibility-table>\r\n <app-no-data *ngIf=\"frameworkData?.data?.length==0 && currentList=='framework' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <app-no-data *ngIf=\"subCategoriesList?.data?.length==0 && currentList=='categories' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <app-no-data *ngIf=\"responsibilitiesList?.data?.length==0 && currentList=='responsibilities' && !loader\"\r\n [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\"\r\n [noDataText]=\"'No data to display'\"></app-no-data>\r\n <!-- old table list -->\r\n <!-- <app-parent-table #parentTable *ngIf=\"showParent\" [search]=\"search\"\r\n (expandCategory)=\"expandCategory($event)\" [tableList]=\"categoryList[activeTab].list\"\r\n (entrustFramework)=\"entrustFrameworkDetails($event)\">\r\n </app-parent-table> -->\r\n </div>\r\n\r\n <app-floating-bar [selectedData]=\"(selectedValues[currentList]?.name)?[selectedValues[currentList]]:[]\" [displayElementKey]=\"floatingBarDisplayKeys[currentList]\" [isDisabled]=\"!selectedValues[currentList]?.name\" (closeEvent)=\"save()\" (closeList)=\"goBack()\" (deleteEvent)=\"remove()\"></app-floating-bar>\r\n </div>\r\n <!-- [singularText]=\"'User selected'\" [pluralText]=\"'Users selected'\" (closeEvent)=\"save(selectedIds)\"\r\n (closeList)=\"close()\" (deleteEvent)=\"deleteEvent($event)\"\r\n [isDisabled]=\"(groupsList?.length + usersList?.length) === 0 || selectedUsers?.length === 0\" -->\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .framework-list{position:fixed;inset:0 500px 0 0}::ng-deep .framework-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .framework-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .framework-list-search{position:relative}::ng-deep .framework-list-search input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .framework-list-search input:focus{border-color:#1e5dd3}::ng-deep .framework-list-search i{position:absolute;left:1rem;font-size:12px;font-weight:400;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .framework-list app-workflow-pagination .pagination-sec{padding-top:0!important}::ng-deep .framework-list-body{padding:32px;height:calc(100vh - 94px)}::ng-deep .framework-list-body .filter-card{display:flex;align-items:center;box-shadow:0 0 2px #00000029;border-radius:2px;height:55px;padding:12px;width:100%;justify-content:space-between;cursor:pointer}::ng-deep .framework-list-body .filter-card.active{box-shadow:0 3px 12px #1e5dd326}::ng-deep .framework-list-body .filter-card.active .counter{background:#f1f1f1;color:#161b2f}::ng-deep .framework-list-body .filter-card label{font-weight:600;text-transform:uppercase;color:#747576;line-height:16px;margin-left:0;font-size:11px;width:100%;pointer-events:none}::ng-deep .framework-list-body .filter-card p{line-height:16px;font-size:10px;color:#161b2f;font-weight:600;margin:0}::ng-deep .framework-list-body .filter-card span.counter{display:flex;height:32px;min-width:32px;border-radius:2px;background:#042e7d;color:#fff;font-size:11px;font-weight:600;justify-content:center;align-items:center;padding:0 5px;line-height:32px}::ng-deep .framework-list-body .filter-card .left{display:flex;flex-wrap:wrap}::ng-deep .framework-list-body .filter-card+.filter-card{margin-left:4px}::ng-deep .framework-list-body .filter-card-row{display:flex;padding-bottom:8px}::ng-deep .framework-list-table{position:relative;height:calc(100% - 120px);overflow:hidden;overflow-y:auto}::ng-deep .framework-list-table app-parent-table{height:calc(100vh - 260px);overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;display:block;padding-right:8px;margin-right:-8px}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .framework-list-table app-parent-table::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .framework-list-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .framework-list-table::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .framework-list-table::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .framework-list-table.no-card{height:calc(100vh - 252px)}::ng-deep .framework-list-table:before{background:#fff;position:absolute;top:0;right:-8px;height:32px;width:8px;content:\"\"}\n"] }]
399
+ }], ctorParameters: function () { return [{ type: i1.ResponsibilityService }]; }, propDecorators: { tableComponent: [{
400
+ type: ViewChild,
401
+ args: ['parentTable']
402
+ }], entrustFramework: [{
403
+ type: Output
404
+ }], closeFramework: [{
405
+ type: Output
406
+ }], assignControl: [{
407
+ type: Output
408
+ }], previousSelectedValues: [{
409
+ type: Input
410
+ }], headerText: [{
411
+ type: Input
412
+ }], workflowPage: [{
413
+ type: Input
414
+ }], policy: [{
415
+ type: Input
416
+ }], frameWorkList: [{
417
+ type: Input
418
+ }], selectedFrameWork: [{
419
+ type: Input
420
+ }], selectedCategories: [{
421
+ type: Input
422
+ }], searchfield: [{
423
+ type: ViewChild,
424
+ args: ['searchField']
425
+ }], searchCategory: [{
426
+ type: ViewChild,
427
+ args: ['searchCategory']
428
+ }] } });
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmFtZXdvcmstbGlzdC9mcmFtZXdvcmstbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2ZyYW1ld29yay1saXN0L2ZyYW1ld29yay1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBVTFDLE1BQU0sT0FBTyxzQkFBc0I7SUFxR2pDLFlBQW9CLHFCQUE0QztRQUE1QywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBcEdoRSxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ3ZCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZUFBVSxHQUFXLEVBQUUsQ0FBQTtRQUViLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVwQyxlQUFVLEdBQVcseUJBQXlCLENBQUM7UUFDL0MsaUJBQVksR0FBa0IsQ0FBQyxXQUFXLEVBQUUsVUFB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ZCxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBa0NHLE1BQU07c0JBQWQsS0FBSztnQkFTRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ29CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDSyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZXNwb25zaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9yZXNwb25zaWJpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VsZWN0ZWRJZHMsIFNlbGVjdGVkVmFsdWVzIH0gZnJvbSAnLi9mcmFtZXdvcmstaW50ZWdyYXRpb24taW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFBhcmVudFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9wYXJlbnQtdGFibGUvcGFyZW50LXRhYmxlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mcmFtZXdvcmstbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyYW1ld29yay1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mcmFtZXdvcmstbGlzdC5jb21wb25lbnQubGVzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGcmFtZXdvcmtMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIGJyZWFkQ3J1bWI6IGFueVtdID0gW107XHJcbiAgc2VhcmNoID0gJyc7XHJcbiAgc2hvd1BhcmVudCA9IHRydWU7XHJcbiAgc2hvd0NoaWxkID0gZmFsc2U7XHJcbiAgcGFyZW50RGF0YTogb2JqZWN0ID0ge31cclxuICBAVmlld0NoaWxkKCdwYXJlbnRUYWJsZScpIHRhYmxlQ29tcG9uZW50ITogUGFyZW50VGFibGVDb21wb25lbnQ7XHJcbiAgQE91dHB1dCgpIGVudHJ1c3RGcmFtZXdvcmsgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlRnJhbWV3b3JrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhc3NpZ25Db250cm9sID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMhOiBhbnk7XHJcbiAgQElucHV0KCkgaGVhZGVyVGV4dDogc3RyaW5nID0gJ1NlbGVjdCBGcm9tIGEgRnJhbWV3b3JrJztcclxuICBASW5wdXQoKSB3b3JrZmxvd1BhZ2U6IEFycmF5PHN0cmluZz4gPSBbJ0ZSQU1FV09SSycsICdDQVRFR09SWScsICdSRVNQT05TSUJJTElUWSddO1xyXG4gIHN1YkNhdGVnb3JpZXNMaXN0ID0ge1xyXG4gICAgZnJvbTogMSxcclxuICAgIHRvOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDEsXHJcbiAgICB0b3RhbFBhZ2VzOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgZGF0YTogW10sXHJcbiAgfTtcclxuICByZXNwb25zaWJpbGl0aWVzTGlzdCA9IHtcclxuICAgIGZyb206IDEsXHJcbiAgICB0bzogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgdG90YWxQYWdlczogMCxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICAgIGRhdGE6IFtdLFxyXG4gIH07XHJcblxyXG4gIHNlYXJjaFRleHQgPSB7XHJcbiAgICBmcmFtZVdvcms6ICcnLFxyXG4gICAgY2F0ZWdvcnk6ICcnLFxyXG4gICAgcmVzcG9uc2liaWxpdHk6ICcnLFxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRWYWx1ZXM6IFNlbGVjdGVkVmFsdWVzID0ge1xyXG4gICAgZnJhbWV3b3JrOiB7fSxcclxuICAgIGNhdGVnb3JpZXM6IHt9LFxyXG4gICAgcmVzcG9uc2liaWxpdGllczoge31cclxuICB9XHJcblxyXG5cclxuICBzdWJtaXNzaW9uTG9hZGVyID0gZmFsc2U7XHJcbiAgY3VycmVudENhdGVnb3J5OiBhbnkgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgcG9saWN5OiBhbnkgPSB7fVxyXG4gIC8vIEBPdXRwdXQoKSBjaGFuZ2VUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGN1cnJlbnRCdXNpbmVzc0N5Y2xlITogYW55O1xyXG4gIGxvYWRlciA9IGZhbHNlO1xyXG4gIHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLy9wcm9ncmFtXHJcbiAgc3ViTGlzdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZyYW1lV29ya0xpc3Q6IGFueTtcclxuICAvLyBASW5wdXQoKSBhbGxQcm9ncmFtczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZEZyYW1lV29yayE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3JpZXM6IGFueVtdID0gW107XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoRmllbGQnKSBzZWFyY2hmaWVsZCE6IGFueTtcclxuICBAVmlld0NoaWxkKCdzZWFyY2hDYXRlZ29yeScpIHNlYXJjaENhdGVnb3J5ITogYW55O1xyXG5cclxuICBmcmFtZXdvcmtEYXRhID0ge1xyXG4gICAgZGF0YTogW10sXHJcbiAgICBmcm9tOiAwLFxyXG4gICAgdG86IDAsXHJcbiAgICB0b3RhbFBhZ2VzOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDEsXHJcblxyXG4gIH1cclxuICBmcmFtZXdvcmtDb3VudCA9IHtcclxuICAgIHJlZ3VsYXRpb25zOiAwLFxyXG4gICAgc3RhbmRhcmRzOiAwLFxyXG4gICAgaW50ZXJuYWxDb250cm9sczogMCxcclxuICAgIG90aGVyczogMFxyXG4gIH1cclxuICBmcmFtZVR5cGVPYmplY3QgPSB7XHJcbiAgICByZWd1bGF0aW9uczogMSxcclxuICAgIHN0YW5kYXJkczogMixcclxuICAgIGludGVybmFsQ29udHJvbHM6IDMsXHJcbiAgICBvdGhlcnM6IDAsXHJcbiAgfVxyXG4gIHBsYWNlaG9sZGVyVGV4dCA9IHtcclxuICAgIGZyYW1ld29yazogJ1NlYXJjaCBGcmFtZXdvcmtzJyxcclxuICAgIGNhdGVnb3JpZXM6ICdTZWFyY2ggQ2F0ZWdvcmllcycsXHJcbiAgICByZXNwb25zaWJpbGl0aWVzOiAnU2VhcmNoIFJlc3BvbnNpYmlsaXRpZXMnXHJcbiAgfVxyXG4gIGNvbnRyb2xzTGlzdDogYW55W10gPSBbXVxyXG4gIGRpc3BsYXlDb25maXJtYXRpb25NZXNzYWdlID0gZmFsc2U7XHJcblxyXG4gIGFjdGl2ZVRhYjogJ3JlZ3VsYXRpb25zJyB8ICdzdGFuZGFyZHMnIHwgJ2ludGVybmFsQ29udHJvbHMnIHwgJ290aGVycycgPSAncmVndWxhdGlvbnMnXHJcblxyXG4gIGN1cnJlbnRMaXN0OiAnZnJhbWV3b3JrJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJyA9ICdmcmFtZXdvcmsnO1xyXG4gIGZsb2F0aW5nQmFyRGlzcGxheUtleXMgPSB7XHJcbiAgICBmcmFtZXdvcms6ICduYW1lJyxcclxuICAgIGNhdGVnb3JpZXM6ICduYW1lJyxcclxuICAgIHJlc3BvbnNpYmlsaXRpZXM6ICduYW1lJyxcclxuICB9XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3BvbnNpYmlsaXR5U2VydmljZTogUmVzcG9uc2liaWxpdHlTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJldmlvdXNTZWxlY3RlZFZhbHVlcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0ge1xyXG4gICAgICAgIGZyYW1ld29yazogdGhpcy5wcmV2aW91c1NlbGVjdGVkVmFsdWVzLmZyYW1ld29yayA/PyB7fSxcclxuICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA/PyB7fSxcclxuICAgICAgICByZXNwb25zaWJpbGl0aWVzOiB0aGlzLnByZXZpb3VzU2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA/PyB7fSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0NvdW50KCk7XHJcbiAgICB0aGlzLmdldEZyYW1ld29ya3NMaXN0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZXhwYW5kQ2F0ZWdvcnkoY2F0ZWdvcnk6IGFueSkge1xyXG4gICAgaWYgKGNhdGVnb3J5LmNhdGVnb3J5X25hbWUpIHtcclxuICAgICAgdGhpcy5icmVhZENydW1iID0gW107XHJcbiAgICAgIGNhdGVnb3J5LmNhdGVnb3J5X25hbWUuZm9yRWFjaCgoY2F0ZWdvcnlJdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgb2JqO1xyXG4gICAgICAgIGlmIChpbmRleCA9PSBjYXRlZ29yeS5jYXRlZ29yeV9uYW1lLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgaXRlbU5hbWU6IGNhdGVnb3J5SXRlbSxcclxuICAgICAgICAgICAgaXRlbUlkOiBjYXRlZ29yeS5faWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBpdGVtTmFtZTogY2F0ZWdvcnlJdGVtLFxyXG4gICAgICAgICAgICBpdGVtSWQ6IGNhdGVnb3J5LnBhcmVudF9jYXRfb2JqX2lkc1tpbmRleF1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5icmVhZENydW1iLnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZW50cnVzdEZyYW1ld29ya0RldGFpbHMocmVwb3J0OiBhbnkpIHtcclxuICAgIHRoaXMuZW50cnVzdEZyYW1ld29yay5lbWl0KHJlcG9ydCk7XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jbG9zZUZyYW1ld29yay5lbWl0KCk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0RnJhbWV3b3Jrc0NvdW50KGRhdGE/OiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgaWYgKGRhdGE/LnNlYXJjaCB8fCB0aGlzLnNlYXJjaFRleHQuZnJhbWVXb3JrKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NlYXJjaCcsIHRoaXMuc2VhcmNoVGV4dC5mcmFtZVdvcmspO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZ2V0RnJhbWVXb3JrQ291bnQocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrQ291bnQgPSB7XHJcbiAgICAgICAgICByZWd1bGF0aW9uczogcmVzLnJlZ3VsYXRpb25zID8/IDAsXHJcbiAgICAgICAgICBzdGFuZGFyZHM6IHJlcy5zdGFuZGFyZHMgPz8gMCxcclxuICAgICAgICAgIGludGVybmFsQ29udHJvbHM6IHJlcy5pbnRlcm5hbENvbnRyb2xzID8/IDAsXHJcbiAgICAgICAgICBvdGhlcnM6IHJlcy5vdGhlcnMgPz8gMFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZyYW1ld29ya3NMaXN0KGRhdGE/OiBhbnkpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgndHlwZScsIHRoaXMuZnJhbWVUeXBlT2JqZWN0W3RoaXMuYWN0aXZlVGFiXSk7XHJcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5mcmFtZVdvcmspIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoJywgdGhpcy5zZWFyY2hUZXh0LmZyYW1lV29yayk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlJywgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlLmdldEZyYW1lV29ya0xpc3QocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5mcmFtZXdvcmtEYXRhLmRhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEuZnJvbSA9IHJlcy5pdGVtc19mcm9tO1xyXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrRGF0YS50byA9IHJlcy5pdGVtc190bztcclxuICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcztcclxuICAgICAgICB0aGlzLmZyYW1ld29ya0RhdGEudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWJDYXRlZ29yaWVzKGlkPzogYW55LCBkYXRhPzogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgIGlmIChkYXRhPy5zZWFyY2ggfHwgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5KSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NlYXJjaCcsIHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYWdlJywgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZS5nZXRGcmFtZXdvcmtTdWJDYXRlZ29yaWVzKGlkLCBwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LmZyb20gPSByZXMuaXRlbXNfZnJvbSA/PyAxO1xyXG4gICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QudG8gPSByZXMuaXRlbXNfdG8gPz8gMDtcclxuICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXMgPSByZXMudG90YWxfcGFnZXMgPz8gMDtcclxuICAgICAgICB0aGlzLnN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUmVjb3JkcyA9IHJlcy50b3RhbF9pdGVtcyA/PyAwO1xyXG4gICAgICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuZGF0YSA9IHJlcy5kYXRhID8/IFtdO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoYW5nZVRhYih0eXBlOiAncmVndWxhdGlvbnMnIHwgJ3N0YW5kYXJkcycgfCAnaW50ZXJuYWxDb250cm9scycgfCAnb3RoZXJzJykge1xyXG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0eXBlO1xyXG4gICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMuc2VhcmNoVGV4dC5mcmFtZVdvcmsgPSAnJztcclxuICAgIHRoaXMuc2VhcmNoZmllbGQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5nZXRGcmFtZXdvcmtzTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdGllcyhpZD86IGFueSwgZGF0YT86IGFueSkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICBpZiAoZGF0YT8uc2VhcmNoIHx8IHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCB0aGlzLnNlYXJjaFRleHQucmVzcG9uc2liaWxpdHkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZScsIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZ2V0RnJhbWV3b3JrQ29udHJvbHMoaWQsIHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHNMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbSA9IHJlcy5pdGVtc19mcm9tID8/IDE7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC50byA9IHJlcy5pdGVtc190byA/PyAwO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlcyA9IHJlcy50b3RhbF9wYWdlcyA/PyAwO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsX2l0ZW1zID8/IDA7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5kYXRhID0gcmVzLmRhdGEgPz8gcmVzO1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdlKGV2ZW50OiBhbnksIHR5cGU6ICdmcmFtZXdvcmtzJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJykge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2ZyYW1ld29ya3MnOlxyXG4gICAgICAgIHRoaXMuZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZSA9IGV2ZW50O1xyXG4gICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XHJcbiAgICAgICAgdGhpcy5zdWJDYXRlZ29yaWVzTGlzdC5jdXJyZW50UGFnZSA9IGV2ZW50O1xyXG4gICAgICAgIHRoaXMuZ2V0U3ViQ2F0ZWdvcmllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxyXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0xpc3QuY3VycmVudFBhZ2UgPSBldmVudDtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LmNoaWxkX2xpc3RfZGV0YWlscy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnRvdGFsQ29udHJvbHMgPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5faWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHNlYXJjaEJ5KGV2ZW50OiBhbnksIHR5cGU6ICdmcmFtZXdvcmsnIHwgJ2NhdGVnb3JpZXMnIHwgJ3Jlc3BvbnNpYmlsaXRpZXMnKSB7XHJcbiAgICB0aGlzLnJlc2V0UGFnaW5hdGlvbigpO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2ZyYW1ld29yayc6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5mcmFtZVdvcmsgIT0gZXZlbnQpIHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoVGV4dC5mcmFtZVdvcmsgPSBldmVudDtcclxuICAgICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0xpc3QoeyBzZWFyY2g6IHRydWUgfSlcclxuICAgICAgICAgIHRoaXMuZ2V0RnJhbWV3b3Jrc0NvdW50KHsgc2VhcmNoOiB0cnVlIH0pXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5jYXRlZ29yeSAhPSBldmVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LmNhdGVnb3J5ID0gZXZlbnQ7XHJcbiAgICAgICAgICB0aGlzLmdldFN1YkNhdGVnb3JpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcmsuX2lkLCB7IHNlYXJjaDogdHJ1ZSB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGV4dC5yZXNwb25zaWJpbGl0eSAhPSBldmVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hUZXh0LnJlc3BvbnNpYmlsaXR5ID0gZXZlbnQ7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlcz8uZnJhbWV3b3JrPy5wYXJlbnRfbGlzdF9kZXRhaWxzPy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LmNoaWxkX2xpc3RfZGV0YWlscy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnRvdGFsQ29udHJvbHMgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdGllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcy5faWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGcmFtZXdvcmsoZGF0YTogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcclxuICAgICAgY2FzZSAnZnJhbWV3b3JrJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yayA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0ge307XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSBkYXRhO1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSB7fTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gZGF0YTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50TGlzdCkge1xyXG4gICAgICBjYXNlICdmcmFtZXdvcmsnOlxyXG4gICAgICAgIGlmKHRoaXMud29ya2Zsb3dQYWdlPy5sZW5ndGggPT09IDEgJiYgdGhpcy53b3JrZmxvd1BhZ2UuaW5jbHVkZXMoJ0ZSQU1FV09SSycpKSB7XHJcbiAgICAgICAgICBjb25zdCBmcmFtZXdvcmtEZXRhaWxzID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5mcmFtZXdvcms7XHJcbiAgICAgICAgICB0aGlzLmFzc2lnbkNvbnRyb2wuZW1pdCh7bmFtZTogZnJhbWV3b3JrRGV0YWlscz8ubmFtZSwgX2lkOiBmcmFtZXdvcmtEZXRhaWxzPy5faWQsIHR5cGU6ZnJhbWV3b3JrRGV0YWlscz8uZnJhbWV3b3JrX3R5cGUsIGlkOiBmcmFtZXdvcmtEZXRhaWxzPy5pZCwgZGVzY3JpcHRpb246IGZyYW1ld29ya0RldGFpbHM/LmRlc2NyaXB0aW9uID8/ICcnfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8uY2hpbGRfbGlzdF9kZXRhaWxzLmxlbmd0aCA9PSAwICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8udG90YWxDb250cm9scyA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdyZXNwb25zaWJpbGl0aWVzJztcclxuICAgICAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZnJhbWV3b3JrLl9pZCk7XHJcblxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U3ViQ2F0ZWdvcmllcyh0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yay5faWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdCA9ICdyZXNwb25zaWJpbGl0aWVzJztcclxuICAgICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXRpZXModGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzLl9pZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxyXG4gICAgICAgIHRoaXMuYXNzaWduU2VsZWN0ZWRDb250cm9sKHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ29CYWNrKCkge1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb24oKTtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50TGlzdCkge1xyXG4gICAgICBjYXNlICdmcmFtZXdvcmsnOlxyXG4gICAgICAgIHRoaXMuY2xvc2VGcmFtZXdvcmsuZW1pdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2ZyYW1ld29yayc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/LnBhcmVudF9saXN0X2RldGFpbHM/Lmxlbmd0aCA9PSAwICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8uY2hpbGRfbGlzdF9kZXRhaWxzLmxlbmd0aCA9PSAwICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZyYW1ld29yaz8udG90YWxDb250cm9scyA+IDApIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnZnJhbWV3b3JrJ1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0ID0gJ2NhdGVnb3JpZXMnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXRQYWdpbmF0aW9uKCkge1xyXG4gICAgdGhpcy5mcmFtZXdvcmtEYXRhLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMuc3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2UgPSAxO1xyXG4gICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzTGlzdC5jdXJyZW50UGFnZSA9IDE7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudExpc3QpIHtcclxuICAgICAgY2FzZSAnZnJhbWV3b3JrJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmZyYW1ld29yayA9IHt9O1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMuY2F0ZWdvcmllcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMucmVzcG9uc2liaWxpdGllcyA9IHt9O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXRlZ29yaWVzJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLmNhdGVnb3JpZXMgPSB7fTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnJlc3BvbnNpYmlsaXRpZXMgPSB7fTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVzcG9uc2liaWxpdGllcyc6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0ge307XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgc2F2ZUNoYW5nZXModHlwZTogJ3Byb2dyYW1zJyB8ICdjYXRlZ29yaWVzJyB8ICdyZXNwb25zaWJpbGl0aWVzJyB8ICdwcm9ncmFtc09ubHknKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAncHJvZ3JhbXMnOlxyXG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAnY2F0ZWdvcmllcyc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5jYXRlZ29yaWVzID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5nZXRTdWJDYXRlZ29yaWVzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOlxyXG4gICAgICAgIHRoaXMuY3VycmVudExpc3QgPSAncmVzcG9uc2liaWxpdGllcyc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5yZXNwb25zaWJpbGl0aWVzID0gW107XHJcbiAgICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0aWVzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3Jlc3BvbnNpYmlsaXRpZXMnOlxyXG4gICAgICAgIC8vIHRoaXMuc3VibWl0cHJvZ3JhbUludGVncmF0aW9uKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3NpZ25TZWxlY3RlZENvbnRyb2woZGF0YTogYW55KSB7XHJcbiAgICBsZXQgc2VsZWN0ZWRGcmFtZXdvcmtEYXRhID0gdGhpcy5zZWxlY3RlZFZhbHVlcztcclxuICAgIHRoaXMuYXNzaWduQ29udHJvbC5lbWl0KHsgZGF0YSwgc2VsZWN0ZWRGcmFtZXdvcmtEYXRhIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLSA8cD5mcmFtZXdvcmstbGlzdCB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3RcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmcmFtZXdvcmstbGlzdC1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50TGlzdD09J2ZyYW1ld29yaydcIiBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj4ge3toZWFkZXJUZXh0fX08L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudExpc3Q9PSdjYXRlZ29yaWVzJ1wiIGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtdGl0bGUgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPiAge3toZWFkZXJUZXh0fX0gPlxyXG4gICAgICAgICAgICB7e3NlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/Lm5hbWV9fTwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudExpc3Q9PSdyZXNwb25zaWJpbGl0aWVzJ1wiIGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtdGl0bGUgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgIChjbGljayk9XCJnb0JhY2soKVwiPiYjeGU5MWQ7PC9pPiB7e3NlbGVjdGVkVmFsdWVzPy5mcmFtZXdvcms/Lm5hbWV9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiBjbGFzcz1cImZyYW1ld29yay1saXN0LXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiYnJlYWRDcnVtYj8ubGVuZ3RoID4gMFwiIChjbGljayk9XCJnZXRDYXRlZ29yeURldGFpbHNCeUlkKClcIj4mI3hlOTFkOzwvaT5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBicmVhZENydW1iOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCI+e3soaT4wKT8nPic6Jyd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmxpbmtdPVwidGFibGVDb21wb25lbnQuY3VycmVudEVudGl0eSB8fCAoISh0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5KSAmJiBpICE9PSBicmVhZENydW1iPy5sZW5ndGggLTEpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ2V0Q2F0ZWdvcnlEZXRhaWxzQnlJZChpdGVtLml0ZW1JZClcIiBbYXBwVG9vbHRpcF09XCJpdGVtLml0ZW1OYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIj57e2l0ZW0uaXRlbU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUNvbXBvbmVudC5jdXJyZW50RW50aXR5XCI+IDxzcGFuIGNsYXNzPVwiYXJyb3dcIj4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge3ticmVhZENydW1iW2JyZWFkQ3J1bWI/Lmxlbmd0aCAtIDFdLml0ZW1OYW1lfX1cclxuICAgICAgICAgICAgICAgIDxzcGFuPiZuYnNwO2ZvciB7e3RhYmxlQ29tcG9uZW50LmN1cnJlbnRFbnRpdHl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZC1yb3dcIiAqbmdJZj1cImN1cnJlbnRMaXN0PT0nZnJhbWV3b3JrJ1wiPlxyXG4gICAgICAgICAgICA8IS0tdGhpcyBzZWN0aW9uIHdpbGwgbm90IGFwcGVhciBvbiBjaGlsZCBwYXJ0IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAncmVndWxhdGlvbnMnXCIgKGNsaWNrKT1cImNoYW5nZVRhYigncmVndWxhdGlvbnMnKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UmVndWxhdGlvbnM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tmcmFtZXdvcmtDb3VudC5yZWd1bGF0aW9uc319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVUYWIgPT0gJ3N0YW5kYXJkcydcIiAoY2xpY2spPVwiY2hhbmdlVGFiKCdzdGFuZGFyZHMnKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+U3RhbmRhcmRzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tmcmFtZXdvcmtDb3VudC5zdGFuZGFyZHN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY2FyZFwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlVGFiID09ICdpbnRlcm5hbENvbnRyb2xzJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKCdpbnRlcm5hbENvbnRyb2xzJylcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkludGVybmFsIENvbnRyb2xzPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudGVyXCI+e3tmcmFtZXdvcmtDb3VudC5pbnRlcm5hbENvbnRyb2xzfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYiA9PSAnb3RoZXJzJ1wiIChjbGljayk9XCJjaGFuZ2VUYWIoJ290aGVycycpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5PdGhlcnM8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvdW50ZXJcIj57e2ZyYW1ld29ya0NvdW50Lm90aGVyc319PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3Qtc2VhcmNoXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgI3NlYXJjaEZpZWxkIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRbY3VycmVudExpc3RdXCJcclxuICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlLGN1cnJlbnRMaXN0KVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8YXBwLXdvcmtmbG93LXBhZ2luYXRpb24+PC9hcHAtd29ya2Zsb3ctcGFnaW5hdGlvbj4gLS0+XHJcbiAgICAgICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwiY3VycmVudExpc3Q9PSdmcmFtZXdvcmsnICYmIGZyYW1ld29ya0RhdGEudG90YWxQYWdlcyA+IDFcIiBbc3RhcnRdPVwiZnJhbWV3b3JrRGF0YS5mcm9tXCJcclxuICAgICAgICAgICAgW2VuZF09XCJmcmFtZXdvcmtEYXRhLnRvXCIgW3RvdGFsXT1cImZyYW1ld29ya0RhdGEudG90YWxSZWNvcmRzXCIgW3BhZ2VDb3VudF09XCJmcmFtZXdvcmtEYXRhLnRvdGFsUGFnZXNcIlxyXG4gICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwiZnJhbWV3b3JrRGF0YS5jdXJyZW50UGFnZVwiIChzZWxlY3RlZFBhZ2UpPVwiY2hhbmdlUGFnZSgkZXZlbnQsJ2ZyYW1ld29ya3MnKVwiPjwvYXBwLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwiY3VycmVudExpc3Q9PSdjYXRlZ29yaWVzJyAmJiBzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFBhZ2VzID4gMVwiXHJcbiAgICAgICAgICAgIFtzdGFydF09XCJzdWJDYXRlZ29yaWVzTGlzdC5mcm9tXCIgW2VuZF09XCJzdWJDYXRlZ29yaWVzTGlzdC50b1wiIFt0b3RhbF09XCJzdWJDYXRlZ29yaWVzTGlzdC50b3RhbFJlY29yZHNcIlxyXG4gICAgICAgICAgICBbcGFnZUNvdW50XT1cInN1YkNhdGVnb3JpZXNMaXN0LnRvdGFsUGFnZXNcIiBbY3VycmVudFBhZ2VdPVwic3ViQ2F0ZWdvcmllc0xpc3QuY3VycmVudFBhZ2VcIlxyXG4gICAgICAgICAgICAoc2VsZWN0ZWRQYWdlKT1cImNoYW5nZVBhZ2UoJGV2ZW50LCdjYXRlZ29yaWVzJylcIj48L2FwcC1wYWdpbmF0aW9uPlxyXG4gICAgICAgIDxhcHAtcGFnaW5hdGlvbiAqbmdJZj1cImN1cnJlbnRMaXN0PT0ncmVzcG9uc2liaWxpdGllcycgJiYgcmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxQYWdlcyA+IDFcIlxyXG4gICAgICAgICAgICBbc3RhcnRdPVwicmVzcG9uc2liaWxpdGllc0xpc3QuZnJvbVwiIFtlbmRdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG9cIlxyXG4gICAgICAgICAgICBbdG90YWxdPVwicmVzcG9uc2liaWxpdGllc0xpc3QudG90YWxSZWNvcmRzXCIgW3BhZ2VDb3VudF09XCJyZXNwb25zaWJpbGl0aWVzTGlzdC50b3RhbFBhZ2VzXCJcclxuICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0LmN1cnJlbnRQYWdlXCIgKHNlbGVjdGVkUGFnZSk9XCJjaGFuZ2VQYWdlKCRldmVudCwncmVzcG9uc2liaWxpdGllcycpXCI+XHJcbiAgICAgICAgPC9hcHAtcGFnaW5hdGlvbj5cclxuICAgICAgICA8IS0tIEZvciBwYXJlbnQgLS0+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtcGFnaW5hdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC13b3JrZmxvdy1wYWdpbmF0aW9uPjwvYXBwLXdvcmtmbG93LXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8IS0tIFtjbGFzcy5uby1jYXJkXT1cImJyZWFkQ3J1bWIubGVuZ3RoPjBcIiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnJhbWV3b3JrLWxpc3QtdGFibGUgdngtbWItNFwiIFtjbGFzcy5uby1jYXJkXT1cImN1cnJlbnRMaXN0PT0nY2F0ZWdvcmllcycgfHwgY3VycmVudExpc3Q9PSdyZXNwb25zaWJpbGl0aWVzJ1wiPlxyXG4gICAgICAgICAgICA8YXBwLWZyYW1ld29yay1saXN0LXRhYmxlICpuZ0lmPVwiY3VycmVudExpc3Q9PSdmcmFtZXdvcmsnXCIgW2xpc3RMb2FkZXJdPVwibG9hZGVyXCJcclxuICAgICAgICAgICAgICAgIFtmcmFtZXdvcmtUeXBlXT1cIidmcmFtZXdvcmsnXCIgKHNlbGVjdGVkRnJhbWV3b3JrKT1cInNlbGVjdEZyYW1ld29yaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtjdXJyZW50RnJhbWV3b3JrXT1cInNlbGVjdGVkVmFsdWVzW2N1cnJlbnRMaXN0XVwiIFtmcmFtZXdvcmtzTGlzdF09XCJmcmFtZXdvcmtEYXRhXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLWZyYW1ld29yay1saXN0LXRhYmxlPlxyXG4gICAgICAgICAgICA8YXBwLWZyYW1ld29yay1saXN0LXRhYmxlICpuZ0lmPVwiY3VycmVudExpc3Q9PSdjYXRlZ29yaWVzJ1wiIFtsaXN0TG9hZGVyXT1cImxvYWRlclwiXHJcbiAgICAgICAgICAgICAgICBbZnJhbWV3b3Jrc0xpc3RdPVwic3ViQ2F0ZWdvcmllc0xpc3RcIiAoc2VsZWN0ZWRGcmFtZXdvcmspPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2N1cnJlbnRGcmFtZXdvcmtdPVwic2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdXCIgW2ZyYW1ld29ya1R5cGVdPVwiJ3N1YkZyYW1ld29yaydcIj5cclxuICAgICAgICAgICAgPC9hcHAtZnJhbWV3b3JrLWxpc3QtdGFibGU+XHJcbiAgICAgICAgICAgIDxhcHAtZnJhbWV3b3JrLXJlc3BvbnNpYmlsaXR5LXRhYmxlICpuZ0lmPVwiY3VycmVudExpc3Q9PSdyZXNwb25zaWJpbGl0aWVzJ1wiIFtsaXN0TG9hZGVyXT1cImxvYWRlclwiXHJcbiAgICAgICAgICAgICAgICBbY3VycmVudFNlbGVjdGVkQ29udHJvbF09XCJzZWxlY3RlZFZhbHVlc1tjdXJyZW50TGlzdF1cIiBbY29udHJvbHNMaXN0XT1cInJlc3BvbnNpYmlsaXRpZXNMaXN0XCJcclxuICAgICAgICAgICAgICAgIChzZWxlY3RlZENvbnRyb2wpPVwic2VsZWN0RnJhbWV3b3JrKCRldmVudClcIiAoYXNzaWduQ29udHJvbCk9XCJhc3NpZ25TZWxlY3RlZENvbnRyb2woJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2FwcC1mcmFtZXdvcmstcmVzcG9uc2liaWxpdHktdGFibGU+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cImZyYW1ld29ya0RhdGE/LmRhdGE/Lmxlbmd0aD09MCAmJiBjdXJyZW50TGlzdD09J2ZyYW1ld29yaycgJiYgIWxvYWRlclwiXHJcbiAgICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9zZWFyY2gtZGF0YS5zdmcnXCJcclxuICAgICAgICAgICAgICAgIFtub0RhdGFUZXh0XT1cIidObyBkYXRhIHRvIGRpc3BsYXknXCI+PC9hcHAtbm8tZGF0YT5cclxuICAgICAgICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwic3ViQ2F0ZWdvcmllc0xpc3Q/LmRhdGE/Lmxlbmd0aD09MCAmJiBjdXJyZW50TGlzdD09J2NhdGVnb3JpZXMnICYmICFsb2FkZXJcIlxyXG4gICAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIidodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvc2VhcmNoLWRhdGEuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XHJcbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cInJlc3BvbnNpYmlsaXRpZXNMaXN0Py5kYXRhPy5sZW5ndGg9PTAgJiYgY3VycmVudExpc3Q9PSdyZXNwb25zaWJpbGl0aWVzJyAmJiAhbG9hZGVyXCJcclxuICAgICAgICAgICAgICAgIFtub0RhdGFJbWFnZV09XCInaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3NlYXJjaC1kYXRhLnN2ZydcIlxyXG4gICAgICAgICAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxyXG4gICAgICAgICAgICA8IS0tIG9sZCB0YWJsZSBsaXN0IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxhcHAtcGFyZW50LXRhYmxlICNwYXJlbnRUYWJsZSAqbmdJZj1cInNob3dQYXJlbnRcIiBbc2VhcmNoXT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAoZXhwYW5kQ2F0ZWdvcnkpPVwiZXhwYW5kQ2F0ZWdvcnkoJGV2ZW50KVwiIFt0YWJsZUxpc3RdPVwiY2F0ZWdvcnlMaXN0W2FjdGl2ZVRhYl0ubGlzdFwiXHJcbiAgICAgICAgICAgICAgICAoZW50cnVzdEZyYW1ld29yayk9XCJlbnRydXN0RnJhbWV3b3JrRGV0YWlscygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvYXBwLXBhcmVudC10YWJsZT4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxhcHAtZmxvYXRpbmctYmFyIFtzZWxlY3RlZERhdGFdPVwiKHNlbGVjdGVkVmFsdWVzW2N1cnJlbnRMaXN0XT8ubmFtZSk/W3NlbGVjdGVkVmFsdWVzW2N1cnJlbnRMaXN0XV06W11cIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiZmxvYXRpbmdCYXJEaXNwbGF5S2V5c1tjdXJyZW50TGlzdF1cIiBbaXNEaXNhYmxlZF09XCIhc2VsZWN0ZWRWYWx1ZXNbY3VycmVudExpc3RdPy5uYW1lXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgpXCIgKGNsb3NlTGlzdCk9XCJnb0JhY2soKVwiIChkZWxldGVFdmVudCk9XCJyZW1vdmUoKVwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBbc2luZ3VsYXJUZXh0XT1cIidVc2VyIHNlbGVjdGVkJ1wiIFtwbHVyYWxUZXh0XT1cIidVc2VycyBzZWxlY3RlZCdcIiAoY2xvc2VFdmVudCk9XCJzYXZlKHNlbGVjdGVkSWRzKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIiAoZGVsZXRlRXZlbnQpPVwiZGVsZXRlRXZlbnQoJGV2ZW50KVwiXHJcbiAgICBbaXNEaXNhYmxlZF09XCIoZ3JvdXBzTGlzdD8ubGVuZ3RoICsgdXNlcnNMaXN0Py5sZW5ndGgpID09PSAwIHx8IHNlbGVjdGVkVXNlcnM/Lmxlbmd0aCA9PT0gMFwiIC0tPlxyXG4gICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cclxuPC9kaXY+XHJcbiJdfQ==