vcomply-workflow-engine 2.3.0 → 2.3.16

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 +4293 -308
  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 +206 -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 +4023 -249
  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,240 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ export class UserGroupListComponent {
3
+ constructor() {
4
+ this.save = new EventEmitter();
5
+ this.cancel = new EventEmitter();
6
+ this.panelTitle = 'Select User(s)';
7
+ this.singleSelect = false;
8
+ this.fieldType = '';
9
+ this.searchKey = '';
10
+ this.usersList = [];
11
+ this.groupsList = [];
12
+ this.fetchUserData = new EventEmitter();
13
+ this.nonRemovableUserIds = [];
14
+ this.selectedUsers = [];
15
+ this.selectedUserIds = [];
16
+ this.allUsersIds = [];
17
+ this.allUserSelected = false;
18
+ this.allUserSelectedDisabled = false;
19
+ this.nonRemovableGroupIds = [];
20
+ this.selectedGroups = [];
21
+ this.selectedGroupIds = [];
22
+ this.allGroupsIds = [];
23
+ this.allGroupSelected = false;
24
+ this.allGroupSelectedDisabled = false;
25
+ this.userCurrentPage = 1;
26
+ this.groupCurrentPage = 1;
27
+ this.animation = true;
28
+ this.currentTab = 'USER';
29
+ }
30
+ set setUserList(value) {
31
+ if (value && (value === null || value === void 0 ? void 0 : value.length)) {
32
+ this.usersList = [...value];
33
+ this.allUsersIds = this.usersList.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
34
+ this.allUserSelectedStatus();
35
+ this.setUserListInit();
36
+ }
37
+ }
38
+ set setSelectedUser(value) {
39
+ this.selectedUsers = this.uniqueByProp([...this.selectedUsers, ...value], 'member_id');
40
+ this.selectedUserIds = this.selectedUsers.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
41
+ this.allUserSelectedStatus();
42
+ this.setUserListInit();
43
+ }
44
+ setUserListInit() {
45
+ if (this.userCurrentPage === 1) {
46
+ const selected = this.selectedUsers;
47
+ const otherUser = this.usersList.filter((ele) => !this.selectedUserIds.includes(ele === null || ele === void 0 ? void 0 : ele.member_id));
48
+ console.log("fsfsfsf", selected, otherUser);
49
+ this.usersList = this.uniqueByProp([...selected === null || selected === void 0 ? void 0 : selected.sort(), ...otherUser === null || otherUser === void 0 ? void 0 : otherUser.sort()], 'member_id');
50
+ }
51
+ }
52
+ allUserSelectedStatus() {
53
+ var _a, _b, _c;
54
+ this.allUserSelected = this.allUsersIds.sort().toString() === ((_a = this.selectedUserIds.sort()) === null || _a === void 0 ? void 0 : _a.toString());
55
+ this.allUserSelectedDisabled = (this.allUsersIds.sort().toString() === ((_b = this.selectedUserIds.sort()) === null || _b === void 0 ? void 0 : _b.toString())) && this.allUsersIds.sort().toString() === ((_c = this.nonRemovableUserIds.sort()) === null || _c === void 0 ? void 0 : _c.toString());
56
+ }
57
+ set setGroupList(value) {
58
+ if (value && (value === null || value === void 0 ? void 0 : value.length)) {
59
+ this.groupsList = [...value];
60
+ this.allGroupsIds = this.groupsList.map((ele) => ele === null || ele === void 0 ? void 0 : ele.group_id);
61
+ this.allGroupSelectedStatus();
62
+ this.setGroupListInit();
63
+ }
64
+ }
65
+ set setSelectedGroup(value) {
66
+ this.selectedGroups = this.uniqueByProp([...this.selectedGroups, ...value], 'group_id');
67
+ this.selectedGroupIds = this.selectedGroups.map((ele) => ele === null || ele === void 0 ? void 0 : ele.group_id);
68
+ this.allGroupSelectedStatus();
69
+ this.setGroupListInit();
70
+ }
71
+ setGroupListInit() {
72
+ if (this.userCurrentPage === 1) {
73
+ const selected = this.selectedGroups;
74
+ const otherGroup = this.groupsList.filter((ele) => !this.selectedGroupIds.includes(ele === null || ele === void 0 ? void 0 : ele.group_id));
75
+ console.log("fsfsfsf", selected, otherGroup);
76
+ this.groupsList = this.uniqueByProp([...selected === null || selected === void 0 ? void 0 : selected.sort(), ...otherGroup === null || otherGroup === void 0 ? void 0 : otherGroup.sort()], 'group_id');
77
+ }
78
+ }
79
+ allGroupSelectedStatus() {
80
+ var _a, _b, _c, _d, _e, _f;
81
+ this.allGroupSelected = ((_b = (_a = this.allGroupsIds) === null || _a === void 0 ? void 0 : _a.sort()) === null || _b === void 0 ? void 0 : _b.toString()) === ((_d = (_c = this.selectedGroupIds) === null || _c === void 0 ? void 0 : _c.sort()) === null || _d === void 0 ? void 0 : _d.toString());
82
+ this.allGroupSelectedDisabled = (this.allGroupsIds.sort().toString() === ((_e = this.selectedGroupIds.sort()) === null || _e === void 0 ? void 0 : _e.toString())) && this.allGroupsIds.sort().toString() === ((_f = this.nonRemovableGroupIds.sort()) === null || _f === void 0 ? void 0 : _f.toString());
83
+ }
84
+ userPageChange(page) {
85
+ this.userCurrentPage = page;
86
+ this.fetchUserData.emit({ page, searchKey: this.searchKey });
87
+ }
88
+ /**
89
+ * #### Description
90
+ * Selects item or deselect a itme
91
+ * @param evt
92
+ * @param payload
93
+ */
94
+ selectItem(evt, payload) {
95
+ var _a;
96
+ console.log("from sel", evt);
97
+ ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true ? this.manipulateSelectedUser('ADD', payload) : this.manipulateSelectedUser('DELETE', payload);
98
+ }
99
+ selectItemRadio(evt, payload) {
100
+ var _a;
101
+ if ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) {
102
+ this.selectedUsers = [];
103
+ this.manipulateSelectedUser('ADD', payload);
104
+ }
105
+ }
106
+ /**
107
+ * #### Description
108
+ *
109
+ * Manipulates selected items in role list
110
+ * @param action :'ADD' | 'DELETE'
111
+ * @param payload
112
+ */
113
+ manipulateSelectedUser(action, payload) {
114
+ if (action === 'ADD') {
115
+ this.selectedUsers = this.uniqueByProp([...this.selectedUsers, ...[payload]], 'member_id');
116
+ this.selectedUserIds = this.selectedUsers.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
117
+ }
118
+ else if (action === 'DELETE') {
119
+ let index = this.selectedUsers.findIndex((ele) => (ele === null || ele === void 0 ? void 0 : ele.member_id) === (payload === null || payload === void 0 ? void 0 : payload.member_id));
120
+ if (index > -1) {
121
+ this.selectedUsers = this.selectedUsers.filter((ele) => (ele === null || ele === void 0 ? void 0 : ele.member_id) !== (payload === null || payload === void 0 ? void 0 : payload.member_id));
122
+ this.selectedUserIds = this.selectedUserIds.filter((ele) => ele !== (payload === null || payload === void 0 ? void 0 : payload.member_id));
123
+ }
124
+ }
125
+ this.allUserSelectedStatus();
126
+ }
127
+ selectAllUser(evt) {
128
+ var _a;
129
+ if (((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true) {
130
+ this.selectedUsers = this.usersList;
131
+ this.selectedUserIds = this.usersList.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
132
+ }
133
+ else {
134
+ this.selectedUsers = this.usersList.filter((ele) => this.nonRemovableUserIds.includes(ele === null || ele === void 0 ? void 0 : ele.member_id));
135
+ this.selectedUserIds = this.selectedUsers.map((ele) => ele === null || ele === void 0 ? void 0 : ele.member_id);
136
+ }
137
+ this.allUserSelectedStatus();
138
+ }
139
+ /**
140
+ * #### Description
141
+ * Selects item or deselect a itme
142
+ * @param evt
143
+ * @param payload
144
+ */
145
+ selectGroup(evt, payload) {
146
+ var _a;
147
+ ((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true ? this.manipulateSelectedGroup('ADD', payload) : this.manipulateSelectedGroup('DELETE', payload);
148
+ }
149
+ /**
150
+ * #### Description
151
+ *
152
+ * Manipulates selected items in role list
153
+ * @param action :'ADD' | 'DELETE'
154
+ * @param payload
155
+ */
156
+ manipulateSelectedGroup(action, payload) {
157
+ if (action === 'ADD') {
158
+ this.selectedGroups = this.uniqueByProp([...this.selectedGroups, ...[payload]], 'group_id');
159
+ this.selectedGroupIds = this.selectedGroups.map((ele) => ele === null || ele === void 0 ? void 0 : ele.group_id);
160
+ }
161
+ else if (action === 'DELETE') {
162
+ let index = this.selectedGroups.findIndex((ele) => (ele === null || ele === void 0 ? void 0 : ele.group_id) === (payload === null || payload === void 0 ? void 0 : payload.group_id));
163
+ if (index > -1) {
164
+ this.selectedGroups = this.selectedGroups.filter((ele) => (ele === null || ele === void 0 ? void 0 : ele.group_id) !== (payload === null || payload === void 0 ? void 0 : payload.group_id));
165
+ this.selectedGroupIds = this.selectedGroupIds.filter((ele) => ele !== (payload === null || payload === void 0 ? void 0 : payload.group_id));
166
+ }
167
+ }
168
+ this.allGroupSelectedStatus();
169
+ }
170
+ selectAllGroup(evt) {
171
+ var _a;
172
+ if (((_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.checked) === true) {
173
+ this.selectedGroups = this.groupsList;
174
+ this.selectedGroupIds = this.groupsList.map((ele) => ele === null || ele === void 0 ? void 0 : ele.group_id);
175
+ }
176
+ else {
177
+ this.selectedGroups = this.groupsList.filter((ele) => this.nonRemovableGroupIds.includes(ele === null || ele === void 0 ? void 0 : ele.group_id));
178
+ this.selectedGroupIds = this.selectedGroups.map((ele) => ele === null || ele === void 0 ? void 0 : ele.group_id);
179
+ }
180
+ this.allGroupSelectedStatus();
181
+ }
182
+ ngOnInit() {
183
+ this.animation = true;
184
+ setTimeout(() => {
185
+ this.animation = false;
186
+ }, 300);
187
+ }
188
+ switchTab(tab) {
189
+ this.currentTab = tab;
190
+ this.searchKey = '';
191
+ }
192
+ saveList() {
193
+ this.save.emit({ users: this.selectedUsers, groups: this.selectedGroups });
194
+ }
195
+ closeList() {
196
+ this.cancel.emit();
197
+ }
198
+ //
199
+ /**
200
+ * #### Description
201
+ *
202
+ * Returns the unique array of object based on unique key
203
+ * @param array
204
+ * @param key
205
+ * @returns
206
+ */
207
+ uniqueByProp(array, key) {
208
+ return Array.from(array
209
+ .reduce((acc, item) => (item && item[key] && acc.set(item[key], item),
210
+ acc), new Map())
211
+ .values());
212
+ }
213
+ }
214
+ UserGroupListComponent.decorators = [
215
+ { type: Component, args: [{
216
+ selector: 'user-group-list',
217
+ template: "<div class=\"user-group-list\" [class.animate]=\"animation\">\r\n <div class=\"user-group-list-head\">\r\n <h3 class=\"user-group-list-title\">{{panelTitle}}</h3>\r\n </div>\r\n <div class=\"user-group-list-body\">\r\n <app-loader-inline *ngIf=\"loading\"></app-loader-inline>\r\n <div class=\"search-block vx-mb-2\">\r\n <i class=\"icons\">&#xe90b;</i>\r\n <input [(ngModel)]=\"searchKey\" type=\"text\" placeholder=\"{{currentTab === 'USER' ? 'Search User' :'Search Group'}}\" />\r\n </div>\r\n\r\n <div class=\"user-group-list-tab vx-d-flex vx-align-center vx-mb-2\" *ngIf=\"groupEnabled\">\r\n <button (click)=\"switchTab('USER')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'USER'\">USERS \r\n <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{userListInfo?.total_items || usersList?.length}}</span></button>\r\n <button (click)=\"switchTab('GROUP')\" class=\"tab-btn vx-fs-11 vx-fw-600 vx-paragraph-txt vx-tt-uppercase vx-p-0 vx-pb-2 vx-m-0 vx-d-flex vx-align-center vx-lh-4\" [class.active]=\"currentTab === 'GROUP'\">GROUPS <span class=\"vx-pl-1 vx-pr-1 vx-d-flex vx-align-center vx-justify-center vx-ml-2 vx-lh-4\">{{groupListInfo?.total_items || groupsList?.length}}</span></button>\r\n </div>\r\n\r\n\r\n\r\n <ng-container *ngIf=\"currentTab === 'USER'\">\r\n <ng-container *ngIf=\"(usersList|search:searchKey:'member_name') as users\">\r\n <vui-pagination *ngIf=\"userListInfo?.total_pages > 1 && usersList?.length !== userListInfo?.total_items\" [currentPage]=\"userCurrentPage\" [totalPage]=\"userListInfo?.total_pages\" (pageChanged)=\"userPageChange($event)\"></vui-pagination>\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"users?.length > 0;else nouser\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox *ngIf=\"!singleSelect\" #user [checked]=\"allUserSelected\" [disabled]=\"allUserSelectedDisabled\" (change)=\"selectAllUser($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!user?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let user of users \">\r\n <vui-checkbox *ngIf=\"!singleSelect\" (change)=\"selectItem($event,user)\" [disabled]=\"nonRemovableUserIds?.includes(user?.member_id)\" [checked]=\"selectedUserIds.includes(user?.member_id)\"><div class=\"user-name\" [appTooltip]=\"user?.member_email\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{user?.member_name}}</div></vui-checkbox>\r\n <app-cs-radio *ngIf=\"singleSelect\" [name]=\"'radio-selector'\" (checkedEvent)=\"selectItemRadio($event,user)\"\r\n [name]=\"'rx-category'\" [checked]=\"selectedUserIds.includes(user?.member_id)\"\r\n [appTooltip]=\"user?.member_email\" placement=\"bottom-left\"\r\n delay=\"0\" [tooltipMandatory]=\"true\">\r\n {{user?.member_name}}\r\n </app-cs-radio>\r\n </li>\r\n \r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nouser>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Users found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"currentTab === 'GROUP'\">\r\n <ng-container *ngIf=\"(groupsList|search:searchKey:'group_name') as groups\">\r\n <div class=\"user-group-list-mid\" [class.with-pagination]=\"true\">\r\n <ng-container *ngIf=\"groups?.length > 0; else nogroup\">\r\n <div class=\"user-list-select vx-mb-2\">\r\n <vui-checkbox #group [checked]=\"allGroupSelected\" [disabled]=\"allGroupSelectedDisabled\" (change)=\"selectAllGroup($event)\">\r\n <div class=\"user-name vx-fs-12 vx-fw-600 vx-label-txt vx-tt-none\">{{!group?.checked ? 'Select All' : 'Deselect All'}}</div>\r\n </vui-checkbox>\r\n </div>\r\n <div class=\"user-list-item\">\r\n <ul class=\"vx-m-0 vx-p-0 vx-d-flex\">\r\n <li class=\"vx-mb-4\" *ngFor=\"let group of groupsList\">\r\n <vui-checkbox (change)=\"selectGroup($event,group)\" [disabled]=\"nonRemovableGroupIds?.includes(group?.group_id)\" [checked]=\"selectedGroupIds.includes(group?.group_id)\">\r\n <div class=\"user-name\">{{group?.group_name}} \r\n <span class=\"counter vx-fs-9 vx-fw-600 vx-pl-1 vx-pr-1 vx-lh-3 vx-tt-uppercase vx-ml-2\">{{group?.member_count}} {{group?.member_count > 1 ? 'USERS' :'USER'}}</span></div>\r\n </vui-checkbox>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-template #nogroup>\r\n <app-no-data [noDataImage]=\"'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/search-data.svg'\" [noDataText]=\"(searchKey?.length > 0 ?'No match found.':'No Groups found.')\"></app-no-data>\r\n </ng-template>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n \r\n </div>\r\n\r\n <div class=\"user-group-list-footer\">\r\n <vui-floating-bar *ngIf=\"!singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"counter\" *ngIf=\"selectedUsers?.length\" appPopover (click)=\"userCount.popover()\" \r\n placement=\"left\">{{selectedUsers?.length}}</div>\r\n <div class=\"name\"> \r\n <span *ngIf=\"selectedUsers?.length === 1\">User {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n <span *ngIf=\"selectedUsers?.length > 1\">Users {{selectedGroups?.length > 0 ?' & ':'selected'}}</span>\r\n </div>\r\n\r\n <div class=\"counter group\" *ngIf=\"selectedGroups?.length\" appPopover (click)=\"groupCount.popover()\" \r\n placement=\"left\">{{selectedGroups?.length}}</div>\r\n <div class=\"name\" > \r\n <span *ngIf=\"selectedGroups?.length === 1\">Group selected</span>\r\n <span *ngIf=\"selectedGroups?.length > 1\">Groups selected</span>\r\n </div>\r\n <app-popover #userCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedUsers; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableUserIds.includes(element?.member_id)\"\r\n (click)=\"selectItem({target:{checked:false}},element)\">&#xe90d;</i>\r\n {{element?.member_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #groupCount [dontCloseonClick]=\"true\">\r\n <div class=\"action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let element of selectedGroups; let i =index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" *ngIf=\"!nonRemovableGroupIds.includes(element?.group_id)\"\r\n (click)=\"selectGroup({target:{checked:false}},element)\">&#xe90d;</i>\r\n {{element?.group_name}}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </vui-floating-bar>\r\n <vui-floating-bar *ngIf=\"singleSelect\" (closeEvent)=\"saveList()\" (closeList)=\"closeList()\">\r\n <div class=\"chip\" *ngIf=\"selectedUsers?.length\" >\r\n <ng-container>\r\n <i class=\"icons\" (click)=\"selectItem({target:{checked:false}},selectedUsers[0])\">&#xe90d;</i>\r\n <span class=\"value\"> {{selectedUsers[0]?.member_name}}</span>\r\n </ng-container>\r\n </div>\r\n </vui-floating-bar>\r\n </div>\r\n \r\n</div>\r\n",
218
+ 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\");::ng-deep .user-group-list{background:#fff;position:fixed;top:0;right:500px;bottom:0;left:0;border-top:3px solid #1e5dd3}::ng-deep .user-group-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 .user-group-list-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 .user-group-list-title{color:#161b2f;font-size:15px;font-weight:500;margin:0!important;padding:0;line-height:21px}::ng-deep .user-group-list-body{padding:24px 40px 24px 36px;height:calc(100vh - 124px)}::ng-deep .user-group-list-body .search-block{position:relative}::ng-deep .user-group-list-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 .user-group-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .user-group-list-body .search-block i{position:absolute;left:17px;font-size:12px;font-weight:400;top:17px;pointer-events:none;color:#f1f1f1}::ng-deep .user-group-list-mid{width:calc(100% + .75rem);height:calc(100vh - 15.5rem);overflow:auto;padding-right:.75rem}::ng-deep .user-group-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .user-group-list-mid.with-pagination{height:calc(100vh - 17.5rem)}::ng-deep .user-group-list-mid .selected-owners{border-bottom:1px solid #dbdbdb}::ng-deep .user-group-list-mid .user-list-select{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkbox,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item .checkmark,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:11px!important;font-weight:600!important;text-transform:uppercase!important;width:100%}::ng-deep .user-group-list-mid .user-list-select vui-checkbox-indeterminate .checkbox-item span.value .user-name,::ng-deep .user-group-list-mid .user-list-select vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul{list-style-type:none;align-items:flex-start;flex-wrap:wrap}::ng-deep .user-group-list-mid .user-list-item ul li{width:50%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox{width:calc(100% - 4.5rem)}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item{position:relative;padding-left:1.5rem;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkbox{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item .checkmark{position:absolute!important;left:0;top:0}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span{justify-content:unset!important;margin:0!important}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value{color:#747576!important;font-size:12px!important;width:100%}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .user-group-list-mid .user-list-item ul li vui-checkbox .checkbox-item span.value .counter{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .user-group-list-tab{border-bottom:1px solid #f1f1f1}::ng-deep .user-group-list-tab button.tab-btn{background:transparent;border-radius:0;border:none;border-bottom:.1875rem solid transparent;margin-right:2.5rem!important}::ng-deep .user-group-list-tab button.tab-btn span{border-radius:1.25rem;color:#74757680;min-width:1.5rem}::ng-deep .user-group-list-tab button.active{pointer-events:none}::ng-deep .user-group-list-tab button.active.tab-btn{border-color:#1e5dd3;color:#1e5dd3}::ng-deep .user-group-list-tab button.active.tab-btn span{background:#1e5dd3;color:#fff;font-weight:500}.group{background:#1e5dd3!important;border-color:#1e5dd3!important}.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)}}"]
219
+ },] }
220
+ ];
221
+ UserGroupListComponent.ctorParameters = () => [];
222
+ UserGroupListComponent.propDecorators = {
223
+ save: [{ type: Output }],
224
+ cancel: [{ type: Output }],
225
+ groupEnabled: [{ type: Input }],
226
+ panelTitle: [{ type: Input }],
227
+ singleSelect: [{ type: Input }],
228
+ fieldType: [{ type: Input }],
229
+ userListInfo: [{ type: Input }],
230
+ groupListInfo: [{ type: Input }],
231
+ fetchUserData: [{ type: Output }],
232
+ nonRemovableUserIds: [{ type: Input }],
233
+ nonRemovableGroupIds: [{ type: Input }],
234
+ loading: [{ type: Input }],
235
+ setUserList: [{ type: Input, args: ['userlist',] }],
236
+ setSelectedUser: [{ type: Input, args: ['selectedUsers',] }],
237
+ setGroupList: [{ type: Input, args: ['groupList',] }],
238
+ setSelectedGroup: [{ type: Input, args: ['selectedGroups',] }]
239
+ };
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXByb2dyYW0vY3JlYXRlLXByb2dyYW0tdWkvdXNlci1ncm91cC1saXN0L3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU8vRSxNQUFNLE9BQU8sc0JBQXNCO0lBdU1qQztRQXJNVSxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU3QixlQUFVLEdBQUUsZ0JBQWdCLENBQUM7UUFDN0IsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFFLEVBQUUsQ0FBQTtRQUN0QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBS1gsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBDLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUN2QyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFRLEVBQUUsQ0FBQztRQUN0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4Qiw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFHdkIseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQ3hDLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUMzQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxL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SSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQztZQUM3QyxHQUFHLENBQ0osRUFDRCxJQUFJLEdBQUcsRUFBRSxDQUNWO2FBQ0EsTUFBTSxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7OztZQXZQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsaW5TQUErQzs7YUFFaEQ7Ozs7bUJBR0UsTUFBTTtxQkFDTixNQUFNOzJCQUNOLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBTUwsS0FBSzs0QkFDTCxLQUFLOzRCQUVMLE1BQU07a0NBRU4sS0FBSzttQ0FRTCxLQUFLO3NCQVNQLEtBQUs7MEJBQ0gsS0FBSyxTQUFDLFVBQVU7OEJBVWhCLEtBQUssU0FBQyxlQUFlOzJCQXNCckIsS0FBSyxTQUFDLFdBQVc7K0JBVWpCLEtBQUssU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VzZXItZ3JvdXAtbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZ3JvdXAtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ncm91cC1saXN0LmNvbXBvbmVudC5sZXNzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJHcm91cExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGdyb3VwRW5hYmxlZCAhOiBmYWxzZTtcclxuICBASW5wdXQoKSBwYW5lbFRpdGxlID0nU2VsZWN0IFVzZXIocyknO1xyXG4gIEBJbnB1dCgpIHNpbmdsZVNlbGVjdCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9JydcclxuICBzZWFyY2hLZXkgPSAnJztcclxuXHJcbiAgdXNlcnNMaXN0OiBhbnkgPSBbXTtcclxuICBncm91cHNMaXN0OiBhbnkgPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdXNlckxpc3RJbmZvICE6IGFueTtcclxuICBASW5wdXQoKSBncm91cExpc3RJbmZvICE6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIGZldGNoVXNlckRhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIG5vblJlbW92YWJsZVVzZXJJZHM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkVXNlcnM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkVXNlcklkczogYW55ID0gW107XHJcbiAgYWxsVXNlcnNJZHM6IGFueSA9IFtdO1xyXG4gIGFsbFVzZXJTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGFsbFVzZXJTZWxlY3RlZERpc2FibGVkID0gZmFsc2U7XHJcblxyXG5cclxuICBASW5wdXQoKSBub25SZW1vdmFibGVHcm91cElkczogYW55ID0gW107XHJcbiAgc2VsZWN0ZWRHcm91cHM6IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkR3JvdXBJZHM6IGFueSA9IFtdO1xyXG4gIGFsbEdyb3Vwc0lkczogYW55ID0gW107XHJcbiAgYWxsR3JvdXBTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGFsbEdyb3VwU2VsZWN0ZWREaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICB1c2VyQ3VycmVudFBhZ2UgPSAxO1xyXG4gIGdyb3VwQ3VycmVudFBhZ2UgPSAxO1xyXG5ASW5wdXQoKSBsb2FkaW5nICE6Ym9vbGVhbjtcclxuICBASW5wdXQoJ3VzZXJsaXN0Jykgc2V0IHNldFVzZXJMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXNlcnNMaXN0ID0gWy4uLnZhbHVlXTtcclxuICAgICAgdGhpcy5hbGxVc2Vyc0lkcyA9IHRoaXMudXNlcnNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICAgICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgICAgdGhpcy5zZXRVc2VyTGlzdEluaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoJ3NlbGVjdGVkVXNlcnMnKSBzZXQgc2V0U2VsZWN0ZWRVc2VyKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkVXNlcnMsIC4uLnZhbHVlXSwgJ21lbWJlcl9pZCcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQpO1xyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgIHRoaXMuc2V0VXNlckxpc3RJbml0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc2V0VXNlckxpc3RJbml0KCkge1xyXG4gICAgaWYgKHRoaXMudXNlckN1cnJlbnRQYWdlID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZFVzZXJzO1xyXG4gICAgICBjb25zdCBvdGhlclVzZXIgPSB0aGlzLnVzZXJzTGlzdC5maWx0ZXIoKGVsZTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZFVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmc2ZzZnNmXCIsIHNlbGVjdGVkLCBvdGhlclVzZXIpXHJcbiAgICAgIHRoaXMudXNlcnNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyVXNlcj8uc29ydCgpXSwgJ21lbWJlcl9pZCcpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFsbFVzZXJTZWxlY3RlZFN0YXR1cygpIHtcclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkID0gdGhpcy5hbGxVc2Vyc0lkcy5zb3J0KCkudG9TdHJpbmcoKSA9PT0gdGhpcy5zZWxlY3RlZFVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpO1xyXG4gICAgdGhpcy5hbGxVc2VyU2VsZWN0ZWREaXNhYmxlZCA9ICh0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkVXNlcklkcy5zb3J0KCk/LnRvU3RyaW5nKCkgKSAmJiB0aGlzLmFsbFVzZXJzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLm5vblJlbW92YWJsZVVzZXJJZHMuc29ydCgpPy50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgQElucHV0KCdncm91cExpc3QnKSBzZXQgc2V0R3JvdXBMaXN0KHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBzTGlzdCA9IFsuLi52YWx1ZV07XHJcbiAgICAgIHRoaXMuYWxsR3JvdXBzSWRzID0gdGhpcy5ncm91cHNMaXN0Lm1hcCgoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG4gICAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgICAgdGhpcy5zZXRHcm91cExpc3RJbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCdzZWxlY3RlZEdyb3VwcycpIHNldCBzZXRTZWxlY3RlZEdyb3VwKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnVuaXF1ZUJ5UHJvcChbLi4udGhpcy5zZWxlY3RlZEdyb3VwcywgLi4udmFsdWVdLCAnZ3JvdXBfaWQnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHcm91cElkcyA9IHRoaXMuc2VsZWN0ZWRHcm91cHMubWFwKChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKTtcclxuICAgIHRoaXMuc2V0R3JvdXBMaXN0SW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JvdXBMaXN0SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnVzZXJDdXJyZW50UGFnZSA9PT0gMSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRHcm91cHM7XHJcbiAgICAgIGNvbnN0IG90aGVyR3JvdXAgPSB0aGlzLmdyb3Vwc0xpc3QuZmlsdGVyKChlbGU6IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWRHcm91cElkcy5pbmNsdWRlcyhlbGU/Lmdyb3VwX2lkKSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZnNmc2ZzZlwiLCBzZWxlY3RlZCwgb3RoZXJHcm91cClcclxuICAgICAgdGhpcy5ncm91cHNMaXN0ID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnNlbGVjdGVkPy5zb3J0KCksIC4uLm90aGVyR3JvdXA/LnNvcnQoKV0sICdncm91cF9pZCcpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFsbEdyb3VwU2VsZWN0ZWRTdGF0dXMoKSB7XHJcbiAgICB0aGlzLmFsbEdyb3VwU2VsZWN0ZWQgPSB0aGlzLmFsbEdyb3Vwc0lkcz8uc29ydCgpPy50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHM/LnNvcnQoKT8udG9TdHJpbmcoKTtcclxuICAgIHRoaXMuYWxsR3JvdXBTZWxlY3RlZERpc2FibGVkID0gKHRoaXMuYWxsR3JvdXBzSWRzLnNvcnQoKS50b1N0cmluZygpID09PSB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpICkgJiYgdGhpcy5hbGxHcm91cHNJZHMuc29ydCgpLnRvU3RyaW5nKCkgPT09IHRoaXMubm9uUmVtb3ZhYmxlR3JvdXBJZHMuc29ydCgpPy50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcblxyXG4gIHVzZXJQYWdlQ2hhbmdlKHBhZ2U6IGFueSkge1xyXG4gICAgdGhpcy51c2VyQ3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgdGhpcy5mZXRjaFVzZXJEYXRhLmVtaXQoeyBwYWdlLCBzZWFyY2hLZXk6IHRoaXMuc2VhcmNoS2V5IH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0IFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIFxyXG4gICAqL1xyXG4gIHNlbGVjdEl0ZW0oZXZ0OiBhbnksIHBheWxvYWQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJmcm9tIHNlbFwiLGV2dClcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRVc2VyKCdBREQnLCBwYXlsb2FkKSA6IHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignREVMRVRFJywgcGF5bG9hZClcclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW1SYWRpbyhldnQ6YW55LHBheWxvYWQ6YW55KXtcclxuICAgIGlmKGV2dD8udGFyZ2V0Py5jaGVja2VkKXtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gW107XHJcbiAgICAgIHRoaXMubWFuaXB1bGF0ZVNlbGVjdGVkVXNlcignQUREJywgcGF5bG9hZClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICMjIyMgRGVzY3JpcHRpb25cclxuICAgKiBcclxuICAgKiBNYW5pcHVsYXRlcyBzZWxlY3RlZCBpdGVtcyBpbiByb2xlIGxpc3RcclxuICAgKiBAcGFyYW0gYWN0aW9uIDonQUREJyB8ICdERUxFVEUnXHJcbiAgICogQHBhcmFtIHBheWxvYWQgXHJcbiAgICovXHJcbiAgbWFuaXB1bGF0ZVNlbGVjdGVkVXNlcihhY3Rpb246ICdBREQnIHwgJ0RFTEVURScsIHBheWxvYWQ6IGFueSkge1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ0FERCcpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51bmlxdWVCeVByb3AoWy4uLnRoaXMuc2VsZWN0ZWRVc2VycywgLi4uW3BheWxvYWRdXSwgJ21lbWJlcl9pZCcpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9IHRoaXMuc2VsZWN0ZWRVc2Vycy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZClcclxuICAgIH0gZWxzZSBpZiAoYWN0aW9uID09PSAnREVMRVRFJykge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkVXNlcnMuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlPy5tZW1iZXJfaWQgPT09IHBheWxvYWQ/Lm1lbWJlcl9pZCk7XHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy5zZWxlY3RlZFVzZXJzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZT8ubWVtYmVyX2lkICE9PSBwYXlsb2FkPy5tZW1iZXJfaWQpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRVc2VySWRzID0gdGhpcy5zZWxlY3RlZFVzZXJJZHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9PSBwYXlsb2FkPy5tZW1iZXJfaWQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYWxsVXNlclNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG4gIHNlbGVjdEFsbFVzZXIoZXZ0OmFueSl7XHJcbiAgICBpZihldnQ/LnRhcmdldD8uY2hlY2tlZCA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VycyA9IHRoaXMudXNlcnNMaXN0O1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcklkcyA9ICB0aGlzLnVzZXJzTGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZT8ubWVtYmVyX2lkKTtcclxuICBcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJzID0gdGhpcy51c2Vyc0xpc3QuZmlsdGVyKChlbGU6YW55KSA9PiB0aGlzLm5vblJlbW92YWJsZVVzZXJJZHMuaW5jbHVkZXMoZWxlPy5tZW1iZXJfaWQpKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXJJZHMgPSB0aGlzLnNlbGVjdGVkVXNlcnMubWFwKChlbGU6YW55KSA9PiBlbGU/Lm1lbWJlcl9pZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFsbFVzZXJTZWxlY3RlZFN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFNlbGVjdHMgaXRlbSBvciBkZXNlbGVjdCBhIGl0bWVcclxuICAgKiBAcGFyYW0gZXZ0IFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIFxyXG4gICAqL1xyXG4gIHNlbGVjdEdyb3VwKGV2dDogYW55LCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGV2dD8udGFyZ2V0Py5jaGVja2VkID09PSB0cnVlID8gdGhpcy5tYW5pcHVsYXRlU2VsZWN0ZWRHcm91cCgnQUREJywgcGF5bG9hZCkgOiB0aGlzLm1hbmlwdWxhdGVTZWxlY3RlZEdyb3VwKCdERUxFVEUnLCBwYXlsb2FkKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIyMjIyBEZXNjcmlwdGlvblxyXG4gICAqIFxyXG4gICAqIE1hbmlwdWxhdGVzIHNlbGVjdGVkIGl0ZW1zIGluIHJvbGUgbGlzdFxyXG4gICAqIEBwYXJhbSBhY3Rpb24gOidBREQnIHwgJ0RFTEVURSdcclxuICAgKiBAcGFyYW0gcGF5bG9hZCBcclxuICAgKi9cclxuICBtYW5pcHVsYXRlU2VsZWN0ZWRHcm91cChhY3Rpb246ICdBREQnIHwgJ0RFTEVURScsIHBheWxvYWQ6IGFueSkge1xyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ0FERCcpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IHRoaXMudW5pcXVlQnlQcm9wKFsuLi50aGlzLnNlbGVjdGVkR3JvdXBzLCAuLi5bcGF5bG9hZF1dLCAnZ3JvdXBfaWQnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoKGVsZTogYW55KSA9PiBlbGU/Lmdyb3VwX2lkKVxyXG4gICAgfSBlbHNlIGlmIChhY3Rpb24gPT09ICdERUxFVEUnKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRHcm91cHMuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlPy5ncm91cF9pZCA9PT0gcGF5bG9hZD8uZ3JvdXBfaWQpO1xyXG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBzLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZT8uZ3JvdXBfaWQgIT09IHBheWxvYWQ/Lmdyb3VwX2lkKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSB0aGlzLnNlbGVjdGVkR3JvdXBJZHMuZmlsdGVyKChlbGU6IGFueSkgPT4gZWxlICE9PSBwYXlsb2FkPy5ncm91cF9pZClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG4gIHNlbGVjdEFsbEdyb3VwKGV2dDphbnkpe1xyXG4gICAgaWYoZXZ0Py50YXJnZXQ/LmNoZWNrZWQgPT09IHRydWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBzID0gdGhpcy5ncm91cHNMaXN0O1xyXG4gICAgICB0aGlzLnNlbGVjdGVkR3JvdXBJZHMgPSAgdGhpcy5ncm91cHNMaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlPy5ncm91cF9pZCk7XHJcbiAgXHJcbiAgICB9ZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHcm91cHMgPSB0aGlzLmdyb3Vwc0xpc3QuZmlsdGVyKChlbGU6YW55KSA9PiB0aGlzLm5vblJlbW92YWJsZUdyb3VwSWRzLmluY2x1ZGVzKGVsZT8uZ3JvdXBfaWQpKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEdyb3VwSWRzID0gdGhpcy5zZWxlY3RlZEdyb3Vwcy5tYXAoKGVsZTphbnkpID0+IGVsZT8uZ3JvdXBfaWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbGxHcm91cFNlbGVjdGVkU3RhdHVzKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFuaW1hdGlvbiA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG4gIGN1cnJlbnRUYWIgPSAnVVNFUidcclxuICBzd2l0Y2hUYWIodGFiOnN0cmluZyl7XHJcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI7XHJcbiAgICB0aGlzLnNlYXJjaEtleSA9ICcnXHJcbiAgfVxyXG5cclxuICBzYXZlTGlzdCgpIHtcclxuICAgIHRoaXMuc2F2ZS5lbWl0KHsgdXNlcnM6IHRoaXMuc2VsZWN0ZWRVc2VycywgZ3JvdXBzOiB0aGlzLnNlbGVjdGVkR3JvdXBzIH0pO1xyXG4gIH1cclxuICBjbG9zZUxpc3QoKSB7XHJcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvL1xyXG5cclxuICAvKipcclxuICogIyMjIyBEZXNjcmlwdGlvblxyXG4gKiBcclxuICogUmV0dXJucyB0aGUgdW5pcXVlIGFycmF5IG9mIG9iamVjdCBiYXNlZCBvbiB1bmlxdWUga2V5XHJcbiAqIEBwYXJhbSBhcnJheSBcclxuICogQHBhcmFtIGtleSBcclxuICogQHJldHVybnMgIFxyXG4gKi9cclxuICB1bmlxdWVCeVByb3AoYXJyYXk6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICBhcnJheVxyXG4gICAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgICAoYWNjOiBhbnksIGl0ZW06IGFueSkgPT4gKFxyXG4gICAgICAgICAgICBpdGVtICYmIGl0ZW1ba2V5XSAmJiBhY2Muc2V0KGl0ZW1ba2V5XSwgaXRlbSksXHJcbiAgICAgICAgICAgIGFjY1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIG5ldyBNYXAoKVxyXG4gICAgICAgIClcclxuICAgICAgICAudmFsdWVzKClcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==