vcomply-workflow-engine 2.3.0 → 2.3.1

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 (239) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +4392 -397
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +1 -1
  4. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  5. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.js +5 -2
  6. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +5 -2
  7. package/esm2015/lib/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -1
  8. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +33 -0
  9. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +33 -0
  10. package/esm2015/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -0
  11. package/esm2015/lib/formgroup/formgroup.module.js +23 -4
  12. package/esm2015/lib/formgroup/formgroup.module.ngfactory.js +1 -1
  13. package/esm2015/lib/formgroup/formgroup.module.ngsummary.json +1 -1
  14. package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
  15. package/esm2015/lib/more-option/more-option.component.js +75 -13
  16. package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.js +1 -9
  17. package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngsummary.json +1 -1
  18. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +1 -1
  19. package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.js +5 -3
  20. package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngfactory.js +1 -1
  21. package/esm2015/lib/sharedComponents/assessment-list/assessment-list.component.ngsummary.json +1 -1
  22. package/esm2015/lib/sharedComponents/assessment-preview/assessment-preview.module.ngfactory.js +1 -1
  23. package/esm2015/lib/sharedComponents/floating-bar/floating-bar.component.js +1 -1
  24. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  25. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.js +155 -0
  26. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngfactory.js +131 -0
  27. package/esm2015/lib/sharedComponents/program-listing/program-listing.component.ngsummary.json +1 -0
  28. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  29. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.js +25 -0
  30. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngfactory.js +51 -0
  31. package/esm2015/lib/sharedComponents/roles-list/roles-list.component.ngsummary.json +1 -0
  32. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.js +5 -2
  33. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +5 -2
  34. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -1
  35. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +5 -2
  36. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +5 -2
  37. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -1
  38. package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngfactory.js +1 -1
  39. package/esm2015/lib/ui-kit/no-data/no-data.component.js +36 -0
  40. package/esm2015/lib/ui-kit/no-data/no-data.component.ngfactory.js +27 -0
  41. package/esm2015/lib/ui-kit/no-data/no-data.component.ngsummary.json +1 -0
  42. package/esm2015/lib/ui-kit/no-data/no-data.module.js +13 -0
  43. package/esm2015/lib/ui-kit/no-data/no-data.module.ngfactory.js +12 -0
  44. package/esm2015/lib/ui-kit/no-data/no-data.module.ngsummary.json +1 -0
  45. package/esm2015/lib/ui-kit/pagination/pagination/pagination.component.js +1 -1
  46. package/esm2015/lib/ui-kit/popover/popover-longpress.directive.js +1 -3
  47. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +1 -1
  48. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +1 -1
  49. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +216 -49
  50. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngfactory.js +200 -138
  51. package/esm2015/lib/workflow-compliance/workflow-compliance.component.ngsummary.json +1 -1
  52. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +33 -6
  53. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +78 -47
  54. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
  55. package/esm2015/lib/workflow-engine.module.js +13 -4
  56. package/esm2015/lib/workflow-engine.module.ngfactory.js +9 -6
  57. package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
  58. package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
  59. package/esm2015/lib/workflow-program/constants.js +43 -0
  60. package/esm2015/lib/workflow-program/constants.ngsummary.json +1 -0
  61. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.js +15 -0
  62. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.js +19 -0
  63. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngsummary.json +1 -0
  64. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.js +283 -0
  65. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.js +227 -0
  66. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngsummary.json +1 -0
  67. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.js +15 -0
  68. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.js +19 -0
  69. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngsummary.json +1 -0
  70. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.js +46 -0
  71. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.ngsummary.json +1 -0
  72. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.js +18 -0
  73. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.ngsummary.json +1 -0
  74. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.js +109 -0
  75. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.js +37 -0
  76. package/esm2015/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngsummary.json +1 -0
  77. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.js +40 -0
  78. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.js +24 -0
  79. package/esm2015/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngsummary.json +1 -0
  80. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.js +111 -0
  81. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.js +26 -0
  82. package/esm2015/lib/workflow-program/create-program-ui/create-program-ui.module.ngsummary.json +1 -0
  83. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.js +45 -0
  84. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.js +44 -0
  85. package/esm2015/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngsummary.json +1 -0
  86. package/esm2015/lib/workflow-program/create-program-ui/custom-field/custom-field.component.js +82 -0
  87. package/esm2015/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ngfactory.js +51 -0
  88. package/esm2015/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ngsummary.json +1 -0
  89. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.js +241 -0
  90. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.js +253 -0
  91. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngsummary.json +1 -0
  92. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.js +47 -0
  93. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.ngsummary.json +1 -0
  94. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.js +15 -0
  95. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.ngfactory.js +19 -0
  96. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.ngsummary.json +1 -0
  97. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.js +19 -0
  98. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.ngsummary.json +1 -0
  99. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.js +19 -0
  100. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.ngsummary.json +1 -0
  101. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.js +23 -0
  102. package/esm2015/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.ngsummary.json +1 -0
  103. package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.js +17 -0
  104. package/esm2015/lib/workflow-program/create-program-ui/directives/input-trim.directive.ngsummary.json +1 -0
  105. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.js +24 -0
  106. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.js +38 -0
  107. package/esm2015/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngsummary.json +1 -0
  108. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.js +77 -0
  109. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.js +25 -0
  110. package/esm2015/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngsummary.json +1 -0
  111. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.js +16 -0
  112. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.js +24 -0
  113. package/esm2015/lib/workflow-program/create-program-ui/form-field/form-field.component.ngsummary.json +1 -0
  114. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.js +23 -0
  115. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.js +23 -0
  116. package/esm2015/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngsummary.json +1 -0
  117. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.js +145 -0
  118. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.js +59 -0
  119. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngsummary.json +1 -0
  120. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.js +21 -0
  121. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.js +13 -0
  122. package/esm2015/lib/workflow-program/create-program-ui/pagination/pagination.module.ngsummary.json +1 -0
  123. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.js +21 -0
  124. package/esm2015/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.ngsummary.json +1 -0
  125. package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.js +12 -0
  126. package/esm2015/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.ngsummary.json +1 -0
  127. package/esm2015/lib/workflow-program/create-program-ui/pipes/pager.pipe.js +17 -0
  128. package/esm2015/lib/workflow-program/create-program-ui/pipes/pager.pipe.ngsummary.json +1 -0
  129. package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.js +13 -0
  130. package/esm2015/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.ngsummary.json +1 -0
  131. package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.js +20 -0
  132. package/esm2015/lib/workflow-program/create-program-ui/pipes/search.pipe.ngsummary.json +1 -0
  133. package/esm2015/lib/workflow-program/create-program-ui/role-list/loader/loader.component.js +15 -0
  134. package/esm2015/lib/workflow-program/create-program-ui/role-list/loader/loader.component.ngfactory.js +19 -0
  135. package/esm2015/lib/workflow-program/create-program-ui/role-list/loader/loader.component.ngsummary.json +1 -0
  136. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.js +182 -0
  137. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.js +102 -0
  138. package/esm2015/lib/workflow-program/create-program-ui/role-list/role-list.component.ngsummary.json +1 -0
  139. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.js +41 -0
  140. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.js +23 -0
  141. package/esm2015/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngsummary.json +1 -0
  142. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.js +15 -0
  143. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.js +19 -0
  144. package/esm2015/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngsummary.json +1 -0
  145. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.js +240 -0
  146. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.js +186 -0
  147. package/esm2015/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngsummary.json +1 -0
  148. package/esm2015/lib/workflow-program/workflow-program.component.js +1083 -0
  149. package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +856 -0
  150. package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -0
  151. package/esm2015/lib/workflow-risk/workflow-risk.component.js +1 -1
  152. package/esm2015/lib/workflow-services/programs.service.js +203 -0
  153. package/esm2015/lib/workflow-services/programs.service.ngsummary.json +1 -0
  154. package/esm2015/lib/workflow-services/responsibility.service.js +23 -11
  155. package/esm2015/lib/workflow-services/responsibility.service.ngsummary.json +1 -1
  156. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  157. package/esm2015/vcomply-workflow-engine.js +192 -152
  158. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  159. package/fesm2015/vcomply-workflow-engine.js +4018 -234
  160. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  161. package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -0
  162. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +11 -0
  163. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +1 -0
  164. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +0 -1
  165. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +1 -0
  166. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +43 -0
  167. package/lib/sharedComponents/program-listing/program-listing.component.ngfactory.d.ts +1 -0
  168. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +8 -0
  169. package/lib/sharedComponents/roles-list/roles-list.component.ngfactory.d.ts +1 -0
  170. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -0
  171. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -0
  172. package/lib/ui-kit/no-data/no-data.component.d.ts +18 -0
  173. package/lib/ui-kit/no-data/no-data.component.ngfactory.d.ts +1 -0
  174. package/lib/ui-kit/no-data/no-data.module.d.ts +2 -0
  175. package/lib/ui-kit/no-data/no-data.module.ngfactory.d.ts +3 -0
  176. package/lib/workflow-compliance/workflow-compliance.component.d.ts +14 -4
  177. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +6 -0
  178. package/lib/workflow-program/constants.d.ts +40 -0
  179. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +5 -0
  180. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.ngfactory.d.ts +1 -0
  181. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +87 -0
  182. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.ngfactory.d.ts +1 -0
  183. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +5 -0
  184. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.ngfactory.d.ts +1 -0
  185. package/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.d.ts +13 -0
  186. package/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.d.ts +4 -0
  187. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +24 -0
  188. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.ngfactory.d.ts +1 -0
  189. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +13 -0
  190. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.ngfactory.d.ts +1 -0
  191. package/lib/workflow-program/create-program-ui/create-program-ui.module.d.ts +2 -0
  192. package/lib/workflow-program/create-program-ui/create-program-ui.module.ngfactory.d.ts +3 -0
  193. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +17 -0
  194. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.ngfactory.d.ts +1 -0
  195. package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.d.ts +19 -0
  196. package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.ngfactory.d.ts +1 -0
  197. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +63 -0
  198. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.ngfactory.d.ts +1 -0
  199. package/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.d.ts +12 -0
  200. package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.d.ts +5 -0
  201. package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.ngfactory.d.ts +1 -0
  202. package/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.d.ts +4 -0
  203. package/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.d.ts +4 -0
  204. package/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.d.ts +4 -0
  205. package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +3 -0
  206. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +9 -0
  207. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.ngfactory.d.ts +1 -0
  208. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +33 -0
  209. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.ngfactory.d.ts +1 -0
  210. package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +9 -0
  211. package/lib/workflow-program/create-program-ui/form-field/form-field.component.ngfactory.d.ts +1 -0
  212. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +8 -0
  213. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.ngfactory.d.ts +1 -0
  214. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +25 -0
  215. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.ngfactory.d.ts +1 -0
  216. package/lib/workflow-program/create-program-ui/pagination/pagination.module.d.ts +2 -0
  217. package/lib/workflow-program/create-program-ui/pagination/pagination.module.ngfactory.d.ts +3 -0
  218. package/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.d.ts +4 -0
  219. package/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.d.ts +4 -0
  220. package/lib/workflow-program/create-program-ui/pipes/pager.pipe.d.ts +4 -0
  221. package/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.d.ts +4 -0
  222. package/lib/workflow-program/create-program-ui/pipes/search.pipe.d.ts +4 -0
  223. package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.d.ts +5 -0
  224. package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.ngfactory.d.ts +1 -0
  225. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +65 -0
  226. package/lib/workflow-program/create-program-ui/role-list/role-list.component.ngfactory.d.ts +1 -0
  227. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +17 -0
  228. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.ngfactory.d.ts +1 -0
  229. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +5 -0
  230. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.ngfactory.d.ts +1 -0
  231. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +88 -0
  232. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.ngfactory.d.ts +1 -0
  233. package/lib/workflow-program/workflow-program.component.d.ts +165 -0
  234. package/lib/workflow-program/workflow-program.component.ngfactory.d.ts +1 -0
  235. package/lib/workflow-services/programs.service.d.ts +111 -0
  236. package/lib/workflow-services/responsibility.service.d.ts +8 -6
  237. package/package.json +2 -2
  238. package/vcomply-workflow-engine.d.ts +191 -151
  239. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -0,0 +1,241 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FrameworkService } from './framework.service';
