vcomply-workflow-engine 0.2.2 → 1.0.2

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 (507) hide show
  1. package/bundles/vcomply-workflow-engine.umd.js +6561 -171
  2. package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
  3. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +18 -25
  4. package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngfactory.js +2 -2
  5. package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
  6. package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
  7. package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.js +333 -0
  8. package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.js +160 -0
  9. package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngsummary.json +1 -0
  10. package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.js +73 -0
  11. package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.js +39 -0
  12. package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngsummary.json +1 -0
  13. package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.js +27 -0
  14. package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.js +153 -0
  15. package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngsummary.json +1 -0
  16. package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.js +116 -0
  17. package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.js +116 -0
  18. package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngsummary.json +1 -0
  19. package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.js +165 -0
  20. package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.js +85 -0
  21. package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngsummary.json +1 -0
  22. package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.js +71 -0
  23. package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.js +17 -0
  24. package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngsummary.json +1 -0
  25. package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.js +35 -0
  26. package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.js +89 -0
  27. package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngsummary.json +1 -0
  28. package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.js +66 -0
  29. package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.js +72 -0
  30. package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngsummary.json +1 -0
  31. package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.js +18 -0
  32. package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.js +51 -0
  33. package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngsummary.json +1 -0
  34. package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.js +35 -0
  35. package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.js +104 -0
  36. package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngsummary.json +1 -0
  37. package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.js +15 -0
  38. package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.js +20 -0
  39. package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngsummary.json +1 -0
  40. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.js +15 -0
  41. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.js +17 -0
  42. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngsummary.json +1 -0
  43. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.js +15 -0
  44. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.js +17 -0
  45. package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngsummary.json +1 -0
  46. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.js +35 -0
  47. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.js +104 -0
  48. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngsummary.json +1 -0
  49. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.js +15 -0
  50. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.js +17 -0
  51. package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngsummary.json +1 -0
  52. package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.js +15 -0
  53. package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.js +17 -0
  54. package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngsummary.json +1 -0
  55. package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.js +15 -0
  56. package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.js +17 -0
  57. package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngsummary.json +1 -0
  58. package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.js +26 -0
  59. package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.js +60 -0
  60. package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngsummary.json +1 -0
  61. package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.js +15 -0
  62. package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.js +17 -0
  63. package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngsummary.json +1 -0
  64. package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.js +55 -0
  65. package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.js +51 -0
  66. package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngsummary.json +1 -0
  67. package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.js +15 -0
  68. package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.js +17 -0
  69. package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngsummary.json +1 -0
  70. package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.js +152 -0
  71. package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.js +205 -0
  72. package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngsummary.json +1 -0
  73. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.js +2 -0
  74. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.ngsummary.json +1 -0
  75. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.js +2 -0
  76. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.ngsummary.json +1 -0
  77. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.js +2 -0
  78. package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.ngsummary.json +1 -0
  79. package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.js +100 -0
  80. package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.js +119 -0
  81. package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngsummary.json +1 -0
  82. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.js +24 -0
  83. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.js +59 -0
  84. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngsummary.json +1 -0
  85. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.js +15 -0
  86. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.js +17 -0
  87. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngsummary.json +1 -0
  88. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.js +37 -0
  89. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.js +105 -0
  90. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngsummary.json +1 -0
  91. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.js +31 -0
  92. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.js +22 -0
  93. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngsummary.json +1 -0
  94. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.js +15 -0
  95. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.js +37 -0
  96. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngsummary.json +1 -0
  97. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.js +24 -0
  98. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.js +59 -0
  99. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngsummary.json +1 -0
  100. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.js +15 -0
  101. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.js +35 -0
  102. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngsummary.json +1 -0
  103. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.js +64 -0
  104. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.js +21 -0
  105. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngsummary.json +1 -0
  106. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.js +15 -0
  107. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.js +36 -0
  108. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngsummary.json +1 -0
  109. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.js +24 -0
  110. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.js +36 -0
  111. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngsummary.json +1 -0
  112. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.js +15 -0
  113. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.js +17 -0
  114. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngsummary.json +1 -0
  115. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.js +15 -0
  116. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.js +40 -0
  117. package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngsummary.json +1 -0
  118. package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.js +95 -0
  119. package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.js +102 -0
  120. package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngsummary.json +1 -0
  121. package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.js +22 -0
  122. package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.js +23 -0
  123. package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngsummary.json +1 -0
  124. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.js +18 -0
  125. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ngsummary.json +1 -0
  126. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.js +23 -0
  127. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ngsummary.json +1 -0
  128. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.js +17 -0
  129. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ngsummary.json +1 -0
  130. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.js +13 -0
  131. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ngsummary.json +1 -0
  132. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.js +12 -0
  133. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ngsummary.json +1 -0
  134. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.js +17 -0
  135. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ngsummary.json +1 -0
  136. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.js +12 -0
  137. package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ngsummary.json +1 -0
  138. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.js +28 -0
  139. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.js +22 -0
  140. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngsummary.json +1 -0
  141. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.js +15 -0
  142. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.js +17 -0
  143. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngsummary.json +1 -0
  144. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.js +31 -0
  145. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.js +81 -0
  146. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngsummary.json +1 -0
  147. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.js +31 -0
  148. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.js +19 -0
  149. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngsummary.json +1 -0
  150. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.js +23 -0
  151. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.js +20 -0
  152. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngsummary.json +1 -0
  153. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.js +15 -0
  154. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.js +37 -0
  155. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngsummary.json +1 -0
  156. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.js +24 -0
  157. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.js +60 -0
  158. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngsummary.json +1 -0
  159. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.js +24 -0
  160. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.js +60 -0
  161. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngsummary.json +1 -0
  162. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.js +28 -0
  163. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.js +22 -0
  164. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngsummary.json +1 -0
  165. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.js +15 -0
  166. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.js +35 -0
  167. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngsummary.json +1 -0
  168. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.js +15 -0
  169. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.js +36 -0
  170. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngsummary.json +1 -0
  171. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.js +18 -0
  172. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.js +17 -0
  173. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngsummary.json +1 -0
  174. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.js +15 -0
  175. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.js +17 -0
  176. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngsummary.json +1 -0
  177. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.js +15 -0
  178. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.js +40 -0
  179. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngsummary.json +1 -0
  180. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.js +67 -0
  181. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.js +90 -0
  182. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngsummary.json +1 -0
  183. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.js +90 -0
  184. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.js +29 -0
  185. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngsummary.json +1 -0
  186. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.js +15 -0
  187. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.js +17 -0
  188. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngsummary.json +1 -0
  189. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.js +15 -0
  190. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.js +17 -0
  191. package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngsummary.json +1 -0
  192. package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.js +20 -0
  193. package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.js +76 -0
  194. package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngsummary.json +1 -0
  195. package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.js +248 -0
  196. package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.js +109 -0
  197. package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngsummary.json +1 -0
  198. package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.js +35 -0
  199. package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.js +95 -0
  200. package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngsummary.json +1 -0
  201. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.js +56 -0
  202. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.js +108 -0
  203. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngsummary.json +1 -0
  204. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.js +153 -0
  205. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.js +130 -0
  206. package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngsummary.json +1 -0
  207. package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.js +123 -0
  208. package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.js +47 -0
  209. package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngsummary.json +1 -0
  210. package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.js +24 -0
  211. package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.js +97 -0
  212. package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngsummary.json +1 -0
  213. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.js +50 -0
  214. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.js +47 -0
  215. package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngsummary.json +1 -0
  216. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +424 -0
  217. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +222 -0
  218. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngsummary.json +1 -0
  219. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.js +86 -0
  220. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +37 -0
  221. package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngsummary.json +1 -0
  222. package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +636 -0
  223. package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.ngsummary.json +1 -0
  224. package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.js +48 -0
  225. package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.ngsummary.json +1 -0
  226. package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +543 -0
  227. package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.ngsummary.json +1 -0
  228. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +2 -2
  229. package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +29 -363
  230. package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
  231. package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
  232. package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.js +16 -0
  233. package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.js +12 -0
  234. package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngsummary.json +1 -0
  235. package/esm2015/lib/ui-kit/action-dialog/active/active.component.js +36 -0
  236. package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngfactory.js +25 -0
  237. package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngsummary.json +1 -0
  238. package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.js +38 -0
  239. package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.js +25 -0
  240. package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngsummary.json +1 -0
  241. package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.js +30 -0
  242. package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.js +25 -0
  243. package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngsummary.json +1 -0
  244. package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.js +32 -0
  245. package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.js +25 -0
  246. package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngsummary.json +1 -0
  247. package/esm2015/lib/ui-kit/dialog/dialog-config.js +3 -0
  248. package/esm2015/lib/ui-kit/dialog/dialog-config.ngsummary.json +1 -0
  249. package/esm2015/lib/ui-kit/dialog/dialog-injector.js +15 -0
  250. package/esm2015/lib/ui-kit/dialog/dialog-injector.ngsummary.json +1 -0
  251. package/esm2015/lib/ui-kit/dialog/dialog-ref.js +11 -0
  252. package/esm2015/lib/ui-kit/dialog/dialog-ref.ngsummary.json +1 -0
  253. package/esm2015/lib/ui-kit/dialog/dialog.component.js +90 -0
  254. package/esm2015/lib/ui-kit/dialog/dialog.component.ngfactory.js +29 -0
  255. package/esm2015/lib/ui-kit/dialog/dialog.component.ngsummary.json +1 -0
  256. package/esm2015/lib/ui-kit/dialog/dialog.module.js +16 -0
  257. package/esm2015/lib/ui-kit/dialog/dialog.module.ngfactory.js +14 -0
  258. package/esm2015/lib/ui-kit/dialog/dialog.module.ngsummary.json +1 -0
  259. package/esm2015/lib/ui-kit/dialog/dialog.service.js +60 -0
  260. package/esm2015/lib/ui-kit/dialog/dialog.service.ngsummary.json +1 -0
  261. package/esm2015/lib/ui-kit/dialog/insertion.directive.js +15 -0
  262. package/esm2015/lib/ui-kit/dialog/insertion.directive.ngsummary.json +1 -0
  263. package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.js +15 -0
  264. package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.js +23 -0
  265. package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngsummary.json +1 -0
  266. package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.js +17 -0
  267. package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.js +12 -0
  268. package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngsummary.json +1 -0
  269. package/esm2015/lib/ui-kit/formgroup/click-outside.directive.js +26 -0
  270. package/esm2015/lib/ui-kit/formgroup/click-outside.directive.ngsummary.json +1 -0
  271. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.js +26 -0
  272. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +30 -0
  273. package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -0
  274. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +30 -0
  275. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +30 -0
  276. package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -0
  277. package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.js +27 -0
  278. package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.js +20 -0
  279. package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngsummary.json +1 -0
  280. package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.js +14 -0
  281. package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.js +19 -0
  282. package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngsummary.json +1 -0
  283. package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.js +80 -0
  284. package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.js +89 -0
  285. package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngsummary.json +1 -0
  286. package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.js +29 -0
  287. package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.js +62 -0
  288. package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngsummary.json +1 -0
  289. package/esm2015/lib/ui-kit/formgroup/formgroup.module.js +41 -0
  290. package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngfactory.js +14 -0
  291. package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngsummary.json +1 -0
  292. package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.js +15 -0
  293. package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.ngsummary.json +1 -0
  294. package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.js +20 -0
  295. package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ngsummary.json +1 -0
  296. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +557 -0
  297. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.js +82 -0
  298. package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngsummary.json +1 -0
  299. package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +3 -3
  300. package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngfactory.js +1 -1
  301. package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +4 -1521
  302. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +20 -8
  303. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +62 -34
  304. package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
  305. package/esm2015/lib/workflow-engine.module.js +8 -1
  306. package/esm2015/lib/workflow-engine.module.ngfactory.js +36 -24
  307. package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
  308. package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
  309. package/esm2015/lib/workflow-risk/workflow-risk.component.js +3 -2
  310. package/esm2015/lib/workflow-services/add-risk.service.js +2 -1
  311. package/esm2015/lib/workflow-services/assessment.service.js +47 -1
  312. package/esm2015/lib/workflow-services/assessment.service.ngsummary.json +1 -1
  313. package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
  314. package/esm2015/vcomply-workflow-engine.js +160 -61
  315. package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
  316. package/fesm2015/vcomply-workflow-engine.js +6007 -112
  317. package/fesm2015/vcomply-workflow-engine.js.map +1 -1
  318. package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +117 -0
  319. package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.d.ts +1 -0
  320. package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +18 -0
  321. package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.d.ts +1 -0
  322. package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +10 -0
  323. package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.d.ts +1 -0
  324. package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +22 -0
  325. package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.d.ts +1 -0
  326. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +47 -0
  327. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.d.ts +1 -0
  328. package/lib/sharedComponents/assessment-editor/components/build/build.module.d.ts +2 -0
  329. package/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.d.ts +3 -0
  330. package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +11 -0
  331. package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.d.ts +1 -0
  332. package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +16 -0
  333. package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.d.ts +1 -0
  334. package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +6 -0
  335. package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.d.ts +1 -0
  336. package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +11 -0
  337. package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.d.ts +1 -0
  338. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +5 -0
  339. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.d.ts +1 -0
  340. package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +5 -0
  341. package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.d.ts +1 -0
  342. package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +5 -0
  343. package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.d.ts +1 -0
  344. package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +11 -0
  345. package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.d.ts +1 -0
  346. package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +5 -0
  347. package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.d.ts +1 -0
  348. package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +5 -0
  349. package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.d.ts +1 -0
  350. package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +5 -0
  351. package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.d.ts +1 -0
  352. package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +9 -0
  353. package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.d.ts +1 -0
  354. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +5 -0
  355. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.d.ts +1 -0
  356. package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +12 -0
  357. package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.d.ts +1 -0
  358. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +5 -0
  359. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.d.ts +1 -0
  360. package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +56 -0
  361. package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.d.ts +1 -0
  362. package/lib/sharedComponents/assessment-editor/components/errorInterface/error.d.ts +14 -0
  363. package/lib/sharedComponents/assessment-editor/components/errorInterface/question.d.ts +5 -0
  364. package/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.d.ts +6 -0
  365. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +24 -0
  366. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.d.ts +1 -0
  367. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +8 -0
  368. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.d.ts +1 -0
  369. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +5 -0
  370. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.d.ts +1 -0
  371. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +14 -0
  372. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.d.ts +1 -0
  373. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +9 -0
  374. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.d.ts +1 -0
  375. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +5 -0
  376. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.d.ts +1 -0
  377. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +8 -0
  378. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.d.ts +1 -0
  379. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +5 -0
  380. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.d.ts +1 -0
  381. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.d.ts +2 -0
  382. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.d.ts +3 -0
  383. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +5 -0
  384. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.d.ts +1 -0
  385. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +9 -0
  386. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.d.ts +1 -0
  387. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +5 -0
  388. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.d.ts +1 -0
  389. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +5 -0
  390. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.d.ts +1 -0
  391. package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +22 -0
  392. package/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.d.ts +1 -0
  393. package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +8 -0
  394. package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.d.ts +1 -0
  395. package/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.d.ts +4 -0
  396. package/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.d.ts +4 -0
  397. package/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.d.ts +4 -0
  398. package/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.d.ts +4 -0
  399. package/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.d.ts +4 -0
  400. package/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.d.ts +4 -0
  401. package/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.d.ts +4 -0
  402. package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +8 -0
  403. package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.d.ts +1 -0
  404. package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +5 -0
  405. package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.d.ts +1 -0
  406. package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +11 -0
  407. package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.d.ts +1 -0
  408. package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +8 -0
  409. package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.d.ts +1 -0
  410. package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +8 -0
  411. package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.d.ts +1 -0
  412. package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +5 -0
  413. package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.d.ts +1 -0
  414. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +7 -0
  415. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.d.ts +1 -0
  416. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +7 -0
  417. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.d.ts +1 -0
  418. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +8 -0
  419. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.d.ts +1 -0
  420. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +5 -0
  421. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.d.ts +1 -0
  422. package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +5 -0
  423. package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.d.ts +1 -0
  424. package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +6 -0
  425. package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.d.ts +1 -0
  426. package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +5 -0
  427. package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.d.ts +1 -0
  428. package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +5 -0
  429. package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.d.ts +1 -0
  430. package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +27 -0
  431. package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.d.ts +1 -0
  432. package/lib/sharedComponents/assessment-editor/components/preview/preview.module.d.ts +2 -0
  433. package/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.d.ts +3 -0
  434. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +5 -0
  435. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.d.ts +1 -0
  436. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +5 -0
  437. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.d.ts +1 -0
  438. package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +6 -0
  439. package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.d.ts +1 -0
  440. package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +28 -0
  441. package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.d.ts +1 -0
  442. package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +11 -0
  443. package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.d.ts +1 -0
  444. package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +16 -0
  445. package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.d.ts +1 -0
  446. package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +47 -0
  447. package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.d.ts +1 -0
  448. package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +35 -0
  449. package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.d.ts +1 -0
  450. package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +8 -0
  451. package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.d.ts +1 -0
  452. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +12 -0
  453. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.d.ts +1 -0
  454. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +64 -0
  455. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.d.ts +1 -0
  456. package/lib/sharedComponents/assessment-editor/create-assessment.module.d.ts +2 -0
  457. package/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.d.ts +3 -0
  458. package/lib/sharedComponents/assessment-editor/services/editor.service.d.ts +185 -0
  459. package/lib/sharedComponents/assessment-editor/services/result-criteria.service.d.ts +4 -0
  460. package/lib/sharedComponents/assessment-editor/services/validator.service.d.ts +31 -0
  461. package/lib/ui-kit/action-dialog/action-dialog.module.d.ts +2 -0
  462. package/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.d.ts +3 -0
  463. package/lib/ui-kit/action-dialog/active/active.component.d.ts +12 -0
  464. package/lib/ui-kit/action-dialog/active/active.component.ngfactory.d.ts +1 -0
  465. package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +12 -0
  466. package/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.d.ts +1 -0
  467. package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +11 -0
  468. package/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.d.ts +1 -0
  469. package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +12 -0
  470. package/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.d.ts +1 -0
  471. package/lib/ui-kit/dialog/dialog-config.d.ts +5 -0
  472. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -0
  473. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -0
  474. package/lib/ui-kit/dialog/dialog.component.d.ts +29 -0
  475. package/lib/ui-kit/dialog/dialog.component.ngfactory.d.ts +1 -0
  476. package/lib/ui-kit/dialog/dialog.module.d.ts +2 -0
  477. package/lib/ui-kit/dialog/dialog.module.ngfactory.d.ts +3 -0
  478. package/lib/ui-kit/dialog/dialog.service.d.ts +15 -0
  479. package/lib/ui-kit/dialog/insertion.directive.d.ts +5 -0
  480. package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +5 -0
  481. package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.d.ts +1 -0
  482. package/lib/ui-kit/editor-loader/editor-loader.module.d.ts +2 -0
  483. package/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.d.ts +3 -0
  484. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +7 -0
  485. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +10 -0
  486. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.d.ts +1 -0
  487. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +10 -0
  488. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +1 -0
  489. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +12 -0
  490. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.d.ts +1 -0
  491. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +5 -0
  492. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.d.ts +1 -0
  493. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +33 -0
  494. package/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.d.ts +1 -0
  495. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +12 -0
  496. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.d.ts +1 -0
  497. package/lib/ui-kit/formgroup/formgroup.module.d.ts +2 -0
  498. package/lib/ui-kit/formgroup/formgroup.module.ngfactory.d.ts +3 -0
  499. package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +4 -0
  500. package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +4 -0
  501. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +231 -0
  502. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.d.ts +1 -0
  503. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -0
  504. package/lib/workflow-services/assessment.service.d.ts +10 -1
  505. package/package.json +1 -1
  506. package/vcomply-workflow-engine.d.ts +159 -60
  507. package/vcomply-workflow-engine.metadata.json +1 -1
