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,43 @@
1
+ export const CONSTANTS = {
2
+ categoryType: [
3
+ { label: 'REGULATIONS', value: 1 },
4
+ { label: 'STANDARDS', value: 2 },
5
+ { label: 'INTERNAL CONTROLS', value: 3 },
6
+ { label: 'OTHERS', value: 0 }
7
+ ],
8
+ performanceCalculation: [
9
+ { label: 'PAST EVENTS ONLY', value: 'PAST_EVENT' },
10
+ { label: 'PAST & UPCOMING EVENTS', value: 'UPCOMING_EVENT' },
11
+ ],
12
+ dateConfig: {
13
+ disableKeypress: true,
14
+ format: 'DD MMM YYYY',
15
+ unSelectOnClick: true,
16
+ openOnClick: false,
17
+ openOnFocus: false,
18
+ min: new Date().getDate().toString(),
19
+ },
20
+ description: {
21
+ mode: 'prime',
22
+ colorPalette: true,
23
+ link: true,
24
+ file: true,
25
+ placeholder: 'Add a description',
26
+ },
27
+ objective: {
28
+ mode: 'prime',
29
+ colorPalette: true,
30
+ link: true,
31
+ file: true,
32
+ id: 'vksvdslkvdslkvjdskljv',
33
+ placeholder: 'What is the objective of this program?',
34
+ },
35
+ additionalOption: {
36
+ REVIEWER: false,
37
+ OVERSEER: false,
38
+ ASSESSMENT: false,
39
+ FORMATE_EVIDENCE: false,
40
+ CUSTOM_FIELDS: false
41
+ }
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3JCLFlBQVksRUFBRztRQUNYLEVBQUMsS0FBSyxFQUFDLGFBQWEsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzdCLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDO1FBQzNCLEVBQUMsS0FBSyxFQUFDLG1CQUFtQixFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7UUFDbkMsRUFBQyxLQUFLLEVBQUMsUUFBUSxFQUFDLEtBQUssRUFBQyxDQUFDLEVBQUM7S0FDekI7SUFDRCxzQkFBc0IsRUFBRztRQUN2QixFQUFDLEtBQUssRUFBQyxrQkFBa0IsRUFBQyxLQUFLLEVBQUMsWUFBWSxFQUFDO1FBQzdDLEVBQUMsS0FBSyxFQUFDLHdCQUF3QixFQUFDLEtBQUssRUFBQyxnQkFBZ0IsRUFBQztLQUN4RDtJQUNELFVBQVUsRUFBRztRQUNYLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLFdBQVcsRUFBQyxLQUFLO1FBQ2pCLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNyQztJQUNELFdBQVcsRUFBSTtRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLElBQUk7UUFDbEIsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUMsSUFBSTtRQUNULFdBQVcsRUFBRSxtQkFBbUI7S0FDakM7SUFFRCxTQUFTLEVBQUc7UUFDVixJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxJQUFJO1FBQ2xCLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFDLElBQUk7UUFDVCxFQUFFLEVBQUMsdUJBQXVCO1FBQzFCLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixRQUFRLEVBQUUsS0FBSztRQUNmLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLEtBQUs7UUFDakIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixhQUFhLEVBQUUsS0FBSztLQUNyQjtDQUNOLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OU1RBTlRTID0ge1xyXG4gICAgY2F0ZWdvcnlUeXBlIDogW1xyXG4gICAgICAgIHtsYWJlbDonUkVHVUxBVElPTlMnLHZhbHVlOjF9LFxyXG4gICAgICAgIHtsYWJlbDonU1RBTkRBUkRTJyx2YWx1ZToyfSxcclxuICAgICAgICB7bGFiZWw6J0lOVEVSTkFMIENPTlRST0xTJyx2YWx1ZTozfSxcclxuICAgICAgICB7bGFiZWw6J09USEVSUycsdmFsdWU6MH1cclxuICAgICAgXSxcclxuICAgICAgcGVyZm9ybWFuY2VDYWxjdWxhdGlvbiA6IFtcclxuICAgICAgICB7bGFiZWw6J1BBU1QgRVZFTlRTIE9OTFknLHZhbHVlOidQQVNUX0VWRU5UJ30sXHJcbiAgICAgICAge2xhYmVsOidQQVNUICYgVVBDT01JTkcgRVZFTlRTJyx2YWx1ZTonVVBDT01JTkdfRVZFTlQnfSxcclxuICAgICAgXSxcclxuICAgICAgZGF0ZUNvbmZpZyA6IHtcclxuICAgICAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICAgICAgZm9ybWF0OiAnREQgTU1NIFlZWVknLFxyXG4gICAgICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgICAgICBvcGVuT25DbGljazpmYWxzZSxcclxuICAgICAgICBvcGVuT25Gb2N1czpmYWxzZSxcclxuICAgICAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAgIHtcclxuICAgICAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgIGZpbGU6dHJ1ZSxcclxuICAgICAgICBwbGFjZWhvbGRlcjogJ0FkZCBhIGRlc2NyaXB0aW9uJyxcclxuICAgICAgfSxcclxuICAgIFxyXG4gICAgICBvYmplY3RpdmU6ICB7XHJcbiAgICAgICAgbW9kZTogJ3ByaW1lJyxcclxuICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICBmaWxlOnRydWUsXHJcbiAgICAgICAgaWQ6J3Zrc3Zkc2xrdmRzbGt2amRza2xqdicsXHJcbiAgICAgICAgcGxhY2Vob2xkZXI6ICdXaGF0IGlzIHRoZSBvYmplY3RpdmUgb2YgdGhpcyBwcm9ncmFtPycsXHJcbiAgICAgIH0sXHJcbiAgICAgIGFkZGl0aW9uYWxPcHRpb246IHtcclxuICAgICAgICBSRVZJRVdFUjogZmFsc2UsXHJcbiAgICAgICAgT1ZFUlNFRVI6IGZhbHNlLFxyXG4gICAgICAgIEFTU0VTU01FTlQ6IGZhbHNlLFxyXG4gICAgICAgIEZPUk1BVEVfRVZJREVOQ0U6IGZhbHNlLFxyXG4gICAgICAgIENVU1RPTV9GSUVMRFM6IGZhbHNlXHJcbiAgICAgIH1cclxufSJdfQ==
@@ -0,0 +1 @@
1
+ {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"categoryType":[{"label":"REGULATIONS","value":1},{"label":"STANDARDS","value":2},{"label":"INTERNAL CONTROLS","value":3},{"label":"OTHERS","value":0}],"performanceCalculation":[{"label":"PAST EVENTS ONLY","value":"PAST_EVENT"},{"label":"PAST & UPCOMING EVENTS","value":"UPCOMING_EVENT"}],"dateConfig":{"disableKeypress":true,"format":"DD MMM YYYY","unSelectOnClick":true,"openOnClick":false,"openOnFocus":false,"min":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"new"},"member":"getDate"}},"member":"toString"}}},"description":{"mode":"prime","colorPalette":true,"link":true,"file":true,"placeholder":"Add a description"},"objective":{"mode":"prime","colorPalette":true,"link":true,"file":true,"id":"vksvdslkvdslkvjdskljv","placeholder":"What is the objective of this program?"},"additionalOption":{"REVIEWER":false,"OVERSEER":false,"ASSESSMENT":false,"FORMATE_EVIDENCE":false,"CUSTOM_FIELDS":false}}}],"symbols":[{"__symbol":0,"name":"CONSTANTS","filePath":"./constants"}]}
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ export class AssessmentLoaderComponent {
3
+ constructor() { }
4
+ ngOnInit() {
5
+ }
6
+ }
7
+ AssessmentLoaderComponent.decorators = [
8
+ { type: Component, args: [{
9
+ selector: 'assessment-loader',
10
+ template: "<div class=\"assessment-list-item\" *ngFor=\"let data of [1, 1, 1, 1, 1, 1, 1]\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial\">\r\n <div class=\"sr-no\"></div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <div class=\"loader\"></div>\r\n </div>\r\n </div>\r\n</div>",
11
+ styles: [".assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}.assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}.assessment-list-item .table-row .table-column{height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}.assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}.assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;-ms-writing-mode:tb-lr;writing-mode:vertical-lr;height:100%}.assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}.assessment-list-item .table-row .table-column.name .loader{width:calc(100% - 200px)}.assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}.assessment-list-item .table-row .table-column.action .loader{width:28px}.loader{background:#f1f1f1;border-radius:20px;height:10px}"]
12
+ },] }
13
+ ];
14
+ AssessmentLoaderComponent.ctorParameters = () => [];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LWxvYWRlci9hc3Nlc3NtZW50LWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU9sRCxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs7WUFWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsMGRBQWlEOzthQUVsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Fzc2Vzc21lbnQtbG9hZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Fzc2Vzc21lbnQtbG9hZGVyLmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2Vzc21lbnRMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview This file was generated by the Angular template compiler. Do not edit.
3
+ *
4
+ * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes,extraRequire}
5
+ * tslint:disable
6
+ */
7
+ import * as i0 from "./assessment-loader.component.less.shim.ngstyle";
8
+ import * as i1 from "@angular/core";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "./assessment-loader.component";
11
+ var styles_AssessmentLoaderComponent = [i0.styles];
12
+ var RenderType_AssessmentLoaderComponent = i1.ɵcrt({ encapsulation: 0, styles: styles_AssessmentLoaderComponent, data: {} });
13
+ export { RenderType_AssessmentLoaderComponent as RenderType_AssessmentLoaderComponent };
14
+ function View_AssessmentLoaderComponent_1(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 7, "div", [["class", "assessment-list-item"]], null, null, null, null, null)), (_l()(), i1.ɵeld(1, 0, null, null, 6, "div", [["class", "table-row"]], null, null, null, null, null)), (_l()(), i1.ɵeld(2, 0, null, null, 1, "div", [["class", "table-column serial"]], null, null, null, null, null)), (_l()(), i1.ɵeld(3, 0, null, null, 0, "div", [["class", "sr-no"]], null, null, null, null, null)), (_l()(), i1.ɵeld(4, 0, null, null, 1, "div", [["class", "table-column name"]], null, null, null, null, null)), (_l()(), i1.ɵeld(5, 0, null, null, 0, "div", [["class", "loader"]], null, null, null, null, null)), (_l()(), i1.ɵeld(6, 0, null, null, 1, "div", [["class", "table-column action"]], null, null, null, null, null)), (_l()(), i1.ɵeld(7, 0, null, null, 0, "div", [["class", "loader"]], null, null, null, null, null))], null, null); }
15
+ export function View_AssessmentLoaderComponent_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵand(16777216, null, null, 2, null, View_AssessmentLoaderComponent_1)), i1.ɵdid(1, 278528, null, 0, i2.NgForOf, [i1.ViewContainerRef, i1.TemplateRef, i1.IterableDiffers], { ngForOf: [0, "ngForOf"] }, null), i1.ɵpad(2, 7)], function (_ck, _v) { var currVal_0 = _ck(_v, 2, 0, 1, 1, 1, 1, 1, 1, 1); _ck(_v, 1, 0, currVal_0); }, null); }
16
+ export function View_AssessmentLoaderComponent_Host_0(_l) { return i1.ɵvid(0, [(_l()(), i1.ɵeld(0, 0, null, null, 1, "assessment-loader", [], null, null, null, View_AssessmentLoaderComponent_0, RenderType_AssessmentLoaderComponent)), i1.ɵdid(1, 114688, null, 0, i3.AssessmentLoaderComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }
17
+ var AssessmentLoaderComponentNgFactory = i1.ɵccf("assessment-loader", i3.AssessmentLoaderComponent, View_AssessmentLoaderComponent_Host_0, {}, {}, []);
18
+ export { AssessmentLoaderComponentNgFactory as AssessmentLoaderComponentNgFactory };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50Lm5nZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvYXNzZXNzbWVudC1waWNrZXIvYXNzZXNzbWVudC1sb2FkZXIvYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50Lm5nZmFjdG9yeS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvYXNzZXNzbWVudC1waWNrZXIvYXNzZXNzbWVudC1sb2FkZXIvYXNzZXNzbWVudC1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztvRUNBQSw2R0FZTSxLQVhGLGtHQVVNLEtBVEYsNEdBRU0sS0FERiw4RkFBeUIsS0FFN0IsMEdBRU0sS0FERiwrRkFBMEIsS0FFOUIsNEdBRU0sS0FERiwrRkFBMEI7MkVBVHRDLHVOQVlNLEdBWjRCLHNGQUEwQyxHQUE1RSxZQVlNLEVBWjRCLFNBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaTAgZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pMC5Db21wb25lbnRGYWN0b3J5O1xuIiwiPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1pdGVtXCIgKm5nRm9yPVwibGV0IGRhdGEgb2YgWzEsIDEsIDEsIDEsIDEsIDEsIDFdXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNyLW5vXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBuYW1lXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXJcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIGFjdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1 @@
1
+ {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[],"lifecycleHooks":[0]},"isComponent":true,"selector":"assessment-loader","exportAs":null,"inputs":{},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":1,"members":[]},"rendererType":{"__symbol":2,"members":[]},"componentFactory":{"__symbol":3,"members":[]}}}],"symbols":[{"__symbol":0,"name":"AssessmentLoaderComponent","filePath":"./assessment-loader.component"},{"__symbol":1,"name":"View_AssessmentLoaderComponent_0","filePath":"./assessment-loader.component.ngfactory"},{"__symbol":2,"name":"RenderType_AssessmentLoaderComponent","filePath":"./assessment-loader.component.ngfactory"},{"__symbol":3,"name":"AssessmentLoaderComponentNgFactory","filePath":"./assessment-loader.component.ngfactory"}]}
@@ -0,0 +1,283 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { cloneDeep } from 'lodash';
3
+ import { AuthService } from '../../../workflow-services/auth.service';
4
+ import { AssessmentService } from './assessment.service';
5
+ export class AssessmentPickerComponent {
6
+ constructor(assessmentService, auth) {
7
+ this.assessmentService = assessmentService;
8
+ this.auth = auth;
9
+ this.animation = false;
10
+ this.subList = false;
11
+ this.isEdit = false;
12
+ this.openedCategory = [];
13
+ this.assessmentPayload = {
14
+ search_title: "",
15
+ page_no: "1",
16
+ state: "ACTIVE",
17
+ search_text: '',
18
+ alphabet_filter: ''
19
+ };
20
+ this.dataPerPage = 0;
21
+ this.assessmentCategory = {
22
+ data: [],
23
+ totalPage: 0,
24
+ totalRecords: 0,
25
+ start_value: 0,
26
+ end_value: 0,
27
+ currentPage: 0
28
+ };
29
+ this.isLoader = false;
30
+ this.isDeleted = false;
31
+ this.searchAssessments = '';
32
+ this.isPreview = false;
33
+ this.selectedAssessmentData = [];
34
+ this.onAssessmentSelect = new EventEmitter();
35
+ this.cancelAssessment = new EventEmitter();
36
+ this.selectedAssessmentArr = [];
37
+ this.selectedAssessmentCategoriesIds = [];
38
+ this.selectedAssessmentIds = [];
39
+ this.selectedAssessment = [];
40
+ this.dataPerPage = 30;
41
+ }
42
+ set setSelected(value) {
43
+ if (value && (value === null || value === void 0 ? void 0 : value.length)) {
44
+ this.selectedAssessmentArr = [...value];
45
+ //this.setCategoryAndAssessment();
46
+ this.selectedAssessmentArr.forEach((ele, index) => {
47
+ this.openedCategory.push(ele === null || ele === void 0 ? void 0 : ele.category_id);
48
+ // this.showSubList(index,ele?.category_id);
49
+ });
50
+ }
51
+ }
52
+ ngOnChanges(changes) {
53
+ console.log("changes ====>", changes, this.selectedAssessmentData, this.assessmentCategory);
54
+ }
55
+ ngOnInit() {
56
+ this.animation = true;
57
+ this.getAssessmentCategoryList();
58
+ setTimeout(() => {
59
+ this.animation = false;
60
+ }, 300);
61
+ }
62
+ onAssessmentSelected(event) {
63
+ this.selectedData = event;
64
+ }
65
+ preview(evt) {
66
+ this.assessmentService.getAssessmentQuestions(evt === null || evt === void 0 ? void 0 : evt.id).subscribe({
67
+ next: (res) => {
68
+ console.log("res", res);
69
+ this.auth.previewPanel.next(true);
70
+ this.isPreview = true;
71
+ this.previewQuestionData = res;
72
+ }
73
+ });
74
+ }
75
+ previewBack() {
76
+ this.isPreview = false;
77
+ this.previewQuestionData = {};
78
+ this.auth.previewPanel.next(false);
79
+ }
80
+ /**
81
+ *
82
+ * @param index : Accept index of elementPosition
83
+ *
84
+ */
85
+ showSubList(index, id) {
86
+ console.log("this.openedCategorydasasfsa ==>", this.openedCategory, index, id);
87
+ if (this.openedCategory.includes(id)) {
88
+ this.openedCategory = this.openedCategory.filter(ele => ele !== id);
89
+ }
90
+ else {
91
+ this.openedCategory.push(id);
92
+ this.getAssessmentList(id);
93
+ }
94
+ console.log("this.openedCategory ==>", this.openedCategory);
95
+ return this.openedCategory;
96
+ }
97
+ expandCategory(categoryId) {
98
+ var _a, _b;
99
+ const index = (_b = (_a = this.assessmentCategory) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.findIndex((ele) => ele.id === categoryId);
100
+ if (this.openedCategory.includes(categoryId) && this.assessmentCategory.data[index].assessmentData) {
101
+ this.openedCategory = this.openedCategory.filter(ele => ele !== categoryId);
102
+ }
103
+ else {
104
+ this.openedCategory.push(categoryId);
105
+ this.getAssessmentList(categoryId);
106
+ }
107
+ }
108
+ // TODO: Pagination
109
+ /**
110
+ *
111
+ * @param event : page number that has been selected
112
+ */
113
+ onPageSelection(event) {
114
+ this.openedCategory = [];
115
+ console.log("111");
116
+ this.assessmentPayload.page_no = event.toString();
117
+ this.getAssessmentCategoryList();
118
+ }
119
+ // TODO: Search
120
+ /**
121
+ *
122
+ * @param search : search text
123
+ */
124
+ onAssessmentSearch(search) {
125
+ this.openedCategory = [];
126
+ console.log("222");
127
+ this.assessmentPayload.page_no = "1";
128
+ this.assessmentPayload.search_title = search;
129
+ this.assessmentPayload.search_text = search;
130
+ this.getAssessmentCategoryList();
131
+ }
132
+ // TODO: Filter by alphabet
133
+ /**
134
+ *
135
+ * @param event : Assessment category filter of Alphabet
136
+ */
137
+ onAlphabetSelected(event) {
138
+ this.openedCategory = [];
139
+ console.log("333");
140
+ this.assessmentPayload.page_no = "1";
141
+ this.assessmentPayload.alphabet_filter = event;
142
+ this.assessmentPayload.search_text = '';
143
+ this.getAssessmentCategoryList();
144
+ }
145
+ // TODO: Call API method
146
+ getAssessmentCategoryList() {
147
+ this.isLoader = true;
148
+ this.assessmentService.getAssessmentCategory(this.assessmentPayload).subscribe((res) => {
149
+ var _a;
150
+ this.assessmentCategory = res;
151
+ if ((_a = this.selectedAssessmentArr) === null || _a === void 0 ? void 0 : _a.length) {
152
+ // this.selectedAssessmentArr = [... new Set(this.selectedAssessmentArr)]
153
+ this.selectedAssessmentArr.forEach((ele) => {
154
+ const index = res.data.findIndex((assessment) => assessment.id === ele.category_id);
155
+ this.expandCategory(ele.category_id);
156
+ });
157
+ // this.selectedAssessmentArr.forEach((ele:any,index:any) => {
158
+ // this.openedCategory.push(ele?.category_id);
159
+ // this.showSubList(index,ele?.category_id);
160
+ // })
161
+ }
162
+ this.isLoader = false;
163
+ });
164
+ }
165
+ // TODO: Call Sub data API method
166
+ /**
167
+ *
168
+ * @param id : Assessment category id
169
+ */
170
+ getAssessmentList(id) {
171
+ console.log("asss", id);
172
+ const payload = {
173
+ search_title: "",
174
+ };
175
+ this.assessmentService.getAssessmentList(payload, id).subscribe((res) => {
176
+ var _a, _b, _c;
177
+ const index = (_b = (_a = this.assessmentCategory) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.findIndex((ele) => ele.id === id);
178
+ console.log("indexer", index, this.assessmentCategory);
179
+ if (index > -1) {
180
+ this.assessmentCategory.data[index].assessmentData = [...new Set(res)];
181
+ }
182
+ console.log("ass");
183
+ if ((_c = this.selectedAssessmentArr) === null || _c === void 0 ? void 0 : _c.length) {
184
+ this.setCategoryAndAssessment();
185
+ const index = this.selectedAssessmentArr.findIndex((ele) => ele.category_id === id);
186
+ // if(index !== -1) {
187
+ // this.selectedAssessmentArr[index].assessmentIds = this.selectedAssessmentArr[index].assessmentIds.map((ele: any) => {
188
+ // ele = res.find((data: any) => data.id === ele);
189
+ // return ele;
190
+ // });
191
+ // }
192
+ }
193
+ });
194
+ }
195
+ /**
196
+ * #### Description
197
+ * Selects item or deselect a itme
198
+ * @param evt
199
+ * @param payload
200
+ */
201
+ selectAssessment(evt, payload, category) {
202
+ var _a, _b;
203
+ if ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) {
204
+ console.log("selected", this.selectedAssessmentArr);
205
+ const index = this.selectedAssessmentArr.findIndex((ele) => ele.category_id === category.id);
206
+ if (index > -1) {
207
+ const currentCategoryAssessment = this.selectedAssessmentArr[index].assessmentIds;
208
+ currentCategoryAssessment.push(payload);
209
+ this.selectedAssessmentArr[index].assessmentIds = this.uniqueByProp(currentCategoryAssessment, 'id');
210
+ this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
211
+ this.setCategoryAndAssessment();
212
+ }
213
+ else {
214
+ this.selectedAssessmentArr.push({
215
+ category_id: category.id,
216
+ assessmentIds: [payload]
217
+ });
218
+ this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
219
+ this.setCategoryAndAssessment();
220
+ }
221
+ }
222
+ else {
223
+ const index = this.selectedAssessmentArr.findIndex((ele) => ele.category_id === category.id);
224
+ if (index > -1) {
225
+ this.selectedAssessmentArr[index].assessmentIds = this.selectedAssessmentArr[index].assessmentIds.filter((assessment) => assessment.id !== payload.id);
226
+ this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
227
+ this.setCategoryAndAssessment();
228
+ if (((_b = this.selectedAssessmentArr[index].assessmentIds) === null || _b === void 0 ? void 0 : _b.length) === 0) {
229
+ this.selectedAssessmentArr.splice(index);
230
+ this.selectedAssessmentArr = cloneDeep(this.selectedAssessmentArr);
231
+ this.setCategoryAndAssessment();
232
+ }
233
+ }
234
+ }
235
+ }
236
+ setCategoryAndAssessment() {
237
+ var _a;
238
+ this.selectedAssessmentCategoriesIds = (_a = this.selectedAssessmentArr.filter((cat) => { var _a; return ((_a = cat === null || cat === void 0 ? void 0 : cat.assessmentIds) === null || _a === void 0 ? void 0 : _a.length) > 0; })) === null || _a === void 0 ? void 0 : _a.map((ele) => ele === null || ele === void 0 ? void 0 : ele.category_id).flat();
239
+ this.selectedAssessmentIds = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele === null || ele === void 0 ? void 0 : ele.id)).flat();
240
+ this.selectedAssessment = this.selectedAssessmentArr.map((cat) => cat === null || cat === void 0 ? void 0 : cat.assessmentIds.map((ele) => ele)).flat();
241
+ }
242
+ // TODO: Display selected data in bottom floating bar with next enabled button having
243
+ // TODO: Send data in payload of create Responsibility form
244
+ save() {
245
+ this.onAssessmentSelect.emit(this.selectedAssessmentArr);
246
+ }
247
+ close() {
248
+ this.cancelAssessment.emit();
249
+ }
250
+ /**
251
+ * #### Description
252
+ *
253
+ * Returns the unique array of object based on unique key
254
+ * @param array
255
+ * @param key
256
+ * @returns
257
+ */
258
+ uniqueByProp(array, key) {
259
+ return Array.from(array
260
+ .reduce((acc, item) => (item && item[key] && acc.set(item[key], item),
261
+ acc), new Map())
262
+ .values());
263
+ }
264
+ }
265
+ AssessmentPickerComponent.decorators = [
266
+ { type: Component, args: [{
267
+ selector: 'assessment-picker',
268
+ template: "<app-preview *ngIf=\"isPreview\" [questionData]=\"previewQuestionData\" (previewBack)=\"previewBack()\"></app-preview>\r\n<div class=\"assessment-list\" [class.animate]=\"animation\">\r\n\r\n <ng-container >\r\n <div class=\"assessment-list-head\">\r\n <button class=\"back-btn\">\r\n <!-- <i class=\"icons\">&#xe91d;</i> -->\r\n </button>\r\n <h3 class=\"assessment-list-title\">Select an Assessment</h3>\r\n </div>\r\n <div class=\"assessment-list-body\">\r\n <div class=\"search-block\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input type=\"text\" [(ngModel)]=\"searchAssessments\" (change)=\"onAssessmentSearch($event.target.value)\" placeholder=\"Search Assessment Category\" />\r\n </div>\r\n <pagination\r\n\r\n [pageCount]=\"assessmentCategory?.totalPage\"\r\n [total]=\"assessmentCategory?.totalRecords\"\r\n [start]=\"assessmentCategory?.start_value\"\r\n [end]=\"assessmentCategory?.end_value\"\r\n [activeAlphabet]=\"''\"\r\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\r\n (selectedPage)=\"onPageSelection($event)\"\r\n ></pagination>\r\n <div *ngIf=\"assessmentCategory.data.length === 0 && !isLoader\" class=\"assessment-list-part\">\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Assessments Found.'\"></app-no-data>\r\n </div>\r\n <div *ngIf=\"assessmentCategory.data.length || isLoader\" class=\"assessment-list-part\">\r\n <div *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\" class=\"assessment-list-selected\">\r\n <div class=\"assessment-list-heading\">Assessment already selected for this responsibility</div>\r\n <div class=\"assessment-list-item\">\r\n <div class=\"table-row\">\r\n <div class=\"table-column serial disabled\">\r\n <app-cs-radio [disabled]=\"true\" class=\"disabled\" [checked]=\"true\" [readonly]=\"true\"></app-cs-radio>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"selectedAssessment?.assessmentDetails?.assessment_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.assessmentDetails?.assessment_name}}</div>\r\n <div class=\"within-part\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{selectedAssessment?.category_details?.category_name + (selectedAssessment?.category_details?.parent_tree ? ' > ' + selectedAssessment?.category_details?.parent_tree : '')}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{selectedAssessment?.assessmentDetails?.questions}} {{selectedAssessment?.assessmentDetails?.questions > 1 ? 'Questions': 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(selectedAssessment?.assessmentDetails)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe90c;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"assessment-list-heading\">Select an Assessment for this responsibility</div>\r\n\r\n <!--\r\n Assessment category list\r\n active class is used for highlighting opened element\r\n -->\r\n <ng-container *ngIf=\"!isLoader\">\r\n <div *ngFor=\"let data of assessmentCategory.data; let i = index;\" class=\"assessment-list-item\" [class.active]=\"openedCategory.includes(data?.id) || data.id === selectedAssessment?.category_id\">\r\n <div class=\"table-row main-list\" (click)=\"expandCategory(data?.id)\" [class.disabled]=\"data?.assessmentcount < 1\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sr-no' + i\" class=\"sr-no\" [appTooltip]=\"i + 1\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}</div>\r\n </div>\r\n <div class=\"table-column name\">\r\n <div class=\"name-inner\">\r\n <div class=\"value\" [appTooltip]=\"data.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.category_name}}</div>\r\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\r\n <span class=\"within-box\">Within</span>\r\n <span class=\"value\" [appTooltip]=\"data.parent_tree\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{data?.parent_tree}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-column action\">\r\n <button [id]=\"'arrow' + i\" class=\"arrow\" [class.disabled] = \"data?.assessmentcount < 1\" [disabled]=\"data?.assessmentcount < 1\">\r\n <i *ngIf=\"!openedCategory.includes(data?.id)\" class=\"icons\">&#xe970;</i>\r\n <i *ngIf=\"openedCategory.includes(data?.id)\" class=\"icons\">&#xe9e8;</i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Assessment list start from here -->\r\n <div *ngIf=\"openedCategory.includes(data?.id)\" class=\"sub-list\">\r\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\r\n <div class=\"table-row\" *ngFor=\"let assessment of data.assessmentData; let j = index\" [class.active]=\"(selectedAssessmentData |selectedAssessment: data.id).includes(assessment.id)\">\r\n <div class=\"table-column serial\">\r\n <div [id]=\"'sub-sr-no'+ i+j\" class=\"sr-no active\" appTooltip=\"{{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\r\n {{dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)}}.{{j + 1}}\r\n <!-- <app-cs-radio name=\"assessment\" [value]=\"assessment.id\" [checked]=\"assessment?.id === selectedAssessment?.assessment_id && data?.id === selectedAssessment?.category_id\"\r\n (checkedEvent)=\"setAssessment(data, assessment)\"></app-cs-radio> -->\r\n <!-- (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\" -->\r\n\r\n <vui-checkbox [checked]=\"(selectedAssessmentIds).includes(assessment.id)\" (change)=\"selectAssessment($event,assessment, data)\"></vui-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"table-column sub-name\">\r\n <div class=\"value\" [appTooltip]=\"'Mission and message, communications to external audiences'\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{assessment?.assessment_name}}</div>\r\n </div>\r\n <div class=\"table-column question\">\r\n <div class=\"label\">{{assessment?.questions}} {{assessment?.questions > 1 ? 'Questions' : 'Question'}}</div>\r\n <div class=\"buttons\">\r\n <button class=\"action-btn\" (click)=\"preview(assessment)\"><i class=\"icons\">&#xeae5;</i> Preview</button>\r\n <!-- <button class=\"action-btn\"><i class=\"icons\">&#xe9ba;</i> Edit</button> -->\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-sub-loader *ngIf=\"!data.assessmentData?.length\"></assessment-sub-loader>\r\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- Loader loading isLoader -->\r\n <assessment-loader *ngIf=\"isLoader\"></assessment-loader>\r\n </div>\r\n <!-- No data image -->\r\n <app-no-data *ngIf=\"!assessmentCategory.data.length && !isLoader\" [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"'No Data to Display'\"></app-no-data>\r\n </div>\r\n <!--\r\n bottom floating bar which includes cancel, next button\r\n closing tab\r\n -->\r\n\r\n\r\n <vui-floating-bar (closeEvent)=\"save()\" (closeList)=\"close()\">\r\n <div class=\"counter\" *ngIf=\"selectedAssessment?.length\" appPopover (click)=\"assessmentCount.popover()\"\r\n placement=\"left\">{{selectedAssessment?.length}}</div>\r\n <div class=\"name\">\r\n <span *ngIf=\"selectedAssessment?.length === 1\">Assessment selected</span>\r\n <span *ngIf=\"selectedAssessment?.length > 1\">Assessments selected</span>\r\n </div>\r\n <app-popover #assessmentCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedAssessment; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <!-- <i class=\"icons\"\r\n (click)=\"selectAssessment({target:{checked:false}},element)\">&#xe90d;</i> -->\r\n {{element?.assessment_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n\r\n </vui-floating-bar>\r\n\r\n </ng-container>\r\n</div>\r\n",
269
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .assessment-list{background:#fff;border-top:3px solid #1e5dd3;position:fixed;top:0;right:500px;bottom:0;left:0;z-index:1}::ng-deep .assessment-list.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 .assessment-list-head{background:#fbfbfb;height:42px;padding:0 18px;display:flex;align-items:center;border:1px solid #f1f1f1;border-right:none}::ng-deep .assessment-list-head button.back-btn{background:transparent;border-radius:0;border:0;color:#161b2f;font-size:16px;padding:0;margin:0 8px 0 0}::ng-deep .assessment-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .assessment-list-close{background:transparent;border:none;outline:none;cursor:pointer;color:#000;font-size:12px;display:inline-block;padding:0}::ng-deep .assessment-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 112px)}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:44px;line-height:24px;padding:10px 15px 10px 40px;outline:none;border:1px solid #7475763f;border-radius:4px;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input::-moz-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:-ms-input-placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input::placeholder{font-weight:400}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 228px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-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 .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no vui-checkbox label.checkbox-item{position:unset}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-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 .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-right:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{width:86px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no vui-checkbox,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no vui-checkbox{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li vui-checkbox{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li vui-checkbox .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.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}@-webkit-keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes animate-right{0%{transform:translateX(100%)}to{transform:translateX(0)}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .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}.action-list ul.action-item li .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}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}"]
270
+ },] }
271
+ ];
272
+ AssessmentPickerComponent.ctorParameters = () => [
273
+ { type: AssessmentService },
274
+ { type: AuthService }
275
+ ];
276
+ AssessmentPickerComponent.propDecorators = {
277
+ isEdit: [{ type: Input }],
278
+ setSelected: [{ type: Input, args: ['selectedAssessment',] }],
279
+ selectedAssessmentData: [{ type: Input }],
280
+ onAssessmentSelect: [{ type: Output }],
281
+ cancelAssessment: [{ type: Output }]
282
+ };
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctcHJvZ3JhbS9jcmVhdGUtcHJvZ3JhbS11aS9hc3Nlc3NtZW50LXBpY2tlci9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQXFEcEMsWUFDVSxpQkFBb0MsRUFDcEMsSUFBaUI7UUFEakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBdEQzQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDUCxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLG1CQUFjLEdBQWtCLEVBQUUsQ0FBQztRQUNuQyxzQkFBaUIsR0FBRztZQUNsQixZQUFZLEVBQUMsRUFBRTtZQUNmLE9BQU8sRUFBQyxHQUFHO1lBQ1gsS0FBSyxFQUFDLFFBQVE7WUFDZCxXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUE7UUFFRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQix1QkFBa0IsR0FBTztZQUN2QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxDQUFDO1lBQ1osWUFBWSxFQUFFLENBQUM7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TUFBTTsrQkFFTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9hc3Nlc3NtZW50LnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXNzZXNzbWVudC1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3Nlc3NtZW50LXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXNzZXNzbWVudC1waWNrZXIuY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXNzbWVudFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnk7XHJcbiAgc3ViTGlzdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzRWRpdCA9IGZhbHNlXHJcbiAgb3BlbmVkQ2F0ZWdvcnk6IEFycmF5PG51bWJlcj4gPSBbXTtcclxuICBhc3Nlc3NtZW50UGF5bG9hZCA9IHtcclxuICAgIHNlYXJjaF90aXRsZTpcIlwiLFxyXG4gICAgcGFnZV9ubzpcIjFcIixcclxuICAgIHN0YXRlOlwiQUNUSVZFXCIsXHJcbiAgICBzZWFyY2hfdGV4dDogJycsXHJcbiAgICBhbHBoYWJldF9maWx0ZXI6ICcnXHJcbiAgfVxyXG5cclxuICBkYXRhUGVyUGFnZSA9IDA7XHJcblxyXG4gIGFzc2Vzc21lbnRDYXRlZ29yeTogYW55ID17XHJcbiAgICBkYXRhOiBbXSxcclxuICAgIHRvdGFsUGFnZTogMCxcclxuICAgIHRvdGFsUmVjb3JkczogMCxcclxuICAgIHN0YXJ0X3ZhbHVlOiAwLFxyXG4gICAgZW5kX3ZhbHVlOiAwLFxyXG4gICAgY3VycmVudFBhZ2U6IDBcclxuICB9O1xyXG4gIGlzTG9hZGVyID0gZmFsc2VcclxuXHJcblxyXG4gIEBJbnB1dCgnc2VsZWN0ZWRBc3Nlc3NtZW50Jykgc2V0IHNldFNlbGVjdGVkKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBbLi4udmFsdWVdO1xyXG4gICAgIC8vdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1N1Ykxpc3QoaW5kZXgsZWxlPy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgaXNEZWxldGVkID0gZmFsc2U7XHJcblxyXG4gIHNlYXJjaEFzc2Vzc21lbnRzID0gJyc7XHJcbiAgcHJldmlld1F1ZXN0aW9uRGF0YSAhOiBhbnk7XHJcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRBc3Nlc3NtZW50RGF0YTogYW55ID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBvbkFzc2Vzc21lbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBzZWxlY3RlZEFzc2Vzc21lbnRBcnI6IGFueSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXNzZXNzbWVudFNlcnZpY2U6IEFzc2Vzc21lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoIDpBdXRoU2VydmljZVxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZGF0YVBlclBhZ2UgPSAzMDtcclxuICB9XHJcblxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZXMgPT09PT5cIiwgY2hhbmdlcywgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnREYXRhLCB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIG9uQXNzZXNzbWVudFNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBwcmV2aWV3KGV2dDphbnkpe1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJyZXNcIixyZXMpO1xyXG4gICAgICAgICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KHRydWUpXHJcbiAgICAgICAgICB0aGlzLmlzUHJldmlldyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnByZXZpZXdRdWVzdGlvbkRhdGEgPSByZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByZXZpZXdCYWNrKCl7XHJcbiAgICB0aGlzLmlzUHJldmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoZmFsc2UpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBpbmRleCA6IEFjY2VwdCBpbmRleCBvZiBlbGVtZW50UG9zaXRpb25cclxuICAgKlxyXG4gICAqL1xyXG4gIHNob3dTdWJMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5vcGVuZWRDYXRlZ29yeWRhc2FzZnNhID09PlwiLCB0aGlzLm9wZW5lZENhdGVnb3J5LGluZGV4LGlkKVxyXG4gICAgaWYodGhpcy5vcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpZCkpIHtcclxuICAgICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IHRoaXMub3BlbmVkQ2F0ZWdvcnkuZmlsdGVyKGVsZSA9PiBlbGUgIT09IGlkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoaWQpXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMub3BlbmVkQ2F0ZWdvcnkgPT0+XCIsIHRoaXMub3BlbmVkQ2F0ZWdvcnkpXHJcbiAgICByZXR1cm4gIHRoaXMub3BlbmVkQ2F0ZWdvcnlcclxuICB9XHJcblxyXG5cclxuICBleHBhbmRDYXRlZ29yeShjYXRlZ29yeUlkOmFueSl7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGNhdGVnb3J5SWQpO1xyXG4gICAgIGlmKHRoaXMub3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoY2F0ZWdvcnlJZCkgJiYgIHRoaXMuYXNzZXNzbWVudENhdGVnb3J5LmRhdGFbaW5kZXhdLmFzc2Vzc21lbnREYXRhICl7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoZWxlID0+IGVsZSAhPT0gY2F0ZWdvcnlJZCk7XHJcbiAgICAgfWVsc2V7XHJcblxyXG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5LnB1c2goY2F0ZWdvcnlJZCk7XHJcbiAgICAgIHRoaXMuZ2V0QXNzZXNzbWVudExpc3QoY2F0ZWdvcnlJZClcclxuICAgICB9XHJcbiAgfVxyXG4gIC8vIFRPRE86IFBhZ2luYXRpb25cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBldmVudCA6IHBhZ2UgbnVtYmVyIHRoYXQgaGFzIGJlZW4gc2VsZWN0ZWRcclxuICAgKi9cclxuICBvblBhZ2VTZWxlY3Rpb24oZXZlbnQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5vcGVuZWRDYXRlZ29yeSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coXCIxMTFcIilcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyA9IGV2ZW50LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IFNlYXJjaFxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlYXJjaCA6IHNlYXJjaCB0ZXh0XHJcbiAgICovXHJcbiAgb25Bc3Nlc3NtZW50U2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhcIjIyMlwiKVxyXG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gXCIxXCI7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90aXRsZSA9IHNlYXJjaDtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSBzZWFyY2g7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IEZpbHRlciBieSBhbHBoYWJldFxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGV2ZW50IDogQXNzZXNzbWVudCBjYXRlZ29yeSBmaWx0ZXIgb2YgQWxwaGFiZXRcclxuICovXHJcbiAgb25BbHBoYWJldFNlbGVjdGVkKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKFwiMzMzXCIpXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSBcIjFcIjtcclxuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuYWxwaGFiZXRfZmlsdGVyID0gZXZlbnQ7XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gJyc7XHJcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBBUEkgbWV0aG9kXHJcbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnkodGhpcy5hc3Nlc3NtZW50UGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeSA9IHJlcztcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyPy5sZW5ndGgpIHtcclxuICAgICAgIC8vIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyID0gIFsuLi4gbmV3IFNldCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycildXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuXHJcblxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSByZXMuZGF0YS5maW5kSW5kZXgoKGFzc2Vzc21lbnQ6IGFueSkgPT4gYXNzZXNzbWVudC5pZCA9PT0gZWxlLmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kQ2F0ZWdvcnkoZWxlLmNhdGVnb3J5X2lkKTtcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5mb3JFYWNoKChlbGU6YW55LGluZGV4OmFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgdGhpcy5vcGVuZWRDYXRlZ29yeS5wdXNoKGVsZT8uY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIC8vICAgdGhpcy5zaG93U3ViTGlzdChpbmRleCxlbGU/LmNhdGVnb3J5X2lkKTtcclxuICAgICAgICAvLyB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzogQ2FsbCBTdWIgZGF0YSBBUEkgbWV0aG9kXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIDogQXNzZXNzbWVudCBjYXRlZ29yeSBpZFxyXG4gICAqL1xyXG4gIGdldEFzc2Vzc21lbnRMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYXNzc1wiLGlkKVxyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgc2VhcmNoX3RpdGxlOlwiXCIsXHJcbiAgICB9XHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRMaXN0KHBheWxvYWQsIGlkKS5zdWJzY3JpYmUoKHJlczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuYXNzZXNzbWVudENhdGVnb3J5Py5kYXRhPy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT09IGlkKTtcclxuICAgICAgY29uc29sZS5sb2coXCJpbmRleGVyXCIsaW5kZXgsdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkpXHJcbiAgICAgIGlmKGluZGV4ID4gLTEgKXtcclxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xyXG4gICAgICB9XHJcbiAgICAgXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXNzXCIsKVxyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5jYXRlZ29yeV9pZCA9PT0gaWQpO1xyXG4gICAgICAgIC8vIGlmKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMubWFwKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBlbGUgPSByZXMuZmluZCgoZGF0YTogYW55KSA9PiBkYXRhLmlkID09PSBlbGUpO1xyXG4gICAgICAgIC8vICAgICByZXR1cm4gZWxlO1xyXG4gICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHM6YW55ID0gW107XHJcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50SWRzOmFueSA9IFtdO1xyXG4gIHNlbGVjdGVkQXNzZXNzbWVudDphbnkgPSBbXTtcclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiAjIyMjIERlc2NyaXB0aW9uXHJcbiAgICogU2VsZWN0cyBpdGVtIG9yIGRlc2VsZWN0IGEgaXRtZVxyXG4gICAqIEBwYXJhbSBldnRcclxuICAgKiBAcGFyYW0gcGF5bG9hZFxyXG4gICAqL1xyXG4gIHNlbGVjdEFzc2Vzc21lbnQoZXZ0OiBhbnksIHBheWxvYWQ6IGFueSwgY2F0ZWdvcnk6IGFueSkge1xyXG4gICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCl7XHJcbiAgICAgY29uc29sZS5sb2coXCJzZWxlY3RlZFwiLHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyKVxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpIHtcclxuICAgICBjb25zdCAgY3VycmVudENhdGVnb3J5QXNzZXNzbWVudCA9ICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcztcclxuICAgICBjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LnB1c2gocGF5bG9hZCk7XHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChjdXJyZW50Q2F0ZWdvcnlBc3Nlc3NtZW50LCdpZCcpXHJcbiAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIucHVzaCh7XHJcbiAgICAgICAgY2F0ZWdvcnlfaWQ6IGNhdGVnb3J5LmlkLFxyXG4gICAgICAgIGFzc2Vzc21lbnRJZHM6IFtwYXlsb2FkXVxyXG4gICAgICB9KVxyXG4gICAgIFxyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyciA9IGNsb25lRGVlcCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycikgXHJcbiAgICAgIHRoaXMuc2V0Q2F0ZWdvcnlBbmRBc3Nlc3NtZW50KCk7XHJcbiAgICB9XHJcbiAgIH1lbHNle1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY2F0ZWdvcnlfaWQgPT09IGNhdGVnb3J5LmlkKTtcclxuICAgIGlmKGluZGV4ID4gLTEpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycltpbmRleF0uYXNzZXNzbWVudElkcyA9IHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50QXJyW2luZGV4XS5hc3Nlc3NtZW50SWRzLmZpbHRlcigoYXNzZXNzbWVudDogYW55KSA9PiBhc3Nlc3NtZW50LmlkICE9PSBwYXlsb2FkLmlkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgICB0aGlzLnNldENhdGVnb3J5QW5kQXNzZXNzbWVudCgpO1xyXG4gICAgICBpZiggdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnJbaW5kZXhdLmFzc2Vzc21lbnRJZHM/Lmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5zcGxpY2UoaW5kZXgpO1xyXG4gICAgICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIgPSBjbG9uZURlZXAodGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIpIFxyXG4gICAgICAgdGhpcy5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICB9XHJcblxyXG59XHJcblxyXG5zZXRDYXRlZ29yeUFuZEFzc2Vzc21lbnQoKXtcclxuICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudENhdGVnb3JpZXNJZHMgPSB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFyci5maWx0ZXIoKGNhdDphbnkpID0+IGNhdD8uYXNzZXNzbWVudElkcz8ubGVuZ3RoID4gMCk/Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5jYXRlZ29yeV9pZCkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50SWRzID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGU/LmlkKSkuZmxhdCgpO1xyXG4gIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50ID0gdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnRBcnIubWFwKChjYXQ6YW55KSA9PiBjYXQ/LmFzc2Vzc21lbnRJZHMubWFwKChlbGU6YW55KSA9PiBlbGUpKS5mbGF0KCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xyXG5cclxuICAvLyBUT0RPOiBTZW5kIGRhdGEgaW4gcGF5bG9hZCBvZiBjcmVhdGUgUmVzcG9uc2liaWxpdHkgZm9ybVxyXG5cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5vbkFzc2Vzc21lbnRTZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkQXNzZXNzbWVudEFycilcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBc3Nlc3NtZW50LmVtaXQoKTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAqICMjIyMgRGVzY3JpcHRpb25cclxuICpcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheVxyXG4gKiBAcGFyYW0ga2V5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gICAgdW5pcXVlQnlQcm9wKGFycmF5OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICAgICAucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICAgIGl0ZW0gJiYgaXRlbVtrZXldICYmIGFjYy5zZXQoaXRlbVtrZXldLCBpdGVtKSxcclxuICAgICAgICAgICAgICBhY2NcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgbmV3IE1hcCgpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudmFsdWVzKClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19