3
+ export class DefineFrameworkListingComponent {
4
+ constructor(frameworkService) {
5
+ this.frameworkService = frameworkService;
6
+ this.cancel = new EventEmitter();
7
+ this.next = new EventEmitter();
8
+ this.mode = 'CREATE';
9
+ this.animation = true;
10
+ this.isMainLoader = true;
11
+ this.frameworkCount = null;
12
+ this.searchKey = '';
13
+ this.apiFrameworkPayload = {
14
+ page: 1,
15
+ search: '',
16
+ type: 1,
17
+ };
18
+ this.currentView = 'FRAMEWORK_CATEGORY';
19
+ this.activeFrameworkType = 'REGULATIONS';
20
+ this.frameworkTypes = {
21
+ 'REGULATIONS': 1,
22
+ 'STANDARDS': 2,
23
+ 'INTERNAL_CONTROLS': 3,
24
+ 'OTHERS': 0
25
+ };
26
+ this.frameworkData = [];
27
+ this.expandedFrameworkId = '';
28
+ //////////////////
29
+ this.searchKeyforFramework = '';
30
+ this.selectedFrameworkData = null;
31
+ this.allControls = [];
32
+ this.inScope = [];
33
+ this.outScope = [];
34
+ this.inScopeIds = [];
35
+ this.allControlsSelected = false;
36
+ this.issubLoading = true;
37
+ this.expandedSubCategoryIds = [];
38
+ }
39
+ set setFramework(value) {
40
+ var _a;
41
+ if (value && (value === null || value === void 0 ? void 0 : value._id)) {
42
+ this.selectedFramework = value;
43
+ this.activeFrameworkType = (_a = ['OTHERS', 'REGULATIONS', 'STANDARDS', 'INTERNAL_CONTROLS'][value === null || value === void 0 ? void 0 : value.type]) !== null && _a !== void 0 ? _a : 1;
44
+ this.currentView = 'FRAMEWORK';
45
+ this.inScope = value === null || value === void 0 ? void 0 : value.in_scope;
46
+ this.inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
47
+ this.loadFrameworkData();
48
+ }
49
+ }
50
+ ngOnInit() {
51
+ this.animation = true;
52
+ setTimeout(() => {
53
+ this.animation = false;
54
+ }, 300);
55
+ this.fetchFrameworkCount();
56
+ this.fetchFrameworkCategoryList();
57
+ }
58
+ fetchFrameworkCount() {
59
+ this.frameworkService.fetchFrameworkCount().subscribe({
60
+ next: (res) => { this.frameworkCount = res; },
61
+ error: (err) => {
62
+ //handle error here
63
+ }
64
+ });
65
+ }
66
+ changeType(type) {
67
+ this.activeFrameworkType = type;
68
+ this.apiFrameworkPayload.page = 1;
69
+ this.apiFrameworkPayload.type = this.frameworkTypes[type];
70
+ this.frameworkListSubscription ? this.frameworkListSubscription.unsubscribe() : null;
71
+ this.fetchFrameworkCategoryList();
72
+ }
73
+ executeSearch() {
74
+ this.apiFrameworkPayload.page = 1;
75
+ this.apiFrameworkPayload.search = this.searchKey;
76
+ this.fetchFrameworkCategoryList();
77
+ }
78
+ pageChanged(evt) {
79
+ this.apiFrameworkPayload.page = evt;
80
+ this.fetchFrameworkCategoryList();
81
+ }
82
+ fetchFrameworkCategoryList() {
83
+ this.isMainLoader = true;
84
+ this.frameworkListSubscription = this.frameworkService.fetchFrameworkInCategory(this.apiFrameworkPayload).subscribe({
85
+ next: (res) => { console.log("response", res); this.frameworkData = res; this.isMainLoader = false; },
86
+ error: () => { this.isMainLoader = false; }
87
+ });
88
+ }
89
+ selectFramework(evt, framework) {
90
+ var _a;
91
+ if ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) {
92
+ this.selectedFramework = framework;
93
+ console.log(this.selectedFramework);
94
+ }
95
+ }
96
+ expandCollapseFramework(framework) {
97
+ if (this.expandedFrameworkId === (framework === null || framework === void 0 ? void 0 : framework._id)) {
98
+ this.expandedFrameworkId = '';
99
+ }
100
+ else {
101
+ this.expandedFrameworkId = framework === null || framework === void 0 ? void 0 : framework._id;
102
+ }
103
+ }
104
+ removeSelectedFramework() {
105
+ this.selectedFramework = null;
106
+ this.selectedFrameworkData = null;
107
+ }
108
+ loadFrameworkData() {
109
+ var _a;
110
+ this.issubLoading = true;
111
+ this.frameworkService.fetchCategoryForFramework((_a = this.selectedFramework) === null || _a === void 0 ? void 0 : _a._id).subscribe({
112
+ next: (res) => {
113
+ console.log("nested", res);
114
+ this.selectedFrameworkData = res;
115
+ this.checkAllElements(this.mode === 'EDIT' ? false : true);
116
+ this.issubLoading = false;
117
+ },
118
+ error: () => { this.issubLoading = false; }
119
+ });
120
+ }
121
+ checkAllElements(populateInScope) {
122
+ var _a, _b;
123
+ let allElement = [];
124
+ (_b = (_a = this.selectedFrameworkData.data) === null || _a === void 0 ? void 0 : _a.child_list_details) === null || _b === void 0 ? void 0 : _b.forEach((element) => {
125
+ element === null || element === void 0 ? void 0 : element.controlsData.forEach((el) => { allElement.push(el); });
126
+ });
127
+ this.allControls = this.uniqueByProp(allElement, '_id');
128
+ if (populateInScope) {
129
+ this.inScope = this.uniqueByProp(allElement, '_id');
130
+ }
131
+ this.checkSelectAll();
132
+ this.setInscopeIds();
133
+ }
134
+ checkSelectAll() {
135
+ var _a, _b;
136
+ const allIds = this.allControls.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
137
+ const inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
138
+ this.allControlsSelected = ((_a = allIds.sort()) === null || _a === void 0 ? void 0 : _a.toString()) === ((_b = inScopeIds.sort()) === null || _b === void 0 ? void 0 : _b.toString());
139
+ }
140
+ selectAll(evt) {
141
+ var _a;
142
+ if ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) {
143
+ this.checkAllElements(true);
144
+ }
145
+ else {
146
+ this.inScope = [];
147
+ this.inScopeIds = [];
148
+ }
149
+ this.checkSelectAll();
150
+ }
151
+ setInscopeIds() {
152
+ this.inScopeIds = this.inScope.map((el) => el === null || el === void 0 ? void 0 : el._id);
153
+ }
154
+ selectItem(evt, payload) {
155
+ var _a;
156
+ ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true ? this.manipulateItem('ADD', payload) : this.manipulateItem('DELETE', payload);
157
+ }
158
+ manipulateItem(action, payload) {
159
+ if (action === 'ADD') {
160
+ this.inScope = this.uniqueByProp([...this.inScope, ...[payload]], '_id');
161
+ this.inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
162
+ }
163
+ else if (action === 'DELETE') {
164
+ let index = this.inScope.findIndex((ele) => (ele === null || ele === void 0 ? void 0 : ele._id) === (payload === null || payload === void 0 ? void 0 : payload._id));
165
+ if (index > -1) {
166
+ this.inScope = this.inScope.filter((ele) => (ele === null || ele === void 0 ? void 0 : ele._id) !== (payload === null || payload === void 0 ? void 0 : payload._id));
167
+ this.inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
168
+ }
169
+ }
170
+ this.checkSelectAll();
171
+ }
172
+ selectCategory(evt, payload) {
173
+ var _a;
174
+ ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true ? this.manipulateCategory('ADD', payload) : this.manipulateCategory('DELETE', payload);
175
+ }
176
+ manipulateCategory(action, payload) {
177
+ if (action === 'ADD') {
178
+ const itemsTobeAdded = payload === null || payload === void 0 ? void 0 : payload.controlsData;
179
+ this.inScope = this.uniqueByProp([...this.inScope, ...itemsTobeAdded], '_id');
180
+ this.inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
181
+ }
182
+ else if (action === 'DELETE') {
183
+ const itemsTobeRemoved = payload === null || payload === void 0 ? void 0 : payload.controlsData.map((el) => el._id);
184
+ this.inScope = this.inScope.filter((ele) => !itemsTobeRemoved.includes(ele._id));
185
+ this.inScopeIds = this.inScope.map((ele) => ele === null || ele === void 0 ? void 0 : ele._id);
186
+ }
187
+ this.checkSelectAll();
188
+ }
189
+ nextHandler() {
190
+ if (this.currentView === 'FRAMEWORK_CATEGORY') {
191
+ this.currentView = 'FRAMEWORK';
192
+ this.loadFrameworkData();
193
+ }
194
+ else {
195
+ this.next.emit(Object.assign(Object.assign({}, this.selectedFramework), { in_scope: this.inScope, out_scope: this.allControls.filter((ele) => !this.inScopeIds.includes(ele === null || ele === void 0 ? void 0 : ele._id)) }));
196
+ console.log("Final payload", Object.assign(Object.assign({}, this.selectedFramework), { in_scope: this.inScope, outScope: this.allControls.filter((ele) => !this.inScopeIds.includes(ele === null || ele === void 0 ? void 0 : ele._id)) }));
197
+ }
198
+ }
199
+ cancelHandler() {
200
+ if (this.currentView === 'FRAMEWORK') {
201
+ this.currentView = 'FRAMEWORK_CATEGORY';
202
+ }
203
+ else {
204
+ this.cancel.emit();
205
+ }
206
+ }
207
+ subCategoryExpandCollapse(category) {
208
+ var _a;
209
+ console.log(category);
210
+ const index = this.expandedSubCategoryIds.indexOf(category === null || category === void 0 ? void 0 : category._id);
211
+ if (index < 0 && ((_a = category === null || category === void 0 ? void 0 : category.controlsData) === null || _a === void 0 ? void 0 : _a.length)) {
212
+ this.expandedSubCategoryIds.push(category === null || category === void 0 ? void 0 : category._id);
213
+ }
214
+ else {
215
+ this.expandedSubCategoryIds.splice(index, 1);
216
+ }
217
+ }
218
+ uniqueByProp(array, key) {
219
+ return Array.from(array
220
+ .reduce((acc, item) => (item && item[key] && acc.set(item[key], item),
221
+ acc), new Map())
222
+ .values());
223
+ }
224
+ }
225
+ DefineFrameworkListingComponent.decorators = [
226
+ { type: Component, args: [{
227
+ selector: 'app-define-framework-listing',
228
+ template: "<div class=\"define-framework-listing\" [class.animate]=\"animation\">\r\n <ng-container *ngIf=\"currentView==='FRAMEWORK_CATEGORY'\">\r\n <div class=\"define-framework-listing-head\">\r\n <h3 class=\"define-framework-listing-title\">Select a Framework</h3>\r\n </div>\r\n \r\n <div *ngIf=\"true\" class=\"define-framework-listing-body\">\r\n <div class=\"vx-d-flex vx-align-center vx-mb-2\">\r\n <div (click)=\"changeType('REGULATIONS')\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeFrameworkType ==='REGULATIONS'\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">REGULATIONS</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{frameworkCount?.regulations ?? '--'}}</span>\r\n </div>\r\n </div>\r\n <div (click)=\"changeType('STANDARDS')\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeFrameworkType ==='STANDARDS'\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">STANDARDS</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{frameworkCount?.standards ??'--'}}</span>\r\n </div>\r\n </div>\r\n <div (click)=\"changeType('INTERNAL_CONTROLS')\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeFrameworkType ==='INTERNAL_CONTROLS'\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">INTERNAL CONTROLS</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{frameworkCount?.internalControls??'--'}}</span>\r\n </div>\r\n </div>\r\n <div (click)=\"changeType('OTHERS')\" class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"activeFrameworkType ==='OTHERS'\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">OTHERS</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{frameworkCount?.others ?? '--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" placeholder=\"Search Frameworks\" [(ngModel)]=\"searchKey\" (keyup.enter)=\"executeSearch()\"/>\r\n </div>\r\n <div class=\"vx-mt-2\" *ngIf=\"isMainLoader\">\r\n <framework-loader></framework-loader>\r\n </div>\r\n \r\n <ng-container *ngIf=\"!isMainLoader && frameworkData?.total_items > 0\">\r\n <div class=\"vx-mt-2\">\r\n <vui-pagination (pageChanged)=\"pageChanged($event)\" [from]=\"frameworkData?.items_from\" [to]=\"frameworkData?.items_to\" [total]=\"frameworkData?.total_items\" [totalPage]=\"frameworkData?.total_pages\" [currentPage]=\"apiFrameworkPayload?.page\"></vui-pagination>\r\n </div>\r\n <div class=\"define-framework-listing-table vx-mt-1\" [class.with-pagination]=\"true\">\r\n <div class=\"table-header\">\r\n <!-- when checkbox was checked then show \"active\" class in table-row -->\r\n <div class=\"table-row\" [class.active]=\"false\">\r\n <div class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n #\r\n <!-- <app-cs-checkbox *ngIf=\"true\"></app-cs-checkbox>\r\n <app-cs-checkbox-indeterminate *ngIf=\"false\"></app-cs-checkbox-indeterminate> -->\r\n </div>\r\n <div class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\">FRAMEWORKS</div>\r\n <div class=\"table-column vx-fs-10 vx-fw-500 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"></div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div class=\"table-item\" [class.open]=\"hideCategoryList\" *ngFor=\"let framework of frameworkData?.data;let i=index\">\r\n <!-- when checkbox was checked then show \"active\" class in table-row -->\r\n <div class=\"table-row main\" (click)=\"expandCollapseFramework(framework)\" [class.active]=\"selectedFramework?.framework_id === framework?.framework_id\" [class.disabled]=\"!framework?.child_list_details?.length\">\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n <div class=\"sr-no\">{{apiFrameworkPayload?.page | pager:i}}</div>\r\n <app-cs-radio [checked]=\"selectedFramework?.framework_id === framework?.framework_id\" (checkedEvent)=\"selectFramework($event,framework)\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\">\r\n <div class=\"category-name vx-fs-13 vx-label-txt\" [appTooltip]=\"framework?.framework_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{framework?.framework_name}}</div>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\">\r\n <button class=\"arrow-btn vx-fs-14 vx-paragraph-txt vx-p-0 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\r\n <i class=\"icons vx-d-flex\" (click)=\"expandCollapseFramework(framework)\">\r\n <ng-container *ngIf=\"expandedFrameworkId !== framework?.framework_id\">&#xe970;</ng-container>\r\n <ng-container *ngIf=\"expandedFrameworkId === framework?.framework_id\">&#xe9e8;</ng-container>\r\n </i>\r\n </button>\r\n </div>\r\n </div>\r\n <!-- sub table -->\r\n <ng-container *ngIf=\"expandedFrameworkId === framework?._id\">\r\n <div class=\"table-row child\" *ngFor=\"let subCat of framework?.child_list_details; let x = index\">\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\r\n <div class=\"sr-no\" [appTooltip]=\"\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{(apiFrameworkPayload?.page | pager:i) + '.' + (x+1)}}</div>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center category\">\r\n <div class=\"vx-d-block vx-w-100\">\r\n <div class=\"category-name vx-fs-12 vx-paragraph-txt\" [appTooltip]=\"subCat?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{subCat?.name}}</div>\r\n <div class=\"within\" *ngIf=\"false\">\r\n <div class=\"block\">WITHIN</div>\r\n <div class=\"data\" [appTooltip]=\"'Kolkata > America > South Africa'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">Kolkata > America > South Africa</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center action\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <app-no-data *ngIf=\"!isMainLoader && frameworkData?.total_items <= 0\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Frameworks Found'\"></app-no-data>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"currentView==='FRAMEWORK'\">\r\n <div class=\"define-framework-listing-head\">\r\n <h3 class=\"define-framework-listing-title\">Framework: {{selectedFramework?.framework_name}}</h3>\r\n </div>\r\n\r\n <div *ngIf=\"true\" class=\"define-framework-listing-body after-framework-listing\">\r\n <div class=\"vx-d-flex vx-align-center vx-mb-2\">\r\n <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"true\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">TOTAL RESPONSIBILITIES</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{allControls?.length}}</span>\r\n </div>\r\n </div>\r\n <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">RESPONSIBILITIES IN SCOPE</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{inScope.length}}</span>\r\n </div>\r\n </div>\r\n <div class=\"vx-table-card vx-bg-white vx-d-flex vx-justify-between vx-align-center vx-mr-1 vx-pt-2 vx-pb-2 vx-pl-3 vx-pr-3 vx-w-100\" [class.active]=\"false\">\r\n <div class=\"left vx-d-block vx-w-100\">\r\n <div class=\"label vx-d-flex vx-align-center\">\r\n <label class=\"vx-paragraph-txt vx-fw-500 vx-tt-uppercase vx-d-flex vx-justify-between vx-align-center\">RESPONSIBILITIES NOT IN SCOPE</label>\r\n </div>\r\n </div>\r\n <div class=\"right vx-d-flex vx-justify-end vx-w-100\">\r\n <span class=\"vx-txt-white vx-fw-500 vx-d-inline-block vx-text-center\">{{allControls?.length - inScope?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input [(ngModel)]=\"searchKeyforFramework\" type=\"text\" placeholder=\"Search\" />\r\n </div>\r\n <!-- <div class=\"vx-mt-2\">\r\n <vui-pagination></vui-pagination>\r\n </div> -->\r\n <div class=\"define-framework-listing-table vx-mt-1\" [class.with-pagination]=\"true\">\r\n <div class=\"vx-mt-2\" *ngIf=\"issubLoading\">\r\n <framework-loader></framework-loader>\r\n </div>\r\n <ng-container *ngIf=\"!issubLoading\">\r\n <ng-container *ngIf=\"(selectedFrameworkData?.data?.child_list_details | searchPipe :searchKeyforFramework) as frameworkCat \">\r\n <ng-container *ngIf=\"frameworkCat?.length\">\r\n <div class=\"selected-area\">\r\n <vui-checkbox #check (change)=\"selectAll($event)\" [disabled]=\"allControls?.length < 1\" [checked]=\"(allControlsSelected && isScope?.length > 0) || inScope?.length > 0\" [indeterminateEnabled] = \"inScope?.length > 0 && !allControlsSelected\">\r\n {{check?.checked ? 'Deselect All' :'Select All'}}\r\n </vui-checkbox>\r\n </div>\r\n\r\n <div class=\"program-listing-item\" [class.active]=\"subList\" *ngFor=\"let subCat of frameworkCat;let k = index\">\r\n <div class=\"table-row main-list\" [class.active]=\"false\" [class.disabled]=\"!subCat?.controlsData?.length\" (click)=\"subCategoryExpandCollapse(subCat)\">\r\n <div class=\"table-column serial\">\r\n <div class=\"sr-no\">{{k+1}}</div>\r\n \r\n <vui-checkbox [indeterminateEnabled] = \"subCat?.controlsData|subCatIndeter:inScope \" [checked]=\"((subCat?.controlsData|categoryAllSelect:inScope) || (subCat?.controlsData|subCatIndeter:inScope)) && subCat?.controlsData?.length\" (change)=\"selectCategory($event,subCat)\"></vui-checkbox>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"name-with-count\">\r\n <div class=\"value\" [appTooltip]=\"subCat?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{subCat?.name}}</div>\r\n <span class=\"count\">{{subCat?.controlsData?.length}}</span>\r\n </div>\r\n <div class=\"within-part\" *ngIf=\"false\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"'South Africa > America > India'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">South Africa > America > India</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button class=\"arrow\" [class.disabled]=\"!subCat?.controlsData?.length\">\r\n <i *ngIf=\"!expandedSubCategoryIds.includes(subCat?._id)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"expandedSubCategoryIds.includes(subCat?._id)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"sub-list\" *ngIf=\"expandedSubCategoryIds.includes(subCat?._id)\">\r\n <div class=\"table-row\" [class.disabled]=\"false\" *ngFor=\"let control of subCat?.controlsData;let c = index\">\r\n <div class=\"table-column serial\">\r\n <div class=\"sr-no\">{{k+1+'.'+(c+1)}}</div>\r\n <vui-checkbox [checked]=\"inScopeIds.includes(control?._id)\" (change)=\"selectItem($event,control)\"></vui-checkbox>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"control?.name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{control?.name}}</div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <app-no-data *ngIf=\"!frameworkCat?.length\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Frameworks Found'\"></app-no-data>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"define-framework-listing-footer\">\r\n \r\n <vui-floating-bar (closeEvent)=\"nextHandler()\" (closeList)=\"cancelHandler()\" *ngIf=\"currentView ==='FRAMEWORK_CATEGORY' \" [nextDisabled]=\"!selectedFramework?._id\">\r\n <div class=\"chip\" *ngIf=\"selectedFramework\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"removeSelectedFramework()\">&#xe90d;</i>\r\n <span class=\"value\"> {{selectedFramework?.framework_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n <vui-floating-bar (closeEvent)=\"nextHandler()\" (closeList)=\"cancelHandler()\" *ngIf=\"currentView ==='FRAMEWORK' \" [nextDisabled]=\"inScope?.length < 1\"></vui-floating-bar>\r\n </div>\r\n</div>",
229
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");@import url(\"https://cdn.v-comply.com/design-system/css/text/text.css\");@import url(\"https://cdn.v-comply.com/design-system/css/color/color.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\");@import url(\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\");@import url(\"https://cdn.v-comply.com/design-system/css/width/width.css\");@import url(\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\");::ng-deep .define-framework-listing{background:#fff;position:fixed;top:0;right:500px;bottom:0;left:0;border-top:3px solid #1e5dd3}::ng-deep .define-framework-listing.animate{-webkit-animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .define-framework-listing-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .define-framework-listing-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .define-framework-listing-body{padding:24px 40px 24px 36px;height:calc(100vh - 124px)}::ng-deep .define-framework-listing-body .search-block{position:relative}::ng-deep .define-framework-listing-body .search-block input{height:44px;line-height:24px;padding:10px 16px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .define-framework-listing-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .define-framework-listing-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .define-framework-listing-body.after-framework-listing .define-framework-listing-table{height:calc(100vh - 12.75rem)}::ng-deep .define-framework-listing-body.after-framework-listing .define-framework-listing-table.with-pagination{height:calc(100vh - 15.5rem)}::ng-deep .define-framework-listing-table{width:calc(100% + .75rem);height:calc(100vh - 16.75rem);overflow:auto;padding-right:.75rem}::ng-deep .define-framework-listing-table.with-pagination{height:calc(100vh - 19.5rem)}::ng-deep .define-framework-listing-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .define-framework-listing-table .table-header .table-row .table-column{color:#161b2f!important;min-height:1.5rem!important}::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial{position:relative}::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox-indeterminate{background:#fff;border-radius:.125rem;position:absolute;top:.25rem;left:.5rem;width:1rem;height:1rem;transition:all .2s ease-in-out;opacity:0}::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item,::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox .checkbox-item{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .table-header .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-header .table-row.active .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-header .table-row.active .table-column.serial app-cs-radio,::ng-deep .define-framework-listing-table .table-header .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-header .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .define-framework-listing-table .table-body{position:relative}::ng-deep .define-framework-listing-table .table-body .table-item{border:1px solid #f1f1f1;border-radius:.25rem;margin-bottom:.25rem}::ng-deep .define-framework-listing-table .table-body .table-item.open{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .define-framework-listing-table .table-body .table-item .table-row.active .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-body .table-item .table-row.active .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .table-body .table-item .table-row.active .table-column.serial app-cs-radio,::ng-deep .define-framework-listing-table .table-body .table-item .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-body .table-item .table-row:hover .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .table-body .table-item .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .define-framework-listing-table .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .define-framework-listing-table .table-row.main{cursor:pointer}::ng-deep .define-framework-listing-table .table-row.child{border-top:1px solid #f1f1f1}::ng-deep .define-framework-listing-table .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .define-framework-listing-table .table-row .table-column.serial{width:2rem;max-width:2rem;flex:0 0 2rem;justify-content:center;position:relative}::ng-deep .define-framework-listing-table .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-radio{background:#fff;border-radius:50%;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;transition:all .2s ease-in-out;opacity:0}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-radio .radio-item{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-radio .radio-item .radio,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-radio .radio-item .radiomark{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox-indeterminate{background:#fff;border-radius:50%;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;transition:all .2s ease-in-out;opacity:0}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox .checkbox-item{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkboxmark,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkboxmark{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .table-row .table-column.category{width:calc(100% - 4.5rem);min-width:calc(100% - 4.5rem)}::ng-deep .define-framework-listing-table .table-row .table-column.category .category-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .define-framework-listing-table .table-row .table-column.category .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .define-framework-listing-table .table-row .table-column.category .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .define-framework-listing-table .table-row .table-column.category .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .define-framework-listing-table .table-row .table-column.frameworks{width:calc(100% - 26rem);min-width:calc(100% - 26rem)}::ng-deep .define-framework-listing-table .table-row .table-column.frameworks .frameworks-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .define-framework-listing-table .table-row .table-column.frameworks .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .define-framework-listing-table .table-row .table-column.frameworks .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .define-framework-listing-table .table-row .table-column.frameworks .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .define-framework-listing-table .table-row .table-column.in-scope{width:10rem;min-width:10rem}::ng-deep .define-framework-listing-table .table-row .table-column.in-scope .scope{border:1px solid #dbdbdb;border-radius:.125rem;min-width:1.75rem}::ng-deep .define-framework-listing-table .table-row .table-column.not-in-scope{width:11rem;min-width:11rem}::ng-deep .define-framework-listing-table .table-row .table-column.not-in-scope .scope{border:1px solid #dbdbdb;border-radius:.125rem;min-width:1.75rem}::ng-deep .define-framework-listing-table .table-row .table-column.action{width:2.5rem;min-width:2.5rem}::ng-deep .define-framework-listing-table .table-row .table-column.action button.arrow-btn{background:transparent;border-radius:0;border:none}::ng-deep .define-framework-listing-table .selected-area{background:#fff;height:32px;position:sticky;top:0;z-index:1}::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox-indeterminate{background:#fff;border-radius:2px;width:100%;height:16px}::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox-indeterminate .checkbox-item,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox .checkbox-item{width:100%;position:relative}::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox .checkbox-item .checkmark{position:absolute!important;top:0;left:0}::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox-indeterminate .checkbox-item .value,::ng-deep .define-framework-listing-table .selected-area app-cs-checkbox .checkbox-item .value{color:#161b2f!important;font-size:12px!important;font-weight:500!important;margin-left:24px!important}::ng-deep .define-framework-listing-table .program-listing-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .define-framework-listing-table .program-listing-item .main-list{cursor:pointer}::ng-deep .define-framework-listing-table .program-listing-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .define-framework-listing-table .program-listing-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .define-framework-listing-table .program-listing-item .table-row.disabled{pointer-events:none}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-radio{position:absolute;top:14px;left:8px;opacity:0;transition:all .2s ease-in-out}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate{background:#fff;border-radius:2px;width:16px;height:16px;top:16px}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0;left:0}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:8px}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.name .name-inner .count{background:#1e5dd3;border-radius:20px;color:#fff;font-size:9px;font-weight:500;line-height:16px;min-width:24px;display:inline-block;text-align:center;padding:0 4px}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.name .name-inner .name-with-count{display:flex;align-items:center;width:100%}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .define-framework-listing-table .program-listing-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .define-framework-listing-table .program-listing-item .table-row.active .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row.active .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .program-listing-item .table-row.active .table-column.serial app-cs-radio,::ng-deep .define-framework-listing-table .program-listing-item .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .program-listing-item .table-row:hover .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .program-listing-item .table-row:hover .table-column.serial app-cs-radio{opacity:1}::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row.active .table-column.serial .sr-no,::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row:hover .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row.active .table-column.serial .sr-no vui-checkbox,::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row:hover .table-column.serial .sr-no vui-checkbox{opacity:1}::ng-deep .define-framework-listing-table .program-listing-item .sub-list .table-row .table-column.name .name-inner .value{color:#747576;font-size:12px}::ng-deep .define-framework-listing-table .program-listing-item.active .table-row .table-column.serial app-cs-checkbox,::ng-deep .define-framework-listing-table .program-listing-item.active .table-row .table-column.serial app-cs-checkbox-indeterminate,::ng-deep .define-framework-listing-table .program-listing-item.active .table-row .table-column.serial app-cs-radio{opacity:1}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important;font-size:11px!important;color:#747576!important}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}.disabled{pointer-events:none;opacity:.7}"]
230
+ },] }
231
+ ];
232
+ DefineFrameworkListingComponent.ctorParameters = () => [
233
+ { type: FrameworkService }
234
+ ];
235
+ DefineFrameworkListingComponent.propDecorators = {
236
+ cancel: [{ type: Output }],
237
+ next: [{ type: Output }],
238
+ mode: [{ type: Input }],
239
+ setFramework: [{ type: Input, args: ['selectedFramework',] }]
240
+ };
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLWZyYW1ld29yay1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvZGVmaW5lLWZyYW1ld29yay1saXN0aW5nL2RlZmluZS1mcmFtZXdvcmstbGlzdGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU92RCxNQUFNLE9BQU8sK0JBQStCO0lBZ0IxQyxZQUFvQixnQkFBaUM7UUFBakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQWYzQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixTQUFJLEdBQUcsUUFBUSxDQUFDO1FBV3pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFhakIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsbUJBQWMsR0FBTSxJQUFJLENBQUM7UUFTM0IsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNiLHdCQUFtQixHQUFHO1lBQ3BCLElBQUksRUFBQyxDQUFDO1lBQ04sTUFBTSxFQUFDLEVBQUU7WUFDVCxJQUFJLEVBQUMsQ0FBQztTQUVOLENBQUE7UUFDRixnQkFBVyxHQUFzQyxvQkFBb0IsQ0FBQztRQUN0RSx3QkFBbUIsR0FBbUUsYUFBYSxDQUFDO1FBRXBHLG1CQUFjLEdBQUc7WUFDZixhQUFhLEVBQUMsQ0FBQztZQUNmLFdBQVcsRUFBQyxDQUFDO1lBQ2IsbUJBQW1CLEVBQUMsQ0FBQztZQUNyQixRQUFRLEVB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O1lBQ0gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUE7U0FDNUM7SUFDSCxDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQVUsRUFBRSxHQUFXO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixLQUFLO2FBQ0YsTUFBTSxDQUNMLENBQUMsR0FBUSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FDdkIsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUM7WUFDN0MsR0FBRyxDQUNKLEVBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FDVjthQUNBLE1BQU0sRUFBRSxDQUNaLENBQUM7SUFDSixDQUFDOzs7WUFuUEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLG9ubUJBQXdEOzthQUV6RDs7O1lBTlEsZ0JBQWdCOzs7cUJBUXRCLE1BQU07bUJBQ04sTUFBTTttQkFDTixLQUFLOzJCQUNMLEtBQUssU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRnJhbWV3b3JrU2VydmljZSB9IGZyb20gJy4vZnJhbWV3b3JrLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGVmaW5lLWZyYW1ld29yay1saXN0aW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmaW5lLWZyYW1ld29yay1saXN0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kZWZpbmUtZnJhbWV3b3JrLWxpc3RpbmcuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmaW5lRnJhbWV3b3JrTGlzdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCdzZWxlY3RlZEZyYW1ld29yaycpIHNldCBzZXRGcmFtZXdvcmsodmFsdWU6IGFueSkge1xyXG4gICAgaWYodmFsdWUgJiYgdmFsdWU/Ll9pZCl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGcmFtZXdvcmsgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5hY3RpdmVGcmFtZXdvcmtUeXBlID0gWydPVEhFUlMnLCdSRUdVTEFUSU9OUycgLCAnU1RBTkRBUkRTJyAsICdJTlRFUk5BTF9DT05UUk9MUyddW3ZhbHVlPy50eXBlXSA/PyAxO1xyXG4gICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gJ0ZSQU1FV09SSyc7XHJcbiAgICAgIHRoaXMuaW5TY29wZSA9IHZhbHVlPy5pbl9zY29wZTtcclxuICAgICAgdGhpcy5pblNjb3BlSWRzID0gdGhpcy5pblNjb3BlLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgICB0aGlzLmxvYWRGcmFtZXdvcmtEYXRhKClcclxuICAgIH1cclxuICB9XHJcbiAgYW5pbWF0aW9uID0gdHJ1ZTtcclxuICBmcmFtZXdvcmtMaXN0U3Vic2NyaXB0aW9uICE6U3Vic2NyaXB0aW9uO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJhbWV3b3JrU2VydmljZTpGcmFtZXdvcmtTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgICB0aGlzLmZldGNoRnJhbWV3b3JrQ291bnQoKTtcclxuICAgIHRoaXMuZmV0Y2hGcmFtZXdvcmtDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGlzTWFpbkxvYWRlciA9IHRydWU7XHJcbiAgZnJhbWV3b3JrQ291bnQ6YW55PSBudWxsO1xyXG4gIGZldGNoRnJhbWV3b3JrQ291bnQoKXtcclxuICAgIHRoaXMuZnJhbWV3b3JrU2VydmljZS5mZXRjaEZyYW1ld29ya0NvdW50KCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9Pnt0aGlzLmZyYW1ld29ya0NvdW50ID0gcmVzfSxcclxuICAgICAgZXJyb3I6KGVycjphbnkpPT57XHJcbiAgICAgICAgLy9oYW5kbGUgZXJyb3IgaGVyZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuc2VhcmNoS2V5ID0gJyc7XHJcbiAgYXBpRnJhbWV3b3JrUGF5bG9hZCA9IHtcclxuICAgIHBhZ2U6MSxcclxuICAgIHNlYXJjaDonJyxcclxuICAgIHR5cGU6MSxcclxuXHJcbiAgIH1cclxuICBjdXJyZW50VmlldyA6ICdGUkFNRVdPUktfQ0FURUdPUlknIHwgJ0ZSQU1FV09SSyc9J0ZSQU1FV09SS19DQVRFR09SWSc7XHJcbiAgYWN0aXZlRnJhbWV3b3JrVHlwZSA6J1JFR1VMQVRJT05TJyB8ICdTVEFOREFSRFMnIHwgJ0lOVEVSTkFMX0NPTlRST0xTJyB8J09USEVSUyd8YW55PSAnUkVHVUxBVElPTlMnO1xyXG5cclxuICBmcmFtZXdvcmtUeXBlcyA9IHtcclxuICAgICdSRUdVTEFUSU9OUyc6MSxcclxuICAgICdTVEFOREFSRFMnOjIsXHJcbiAgICAnSU5URVJOQUxfQ09OVFJPTFMnOjMsXHJcbiAgICAnT1RIRVJTJzowXHJcbiAgfVxyXG4gIFxyXG5cclxuXHJcblxyXG4gIGZyYW1ld29ya0RhdGE6YW55ID0gW11cclxuICBjaGFuZ2VUeXBlKHR5cGU6J1JFR1VMQVRJT05TJyB8ICdTVEFOREFSRFMnIHwgJ0lOVEVSTkFMX0NPTlRST0xTJyB8J09USEVSUycpe1xyXG4gICAgdGhpcy5hY3RpdmVGcmFtZXdvcmtUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuYXBpRnJhbWV3b3JrUGF5bG9hZC5wYWdlID0gMTtcclxuICAgIHRoaXMuYXBpRnJhbWV3b3JrUGF5bG9hZC50eXBlID0gdGhpcy5mcmFtZXdvcmtUeXBlc1t0eXBlXTtcclxuICAgIHRoaXMuZnJhbWV3b3JrTGlzdFN1YnNjcmlwdGlvbiA/ICB0aGlzLmZyYW1ld29ya0xpc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSA6bnVsbDtcclxuICAgIHRoaXMuZmV0Y2hGcmFtZXdvcmtDYXRlZ29yeUxpc3QoKVxyXG4gIH1cclxuXHJcbiAgZXhlY3V0ZVNlYXJjaCgpe1xyXG4gICAgdGhpcy5hcGlGcmFtZXdvcmtQYXlsb2FkLnBhZ2U9MTtcclxuICAgIHRoaXMuYXBpRnJhbWV3b3JrUGF5bG9hZC5zZWFyY2ggPSB0aGlzLnNlYXJjaEtleTtcclxuICAgIHRoaXMuZmV0Y2hGcmFtZXdvcmtDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2VkKGV2dDphbnkpe1xyXG5cclxuICAgIHRoaXMuYXBpRnJhbWV3b3JrUGF5bG9hZC5wYWdlID0gZXZ0O1xyXG4gICAgdGhpcy5mZXRjaEZyYW1ld29ya0NhdGVnb3J5TGlzdCgpXHJcbiAgfVxyXG5cclxuXHJcbiAgZmV0Y2hGcmFtZXdvcmtDYXRlZ29yeUxpc3QoKXtcclxuICAgIHRoaXMuaXNNYWluTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuZnJhbWV3b3JrTGlzdFN1YnNjcmlwdGlvbiA9IHRoaXMuZnJhbWV3b3JrU2VydmljZS5mZXRjaEZyYW1ld29ya0luQ2F0ZWdvcnkodGhpcy5hcGlGcmFtZXdvcmtQYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDoocmVzOmFueSk9Pntjb25zb2xlLmxvZyhcInJlc3BvbnNlXCIscmVzKTt0aGlzLmZyYW1ld29ya0RhdGEgPSByZXMgOyB0aGlzLmlzTWFpbkxvYWRlciA9IGZhbHNlfSxcclxuICAgIGVycm9yOigpPT57dGhpcy5pc01haW5Mb2FkZXIgPSBmYWxzZX1cclxuICB9KVxyXG4gIH1cclxuICBzZWxlY3RlZEZyYW1ld29yayAhOmFueVxyXG4gIHNlbGVjdEZyYW1ld29yayhldnQ6YW55LGZyYW1ld29yazphbnkpe1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRnJhbWV3b3JrICA9IGZyYW1ld29yaztcclxuICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZEZyYW1ld29yaylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cGFuZGVkRnJhbWV3b3JrSWQ6YW55ID0gJyc7XHJcbiAgZXhwYW5kQ29sbGFwc2VGcmFtZXdvcmsoZnJhbWV3b3JrOmFueSl7XHJcbiAgICBpZih0aGlzLmV4cGFuZGVkRnJhbWV3b3JrSWQgPT09IGZyYW1ld29yaz8uX2lkKXtcclxuICAgICAgdGhpcy5leHBhbmRlZEZyYW1ld29ya0lkID0gJydcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmV4cGFuZGVkRnJhbWV3b3JrSWQgPSBmcmFtZXdvcms/Ll9pZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVNlbGVjdGVkRnJhbWV3b3JrKCl7XHJcbiAgICB0aGlzLnNlbGVjdGVkRnJhbWV3b3JrID0gbnVsbDtcclxuICAgIHRoaXMuc2VsZWN0ZWRGcmFtZXdvcmtEYXRhID0gbnVsbDtcclxuICB9XHJcblxyXG4vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcbnNlYXJjaEtleWZvckZyYW1ld29yayA9ICcnO1xyXG4gIHNlbGVjdGVkRnJhbWV3b3JrRGF0YTphbnk9IG51bGw7XHJcbiAgYWxsQ29udHJvbHM6YW55ID0gW11cclxuICBpblNjb3BlOmFueSA9IFtdO1xyXG4gIG91dFNjb3BlOmFueSA9IFtdO1xyXG4gIGluU2NvcGVJZHM6YW55ID1bXTtcclxuICBhbGxDb250cm9sc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgaXNzdWJMb2FkaW5nID0gdHJ1ZTtcclxuICBsb2FkRnJhbWV3b3JrRGF0YSgpe1xyXG4gICAgdGhpcy5pc3N1YkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5mcmFtZXdvcmtTZXJ2aWNlLmZldGNoQ2F0ZWdvcnlGb3JGcmFtZXdvcmsodGhpcy5zZWxlY3RlZEZyYW1ld29yaz8uX2lkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwibmVzdGVkXCIscmVzKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRnJhbWV3b3JrRGF0YSA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsRWxlbWVudHModGhpcy5tb2RlID09PSAnRURJVCcgPyBmYWxzZSA6IHRydWUpO1xyXG4gICAgICAgIHRoaXMuaXNzdWJMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooKT0+eyAgdGhpcy5pc3N1YkxvYWRpbmcgPSBmYWxzZTt9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hlY2tBbGxFbGVtZW50cyhwb3B1bGF0ZUluU2NvcGU6IGFueSl7XHJcbiAgICBsZXQgYWxsRWxlbWVudDphbnkgPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZEZyYW1ld29ya0RhdGEuZGF0YT8uY2hpbGRfbGlzdF9kZXRhaWxzPy5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgZWxlbWVudD8uY29udHJvbHNEYXRhLmZvckVhY2goKGVsOmFueSkgPT4ge2FsbEVsZW1lbnQucHVzaChlbCl9KVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFsbENvbnRyb2xzID0gdGhpcy51bmlxdWVCeVByb3AoYWxsRWxlbWVudCwnX2lkJyk7XHJcbiAgICBpZihwb3B1bGF0ZUluU2NvcGUpe1xyXG4gICAgICB0aGlzLmluU2NvcGUgPSB0aGlzLnVuaXF1ZUJ5UHJvcChhbGxFbGVtZW50LCdfaWQnKTtcclxuICAgIH1cclxuICAgXHJcbiAgICB0aGlzLmNoZWNrU2VsZWN0QWxsKCk7XHJcbiAgICB0aGlzLnNldEluc2NvcGVJZHMoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrU2VsZWN0QWxsKCl7XHJcbiAgICBjb25zdCBhbGxJZHMgPSB0aGlzLmFsbENvbnRyb2xzLm1hcCgoZWxlOmFueSkgPT4gZWxlPy5faWQpO1xyXG4gICAgY29uc3QgaW5TY29wZUlkcyA9IHRoaXMuaW5TY29wZS5tYXAoKGVsZTphbnkpID0+IGVsZT8uX2lkKTtcclxuICAgIHRoaXMuYWxsQ29udHJvbHNTZWxlY3RlZCA9IGFsbElkcy5zb3J0KCk/LnRvU3RyaW5nKCkgPT09IGluU2NvcGVJZHMuc29ydCgpPy50b1N0cmluZygpXHJcbiAgfVxyXG4gc2VsZWN0QWxsKGV2dDphbnkpe1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQpe1xyXG4gICAgICB0aGlzLmNoZWNrQWxsRWxlbWVudHModHJ1ZSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pblNjb3BlID0gW107XHJcbiAgICAgIHRoaXMuaW5TY29wZUlkcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja1NlbGVjdEFsbCgpO1xyXG4gfVxyXG4gIHNldEluc2NvcGVJZHMoKXtcclxuICAgIHRoaXMuaW5TY29wZUlkcyA9IHRoaXMuaW5TY29wZS5tYXAoKGVsOmFueSkgPT4gZWw/Ll9pZClcclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0oZXZ0OmFueSxwYXlsb2FkOmFueSl7XHJcbiAgICBldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSA/IHRoaXMubWFuaXB1bGF0ZUl0ZW0oJ0FERCcsIHBheWxvYWQpIDogdGhpcy5tYW5pcHVsYXRlSXRlbSgnREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcbiAgbWFuaXB1bGF0ZUl0ZW0oYWN0aW9uOiAnQUREJyB8ICdERUxFVEUnLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChhY3Rpb24gPT09ICdBREQnKSB7XHJcbiAgICAgIHRoaXMuaW5TY29wZSA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLmluU2NvcGUsIC4uLltwYXlsb2FkXV0sICdfaWQnKTtcclxuICAgICAgdGhpcy5pblNjb3BlSWRzID0gdGhpcy5pblNjb3BlLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uX2lkKVxyXG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuaW5TY29wZS5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGU/Ll9pZCA9PT0gcGF5bG9hZD8uX2lkKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLmluU2NvcGUgPSB0aGlzLmluU2NvcGUuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlPy5faWQgIT09IHBheWxvYWQ/Ll9pZCk7XHJcbiAgICAgICAgdGhpcy5pblNjb3BlSWRzID0gdGhpcy5pblNjb3BlLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uX2lkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgIHRoaXMuY2hlY2tTZWxlY3RBbGwoKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdENhdGVnb3J5KGV2dDphbnkscGF5bG9hZDphbnkpe1xyXG4gICAgZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUgPyB0aGlzLm1hbmlwdWxhdGVDYXRlZ29yeSgnQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVDYXRlZ29yeSgnREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcbiAgbWFuaXB1bGF0ZUNhdGVnb3J5KGFjdGlvbjogJ0FERCcgfCAnREVMRVRFJywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAoYWN0aW9uID09PSAnQUREJykge1xyXG4gICAgICBjb25zdCBpdGVtc1RvYmVBZGRlZCA9IHBheWxvYWQ/LmNvbnRyb2xzRGF0YTsgXHJcbiAgICAgIHRoaXMuaW5TY29wZSA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLmluU2NvcGUsIC4uLml0ZW1zVG9iZUFkZGVkXSwgJ19pZCcpO1xyXG4gICAgICB0aGlzLmluU2NvcGVJZHMgPSB0aGlzLmluU2NvcGUubWFwKChlbGU6IGFueSkgPT4gZWxlPy5faWQpXHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbiA9PT0gJ0RFTEVURScpIHtcclxuICAgICAgY29uc3QgaXRlbXNUb2JlUmVtb3ZlZCA9IHBheWxvYWQ/LmNvbnRyb2xzRGF0YS5tYXAoKGVsOmFueSk9PiBlbC5faWQpOyBcclxuICAgICAgIHRoaXMuaW5TY29wZSA9IHRoaXMuaW5TY29wZS5maWx0ZXIoKGVsZTphbnkpPT4gIWl0ZW1zVG9iZVJlbW92ZWQuaW5jbHVkZXMoZWxlLl9pZCkpO1xyXG4gICAgICAgdGhpcy5pblNjb3BlSWRzID0gdGhpcy5pblNjb3BlLm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uX2lkKVxyXG4gICAgIFxyXG4gICAgfVxyXG4gICB0aGlzLmNoZWNrU2VsZWN0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBuZXh0SGFuZGxlcigpe1xyXG4gICAgaWYodGhpcy5jdXJyZW50VmlldyA9PT0gJ0ZSQU1FV09SS19DQVRFR09SWScpe1xyXG4gICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gJ0ZSQU1FV09SSyc7XHJcbiAgICAgIHRoaXMubG9hZEZyYW1ld29ya0RhdGEoKTtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMubmV4dC5lbWl0KHsuLi50aGlzLnNlbGVjdGVkRnJhbWV3b3JrLGluX3Njb3BlOnRoaXMuaW5TY29wZSxvdXRfc2NvcGU6IHRoaXMuYWxsQ29udHJvbHMuZmlsdGVyKChlbGU6YW55KT0+ICF0aGlzLmluU2NvcGVJZHMuaW5jbHVkZXMoZWxlPy5faWQpKX0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkZpbmFsIHBheWxvYWRcIix7Li4udGhpcy5zZWxlY3RlZEZyYW1ld29yayxpbl9zY29wZTp0aGlzLmluU2NvcGUsb3V0U2NvcGU6IHRoaXMuYWxsQ29udHJvbHMuZmlsdGVyKChlbGU6YW55KT0+ICF0aGlzLmluU2NvcGVJZHMuaW5jbHVkZXMoZWxlPy5faWQpKX0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5jZWxIYW5kbGVyKCl7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRWaWV3ID09PSAnRlJBTUVXT1JLJyl7XHJcbiAgICAgIHRoaXMuY3VycmVudFZpZXcgPSAnRlJBTUVXT1JLX0NBVEVHT1JZJztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cGFuZGVkU3ViQ2F0ZWdvcnlJZHM6YW55ID0gW107XHJcbiAgc3ViQ2F0ZWdvcnlFeHBhbmRDb2xsYXBzZShjYXRlZ29yeTphbnkpe1xyXG4gICAgY29uc29sZS5sb2coY2F0ZWdvcnkpXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZXhwYW5kZWRTdWJDYXRlZ29yeUlkcy5pbmRleE9mKGNhdGVnb3J5Py5faWQpO1xyXG4gICAgaWYoaW5kZXggPCAwICYmIGNhdGVnb3J5Py5jb250cm9sc0RhdGE/Lmxlbmd0aCl7XHJcbiAgICAgIHRoaXMuZXhwYW5kZWRTdWJDYXRlZ29yeUlkcy5wdXNoKGNhdGVnb3J5Py5faWQpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5leHBhbmRlZFN1YkNhdGVnb3J5SWRzLnNwbGljZShpbmRleCwxKVxyXG4gICAgfVxyXG4gIH1cclxuICB1bmlxdWVCeVByb3AoYXJyYXk6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICBhcnJheVxyXG4gICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksXHJcbiAgICAgICAgICAgIGFjY1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIG5ldyBNYXAoKVxyXG4gICAgICAgIClcclxuICAgICAgICAudmFsdWVzKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=