@@ -0,0 +1,557 @@
1
+ import { Component, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import * as XLSX from 'xlsx';
3
+ import { AuthService } from '../../workflow-services/auth.service';
4
+ import { AssessmentService } from '../../workflow-services/assessment.service';
5
+ const smileyActions = { IMPORT_MORE: "IMPORT_MORE", VIEW_ASSESSMENTS: "VIEW_ASSESSMENTS" };
6
+ export class ImportAnAssessmentComponent {
7
+ constructor(auth, assessmentService) {
8
+ this.auth = auth;
9
+ this.assessmentService = assessmentService;
10
+ this.closeWorkflow = new EventEmitter();
11
+ this.disconnectRefresh = new EventEmitter();
12
+ this.isShowLoader = false;
13
+ this.isWrongFormat = false;
14
+ this.uploadedFiles = [];
15
+ this.fileResponse = [];
16
+ this.organizationId = 0;
17
+ this.errorMessage = "invalid file error";
18
+ this.downloadStatus = 'NOT_DOWNLOADING';
19
+ this.downloadPercent = 0;
20
+ this.smileyMessage = `You're All Set! We're processing your request and you will be notified via email upon completion.`;
21
+ this.actionButtons = [
22
+ { buttonText: 'Import More Assessments', class: 'white-btn', id: smileyActions.IMPORT_MORE },
23
+ { buttonText: 'View Assessments', class: 'blue-btn', id: smileyActions.VIEW_ASSESSMENTS },
24
+ ];
25
+ this.showSmiley = false;
26
+ this.isUploaded = false;
27
+ this.colMap = {
28
+ type: 0,
29
+ title: 1,
30
+ score: 2,
31
+ opt1: 3,
32
+ opt2: 4,
33
+ opt3: 5,
34
+ opt4: 6,
35
+ opt5: 7,
36
+ opt6: 8,
37
+ required: 9,
38
+ failed: 10,
39
+ description: 11,
40
+ placeholder: 12,
41
+ comment: 13,
42
+ other: 14,
43
+ randomize: 15,
44
+ alignment: 16,
45
+ userattachment: 17,
46
+ usercomment: 18
47
+ };
48
+ this.settings = {
49
+ assessmentMode: false,
50
+ defaultScore: 1,
51
+ negativeScoreCriteria: 'FAILED',
52
+ negativeScore: 0,
53
+ weightageEnabled: false,
54
+ settingsEnabled: false
55
+ };
56
+ }
57
+ setIsUploaded(isUploaded) {
58
+ this.isUploaded = isUploaded;
59
+ this.auth.previewPanel.next(isUploaded);
60
+ if (!isUploaded) {
61
+ const closeBtn = document.getElementById("close-workflow-engine-btn");
62
+ if (closeBtn)
63
+ closeBtn.style.display = "block";
64
+ this.convertedData = {};
65
+ }
66
+ }
67
+ closeSmiley(event) {
68
+ this.showSmiley = false;
69
+ this.closeWorkflow.emit({ evt: this.assessmentData, confirm: false });
70
+ }
71
+ downloadTemplate() {
72
+ this.downloadStatus = 'DOWNLOADING';
73
+ this.downloadPercent = 0;
74
+ const downloadDate = new Date().toDateString().split(' ');
75
+ const fileName = `Import an Assessment-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;
76
+ this.assessmentService.downloadTemplate().subscribe({
77
+ next: (data) => {
78
+ setTimeout(() => {
79
+ this.downloadStatus = this.assessmentService.downLoadFile(data, 'application/xlsx', fileName);
80
+ }, 1500);
81
+ },
82
+ error: () => { this.downloadStatus = 'DOWNLOADED'; }
83
+ });
84
+ }
85
+ triggerBrowseFile() {
86
+ const getFile = document.getElementById('iaa-file-input');
87
+ if (getFile) {
88
+ getFile.click();
89
+ }
90
+ }
91
+ // handle upload file area
92
+ uploadFile(evt) {
93
+ const target = evt.target;
94
+ const reader = new FileReader();
95
+ reader.onload = (e) => {
96
+ const bstr = e.target.result;
97
+ const wb = XLSX.read(bstr, { type: 'binary' });
98
+ const wsname = wb.SheetNames[0];
99
+ const wsname1 = wb.SheetNames[1];
100
+ const ws = wb.Sheets[wsname];
101
+ const tempData = wb.Sheets[wsname1];
102
+ this.categoryData = XLSX.utils.sheet_to_json(tempData, {
103
+ header: 1,
104
+ });
105
+ this.sheetData = XLSX.utils.sheet_to_json(ws, {
106
+ header: 1,
107
+ });
108
+ this.generateCategoryList(this.categoryData);
109
+ this.assessmentData = this.sheetData.filter((dataElement) => dataElement.length > 0);
110
+ this.isWrongFormat = false;
111
+ this.errorMessage = '';
112
+ console.log("Imp", this.checkFormat(this.assessmentData));
113
+ if (!this.checkFormat(this.assessmentData)) {
114
+ const closeBtn = document.getElementById("close-workflow-engine-btn");
115
+ if (closeBtn)
116
+ closeBtn.style.display = "none";
117
+ this.generateEditorPayload(this.assessmentData);
118
+ this.auth.previewPanel.next(true);
119
+ this.isUploaded = true;
120
+ setTimeout(() => { this.editorCont.triggerPreviewWithValidation(); }, 100);
121
+ }
122
+ };
123
+ reader.readAsBinaryString(target.files[0]);
124
+ }
125
+ generateCategoryList(categoryData) {
126
+ const catList = {};
127
+ if (categoryData) {
128
+ categoryData.forEach((ele) => {
129
+ catList[ele[0]] = ele[1];
130
+ });
131
+ this.categoryList = catList;
132
+ }
133
+ }
134
+ categoryNametoId(categoryName) {
135
+ if (this.categoryList[categoryName]) {
136
+ return this.categoryList[categoryName];
137
+ }
138
+ else {
139
+ return null;
140
+ }
141
+ }
142
+ generateEditorPayload(data) {
143
+ //check format
144
+ const payload = {
145
+ metadata: {
146
+ assessment_name: "",
147
+ description: "",
148
+ assessment_type: "compliance",
149
+ category_arr: [],
150
+ approval_workflow_arr: {
151
+ "test": "test"
152
+ },
153
+ approval_required: true,
154
+ source_page: "compliance"
155
+ },
156
+ assessmentData: {
157
+ version: 2,
158
+ questionRandomize: false,
159
+ anonymousResponse: false,
160
+ hasWelcome: false,
161
+ hasWelcomeDescription: false,
162
+ welcomeText: '',
163
+ hasWelcomeImage: false,
164
+ welcomeImage: '',
165
+ welcomeDescription: '',
166
+ hasThanks: false,
167
+ hasThankyouImage: false,
168
+ thankyouText: '',
169
+ thankyouImage: '',
170
+ hasThankyouDescription: false,
171
+ thankyouDescription: '',
172
+ elements: [],
173
+ pageDetailsList: [],
174
+ customResponseSet: [],
175
+ settings: this.settings,
176
+ responseSegment: this.initializeEmptyResponseSegment()
177
+ }
178
+ };
179
+ this.convertedData = payload;
180
+ this.convertedData.metadata.assessment_name = this.assessmentData[2][1];
181
+ this.convertedData.metadata.description = this.assessmentData[3][1];
182
+ // this.convertedData.metadata.category_arr[0] = this.assessmentData[4][1];
183
+ this.convertedData.metadata.category_arr = [this.categoryNametoId(this.assessmentData[4][1])];
184
+ //TODO: create a function to convert from categories names to categories id.
185
+ //TODO: check the api for sub-flow like assessment-setting.
186
+ // this.convertedData.metadata.category_arr[0] = "61cc27c5b3e8642b333f3591";
187
+ this.generateQuestionsList(data.slice(6), payload.assessmentData.elements);
188
+ }
189
+ generateQuestionsList(questionsList, questionsArray) {
190
+ questionsArray = [];
191
+ if (questionsList === null || questionsList === void 0 ? void 0 : questionsList.length) {
192
+ questionsList.forEach((question, index) => {
193
+ console.log("question list", question);
194
+ questionsArray.push();
195
+ switch (question[0]) {
196
+ case 'Single Textbox':
197
+ questionsArray.push(this.generateSingleTextbox('single-textbox', question, index));
198
+ break;
199
+ case 'Multiple Choice':
200
+ questionsArray.push(this.generateMultipleChoice('multiple-choice', question, index));
201
+ break;
202
+ case 'Checkbox':
203
+ questionsArray.push(this.generateMultipleChoice('checkbox', question, index));
204
+ break;
205
+ case 'Dropdown':
206
+ questionsArray.push(this.generateMultipleChoice('dropdown', question, index));
207
+ break;
208
+ case 'Date & Time':
209
+ questionsArray.push(this.generateDateTime('date-time', question, index));
210
+ break;
211
+ case 'File Upload':
212
+ questionsArray.push(this.generateFileUpload(question, index));
213
+ break;
214
+ default:
215
+ // No need to do anything for default
216
+ }
217
+ });
218
+ }
219
+ console.log("questions", questionsArray);
220
+ this.convertedData.assessmentData.elements = questionsArray;
221
+ }
222
+ generateSingleTextbox(type, question, index) {
223
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
224
+ return {
225
+ type: 'single-textbox', name: `Question_${index}`, page: 1,
226
+ hasValidation: false, validationType: '',
227
+ isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
228
+ hasCharacterLength: false, minCharacterLength: 0,
229
+ maxCharacterLength: 100,
230
+ title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
231
+ hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
232
+ hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
233
+ randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
234
+ otherValue: 'Other',
235
+ alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
236
+ reverse: false,
237
+ isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
238
+ userAttachedFiles: [],
239
+ isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
240
+ visibilityLogic: [],
241
+ otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
242
+ choices: [{
243
+ title: '',
244
+ value: 1,
245
+ isSelected: false,
246
+ required: 0,
247
+ hasHelpingLabel: false,
248
+ helpingLabel: "",
249
+ isFailed: false,
250
+ score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
251
+ color: "#000000"
252
+ }]
253
+ };
254
+ }
255
+ generateMultipleChoice(type, question, index) {
256
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
257
+ console.log("Yo Man", question);
258
+ return {
259
+ type: type, name: `Question_${index}`, page: 1,
260
+ hasValidation: false, validationType: '',
261
+ isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
262
+ hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100,
263
+ title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
264
+ hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString().trim()) !== null && _m !== void 0 ? _m : '',
265
+ hasComments: ((_r = (_q = (_p = question[(_o = this.colMap) === null || _o === void 0 ? void 0 : _o.comment]) === null || _p === void 0 ? void 0 : _p.toString()) === null || _q === void 0 ? void 0 : _q.trim()) === null || _r === void 0 ? void 0 : _r.length) ? true : false, comments: (_t = question[(_s = this.colMap) === null || _s === void 0 ? void 0 : _s.comment]) === null || _t === void 0 ? void 0 : _t.toString().trim(),
266
+ randomize: question[(_u = this.colMap) === null || _u === void 0 ? void 0 : _u.randomize] === 'Yes' ? true : false, hasOther: question[(_v = this.colMap) === null || _v === void 0 ? void 0 : _v.other] === 'Yes' ? true : false,
267
+ otherValue: 'Other',
268
+ alignment: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.alignment] === 'Yes' ? true : false,
269
+ reverse: false,
270
+ isRespondentAttachment: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.userattachment] === 'Yes' ? true : false,
271
+ userAttachedFiles: [],
272
+ visibilityLogic: [],
273
+ isRespondentComment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.usercomment] === 'Yes' ? true : false,
274
+ otherConfig: { color: "#000000", isFailed: false, score: (_0 = question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.score]) !== null && _0 !== void 0 ? _0 : 1 },
275
+ choices: this.generateChoices(question)
276
+ };
277
+ }
278
+ generateDateTime(type, question, index) {
279
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
280
+ return {
281
+ type: type, name: `Question_${index}`, page: 1,
282
+ hasValidation: false, validationType: '',
283
+ isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
284
+ hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100,
285
+ title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
286
+ hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
287
+ hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
288
+ randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
289
+ otherValue: 'Other',
290
+ alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
291
+ reverse: false,
292
+ isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
293
+ userAttachedFiles: [],
294
+ visibilityLogic: [],
295
+ isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
296
+ otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
297
+ choices: [{
298
+ title: '',
299
+ value: 1,
300
+ isSelected: false,
301
+ required: 0,
302
+ hasHelpingLabel: false,
303
+ helpingLabel: "",
304
+ isFailed: false,
305
+ score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
306
+ color: "#000000"
307
+ }],
308
+ hasDate: true,
309
+ hasTime: false,
310
+ dateFormat: "DD/MM/YYYY",
311
+ timeFormat: 24,
312
+ date: {
313
+ title: (_6 = question[(_5 = this.colMap) === null || _5 === void 0 ? void 0 : _5.placeholder]) !== null && _6 !== void 0 ? _6 : 'Select Date',
314
+ value: ""
315
+ },
316
+ time: {
317
+ title: (_8 = question[(_7 = this.colMap) === null || _7 === void 0 ? void 0 : _7.placeholder]) !== null && _8 !== void 0 ? _8 : 'Select Time',
318
+ value: ""
319
+ },
320
+ };
321
+ }
322
+ generateFileUpload(question, index) {
323
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
324
+ return {
325
+ type: 'file-upload', name: `Question_${index}`, page: 1,
326
+ hasValidation: false, validationType: '',
327
+ isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
328
+ hasCharacterLength: false, minCharacterLength: 0,
329
+ maxCharacterLength: 100,
330
+ title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
331
+ hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
332
+ hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
333
+ randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
334
+ otherValue: 'Other',
335
+ alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
336
+ reverse: false,
337
+ isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
338
+ userAttachedFiles: [],
339
+ visibilityLogic: [],
340
+ isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
341
+ otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
342
+ choices: [{
343
+ title: '',
344
+ value: 1,
345
+ isSelected: false,
346
+ required: 0,
347
+ hasHelpingLabel: false,
348
+ helpingLabel: "",
349
+ isFailed: false,
350
+ score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
351
+ color: "#000000"
352
+ }],
353
+ allowedFileTypes: {
354
+ pdf: true,
355
+ doc: true,
356
+ png: true,
357
+ jpg: true,
358
+ gif: true
359
+ },
360
+ };
361
+ }
362
+ generateChoices(question) {
363
+ var _a, _b, _c, _d, _e, _f;
364
+ const options = [question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.opt1], question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.opt2], question[(_c = this.colMap) === null || _c === void 0 ? void 0 : _c.opt3], question[(_d = this.colMap) === null || _d === void 0 ? void 0 : _d.opt4], question[(_e = this.colMap) === null || _e === void 0 ? void 0 : _e.opt5], question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.opt6]].filter((ele) => ele);
365
+ options.forEach((ele) => {
366
+ var _a;
367
+ if (ele) {
368
+ (_a = ele.toString()) === null || _a === void 0 ? void 0 : _a.trim();
369
+ }
370
+ });
371
+ if ((options === null || options === void 0 ? void 0 : options.length) === 0) {
372
+ options.push('');
373
+ }
374
+ const optionMap = {
375
+ 'Option 1': 3,
376
+ 'Option 2': 4,
377
+ 'Option 3': 5,
378
+ 'Option 4': 6,
379
+ 'Option 5': 7,
380
+ 'Option 6': 8,
381
+ };
382
+ options.forEach((choice, index) => {
383
+ var _a, _b, _c, _d, _e;
384
+ options[index] = {
385
+ title: (choice && typeof (choice) == 'string') ? choice : (_a = choice.toString()) !== null && _a !== void 0 ? _a : '',
386
+ value: 1,
387
+ isSelected: false,
388
+ required: 0,
389
+ hasHelpingLabel: false,
390
+ helpingLabel: "",
391
+ isFailed: (((_b = choice === null || choice === void 0 ? void 0 : choice.toString()) === null || _b === void 0 ? void 0 : _b.trim()) == question[optionMap[question[(_c = this.colMap) === null || _c === void 0 ? void 0 : _c.failed]]]) ? true : false,
392
+ score: (_e = question[(_d = this.colMap) === null || _d === void 0 ? void 0 : _d.score]) !== null && _e !== void 0 ? _e : 1,
393
+ color: "#000000"
394
+ };
395
+ });
396
+ return options;
397
+ }
398
+ checkFormat(assessmentData) {
399
+ var _a;
400
+ //Completly blank excel sheet
401
+ if (assessmentData.length === 0) {
402
+ this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
403
+ this.isWrongFormat = true;
404
+ return true;
405
+ }
406
+ //Invalid Tempalte
407
+ try {
408
+ if (assessmentData[2][0] !== "Assessment Name\*"
409
+ || assessmentData[3][0] !== "Description"
410
+ || assessmentData[4][0] !== "Assessment Category\*"
411
+ || assessmentData[5][0] !== "Question Type\*") {
412
+ this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
413
+ this.isWrongFormat = true;
414
+ return true;
415
+ }
416
+ }
417
+ catch (_b) {
418
+ this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
419
+ this.isWrongFormat = true;
420
+ return true;
421
+ }
422
+ //Check Assessment name
423
+ try {
424
+ if (!assessmentData[2][1] || assessmentData[2][1] === "" || assessmentData[2][1] === undefined) {
425
+ this.errorMessage = 'Enter a name for this Assessment.';
426
+ this.isWrongFormat = true;
427
+ return true;
428
+ }
429
+ }
430
+ catch (_c) {
431
+ this.errorMessage = 'Enter a name for this Assessment.';
432
+ this.isWrongFormat = true;
433
+ return true;
434
+ }
435
+ //category not selected
436
+ try {
437
+ if (!assessmentData[4][1] || assessmentData[4][1] === "" || assessmentData[4][1] === undefined) {
438
+ this.errorMessage = 'Select the Assessment Category.';
439
+ this.isWrongFormat = true;
440
+ return true;
441
+ }
442
+ }
443
+ catch (_d) {
444
+ this.errorMessage = 'Select the Assessment Category.';
445
+ this.isWrongFormat = true;
446
+ return true;
447
+ }
448
+ //Does not contains any questions
449
+ try {
450
+ if (((_a = assessmentData.slice(7)) === null || _a === void 0 ? void 0 : _a.length) === 0) {
451
+ this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';
452
+ this.isWrongFormat = true;
453
+ return true;
454
+ }
455
+ }
456
+ catch (_e) {
457
+ this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';
458
+ this.isWrongFormat = true;
459
+ return true;
460
+ }
461
+ //handle type of question and options count
462
+ for (let i = 7; i <= assessmentData.length - 1; i++) {
463
+ if (assessmentData[i][0] !== 'Multiple Choice' &&
464
+ assessmentData[i][0] !== 'Checkbox' &&
465
+ assessmentData[i][0] !== 'Dropdown' &&
466
+ assessmentData[i][0] !== 'Single Textbox' &&
467
+ assessmentData[i][0] !== 'Date & Time' &&
468
+ assessmentData[i][0] !== 'File Upload') {
469
+ this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
470
+ this.isWrongFormat = true;
471
+ return true;
472
+ }
473
+ // if (assessmentData[i][1] === '') {
474
+ // this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
475
+ // this.isWrongFormat = true;
476
+ // return true;
477
+ // }
478
+ }
479
+ this.errorMessage = '';
480
+ return false;
481
+ }
482
+ initializeEmptyResponseSegment() {
483
+ return {
484
+ title: '',
485
+ description: '',
486
+ maxScore: 10,
487
+ segments: []
488
+ };
489
+ }
490
+ postAssessment(data) {
491
+ this.isShowLoader = true;
492
+ this.assessmentService.createAssessment(this.convertedData.metadata).subscribe({
493
+ next: (response) => {
494
+ this.postAssessmentDetails(response._id, data.mode, data.assessmentDetails);
495
+ },
496
+ error: (err) => {
497
+ this.isShowLoader = false;
498
+ }
499
+ });
500
+ }
501
+ postAssessmentDetails(id, mode, assessmentDetails) {
502
+ this.isUploaded = false;
503
+ this.auth.previewPanel.next(false);
504
+ console.log('this.isUploaded', this.isUploaded);
505
+ const payload = {
506
+ question: assessmentDetails,
507
+ action: "questions_save",
508
+ state: mode
509
+ };
510
+ this.assessmentService.saveAssessmentDetails(id, payload).subscribe({
511
+ next: (response) => {
512
+ this.assessmentData = {};
513
+ this.isShowLoader = false;
514
+ this.showSmiley = true;
515
+ },
516
+ error: (err) => {
517
+ this.isShowLoader = false;
518
+ }
519
+ });
520
+ }
521
+ smileyAction(id) {
522
+ console.log(id);
523
+ if (id === smileyActions.VIEW_ASSESSMENTS) {
524
+ this.disconnectRefresh.emit(false);
525
+ // TODO: Navigate to '/manage-assessment'
526
+ let url;
527
+ if (window.location.host.startsWith('localhost')) {
528
+ url = 'http://' + window.location.host + '/manage-assessment';
529
+ }
530
+ else {
531
+ url = 'https://' + window.location.host + '/assessment/manage-assessment';
532
+ }
533
+ console.log(url);
534
+ window.location.href = url;
535
+ }
536
+ else {
537
+ this.showSmiley = false;
538
+ }
539
+ }
540
+ }
541
+ ImportAnAssessmentComponent.decorators = [
542
+ { type: Component, args: [{
543
+ selector: 'app-import-an-assessment',
544
+ template: "<div class=\"import-an-assessment\" [attr.id]=\"'scrollReference'\">\r\n <!-- main container starts here -->\r\n <div class=\"import-an-assessment-body\">\r\n <div class=\"import-an-assessment-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\"\r\n alt=\"\" />\r\n </div>\r\n\r\n <h4>You can import an assessment in just two easy steps:</h4>\r\n <ul class=\"list\">\r\n <li>Download the template and fill in the details.</li>\r\n <li>Upload the .xlsx file and you\u2019re good to go!</li>\r\n </ul>\r\n\r\n <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\r\n type=\"button\"><i class=\"icons\">&#xe91b;</i> Download Template</button>\r\n <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\r\n Download in Progress\r\n <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\r\n </div>\r\n <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\r\n <div class=\"bulk-btn-progress\"><i class=\"icons\">&#xe91c;</i>Download Complete</div>\r\n <div class=\"bulk-btn-again\">\r\n Is the file not downloaded?\r\n <button (click)=\"downloadTemplate()\">Retry Download</button>\r\n </div>\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFormat\">{{errorMessage}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-loader-inline *ngIf=\"isShowLoader\"></app-loader-inline>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"iaa-file-input\" accept=\".xlsx\" class=\"hidden-input\" onclick=\"this.value = null\"\r\n (change)=\"uploadFile($event)\" />\r\n\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyAction($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\r\n\r\n<div class=\"import\" *ngIf=\"isUploaded\">\r\n <app-create-assessment-container #editor [openPortal]=\"'ASSESSMENT_IMPORT'\" (postAssessment)=\"postAssessment($event)\" (setIsUploaded)=\"setIsUploaded($event)\"\r\n [assessmentJSON]=\"convertedData\">\r\n </app-create-assessment-container>\r\n</div>\r\n",
545
+ styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .import-an-assessment{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .import-an-assessment{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .import-an-assessment-body{padding:0;display:block}::ng-deep .import-an-assessment-container{display:block;text-align:center}::ng-deep .import-an-assessment-container .image{width:300px;margin:0 auto 24px}::ng-deep .import-an-assessment-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .import-an-assessment-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .import-an-assessment-container ul.list li{text-align:left;color:#747576;font-size:15px;line-height:38px;font-weight:400;list-style:none;counter-increment:my-awesome-counter;background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:0 12px}::ng-deep .import-an-assessment-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .import-an-assessment-container ul.list li+li{margin-top:4px}::ng-deep .import-an-assessment-container button.download{background:#fff;height:36px;border-radius:2px;cursor:pointer;border:1px solid #1e5dd3;color:#1e5dd3;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px}::ng-deep .import-an-assessment-container .bulk-btn-progress{background:#f8f8f8;height:36px;border-radius:2px;cursor:pointer;border:1px solid #f8f8f8;color:#747576;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px;position:relative;display:inline-block;line-height:34px}::ng-deep .import-an-assessment-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .import-an-assessment-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .import-an-assessment-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .import-an-assessment-container .bulk-btn-again button{background:transparent;border:none;padding:0;font-size:11px;color:#1e5dd3;font-weight:500;text-decoration:underline;cursor:pointer;text-transform:uppercase;display:inline-block}.hidden-input{opacity:0}.import{position:fixed;top:0;right:30px;bottom:0;left:0;z-index:9;width:calc(100vw - 30px)}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.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-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:2px 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){::ng-deep .vx-form-group marx-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:22px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.hide{opacity:0;transition:all .2s ease-in-out}.form-group-row.disabled{pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.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 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;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{width: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 .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-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)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-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}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:20px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}"]
546
+ },] }
547
+ ];
548
+ ImportAnAssessmentComponent.ctorParameters = () => [
549
+ { type: AuthService },
550
+ { type: AssessmentService }
551
+ ];
552
+ ImportAnAssessmentComponent.propDecorators = {
553
+ editorCont: [{ type: ViewChild, args: ['editor', { static: false },] }],
554
+ closeWorkflow: [{ type: Output }],
555
+ disconnectRefresh: [{ type: Output }]
556
+ };
557
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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QU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0IsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJ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QUMzRTtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQzVCO2FBQ0k7WUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7OztZQTFpQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHl6RUFBb0Q7O2FBRXJEOzs7WUFYUSxXQUFXO1lBQ1gsaUJBQWlCOzs7eUJBYXZCLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUNyQyxNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2Fzc2Vzc21lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENyZWF0ZUFzc2Vzc21lbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuY29uc3Qgc21pbGV5QWN0aW9ucyA9IHsgSU1QT1JUX01PUkU6IFwiSU1QT1JUX01PUkVcIiwgVklFV19BU1NFU1NNRU5UUzogXCJWSUVXX0FTU0VTU01FTlRTXCIgfVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvckNvbnQhOiBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50O1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc1Nob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgZmlsZU5hbWU6IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgdXBsb2FkZWRGaWxlczogYW55ID0gW107XHJcbiAgZmlsZVJlc3BvbnNlOiBhbnkgPSBbXTtcclxuICBmaWxlVmFsdWU6IGFueTtcclxuICBvcmdhbml6YXRpb25JZCA9IDA7XHJcbiAgZXJyb3JNZXNzYWdlID0gXCJpbnZhbGlkIGZpbGUgZXJyb3JcIlxyXG4gIGRvd25sb2FkU3RhdHVzOiBzdHJpbmcgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0IGFuZCB5b3Ugd2lsbCBiZSBub3RpZmllZCB2aWEgZW1haWwgdXBvbiBjb21wbGV0aW9uLmA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xyXG5cclxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICAgICAgY29uc29sZS5sb2coXCJJbXBcIiwgdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSlcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XHJcbiAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIik7XHJcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xyXG4gICAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpfSwxMDApXHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLy9Db21wbGV0bHkgYmxhbmsgZXhjZWwgc2hlZXRcclxuICAgIGlmIChhc3Nlc3NtZW50RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9JbnZhbGlkIFRlbXBhbHRlXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbMl1bMF0gIT09IFwiQXNzZXNzbWVudCBOYW1lXFwqXCJcclxuICAgICAgICB8fCBhc3Nlc3NtZW50RGF0YVszXVswXSAhPT0gXCJEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNF1bMF0gIT09IFwiQXNzZXNzbWVudCBDYXRlZ29yeVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNV1bMF0gIT09IFwiUXVlc3Rpb24gVHlwZVxcKlwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2hlY2sgQXNzZXNzbWVudCBuYW1lXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmICghYXNzZXNzbWVudERhdGFbMl1bMV0gfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IFwiXCIgfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50Lic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgXHJcbiAgICAvL2NhdGVnb3J5IG5vdCBzZWxlY3RlZFxyXG4gICB0cnl7XHJcbiAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzRdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICB9Y2F0Y2h7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcclxuICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICAgfVxyXG4gIFxyXG4gICAgLy9Eb2VzIG5vdCBjb250YWlucyBhbnkgcXVlc3Rpb25zXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YS5zbGljZSg3KT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcblxyXG4gICAgLy9oYW5kbGUgdHlwZSBvZiBxdWVzdGlvbiBhbmQgb3B0aW9ucyBjb3VudFxyXG4gICAgZm9yIChsZXQgaSA9IDc7IGkgPD0gYXNzZXNzbWVudERhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ011bHRpcGxlIENob2ljZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0NoZWNrYm94JyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRHJvcGRvd24nICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdTaW5nbGUgVGV4dGJveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0RhdGUgJiBUaW1lJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRmlsZSBVcGxvYWQnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAoYXNzZXNzbWVudERhdGFbaV1bMV0gPT09ICcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgLy8gICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgbWF4U2NvcmU6IDEwLFxyXG4gICAgICBzZWdtZW50czogW11cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50KGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5pc1Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5jcmVhdGVBc3Nlc3NtZW50KHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnBvc3RBc3Nlc3NtZW50RGV0YWlscyhyZXNwb25zZS5faWQsIGRhdGEubW9kZSwgZGF0YS5hc3Nlc3NtZW50RGV0YWlscyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdEFzc2Vzc21lbnREZXRhaWxzKGlkOiBhbnksIG1vZGU6IGFueSwgYXNzZXNzbWVudERldGFpbHM6IGFueSkge1xyXG5cclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzVXBsb2FkZWQnLCB0aGlzLmlzVXBsb2FkZWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBxdWVzdGlvbjogYXNzZXNzbWVudERldGFpbHMsXHJcbiAgICAgIGFjdGlvbjogXCJxdWVzdGlvbnNfc2F2ZVwiLFxyXG4gICAgICBzdGF0ZTogbW9kZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc2F2ZUFzc2Vzc21lbnREZXRhaWxzKGlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc21pbGV5QWN0aW9uKGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGlkKVxyXG4gICAgaWYgKGlkID09PSBzbWlsZXlBY3Rpb25zLlZJRVdfQVNTRVNTTUVOVFMpIHtcclxuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgICAgLy8gVE9ETzogTmF2aWdhdGUgdG8gJy9tYW5hZ2UtYXNzZXNzbWVudCdcclxuICAgICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYXNzZXNzbWVudC9tYW5hZ2UtYXNzZXNzbWVudCc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2codXJsKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSJdfQ==