tango-app-ui-analyse-trax 3.9.2 → 3.9.3

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 (470) hide show
  1. package/.eslintrc.json +37 -0
  2. package/ng-package.json +7 -0
  3. package/package.json +12 -25
  4. package/src/lib/components/action-centre/action-centre.component.html +607 -0
  5. package/src/lib/components/action-centre/action-centre.component.scss +185 -0
  6. package/src/lib/components/action-centre/action-centre.component.spec.ts +23 -0
  7. package/src/lib/components/action-centre/action-centre.component.ts +279 -0
  8. package/src/lib/components/activity-log/activity-log.component.html +84 -0
  9. package/src/lib/components/activity-log/activity-log.component.scss +33 -0
  10. package/src/lib/components/activity-log/activity-log.component.spec.ts +23 -0
  11. package/src/lib/components/activity-log/activity-log.component.ts +137 -0
  12. package/src/lib/components/activity-log-v2/activity-log-v2.component.html +189 -0
  13. package/src/lib/components/activity-log-v2/activity-log-v2.component.scss +162 -0
  14. package/src/lib/components/activity-log-v2/activity-log-v2.component.spec.ts +23 -0
  15. package/src/lib/components/activity-log-v2/activity-log-v2.component.ts +517 -0
  16. package/src/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.html +19 -0
  17. package/src/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.scss +148 -0
  18. package/src/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.spec.ts +23 -0
  19. package/src/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.ts +141 -0
  20. package/src/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.html +42 -0
  21. package/src/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.scss +49 -0
  22. package/src/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.spec.ts +23 -0
  23. package/src/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.ts +22 -0
  24. package/src/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.html +724 -0
  25. package/src/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.scss +217 -0
  26. package/src/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.spec.ts +23 -0
  27. package/src/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.ts +122 -0
  28. package/src/lib/components/add-checklist/add-checklist.component.html +1459 -0
  29. package/src/lib/components/add-checklist/add-checklist.component.scss +1205 -0
  30. package/src/lib/components/add-checklist/add-checklist.component.spec.ts +23 -0
  31. package/src/lib/components/add-checklist/add-checklist.component.ts +2460 -0
  32. package/src/lib/components/add-checklist/checklist-popup/checklist-popup.component.html +207 -0
  33. package/src/lib/components/add-checklist/checklist-popup/checklist-popup.component.scss +213 -0
  34. package/src/lib/components/add-checklist/checklist-popup/checklist-popup.component.spec.ts +23 -0
  35. package/src/lib/components/add-checklist/checklist-popup/checklist-popup.component.ts +621 -0
  36. package/src/lib/components/add-checklist/counter/counter.component.html +43 -0
  37. package/src/lib/components/add-checklist/counter/counter.component.scss +49 -0
  38. package/src/lib/components/add-checklist/counter/counter.component.spec.ts +23 -0
  39. package/src/lib/components/add-checklist/counter/counter.component.ts +123 -0
  40. package/src/lib/components/add-multitask/add-multitask.component.html +705 -0
  41. package/src/lib/components/add-multitask/add-multitask.component.scss +296 -0
  42. package/src/lib/components/add-multitask/add-multitask.component.spec.ts +23 -0
  43. package/src/lib/components/add-multitask/add-multitask.component.ts +611 -0
  44. package/src/lib/components/add-multitask/ascending-validator.ts +13 -0
  45. package/src/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.html +197 -0
  46. package/src/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.scss +31 -0
  47. package/src/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.spec.ts +23 -0
  48. package/src/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.ts +285 -0
  49. package/src/lib/components/add-multitask/create-task.data.ts +374 -0
  50. package/src/lib/components/add-multitask/create-task.interface.ts +177 -0
  51. package/src/lib/components/add-multitask/unique-string-validator.ts +13 -0
  52. package/src/lib/components/add-multitask/whitespace-validator.ts +11 -0
  53. package/src/lib/components/add-task/add-task.component.html +654 -0
  54. package/src/lib/components/add-task/add-task.component.scss +536 -0
  55. package/src/lib/components/add-task/add-task.component.spec.ts +23 -0
  56. package/src/lib/components/add-task/add-task.component.ts +569 -0
  57. package/src/lib/components/add-task/ascending-validator.ts +13 -0
  58. package/src/lib/components/add-task/create-task.data.ts +374 -0
  59. package/src/lib/components/add-task/create-task.interface.ts +192 -0
  60. package/src/lib/components/add-task/unique-string-validator.ts +13 -0
  61. package/src/lib/components/add-task/whitespace-validator.ts +11 -0
  62. package/src/lib/components/approval-popup/approval-popup.component.html +25 -0
  63. package/src/lib/components/approval-popup/approval-popup.component.scss +3 -0
  64. package/src/lib/components/approval-popup/approval-popup.component.spec.ts +23 -0
  65. package/src/lib/components/approval-popup/approval-popup.component.ts +26 -0
  66. package/src/lib/components/checklist/checklist.component.html +330 -0
  67. package/src/lib/components/checklist/checklist.component.scss +112 -0
  68. package/src/lib/components/checklist/checklist.component.spec.ts +23 -0
  69. package/src/lib/components/checklist/checklist.component.ts +344 -0
  70. package/src/lib/components/checklist-configure/assign/assign.component.html +665 -0
  71. package/src/lib/components/checklist-configure/assign/assign.component.scss +219 -0
  72. package/src/lib/components/checklist-configure/assign/assign.component.spec.ts +23 -0
  73. package/src/lib/components/checklist-configure/assign/assign.component.ts +932 -0
  74. package/src/lib/components/checklist-configure/checklist-configure.component.html +4340 -0
  75. package/src/lib/components/checklist-configure/checklist-configure.component.scss +2338 -0
  76. package/src/lib/components/checklist-configure/checklist-configure.component.spec.ts +23 -0
  77. package/src/lib/components/checklist-configure/checklist-configure.component.ts +4659 -0
  78. package/src/lib/components/checklistlayout/checklistlayout.component.html +30 -0
  79. package/src/lib/components/checklistlayout/checklistlayout.component.scss +15 -0
  80. package/src/lib/components/checklistlayout/checklistlayout.component.spec.ts +23 -0
  81. package/src/lib/components/checklistlayout/checklistlayout.component.ts +47 -0
  82. package/src/lib/components/chip-dropdown/chip-dropdown.component.html +36 -0
  83. package/src/lib/components/chip-dropdown/chip-dropdown.component.scss +97 -0
  84. package/src/lib/components/chip-dropdown/chip-dropdown.component.spec.ts +23 -0
  85. package/src/lib/components/chip-dropdown/chip-dropdown.component.ts +125 -0
  86. package/src/lib/components/create-task/create-task.component.html +2003 -0
  87. package/src/lib/components/create-task/create-task.component.scss +272 -0
  88. package/src/lib/components/create-task/create-task.component.spec.ts +23 -0
  89. package/src/lib/components/create-task/create-task.component.ts +614 -0
  90. package/src/lib/components/create-task/create-task.data.ts +372 -0
  91. package/src/lib/components/create-task/create-task.interface.ts +182 -0
  92. package/src/lib/components/create-task/validators/ascending-validator.ts +13 -0
  93. package/src/lib/components/create-task/validators/unique-string-validator.ts +13 -0
  94. package/src/lib/components/create-task/validators/whitespace-validator.ts +11 -0
  95. package/src/lib/components/custom-select/custom-select.component.html +44 -0
  96. package/src/lib/components/custom-select/custom-select.component.scss +144 -0
  97. package/src/lib/components/custom-select/custom-select.component.spec.ts +23 -0
  98. package/src/lib/components/custom-select/custom-select.component.ts +265 -0
  99. package/src/lib/components/dashboard/dashboard.component.html +1076 -0
  100. package/src/lib/components/dashboard/dashboard.component.scss +237 -0
  101. package/src/lib/components/dashboard/dashboard.component.spec.ts +23 -0
  102. package/src/lib/components/dashboard/dashboard.component.ts +539 -0
  103. package/src/lib/components/dashboard-info/dashboard-info.component.html +1420 -0
  104. package/src/lib/components/dashboard-info/dashboard-info.component.scss +409 -0
  105. package/src/lib/components/dashboard-info/dashboard-info.component.spec.ts +23 -0
  106. package/src/lib/components/dashboard-info/dashboard-info.component.ts +772 -0
  107. package/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.html +110 -0
  108. package/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.scss +260 -0
  109. package/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.spec.ts +23 -0
  110. package/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.ts +143 -0
  111. package/src/lib/components/dashboard-layout/dashboard-layout.component.html +1 -0
  112. package/src/lib/components/dashboard-layout/dashboard-layout.component.scss +0 -0
  113. package/src/lib/components/dashboard-layout/dashboard-layout.component.spec.ts +23 -0
  114. package/src/lib/components/dashboard-layout/dashboard-layout.component.ts +10 -0
  115. package/src/lib/components/disabled-select/disabled-select.component.html +44 -0
  116. package/src/lib/components/disabled-select/disabled-select.component.scss +149 -0
  117. package/src/lib/components/disabled-select/disabled-select.component.spec.ts +23 -0
  118. package/src/lib/components/disabled-select/disabled-select.component.ts +146 -0
  119. package/src/lib/components/export-gallery/export-gallery.component.html +175 -0
  120. package/src/lib/components/export-gallery/export-gallery.component.scss +200 -0
  121. package/src/lib/components/export-gallery/export-gallery.component.spec.ts +23 -0
  122. package/src/lib/components/export-gallery/export-gallery.component.ts +263 -0
  123. package/src/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.html +36 -0
  124. package/src/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.scss +97 -0
  125. package/src/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.spec.ts +23 -0
  126. package/src/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.ts +104 -0
  127. package/src/lib/components/eye-test-audit/custom-select/custom-select.component.html +44 -0
  128. package/src/lib/components/eye-test-audit/custom-select/custom-select.component.scss +144 -0
  129. package/src/lib/components/eye-test-audit/custom-select/custom-select.component.spec.ts +23 -0
  130. package/src/lib/components/eye-test-audit/custom-select/custom-select.component.ts +265 -0
  131. package/src/lib/components/eye-test-audit/eye-test/eye-test.component.html +1804 -0
  132. package/src/lib/components/eye-test-audit/eye-test/eye-test.component.scss +806 -0
  133. package/src/lib/components/eye-test-audit/eye-test/eye-test.component.spec.ts +23 -0
  134. package/src/lib/components/eye-test-audit/eye-test/eye-test.component.ts +1890 -0
  135. package/src/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.html +25 -0
  136. package/src/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.scss +0 -0
  137. package/src/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.spec.ts +23 -0
  138. package/src/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.ts +20 -0
  139. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit-routing.module.ts +26 -0
  140. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.html +1 -0
  141. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.scss +0 -0
  142. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.spec.ts +23 -0
  143. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.ts +24 -0
  144. package/src/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.module.ts +44 -0
  145. package/src/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.html +490 -0
  146. package/src/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.scss +721 -0
  147. package/src/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.spec.ts +23 -0
  148. package/src/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.ts +1017 -0
  149. package/src/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.html +708 -0
  150. package/src/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.scss +247 -0
  151. package/src/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.spec.ts +23 -0
  152. package/src/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.ts +446 -0
  153. package/src/lib/components/eye-test-audit/group-select/group-select.component.html +44 -0
  154. package/src/lib/components/eye-test-audit/group-select/group-select.component.scss +144 -0
  155. package/src/lib/components/eye-test-audit/group-select/group-select.component.spec.ts +23 -0
  156. package/src/lib/components/eye-test-audit/group-select/group-select.component.ts +147 -0
  157. package/src/lib/components/eye-test-audit/reactive-select/reactive-select.component.html +18 -0
  158. package/src/lib/components/eye-test-audit/reactive-select/reactive-select.component.scss +49 -0
  159. package/src/lib/components/eye-test-audit/reactive-select/reactive-select.component.spec.ts +23 -0
  160. package/src/lib/components/eye-test-audit/reactive-select/reactive-select.component.ts +104 -0
  161. package/src/lib/components/eye-test-audit/select-drop/select-drop.component.html +44 -0
  162. package/src/lib/components/eye-test-audit/select-drop/select-drop.component.scss +144 -0
  163. package/src/lib/components/eye-test-audit/select-drop/select-drop.component.spec.ts +23 -0
  164. package/src/lib/components/eye-test-audit/select-drop/select-drop.component.ts +152 -0
  165. package/src/lib/components/eye-test-audit/services/eye-test-audit.service.spec.ts +16 -0
  166. package/src/lib/components/eye-test-audit/services/eye-test-audit.service.ts +190 -0
  167. package/src/lib/components/flag-layout/flag-layout.component.html +1 -0
  168. package/src/lib/components/flag-layout/flag-layout.component.scss +0 -0
  169. package/src/lib/components/flag-layout/flag-layout.component.spec.ts +23 -0
  170. package/src/lib/components/flag-layout/flag-layout.component.ts +10 -0
  171. package/src/lib/components/flags/flags.component.html +473 -0
  172. package/src/lib/components/flags/flags.component.scss +86 -0
  173. package/src/lib/components/flags/flags.component.spec.ts +23 -0
  174. package/src/lib/components/flags/flags.component.ts +280 -0
  175. package/{lib/components/flags/flags.interface.d.ts → src/lib/components/flags/flags.interface.ts} +73 -65
  176. package/src/lib/components/flags-info/flags-info.component.html +6012 -0
  177. package/src/lib/components/flags-info/flags-info.component.scss +278 -0
  178. package/src/lib/components/flags-info/flags-info.component.spec.ts +23 -0
  179. package/src/lib/components/flags-info/flags-info.component.ts +490 -0
  180. package/src/lib/components/flags-info/flags-info.interface.ts +441 -0
  181. package/src/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.html +1 -0
  182. package/src/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.scss +4 -0
  183. package/src/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.ts +78 -0
  184. package/src/lib/components/flags-new/flags-new.component.html +904 -0
  185. package/src/lib/components/flags-new/flags-new.component.scss +121 -0
  186. package/src/lib/components/flags-new/flags-new.component.spec.ts +23 -0
  187. package/src/lib/components/flags-new/flags-new.component.ts +357 -0
  188. package/{lib/components/flags-new/flags-new.interface.d.ts → src/lib/components/flags-new/flags-new.interface.ts} +90 -81
  189. package/src/lib/components/gallery/gallery.component.html +3660 -0
  190. package/src/lib/components/gallery/gallery.component.scss +930 -0
  191. package/src/lib/components/gallery/gallery.component.ts +3527 -0
  192. package/src/lib/components/group-select/group-select.component.html +44 -0
  193. package/src/lib/components/group-select/group-select.component.scss +144 -0
  194. package/src/lib/components/group-select/group-select.component.spec.ts +23 -0
  195. package/src/lib/components/group-select/group-select.component.ts +145 -0
  196. package/src/lib/components/image-popup/image-popup.component.html +11 -0
  197. package/src/lib/components/image-popup/image-popup.component.scss +5 -0
  198. package/src/lib/components/image-popup/image-popup.component.ts +18 -0
  199. package/src/lib/components/lib/custom-select/custom-select.component.html +42 -0
  200. package/src/lib/components/lib/custom-select/custom-select.component.scss +131 -0
  201. package/src/lib/components/lib/custom-select/custom-select.component.spec.ts +23 -0
  202. package/src/lib/components/lib/custom-select/custom-select.component.ts +151 -0
  203. package/src/lib/components/manage-task/manage-task.component.html +265 -0
  204. package/src/lib/components/manage-task/manage-task.component.scss +69 -0
  205. package/src/lib/components/manage-task/manage-task.component.spec.ts +23 -0
  206. package/src/lib/components/manage-task/manage-task.component.ts +267 -0
  207. package/src/lib/components/managechecklist/managechecklist.component.html +176 -0
  208. package/src/lib/components/managechecklist/managechecklist.component.scss +43 -0
  209. package/src/lib/components/managechecklist/managechecklist.component.spec.ts +23 -0
  210. package/src/lib/components/managechecklist/managechecklist.component.ts +176 -0
  211. package/src/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.html +46 -0
  212. package/src/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.scss +181 -0
  213. package/src/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.spec.ts +23 -0
  214. package/src/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.ts +221 -0
  215. package/src/lib/components/multi-date-datepicker/multi-date-datepicker.component.html +36 -0
  216. package/src/lib/components/multi-date-datepicker/multi-date-datepicker.component.scss +89 -0
  217. package/src/lib/components/multi-date-datepicker/multi-date-datepicker.component.spec.ts +23 -0
  218. package/src/lib/components/multi-date-datepicker/multi-date-datepicker.component.ts +118 -0
  219. package/src/lib/components/orders/orders.component.html +203 -0
  220. package/src/lib/components/orders/orders.component.scss +180 -0
  221. package/src/lib/components/orders/orders.component.spec.ts +25 -0
  222. package/src/lib/components/orders/orders.component.ts +197 -0
  223. package/src/lib/components/pagination/pagination.component.html +28 -0
  224. package/src/lib/components/pagination/pagination.component.scss +6 -0
  225. package/src/lib/components/pagination/pagination.component.spec.ts +23 -0
  226. package/src/lib/components/pagination/pagination.component.ts +54 -0
  227. package/src/lib/components/reactive-select/reactive-select.component.html +18 -0
  228. package/src/lib/components/reactive-select/reactive-select.component.scss +48 -0
  229. package/src/lib/components/reactive-select/reactive-select.component.spec.ts +23 -0
  230. package/src/lib/components/reactive-select/reactive-select.component.ts +104 -0
  231. package/src/lib/components/reports/date-picker/date-picker.component.html +54 -0
  232. package/src/lib/components/reports/date-picker/date-picker.component.scss +156 -0
  233. package/src/lib/components/reports/date-picker/date-picker.component.spec.ts +23 -0
  234. package/src/lib/components/reports/date-picker/date-picker.component.ts +60 -0
  235. package/src/lib/components/reports/reports.component.html +225 -0
  236. package/src/lib/components/reports/reports.component.scss +69 -0
  237. package/src/lib/components/reports/reports.component.spec.ts +23 -0
  238. package/src/lib/components/reports/reports.component.ts +334 -0
  239. package/{lib/components/reports/reports.interface.d.ts → src/lib/components/reports/reports.interface.ts} +50 -46
  240. package/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.html +1 -0
  241. package/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.scss +15 -0
  242. package/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.spec.ts +23 -0
  243. package/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.ts +31 -0
  244. package/src/lib/components/task/task.component.html +322 -0
  245. package/src/lib/components/task/task.component.scss +169 -0
  246. package/src/lib/components/task/task.component.spec.ts +23 -0
  247. package/src/lib/components/task/task.component.ts +340 -0
  248. package/src/lib/components/task-configure/task-configure.component.html +737 -0
  249. package/src/lib/components/task-configure/task-configure.component.scss +569 -0
  250. package/src/lib/components/task-configure/task-configure.component.spec.ts +23 -0
  251. package/src/lib/components/task-configure/task-configure.component.ts +1603 -0
  252. package/src/lib/components/task-configure/task-configure.interface.ts +138 -0
  253. package/src/lib/components/task-info/task-info.component.html +390 -0
  254. package/src/lib/components/task-info/task-info.component.scss +56 -0
  255. package/src/lib/components/task-info/task-info.component.spec.ts +23 -0
  256. package/src/lib/components/task-info/task-info.component.ts +400 -0
  257. package/src/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.html +141 -0
  258. package/src/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.scss +460 -0
  259. package/src/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.spec.ts +23 -0
  260. package/src/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.ts +202 -0
  261. package/src/lib/components/task-layout/task-layout.component.html +1 -0
  262. package/src/lib/components/task-layout/task-layout.component.scss +0 -0
  263. package/src/lib/components/task-layout/task-layout.component.spec.ts +23 -0
  264. package/src/lib/components/task-layout/task-layout.component.ts +10 -0
  265. package/src/lib/components/task-logs/task-logs.component.html +97 -0
  266. package/src/lib/components/task-logs/task-logs.component.scss +301 -0
  267. package/src/lib/components/task-logs/task-logs.component.spec.ts +23 -0
  268. package/src/lib/components/task-logs/task-logs.component.ts +80 -0
  269. package/src/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.html +84 -0
  270. package/src/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.scss +229 -0
  271. package/src/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.spec.ts +23 -0
  272. package/src/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.ts +111 -0
  273. package/src/lib/components/trax-store/trax-store.component.html +78 -0
  274. package/src/lib/components/trax-store/trax-store.component.scss +134 -0
  275. package/src/lib/components/trax-store/trax-store.component.spec.ts +23 -0
  276. package/src/lib/components/trax-store/trax-store.component.ts +172 -0
  277. package/src/lib/components/traxpopup/traxpopup.component.html +130 -0
  278. package/src/lib/components/traxpopup/traxpopup.component.scss +225 -0
  279. package/src/lib/components/traxpopup/traxpopup.component.spec.ts +23 -0
  280. package/src/lib/components/traxpopup/traxpopup.component.ts +71 -0
  281. package/src/lib/services/trax.service.spec.ts +16 -0
  282. package/src/lib/services/trax.service.ts +789 -0
  283. package/src/lib/tango-analyse-trax-routing.module.ts +151 -0
  284. package/src/lib/tango-analyse-trax.module.ts +140 -0
  285. package/{public-api.d.ts → src/public-api.ts} +6 -2
  286. package/tsconfig.lib.json +14 -0
  287. package/tsconfig.lib.prod.json +10 -0
  288. package/tsconfig.spec.json +14 -0
  289. package/esm2022/lib/components/action-centre/action-centre.component.mjs +0 -288
  290. package/esm2022/lib/components/activity-log/activity-log.component.mjs +0 -150
  291. package/esm2022/lib/components/activity-log-v2/activity-log-v2.component.mjs +0 -502
  292. package/esm2022/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.mjs +0 -114
  293. package/esm2022/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.mjs +0 -24
  294. package/esm2022/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.mjs +0 -126
  295. package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +0 -2352
  296. package/esm2022/lib/components/add-checklist/checklist-popup/checklist-popup.component.mjs +0 -612
  297. package/esm2022/lib/components/add-checklist/counter/counter.component.mjs +0 -138
  298. package/esm2022/lib/components/add-multitask/add-multitask.component.mjs +0 -604
  299. package/esm2022/lib/components/add-multitask/ascending-validator.mjs +0 -11
  300. package/esm2022/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.mjs +0 -297
  301. package/esm2022/lib/components/add-multitask/create-task.data.mjs +0 -372
  302. package/esm2022/lib/components/add-multitask/create-task.interface.mjs +0 -2
  303. package/esm2022/lib/components/add-multitask/unique-string-validator.mjs +0 -10
  304. package/esm2022/lib/components/add-multitask/whitespace-validator.mjs +0 -10
  305. package/esm2022/lib/components/add-task/add-task.component.mjs +0 -561
  306. package/esm2022/lib/components/add-task/ascending-validator.mjs +0 -11
  307. package/esm2022/lib/components/add-task/create-task.data.mjs +0 -372
  308. package/esm2022/lib/components/add-task/create-task.interface.mjs +0 -2
  309. package/esm2022/lib/components/add-task/unique-string-validator.mjs +0 -10
  310. package/esm2022/lib/components/add-task/whitespace-validator.mjs +0 -10
  311. package/esm2022/lib/components/approval-popup/approval-popup.component.mjs +0 -30
  312. package/esm2022/lib/components/checklist/checklist.component.mjs +0 -327
  313. package/esm2022/lib/components/checklist-configure/assign/assign.component.mjs +0 -912
  314. package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +0 -4161
  315. package/esm2022/lib/components/checklistlayout/checklistlayout.component.mjs +0 -44
  316. package/esm2022/lib/components/chip-dropdown/chip-dropdown.component.mjs +0 -120
  317. package/esm2022/lib/components/create-task/create-task.component.mjs +0 -585
  318. package/esm2022/lib/components/create-task/create-task.data.mjs +0 -372
  319. package/esm2022/lib/components/create-task/create-task.interface.mjs +0 -2
  320. package/esm2022/lib/components/create-task/validators/ascending-validator.mjs +0 -11
  321. package/esm2022/lib/components/create-task/validators/unique-string-validator.mjs +0 -10
  322. package/esm2022/lib/components/create-task/validators/whitespace-validator.mjs +0 -10
  323. package/esm2022/lib/components/custom-select/custom-select.component.mjs +0 -240
  324. package/esm2022/lib/components/dashboard/dashboard.component.mjs +0 -532
  325. package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +0 -741
  326. package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +0 -155
  327. package/esm2022/lib/components/dashboard-layout/dashboard-layout.component.mjs +0 -12
  328. package/esm2022/lib/components/disabled-select/disabled-select.component.mjs +0 -158
  329. package/esm2022/lib/components/export-gallery/export-gallery.component.mjs +0 -266
  330. package/esm2022/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.mjs +0 -105
  331. package/esm2022/lib/components/eye-test-audit/custom-select/custom-select.component.mjs +0 -240
  332. package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +0 -1733
  333. package/esm2022/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.mjs +0 -24
  334. package/esm2022/lib/components/eye-test-audit/eye-test-audit/eye-test-audit-routing.module.mjs +0 -34
  335. package/esm2022/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.mjs +0 -27
  336. package/esm2022/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.module.mjs +0 -71
  337. package/esm2022/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.mjs +0 -823
  338. package/esm2022/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.mjs +0 -412
  339. package/esm2022/lib/components/eye-test-audit/group-select/group-select.component.mjs +0 -157
  340. package/esm2022/lib/components/eye-test-audit/reactive-select/reactive-select.component.mjs +0 -105
  341. package/esm2022/lib/components/eye-test-audit/select-drop/select-drop.component.mjs +0 -162
  342. package/esm2022/lib/components/eye-test-audit/services/eye-test-audit.service.mjs +0 -166
  343. package/esm2022/lib/components/flag-layout/flag-layout.component.mjs +0 -12
  344. package/esm2022/lib/components/flags/flags.component.mjs +0 -263
  345. package/esm2022/lib/components/flags/flags.interface.mjs +0 -2
  346. package/esm2022/lib/components/flags-info/flags-info.component.mjs +0 -452
  347. package/esm2022/lib/components/flags-info/flags-info.interface.mjs +0 -2
  348. package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +0 -71
  349. package/esm2022/lib/components/flags-new/flags-new.component.mjs +0 -335
  350. package/esm2022/lib/components/flags-new/flags-new.interface.mjs +0 -2
  351. package/esm2022/lib/components/gallery/gallery.component.mjs +0 -3402
  352. package/esm2022/lib/components/group-select/group-select.component.mjs +0 -155
  353. package/esm2022/lib/components/image-popup/image-popup.component.mjs +0 -25
  354. package/esm2022/lib/components/lib/custom-select/custom-select.component.mjs +0 -158
  355. package/esm2022/lib/components/manage-task/manage-task.component.mjs +0 -264
  356. package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +0 -186
  357. package/esm2022/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.mjs +0 -229
  358. package/esm2022/lib/components/multi-date-datepicker/multi-date-datepicker.component.mjs +0 -124
  359. package/esm2022/lib/components/orders/orders.component.mjs +0 -171
  360. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -62
  361. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +0 -108
  362. package/esm2022/lib/components/reports/date-picker/date-picker.component.mjs +0 -60
  363. package/esm2022/lib/components/reports/reports.component.mjs +0 -300
  364. package/esm2022/lib/components/reports/reports.interface.mjs +0 -2
  365. package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +0 -32
  366. package/esm2022/lib/components/task/task.component.mjs +0 -341
  367. package/esm2022/lib/components/task-configure/task-configure.component.mjs +0 -1532
  368. package/esm2022/lib/components/task-configure/task-configure.interface.mjs +0 -2
  369. package/esm2022/lib/components/task-info/task-info.component.mjs +0 -375
  370. package/esm2022/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.mjs +0 -208
  371. package/esm2022/lib/components/task-layout/task-layout.component.mjs +0 -12
  372. package/esm2022/lib/components/task-logs/task-logs.component.mjs +0 -104
  373. package/esm2022/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.mjs +0 -107
  374. package/esm2022/lib/components/trax-store/trax-store.component.mjs +0 -179
  375. package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +0 -70
  376. package/esm2022/lib/services/trax.service.mjs +0 -559
  377. package/esm2022/lib/tango-analyse-trax-routing.module.mjs +0 -153
  378. package/esm2022/lib/tango-analyse-trax.module.mjs +0 -221
  379. package/esm2022/public-api.mjs +0 -6
  380. package/esm2022/tango-app-ui-analyse-trax.mjs +0 -5
  381. package/fesm2022/tango-app-ui-analyse-trax.mjs +0 -28896
  382. package/fesm2022/tango-app-ui-analyse-trax.mjs.map +0 -1
  383. package/index.d.ts +0 -5
  384. package/lib/components/action-centre/action-centre.component.d.ts +0 -68
  385. package/lib/components/activity-log/activity-log.component.d.ts +0 -39
  386. package/lib/components/activity-log-v2/activity-log-v2.component.d.ts +0 -78
  387. package/lib/components/activity-log-v2/log-view-popup/date-range-picker/date-range-picker.component.d.ts +0 -24
  388. package/lib/components/activity-log-v2/log-view-popup/store-user-dropdown/store-user-dropdown.component.d.ts +0 -9
  389. package/lib/components/activity-log-v2/log-view-popup/view-action/view-action.component.d.ts +0 -34
  390. package/lib/components/add-checklist/add-checklist.component.d.ts +0 -121
  391. package/lib/components/add-checklist/checklist-popup/checklist-popup.component.d.ts +0 -45
  392. package/lib/components/add-checklist/counter/counter.component.d.ts +0 -29
  393. package/lib/components/add-multitask/add-multitask.component.d.ts +0 -102
  394. package/lib/components/add-multitask/ascending-validator.d.ts +0 -2
  395. package/lib/components/add-multitask/bulkcreationmodel/bulkcreationmodel.component.d.ts +0 -45
  396. package/lib/components/add-multitask/create-task.data.d.ts +0 -293
  397. package/lib/components/add-multitask/create-task.interface.d.ts +0 -159
  398. package/lib/components/add-multitask/unique-string-validator.d.ts +0 -2
  399. package/lib/components/add-multitask/whitespace-validator.d.ts +0 -2
  400. package/lib/components/add-task/add-task.component.d.ts +0 -89
  401. package/lib/components/add-task/ascending-validator.d.ts +0 -2
  402. package/lib/components/add-task/create-task.data.d.ts +0 -293
  403. package/lib/components/add-task/create-task.interface.d.ts +0 -161
  404. package/lib/components/add-task/unique-string-validator.d.ts +0 -2
  405. package/lib/components/add-task/whitespace-validator.d.ts +0 -2
  406. package/lib/components/approval-popup/approval-popup.component.d.ts +0 -14
  407. package/lib/components/checklist/checklist.component.d.ts +0 -40
  408. package/lib/components/checklist-configure/assign/assign.component.d.ts +0 -105
  409. package/lib/components/checklist-configure/checklist-configure.component.d.ts +0 -325
  410. package/lib/components/checklistlayout/checklistlayout.component.d.ts +0 -15
  411. package/lib/components/chip-dropdown/chip-dropdown.component.d.ts +0 -28
  412. package/lib/components/create-task/create-task.component.d.ts +0 -76
  413. package/lib/components/create-task/create-task.data.d.ts +0 -293
  414. package/lib/components/create-task/create-task.interface.d.ts +0 -163
  415. package/lib/components/create-task/validators/ascending-validator.d.ts +0 -2
  416. package/lib/components/create-task/validators/unique-string-validator.d.ts +0 -2
  417. package/lib/components/create-task/validators/whitespace-validator.d.ts +0 -2
  418. package/lib/components/custom-select/custom-select.component.d.ts +0 -35
  419. package/lib/components/dashboard/dashboard.component.d.ts +0 -80
  420. package/lib/components/dashboard-info/dashboard-info.component.d.ts +0 -117
  421. package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +0 -41
  422. package/lib/components/dashboard-layout/dashboard-layout.component.d.ts +0 -5
  423. package/lib/components/disabled-select/disabled-select.component.d.ts +0 -34
  424. package/lib/components/export-gallery/export-gallery.component.d.ts +0 -44
  425. package/lib/components/eye-test-audit/chip-dropdown/chip-dropdown.component.d.ts +0 -26
  426. package/lib/components/eye-test-audit/custom-select/custom-select.component.d.ts +0 -35
  427. package/lib/components/eye-test-audit/eye-test/eye-test.component.d.ts +0 -218
  428. package/lib/components/eye-test-audit/eye-test/send-alert/send-alert.component.d.ts +0 -12
  429. package/lib/components/eye-test-audit/eye-test-audit/eye-test-audit-routing.module.d.ts +0 -7
  430. package/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.component.d.ts +0 -11
  431. package/lib/components/eye-test-audit/eye-test-audit/eye-test-audit.module.d.ts +0 -21
  432. package/lib/components/eye-test-audit/eye-test-audit/settings-audit/settings-audit.component.d.ts +0 -129
  433. package/lib/components/eye-test-audit/eye-test-audit/start-audit/start-audit.component.d.ts +0 -86
  434. package/lib/components/eye-test-audit/group-select/group-select.component.d.ts +0 -33
  435. package/lib/components/eye-test-audit/reactive-select/reactive-select.component.d.ts +0 -32
  436. package/lib/components/eye-test-audit/select-drop/select-drop.component.d.ts +0 -33
  437. package/lib/components/eye-test-audit/services/eye-test-audit.service.d.ts +0 -47
  438. package/lib/components/flag-layout/flag-layout.component.d.ts +0 -5
  439. package/lib/components/flags/flags.component.d.ts +0 -52
  440. package/lib/components/flags-info/flags-info.component.d.ts +0 -73
  441. package/lib/components/flags-info/flags-info.interface.d.ts +0 -430
  442. package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +0 -13
  443. package/lib/components/flags-new/flags-new.component.d.ts +0 -60
  444. package/lib/components/gallery/gallery.component.d.ts +0 -261
  445. package/lib/components/group-select/group-select.component.d.ts +0 -33
  446. package/lib/components/image-popup/image-popup.component.d.ts +0 -11
  447. package/lib/components/lib/custom-select/custom-select.component.d.ts +0 -33
  448. package/lib/components/manage-task/manage-task.component.d.ts +0 -47
  449. package/lib/components/managechecklist/managechecklist.component.d.ts +0 -33
  450. package/lib/components/multi-chip-dropdown/multi-chip-dropdown.component.d.ts +0 -40
  451. package/lib/components/multi-date-datepicker/multi-date-datepicker.component.d.ts +0 -27
  452. package/lib/components/orders/orders.component.d.ts +0 -38
  453. package/lib/components/pagination/pagination.component.d.ts +0 -16
  454. package/lib/components/reactive-select/reactive-select.component.d.ts +0 -32
  455. package/lib/components/reports/date-picker/date-picker.component.d.ts +0 -23
  456. package/lib/components/reports/reports.component.d.ts +0 -55
  457. package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +0 -14
  458. package/lib/components/task/task.component.d.ts +0 -70
  459. package/lib/components/task-configure/task-configure.component.d.ts +0 -142
  460. package/lib/components/task-configure/task-configure.interface.d.ts +0 -128
  461. package/lib/components/task-info/task-info.component.d.ts +0 -76
  462. package/lib/components/task-info/taskinfo-edit/taskinfo-edit.component.d.ts +0 -61
  463. package/lib/components/task-layout/task-layout.component.d.ts +0 -5
  464. package/lib/components/task-logs/task-logs.component.d.ts +0 -27
  465. package/lib/components/trax-run-ai-popup/trax-run-ai-popup.component.d.ts +0 -26
  466. package/lib/components/trax-store/trax-store.component.d.ts +0 -45
  467. package/lib/components/traxpopup/traxpopup.component.d.ts +0 -24
  468. package/lib/services/trax.service.d.ts +0 -175
  469. package/lib/tango-analyse-trax-routing.module.d.ts +0 -7
  470. package/lib/tango-analyse-trax.module.d.ts +0 -68
@@ -0,0 +1,2003 @@
1
+ <div class="row">
2
+ <div class="col-12 mb-5">
3
+ <div class="c-card d-flex justify-content-between">
4
+ <div>
5
+ <input [formControl]="taskForm.controls.checklistName" type="text" placeholder="Enter Task Name" class="plain-input checklist-name mb-5">
6
+ <input [formControl]="taskForm.controls.checklistDescription" type="text" placeholder="Enter Task Description" class="plain-input checklist-desc">
7
+ </div>
8
+ <div class="d-flex align-items-center" >
9
+ <!-- <button #configureBtn (click)="onSubmit($event)" [disabled]="taskForm.invalid" class="btn btn-primary me-5" >Configure</button>
10
+ <button #saveBtn (click)="onSubmit($event)" [disabled]="taskForm.invalid" class="btn btn-outline" >Save as Draft</button> -->
11
+ <button #configureBtn (click)="onSubmit($event)" class="btn btn-primary me-5" >Configure</button>
12
+ <button #saveBtn (click)="onSubmit($event)" class="btn btn-outline" >Save as Draft</button>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ <div class="col-3">
17
+ <div style="height: 80vh; overflow-y: auto;" class="c-card">
18
+ <ng-container *ngFor="let section of getSections?.controls; let i = index">
19
+ <ng-container *ngFor="let question of getQuestions(i)?.controls; let j = index">
20
+ <div (click)="selectQuestion(i, j, question)"
21
+ [ngClass]="question?.get('qno')?.value === selectedQuestion?.get('qno')?.value ? 'question-badge-selected' : ''"
22
+ class="question-badge wrapClass">
23
+ {{question?.get('qname')?.value ?question?.get('qname')?.value : 'Question ' + question?.get('qno')?.value }}
24
+ </div>
25
+ </ng-container>
26
+ </ng-container>
27
+ </div>
28
+
29
+ </div>
30
+ <div class="col-9">
31
+ <div style="height: 80vh; overflow-y: auto;" class="c-card">
32
+ <form [formGroup]="taskForm">
33
+ <ng-container *ngFor="let section of getSections?.controls; let i = index">
34
+ <ng-container [formGroup]="section">
35
+ <ng-container *ngFor="let question of getQuestions(i)?.controls; let j = index">
36
+ <ng-container [formGroup]="question">
37
+ <div (mouseover)="onHover(question)" [id]="'question-' + i + j" class="question-container mb-10">
38
+ <div class="question-name">
39
+ Question {{j + 1}}
40
+ </div>
41
+
42
+ <ng-container *ngIf="question.get('answerType')?.value === 'descriptive'">
43
+ <div class="d-flex flex-column mb-5">
44
+ <textarea formControlName="qname" placeholder="Enter question here"
45
+ class="form-control"></textarea>
46
+ <ng-container
47
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
48
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
49
+ class="text-danger mt-2">* Question is required</div>
50
+ </ng-container>
51
+ </div>
52
+
53
+
54
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
55
+ <!-- <svg *ngIf="image"
56
+ (click)=""
57
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
58
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
59
+ xmlns="http://www.w3.org/2000/svg">
60
+ <path
61
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
62
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
63
+ stroke-linejoin="round" />
64
+ </svg> -->
65
+
66
+ <img class="mb-5" height="300px"
67
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
68
+ *ngIf="image"
69
+ src="{{environment.TraxAnswerCDN}}{{image}}">
70
+
71
+ <div class="overlay-icons">
72
+ <span class="cursor-pointer" (click)="onPopup(image)">
73
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
74
+ <g filter="url(#filter0_d_14557_62513)">
75
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
76
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
77
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
78
+ </g>
79
+ <defs>
80
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
81
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
82
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
83
+ <feOffset dy="1"/>
84
+ <feGaussianBlur stdDeviation="1"/>
85
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
86
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
87
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
88
+ </filter>
89
+ </defs>
90
+ </svg>
91
+ </span>
92
+ <input [id]="'question_reference_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
93
+ style="display: none;" type="file" accept="image/png, image/jpeg">
94
+ <label class="cursor-pointer" [for]="'question_reference_reupload'+i+j+k">
95
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
96
+ <g filter="url(#filter0_d_14557_62522)">
97
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
98
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
99
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
100
+ </g>
101
+ <defs>
102
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
103
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
104
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
105
+ <feOffset dy="1"/>
106
+ <feGaussianBlur stdDeviation="1"/>
107
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
108
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
109
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
110
+ </filter>
111
+ </defs>
112
+ </svg>
113
+ </label>
114
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
115
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
116
+ <g filter="url(#filter0_d_14557_62514)">
117
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
118
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
119
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
120
+ </g>
121
+ <defs>
122
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
123
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
124
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
125
+ <feOffset dy="1"/>
126
+ <feGaussianBlur stdDeviation="1"/>
127
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
128
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
129
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
130
+ </filter>
131
+ </defs>
132
+ </svg>
133
+ </span>
134
+ </div>
135
+ </div>
136
+
137
+ <div>
138
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
139
+ style="display: none;" type="file" accept="image/png, image/jpeg">
140
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference'+i+j" class="add-reference-btn mb-5">
141
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
142
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
143
+ viewBox="0 0 20 20" fill="none">
144
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
145
+ stroke-width="1.67" stroke-linecap="round"
146
+ stroke-linejoin="round" />
147
+ </svg>
148
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
149
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
150
+ viewBox="0 0 21 20" fill="none">
151
+ <g clip-path="url(#clip0_4082_3122)">
152
+ <path
153
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
154
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
155
+ stroke-linejoin="round" />
156
+ </g>
157
+ <defs>
158
+ <clipPath id="clip0_4082_3122">
159
+ <rect width="20" height="20" fill="white"
160
+ transform="translate(0.5)" />
161
+ </clipPath>
162
+ </defs>
163
+ </svg>
164
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
165
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
166
+
167
+ </label>
168
+ </div>
169
+
170
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
171
+ class="form-select mb-5">
172
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
173
+ {{answer.label}}</option>
174
+ </select>
175
+
176
+ <div class="d-flex mb-5">
177
+ <div class="form-check">
178
+ <input formControlName="descriptivetype"
179
+ class="form-check-input cursor-pointer" type="radio" value="text"
180
+ [id]="'descriptivetype_text' + i + j">
181
+ <label class="cursor-pointer dscriptiveType"
182
+ [for]="'descriptivetype_text' + i + j">Text</label>
183
+ </div>
184
+ <div class="form-check ms-5">
185
+ <input formControlName="descriptivetype"
186
+ class="form-check-input cursor-pointer" type="radio" value="number"
187
+ [id]="'descriptivetype_number' + i + j">
188
+ <label class="cursor-pointer dscriptiveType"
189
+ [for]="'descriptivetype_number' + i + j">Number</label>
190
+ </div>
191
+ </div>
192
+
193
+ </ng-container>
194
+
195
+ <ng-container *ngIf="question.get('answerType')?.value === 'yes/no'">
196
+ <div class="d-flex flex-column mb-5">
197
+ <textarea formControlName="qname" placeholder="Enter question here"
198
+ class="form-control"></textarea>
199
+ <ng-container
200
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
201
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
202
+ class="text-danger mt-2">* Question is required</div>
203
+ </ng-container>
204
+ </div>
205
+
206
+
207
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
208
+ <!-- <svg *ngIf="image"
209
+ (click)="onDeleteQuestionReferenceImage(i, j, k)"
210
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
211
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
212
+ xmlns="http://www.w3.org/2000/svg">
213
+ <path
214
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
215
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
216
+ stroke-linejoin="round" />
217
+ </svg> -->
218
+
219
+
220
+ <img class="mb-5" height="300px"
221
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
222
+ *ngIf="image"
223
+ src="{{environment.TraxAnswerCDN}}{{image}}">
224
+
225
+ <div class="overlay-icons">
226
+ <span class="cursor-pointer" (click)="onPopup(image)">
227
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
228
+ <g filter="url(#filter0_d_14557_62513)">
229
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
230
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
231
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
232
+ </g>
233
+ <defs>
234
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
235
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
236
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
237
+ <feOffset dy="1"/>
238
+ <feGaussianBlur stdDeviation="1"/>
239
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
240
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
241
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
242
+ </filter>
243
+ </defs>
244
+ </svg>
245
+ </span>
246
+ <input [id]="'question_reference_yesNo_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
247
+ style="display: none;" type="file" accept="image/png, image/jpeg">
248
+ <label class="cursor-pointer" [for]="'question_reference_yesNo_reupload'+i+j+k">
249
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
250
+ <g filter="url(#filter0_d_14557_62522)">
251
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
252
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
253
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
254
+ </g>
255
+ <defs>
256
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
257
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
258
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
259
+ <feOffset dy="1"/>
260
+ <feGaussianBlur stdDeviation="1"/>
261
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
262
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
263
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
264
+ </filter>
265
+ </defs>
266
+ </svg>
267
+ </label>
268
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
269
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
270
+ <g filter="url(#filter0_d_14557_62514)">
271
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
272
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
273
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
274
+ </g>
275
+ <defs>
276
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
277
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
278
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
279
+ <feOffset dy="1"/>
280
+ <feGaussianBlur stdDeviation="1"/>
281
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
282
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
283
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
284
+ </filter>
285
+ </defs>
286
+ </svg>
287
+ </span>
288
+ </div>
289
+ </div>
290
+
291
+ <div>
292
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
293
+ style="display: none;" type="file" accept="image/png, image/jpeg">
294
+ <label [for]="'question_reference'+i+j" *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3" class="add-reference-btn mb-5">
295
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
296
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
297
+ viewBox="0 0 20 20" fill="none">
298
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
299
+ stroke-width="1.67" stroke-linecap="round"
300
+ stroke-linejoin="round" />
301
+ </svg>
302
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
303
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
304
+ viewBox="0 0 21 20" fill="none">
305
+ <g clip-path="url(#clip0_4082_3122)">
306
+ <path
307
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
308
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
309
+ stroke-linejoin="round" />
310
+ </g>
311
+ <defs>
312
+ <clipPath id="clip0_4082_3122">
313
+ <rect width="20" height="20" fill="white"
314
+ transform="translate(0.5)" />
315
+ </clipPath>
316
+ </defs>
317
+ </svg>
318
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
319
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
320
+
321
+ </label>
322
+ </div>
323
+
324
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
325
+ class="form-select mb-5">
326
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
327
+ {{answer.label}}</option>
328
+ </select>
329
+
330
+ <div class="d-flex justify-content-between align-items-center mb-5">
331
+ <div class="ans-header">Answer Options</div>
332
+ <div class="form-check form-switch align-items-center" *ngIf="question.get('answerType')?.value === 'dropdown'">
333
+ <input class="form-check-input" type="checkbox" formControlName="allowMultiple"
334
+ [id]="'allow_multiple_'+i+j">
335
+ <label class="form-check-label" [for]="'allow_multiple_'+i+j">Allow Multiple Answer</label>
336
+ </div>
337
+ </div>
338
+
339
+ <ng-container *ngFor="let answer of getAnswers(i, j).controls; let k = index">
340
+ <ng-container [formGroup]="answer">
341
+ <div class="row">
342
+ <div class="col-6 mb-5">
343
+ <div class="input-group ">
344
+ <input formControlName="answer" type="text"
345
+ class="form-control" placeholder="Enter answer here">
346
+ <!-- <button
347
+ (click)="answer.get('showLinked')?.setValue(!answer.get('showLinked')?.value); answer.get('showLinked')?.value ? answer.get('validation')?.setValue(false) : null;"
348
+ class="btn btn-outline" type="button">
349
+ <svg _ngcontent-ng-c1491044170=""
350
+ xmlns="http://www.w3.org/2000/svg" width="20"
351
+ height="20" viewBox="0 0 20 20" fill="none"
352
+ class="imgAdd ng-star-inserted">
353
+ <path _ngcontent-ng-c1491044170=""
354
+ d="M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333"
355
+ stroke="#344054" stroke-width="1.67"
356
+ stroke-linecap="round" stroke-linejoin="round">
357
+ </path>
358
+ </svg>
359
+ </button> -->
360
+ <!-- <button
361
+ (click)="answer.get('sopFlag')?.setValue(!answer.get('sopFlag')?.value)"
362
+ class="btn btn-outline" type="button">
363
+ <svg xmlns="http://www.w3.org/2000/svg" width="20"
364
+ height="20" viewBox="0 0 20 20"
365
+ [attr.fill]="answer.get('sopFlag')?.value ? 'red' : 'none'">
366
+ <path
367
+ d="M3.33203 12.5001C3.33203 12.5001 4.16536 11.6667 6.66536 11.6667C9.16536 11.6667 10.832 13.3334 13.332 13.3334C15.832 13.3334 16.6654 12.5001 16.6654 12.5001V2.50008C16.6654 2.50008 15.832 3.33341 13.332 3.33341C10.832 3.33341 9.16536 1.66675 6.66536 1.66675C4.16536 1.66675 3.33203 2.50008 3.33203 2.50008V12.5001ZM3.33203 12.5001V18.3334"
368
+ [attr.stroke]="answer.get('sopFlag')?.value ? 'red' : '#667085'"
369
+ stroke-width="1.67" stroke-linecap="round"
370
+ stroke-linejoin="round" />
371
+ </svg>
372
+ </button> -->
373
+ </div>
374
+ <ng-container
375
+ *ngIf="answer.get('answer')?.invalid && answer.get('answer')?.touched">
376
+ <div *ngIf="answer.get('answer')?.hasError('required') || question.get('answer')?.hasError('whitespace')"
377
+ class="text-danger mt-2">* Answer is required</div>
378
+ </ng-container>
379
+ </div>
380
+ <!-- <div *ngIf="!answer.get('showLinked')?.value" class="col-6">
381
+ <div style="padding-left: unset;" class="form-check">
382
+ <input formControlName="validation"
383
+ (change)="onValidateResponseChange($event, i, j, k)"
384
+ class="form-check-input c-checkbox" type="checkbox"
385
+ [id]="'validate_response'+i+j+k">
386
+ <label class="form-check-label check-label"
387
+ [for]="'validate_response'+i+j+k">
388
+ Validate response
389
+ </label>
390
+ <div class="check-desc">Trigger an action for each response
391
+ to validate it</div>
392
+ </div>
393
+ </div> -->
394
+ <div *ngIf="answer.get('showLinked')?.value && !answer.get('validation')?.value"
395
+ class="col-12 mb-5">
396
+ <div class="row">
397
+ <div class="col-3">
398
+ <span
399
+ class="check-label d-flex align-items-center h-100">Linked
400
+ Question</span>
401
+ </div>
402
+ <div class="col-9">
403
+ <select formControlName="linkedQuestion"
404
+ class="form-select ">
405
+ <option
406
+ *ngFor="let question of getQuestions(i).controls; let l = index"
407
+ [ngValue]="question.get('qno')?.value">
408
+ {{'Question ' + l + 1}}</option>
409
+ </select>
410
+ </div>
411
+ </div>
412
+ </div>
413
+
414
+
415
+ <!-- <ng-container
416
+ *ngIf="answer.get('validation')?.value && !answer.get('showLinked')?.value">
417
+ <div class="col-6">
418
+ <div
419
+ class="d-flex align-items-center justify-content-between mb-5">
420
+ <span class="check-label">If the response is this,
421
+ then</span>
422
+ <span>
423
+ <select formControlName="validationType"
424
+ class="form-select ">
425
+ <option
426
+ *ngFor="let validation of validationTypes"
427
+ [value]="validation.value">
428
+ {{validation.label}}</option>
429
+ </select>
430
+ </span>
431
+ </div>
432
+
433
+ </div>
434
+ <div *ngIf="answer.get('validationType')?.value === 'Descriptive Answer'"
435
+ class="col-6">
436
+ <div class="d-flex align-items-center h-100">
437
+ <div class="form-check">
438
+ <input formControlName="descriptivetype"
439
+ class="form-check-input cursor-pointer"
440
+ type="radio" value="text"
441
+ [id]="'descriptive_answer_validation_text' + i + j + k">
442
+ <label class="cursor-pointer dscriptiveType"
443
+ [for]="'descriptive_answer_validation_text' + i + j + k">Text</label>
444
+ </div>
445
+ <div class="form-check ms-5">
446
+ <input formControlName="descriptivetype"
447
+ class="form-check-input cursor-pointer"
448
+ type="radio" value="number"
449
+ [id]="'descriptive_answer_validation_number' + i + j + k">
450
+ <label class="cursor-pointer dscriptiveType"
451
+ [for]="'descriptive_answer_validation_number' + i + j + k">Number</label>
452
+ </div>
453
+ </div>
454
+ </div>
455
+ <div *ngIf="answer.get('validationType')?.value === 'Capture Image'"
456
+ class="col-12 mb-5">
457
+ <div style="position: relative;">
458
+ <svg *ngIf="answer.get('referenceImage')?.value"
459
+ (click)="onDeleteReferenceImage(i, j, k)"
460
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
461
+ width="20" height="20" viewBox="0 0 20 20"
462
+ fill="none" xmlns="http://www.w3.org/2000/svg">
463
+ <path
464
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
465
+ stroke="#B42318" stroke-width="1.67"
466
+ stroke-linecap="round"
467
+ stroke-linejoin="round" />
468
+ </svg>
469
+
470
+
471
+ <img class="mb-5" height="300px"
472
+ style="width: 100%; object-fit: contain; background: white; border-radius: 5px;"
473
+ *ngIf="answer.get('referenceImage')?.value"
474
+ [src]="answer.get('referenceImage')?.value">
475
+ </div>
476
+ <input [id]="'answer_validation_reference'+i+j+k"
477
+ (change)="uploadFile($event, i, j, k)"
478
+ style="display: none;" type="file"
479
+ accept="image/png, image/jpeg">
480
+ <div class="row">
481
+ <div class="col-6">
482
+ <div
483
+ class="d-flex align-items-center justify-content-between">
484
+ <label [for]="'answer_validation_reference'+i+j+k"
485
+ class="add-reference-btn ">
486
+ <svg *ngIf="!answer.get('referenceImage')?.value"
487
+ class="mr-2"
488
+ xmlns="http://www.w3.org/2000/svg"
489
+ width="20" height="20"
490
+ viewBox="0 0 20 20" fill="none">
491
+ <path
492
+ d="M10 4.16797V15.8346M4.16669 10.0013H15.8334"
493
+ stroke="#009BF3" stroke-width="1.67"
494
+ stroke-linecap="round"
495
+ stroke-linejoin="round" />
496
+ </svg>
497
+ <svg *ngIf="answer.get('referenceImage')?.value"
498
+ xmlns="http://www.w3.org/2000/svg"
499
+ class="mx-2" width="21" height="20"
500
+ viewBox="0 0 21 20" fill="none">
501
+ <g clip-path="url(#clip0_4082_3122)">
502
+ <path
503
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
504
+ stroke="#009BF3"
505
+ stroke-width="1.67"
506
+ stroke-linecap="round"
507
+ stroke-linejoin="round" />
508
+ </g>
509
+ <defs>
510
+ <clipPath id="clip0_4082_3122">
511
+ <rect width="20" height="20"
512
+ fill="white"
513
+ transform="translate(0.5)" />
514
+ </clipPath>
515
+ </defs>
516
+ </svg>
517
+ <span
518
+ *ngIf="!answer.get('referenceImage')?.value">Add
519
+ Reference
520
+ Image</span>
521
+ <span
522
+ *ngIf="answer.get('referenceImage')?.value">Add Next Image</span>
523
+
524
+ </label>
525
+
526
+ <div>
527
+ <div class="form-check form-switch">
528
+ <input
529
+ formControlName="allowUploadfromGallery"
530
+ class="form-check-input"
531
+ type="checkbox" role="switch"
532
+ [id]="'allow_upload_from_gallery' + i + j + k">
533
+ <label
534
+ class="form-check-label check-label"
535
+ [for]="'allow_upload_from_gallery' + i + j + k">Allow
536
+ upload from gallery</label>
537
+ </div>
538
+ </div>
539
+ </div>
540
+ </div>
541
+ </div>
542
+ </div>
543
+ </ng-container> -->
544
+ </div>
545
+ </ng-container>
546
+ </ng-container>
547
+ <ng-container
548
+ *ngIf="question?.invalid && question?.touched">
549
+ <div *ngIf="question.get('answers')?.hasError('duplicateString')"
550
+ class="text-danger mt-2">* Same answer cannot be repeated</div>
551
+ </ng-container>
552
+ </ng-container>
553
+
554
+ <ng-container *ngIf="question.get('answerType')?.value === 'multiplechoicesingle' || question.get('answerType')?.value === 'multiplechoicemultiple' || question.get('answerType')?.value === 'dropdown'">
555
+ <div class="d-flex flex-column mb-5">
556
+ <textarea formControlName="qname" placeholder="Enter question here"
557
+ class="form-control"></textarea>
558
+ <ng-container
559
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
560
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
561
+ class="text-danger mt-2">* Question is required</div>
562
+ </ng-container>
563
+ </div>
564
+
565
+
566
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
567
+ <!-- <svg *ngIf="image"
568
+ (click)="onDeleteQuestionReferenceImage(i, j, k)"
569
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
570
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
571
+ xmlns="http://www.w3.org/2000/svg">
572
+ <path
573
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
574
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
575
+ stroke-linejoin="round" />
576
+ </svg> -->
577
+
578
+
579
+ <img class="mb-5" height="300px"
580
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
581
+ *ngIf="image"
582
+ src="{{environment.TraxAnswerCDN}}{{image}}">
583
+
584
+ <div class="overlay-icons">
585
+ <span class="cursor-pointer" (click)="onPopup(image)">
586
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
587
+ <g filter="url(#filter0_d_14557_62513)">
588
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
589
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
590
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
591
+ </g>
592
+ <defs>
593
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
594
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
595
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
596
+ <feOffset dy="1"/>
597
+ <feGaussianBlur stdDeviation="1"/>
598
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
599
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
600
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
601
+ </filter>
602
+ </defs>
603
+ </svg>
604
+ </span>
605
+ <input [id]="'question_reference_multi_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
606
+ style="display: none;" type="file" accept="image/png, image/jpeg">
607
+ <label class="cursor-pointer" [for]="'question_reference_multi_reupload'+i+j+k">
608
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
609
+ <g filter="url(#filter0_d_14557_62522)">
610
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
611
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
612
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
613
+ </g>
614
+ <defs>
615
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
616
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
617
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
618
+ <feOffset dy="1"/>
619
+ <feGaussianBlur stdDeviation="1"/>
620
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
621
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
622
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
623
+ </filter>
624
+ </defs>
625
+ </svg>
626
+ </label>
627
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
628
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
629
+ <g filter="url(#filter0_d_14557_62514)">
630
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
631
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
632
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
633
+ </g>
634
+ <defs>
635
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
636
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
637
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
638
+ <feOffset dy="1"/>
639
+ <feGaussianBlur stdDeviation="1"/>
640
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
641
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
642
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
643
+ </filter>
644
+ </defs>
645
+ </svg>
646
+ </span>
647
+ </div>
648
+ </div>
649
+
650
+
651
+ <div>
652
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
653
+ style="display: none;" type="file" accept="image/png, image/jpeg">
654
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference'+i+j" class="add-reference-btn mb-5">
655
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
656
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
657
+ viewBox="0 0 20 20" fill="none">
658
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
659
+ stroke-width="1.67" stroke-linecap="round"
660
+ stroke-linejoin="round" />
661
+ </svg>
662
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
663
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
664
+ viewBox="0 0 21 20" fill="none">
665
+ <g clip-path="url(#clip0_4082_3122)">
666
+ <path
667
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
668
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
669
+ stroke-linejoin="round" />
670
+ </g>
671
+ <defs>
672
+ <clipPath id="clip0_4082_3122">
673
+ <rect width="20" height="20" fill="white"
674
+ transform="translate(0.5)" />
675
+ </clipPath>
676
+ </defs>
677
+ </svg>
678
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
679
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
680
+
681
+ </label>
682
+ </div>
683
+
684
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
685
+ class="form-select mb-5">
686
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
687
+ {{answer.label}}</option>
688
+ </select>
689
+
690
+ <div class="d-flex justify-content-between align-items-center mb-5">
691
+ <div class="ans-header">Answer Options</div>
692
+ <div class="form-check form-switch align-items-center" *ngIf="question.get('answerType')?.value === 'dropdown'">
693
+ <input class="form-check-input" type="checkbox" formControlName="allowMultiple"
694
+ [id]="'allow_multiple_'+i+j">
695
+ <label class="form-check-label" [for]="'allow_multiple_'+i+j">Allow Multiple Answer</label>
696
+ </div>
697
+ </div>
698
+
699
+ <ng-container *ngFor="let answer of getAnswers(i, j).controls; let k = index">
700
+ <ng-container [formGroup]="answer">
701
+ <div class="row">
702
+ <div class="col-6 mb-5">
703
+ <div class="input-group ">
704
+ <input formControlName="answer" type="text"
705
+ class="form-control" placeholder="Enter answer here">
706
+ <!-- <button
707
+ (click)="answer.get('showLinked')?.setValue(!answer.get('showLinked')?.value); answer.get('showLinked')?.value ? answer.get('validation')?.setValue(false) : null;"
708
+ class="btn btn-outline" type="button">
709
+ <svg _ngcontent-ng-c1491044170=""
710
+ xmlns="http://www.w3.org/2000/svg" width="20"
711
+ height="20" viewBox="0 0 20 20" fill="none"
712
+ class="imgAdd ng-star-inserted">
713
+ <path _ngcontent-ng-c1491044170=""
714
+ d="M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333"
715
+ stroke="#344054" stroke-width="1.67"
716
+ stroke-linecap="round" stroke-linejoin="round">
717
+ </path>
718
+ </svg>
719
+ </button> -->
720
+ <!-- <button
721
+ (click)="answer.get('sopFlag')?.setValue(!answer.get('sopFlag')?.value)"
722
+ class="btn btn-outline" type="button">
723
+ <svg xmlns="http://www.w3.org/2000/svg" width="20"
724
+ height="20" viewBox="0 0 20 20"
725
+ [attr.fill]="answer.get('sopFlag')?.value ? 'red' : 'none'">
726
+ <path
727
+ d="M3.33203 12.5001C3.33203 12.5001 4.16536 11.6667 6.66536 11.6667C9.16536 11.6667 10.832 13.3334 13.332 13.3334C15.832 13.3334 16.6654 12.5001 16.6654 12.5001V2.50008C16.6654 2.50008 15.832 3.33341 13.332 3.33341C10.832 3.33341 9.16536 1.66675 6.66536 1.66675C4.16536 1.66675 3.33203 2.50008 3.33203 2.50008V12.5001ZM3.33203 12.5001V18.3334"
728
+ [attr.stroke]="answer.get('sopFlag')?.value ? 'red' : '#667085'"
729
+ stroke-width="1.67" stroke-linecap="round"
730
+ stroke-linejoin="round" />
731
+ </svg>
732
+ </button> -->
733
+ </div>
734
+ <ng-container
735
+ *ngIf="answer.get('answer')?.invalid && answer.get('answer')?.touched">
736
+ <div *ngIf="answer.get('answer')?.hasError('required') || question.get('answer')?.hasError('whitespace')"
737
+ class="text-danger mt-2">* Answer is required</div>
738
+ </ng-container>
739
+ </div>
740
+ <div class="col-6">
741
+ <div style="height: 75%;" class="d-flex justify-content-between align-items-center">
742
+ <!-- <div style="padding-left: unset;" class="form-check">
743
+ <input formControlName="validation"
744
+ (change)="onValidateResponseChange($event, i, j, k)"
745
+ class="form-check-input c-checkbox" type="checkbox"
746
+ [id]="'validate_response'+i+j+k">
747
+ <label class="form-check-label check-label"
748
+ [for]="'validate_response'+i+j+k">
749
+ Validate response
750
+ </label>
751
+ <div style="white-space: nowrap;" class="check-desc">
752
+ Trigger an action for each
753
+ response
754
+ to validate it</div>
755
+ </div> -->
756
+ <div>
757
+ <svg *ngIf="getAnswers(i, j).controls.length > 2" (click)="onAnswerDelete(i, j, k)"
758
+ class="cursor-pointer"
759
+ xmlns="http://www.w3.org/2000/svg"
760
+ matTooltip="Delete answer"
761
+ matTooltipPosition="above"
762
+ matTooltipClass="custom-test" width="20" height="20"
763
+ viewBox="0 0 20 20" fill="none">
764
+ <path _ngcontent-ng-c1491044170=""
765
+ d="M15 5L5 15M5 5L15 15" stroke="#667085"
766
+ stroke-width="1.66667" stroke-linecap="round"
767
+ stroke-linejoin="round"></path>
768
+ </svg>
769
+ </div>
770
+
771
+ </div>
772
+
773
+ </div>
774
+ <div *ngIf="answer.get('showLinked')?.value && !answer.get('validation')?.value"
775
+ class="col-12 mb-5">
776
+ <div class="row">
777
+ <div class="col-3">
778
+ <span
779
+ class="check-label d-flex align-items-center h-100">Linked
780
+ Question</span>
781
+ </div>
782
+ <div class="col-9">
783
+ <select formControlName="linkedQuestion"
784
+ class="form-select ">
785
+ <option
786
+ *ngFor="let question of getQuestions(i).controls; let l = index"
787
+ [ngValue]="question.get('qno')?.value">
788
+ {{'Question ' + l + 1}}</option>
789
+ </select>
790
+ </div>
791
+ </div>
792
+ </div>
793
+
794
+
795
+ <!-- <ng-container
796
+ *ngIf="answer.get('validation')?.value && !answer.get('showLinked')?.value">
797
+ <div class="col-6">
798
+ <div
799
+ class="d-flex align-items-center justify-content-between mb-5">
800
+ <span class="check-label">If the response is this,
801
+ then</span>
802
+ <span>
803
+ <select formControlName="validationType"
804
+ class="form-select ">
805
+ <option
806
+ *ngFor="let validation of validationTypes"
807
+ [value]="validation.value">
808
+ {{validation.label}}</option>
809
+ </select>
810
+ </span>
811
+ </div>
812
+
813
+ </div>
814
+ <div *ngIf="answer.get('validationType')?.value === 'Descriptive Answer'"
815
+ class="col-6">
816
+ <div class="d-flex align-items-center h-100">
817
+ <div class="form-check">
818
+ <input formControlName="descriptivetype"
819
+ class="form-check-input cursor-pointer"
820
+ type="radio" value="text"
821
+ [id]="'descriptive_answer_validation_text' + i + j + k">
822
+ <label class="cursor-pointer dscriptiveType"
823
+ [for]="'descriptive_answer_validation_text' + i + j + k">Text</label>
824
+ </div>
825
+ <div class="form-check ms-5">
826
+ <input formControlName="descriptivetype"
827
+ class="form-check-input cursor-pointer"
828
+ type="radio" value="number"
829
+ [id]="'descriptive_answer_validation_number' + i + j + k">
830
+ <label class="cursor-pointer dscriptiveType"
831
+ [for]="'descriptive_answer_validation_number' + i + j + k">Number</label>
832
+ </div>
833
+ </div>
834
+ </div>
835
+ <div *ngIf="answer.get('validationType')?.value === 'Capture Image'"
836
+ class="col-12 mb-5">
837
+ <div style="position: relative;">
838
+ <svg *ngIf="answer.get('referenceImage')?.value"
839
+ (click)="onDeleteReferenceImage(i, j, k)"
840
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
841
+ width="20" height="20" viewBox="0 0 20 20"
842
+ fill="none" xmlns="http://www.w3.org/2000/svg">
843
+ <path
844
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
845
+ stroke="#B42318" stroke-width="1.67"
846
+ stroke-linecap="round"
847
+ stroke-linejoin="round" />
848
+ </svg>
849
+
850
+
851
+ <img class="mb-5" height="300px"
852
+ style="width: 100%; object-fit: contain; background: white; border-radius: 5px;"
853
+ *ngIf="answer.get('referenceImage')?.value"
854
+ [src]="answer.get('referenceImage')?.value">
855
+ </div>
856
+
857
+
858
+ <input [id]="'answer_validation_reference'+i+j+k"
859
+ (change)="uploadFile($event, i, j, k)"
860
+ style="display: none;" type="file"
861
+ accept="image/png, image/jpeg">
862
+ <div class="row">
863
+ <div class="col-6">
864
+ <div
865
+ class="d-flex align-items-center justify-content-between">
866
+ <label [for]="'answer_validation_reference'+i+j+k"
867
+ class="add-reference-btn ">
868
+ <svg *ngIf="!answer.get('referenceImage')?.value"
869
+ class="mr-2"
870
+ xmlns="http://www.w3.org/2000/svg"
871
+ width="20" height="20"
872
+ viewBox="0 0 20 20" fill="none">
873
+ <path
874
+ d="M10 4.16797V15.8346M4.16669 10.0013H15.8334"
875
+ stroke="#009BF3" stroke-width="1.67"
876
+ stroke-linecap="round"
877
+ stroke-linejoin="round" />
878
+ </svg>
879
+ <svg *ngIf="answer.get('referenceImage')?.value"
880
+ xmlns="http://www.w3.org/2000/svg"
881
+ class="mx-2" width="21" height="20"
882
+ viewBox="0 0 21 20" fill="none">
883
+ <g clip-path="url(#clip0_4082_3122)">
884
+ <path
885
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
886
+ stroke="#009BF3"
887
+ stroke-width="1.67"
888
+ stroke-linecap="round"
889
+ stroke-linejoin="round" />
890
+ </g>
891
+ <defs>
892
+ <clipPath id="clip0_4082_3122">
893
+ <rect width="20" height="20"
894
+ fill="white"
895
+ transform="translate(0.5)" />
896
+ </clipPath>
897
+ </defs>
898
+ </svg>
899
+ <span
900
+ *ngIf="!answer.get('referenceImage')?.value">Add
901
+ Reference
902
+ Image</span>
903
+ <span
904
+ *ngIf="answer.get('referenceImage')?.value">Add Next Image</span>
905
+
906
+ </label>
907
+
908
+ <div>
909
+ <div class="form-check form-switch">
910
+ <input
911
+ formControlName="allowUploadfromGallery"
912
+ class="form-check-input"
913
+ type="checkbox" role="switch"
914
+ [id]="'allow_upload_from_gallery' + i + j + k">
915
+ <label
916
+ class="form-check-label check-label"
917
+ [for]="'allow_upload_from_gallery' + i + j + k">Allow
918
+ upload from gallery</label>
919
+ </div>
920
+ </div>
921
+ </div>
922
+ </div>
923
+ </div>
924
+ </div>
925
+ </ng-container> -->
926
+ </div>
927
+ </ng-container>
928
+ </ng-container>
929
+
930
+ <ng-container
931
+ *ngIf="question?.invalid && question?.touched">
932
+ <div *ngIf="question.get('answers')?.hasError('duplicateString')"
933
+ class="text-danger mt-2">* Same answer cannot be repeated</div>
934
+ </ng-container>
935
+
936
+
937
+ <div (click)="addNewAnswer(i, j, 'multiplechoicesingle')"
938
+ class="add-reference-btn mb-5 d-flex justify-content-center">
939
+ Add More Answer
940
+ </div>
941
+ </ng-container>
942
+
943
+ <ng-container *ngIf="question.get('answerType')?.value === 'descriptiveImage' || question.get('answerType')?.value === 'image'">
944
+ <div class="d-flex flex-column mb-5">
945
+ <textarea formControlName="qname" placeholder="Enter question here"
946
+ class="form-control"></textarea>
947
+ <ng-container
948
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
949
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
950
+ class="text-danger mt-2">* Question is required</div>
951
+ </ng-container>
952
+ </div>
953
+
954
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
955
+ class="form-select mb-5">
956
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
957
+ {{answer.label}}</option>
958
+ </select>
959
+
960
+ <ng-container *ngFor="let answer of getAnswers(i, j).controls; let k = index">
961
+ <ng-container [formGroup]="answer">
962
+ <div class="row">
963
+ <div class="col-12 mb-5">
964
+ <div *ngFor="let image of answer.get('referenceImage')?.value; let l = index" style="position: relative;" class="col-md-4 image-container">
965
+ <!-- <svg *ngIf="image"
966
+ (click)="onDeleteAnswerReferenceImage(i, j, k, l)"
967
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
968
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
969
+ xmlns="http://www.w3.org/2000/svg">
970
+ <path
971
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
972
+ stroke="#B42318" stroke-width="1.67"
973
+ stroke-linecap="round" stroke-linejoin="round" />
974
+ </svg> -->
975
+
976
+
977
+ <img class="mb-5" height="300px"
978
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
979
+ *ngIf="image"
980
+ src="{{environment.TraxAnswerCDN}}{{image}}">
981
+
982
+ <div class="overlay-icons">
983
+ <span class="cursor-pointer" (click)="onPopup(image)">
984
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
985
+ <g filter="url(#filter0_d_14557_62513)">
986
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
987
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
988
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
989
+ </g>
990
+ <defs>
991
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
992
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
993
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
994
+ <feOffset dy="1"/>
995
+ <feGaussianBlur stdDeviation="1"/>
996
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
997
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
998
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
999
+ </filter>
1000
+ </defs>
1001
+ </svg>
1002
+ </span>
1003
+ <input [id]="'question_reference_image_reupload'+i+j+k+l" (change)="uploadFile($event, i, j,k,l)"
1004
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1005
+ <label class="cursor-pointer" [for]="'question_reference_image_reupload'+i+j+k+l">
1006
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1007
+ <g filter="url(#filter0_d_14557_62522)">
1008
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1009
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1010
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1011
+ </g>
1012
+ <defs>
1013
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1014
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1015
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1016
+ <feOffset dy="1"/>
1017
+ <feGaussianBlur stdDeviation="1"/>
1018
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1019
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1020
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1021
+ </filter>
1022
+ </defs>
1023
+ </svg>
1024
+ </label>
1025
+ <span class="cursor-pointer" (click)="onDeleteAnswerReferenceImage(i, j, k, l)">
1026
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1027
+ <g filter="url(#filter0_d_14557_62514)">
1028
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1029
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1030
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1031
+ </g>
1032
+ <defs>
1033
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1034
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1035
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1036
+ <feOffset dy="1"/>
1037
+ <feGaussianBlur stdDeviation="1"/>
1038
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1039
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1040
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1041
+ </filter>
1042
+ </defs>
1043
+ </svg>
1044
+ </span>
1045
+ </div>
1046
+ </div>
1047
+
1048
+
1049
+ <input [id]="'answer_validation_reference'+i+j+k"
1050
+ (change)="uploadFile($event, i, j, k)"
1051
+ style="display: none;" type="file"
1052
+ accept="image/png, image/jpeg">
1053
+ <div class="row">
1054
+ <div class="col-6">
1055
+ <div class="d-flex align-items-center justify-content-between">
1056
+ <label *ngIf="(answer.get('referenceImage')?.value?.length ?? 0) < 3 " [for]="'answer_validation_reference'+i+j+k"
1057
+ class="add-reference-btn ">
1058
+ <svg *ngIf="!answer.get('referenceImage')?.value?.length"
1059
+ class="mr-2"
1060
+ xmlns="http://www.w3.org/2000/svg"
1061
+ width="20" height="20" viewBox="0 0 20 20"
1062
+ fill="none">
1063
+ <path
1064
+ d="M10 4.16797V15.8346M4.16669 10.0013H15.8334"
1065
+ stroke="#009BF3" stroke-width="1.67"
1066
+ stroke-linecap="round"
1067
+ stroke-linejoin="round" />
1068
+ </svg>
1069
+ <svg *ngIf="answer.get('referenceImage')?.value?.length"
1070
+ xmlns="http://www.w3.org/2000/svg"
1071
+ class="mx-2" width="21" height="20"
1072
+ viewBox="0 0 21 20" fill="none">
1073
+ <g clip-path="url(#clip0_4082_3122)">
1074
+ <path
1075
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1076
+ stroke="#009BF3" stroke-width="1.67"
1077
+ stroke-linecap="round"
1078
+ stroke-linejoin="round" />
1079
+ </g>
1080
+ <defs>
1081
+ <clipPath id="clip0_4082_3122">
1082
+ <rect width="20" height="20"
1083
+ fill="white"
1084
+ transform="translate(0.5)" />
1085
+ </clipPath>
1086
+ </defs>
1087
+ </svg>
1088
+ <span *ngIf="!answer.get('referenceImage')?.value?.length">Add Reference Image</span>
1089
+ <span *ngIf="answer.get('referenceImage')?.value?.length">Add Next Image</span>
1090
+
1091
+ </label>
1092
+
1093
+ <div>
1094
+ <div class="form-check form-switch">
1095
+ <input
1096
+ [formControl]="question.controls.allowUploadfromGallery"
1097
+ class="form-check-input" type="checkbox"
1098
+ role="switch"
1099
+ [id]="'allow_upload_from_gallery' + i + j">
1100
+ <label class="form-check-label check-label"
1101
+ [for]="'allow_upload_from_gallery' + i + j">Allow upload from gallery</label>
1102
+ </div>
1103
+ </div>
1104
+ </div>
1105
+ </div>
1106
+ </div>
1107
+ </div>
1108
+ </div>
1109
+ </ng-container>
1110
+ </ng-container>
1111
+
1112
+
1113
+ </ng-container>
1114
+
1115
+ <ng-container *ngIf="question.get('answerType')?.value === 'video'">
1116
+ <div class="d-flex flex-column mb-5">
1117
+ <textarea formControlName="qname" placeholder="Enter question here"
1118
+ class="form-control"></textarea>
1119
+ <ng-container
1120
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
1121
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
1122
+ class="text-danger mt-2">* Question is required</div>
1123
+ </ng-container>
1124
+ </div>
1125
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
1126
+ <!-- <svg *ngIf="image"
1127
+ (click)="onDeleteQuestionReferenceImage(i, j, k)"
1128
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
1129
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
1130
+ xmlns="http://www.w3.org/2000/svg">
1131
+ <path
1132
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
1133
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
1134
+ stroke-linejoin="round" />
1135
+ </svg> -->
1136
+
1137
+
1138
+ <img class="mb-5" height="300px"
1139
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
1140
+ *ngIf="image"
1141
+ src="{{environment.TraxAnswerCDN}}{{image}}">
1142
+
1143
+ <div class="overlay-icons">
1144
+ <span class="cursor-pointer" (click)="onPopup(image)">
1145
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1146
+ <g filter="url(#filter0_d_14557_62513)">
1147
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1148
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1149
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1150
+ </g>
1151
+ <defs>
1152
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1153
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1154
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1155
+ <feOffset dy="1"/>
1156
+ <feGaussianBlur stdDeviation="1"/>
1157
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1158
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
1159
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
1160
+ </filter>
1161
+ </defs>
1162
+ </svg>
1163
+ </span>
1164
+ <input [id]="'question_reference_video_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
1165
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1166
+ <label class="cursor-pointer" [for]="'question_reference_video_reupload'+i+j+k">
1167
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1168
+ <g filter="url(#filter0_d_14557_62522)">
1169
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1170
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1171
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1172
+ </g>
1173
+ <defs>
1174
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1175
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1176
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1177
+ <feOffset dy="1"/>
1178
+ <feGaussianBlur stdDeviation="1"/>
1179
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1180
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1181
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1182
+ </filter>
1183
+ </defs>
1184
+ </svg>
1185
+ </label>
1186
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
1187
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1188
+ <g filter="url(#filter0_d_14557_62514)">
1189
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1190
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1191
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1192
+ </g>
1193
+ <defs>
1194
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1195
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1196
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1197
+ <feOffset dy="1"/>
1198
+ <feGaussianBlur stdDeviation="1"/>
1199
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1200
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1201
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1202
+ </filter>
1203
+ </defs>
1204
+ </svg>
1205
+ </span>
1206
+ </div>
1207
+ </div>
1208
+
1209
+
1210
+ <div>
1211
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
1212
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1213
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference'+i+j" class="add-reference-btn mb-5">
1214
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
1215
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1216
+ viewBox="0 0 20 20" fill="none">
1217
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
1218
+ stroke-width="1.67" stroke-linecap="round"
1219
+ stroke-linejoin="round" />
1220
+ </svg>
1221
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
1222
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
1223
+ viewBox="0 0 21 20" fill="none">
1224
+ <g clip-path="url(#clip0_4082_3122)">
1225
+ <path
1226
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1227
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
1228
+ stroke-linejoin="round" />
1229
+ </g>
1230
+ <defs>
1231
+ <clipPath id="clip0_4082_3122">
1232
+ <rect width="20" height="20" fill="white"
1233
+ transform="translate(0.5)" />
1234
+ </clipPath>
1235
+ </defs>
1236
+ </svg>
1237
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
1238
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
1239
+
1240
+ </label>
1241
+ </div>
1242
+
1243
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
1244
+ class="form-select mb-5">
1245
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
1246
+ {{answer.label}}</option>
1247
+ </select>
1248
+
1249
+ <div class="row">
1250
+ <div class="col-12 mb-5">
1251
+ <div class="form-check form-switch">
1252
+ <input formControlName="allowUploadfromGallery"
1253
+ class="form-check-input" type="checkbox" role="switch"
1254
+ [id]="'allow_upload_from_gallery' + i + j">
1255
+ <label class="form-check-label check-label"
1256
+ [for]="'allow_upload_from_gallery' + i + j">Allow
1257
+ upload from gallery</label>
1258
+ </div>
1259
+ </div>
1260
+ </div>
1261
+ </ng-container>
1262
+
1263
+ <ng-container *ngIf="question.get('answerType')?.value === 'image/video'">
1264
+ <div class="d-flex flex-column mb-5">
1265
+ <textarea formControlName="qname" placeholder="Enter question here"
1266
+ class="form-control"></textarea>
1267
+ <ng-container
1268
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
1269
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
1270
+ class="text-danger mt-2">* Question is required</div>
1271
+ </ng-container>
1272
+ </div>
1273
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
1274
+ <img class="mb-5" height="300px"
1275
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
1276
+ *ngIf="image"
1277
+ src="{{environment.TraxAnswerCDN}}{{image}}">
1278
+ <div class="overlay-icons">
1279
+ <span class="cursor-pointer" (click)="onPopup(image)">
1280
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1281
+ <g filter="url(#filter0_d_14557_62513)">
1282
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1283
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1284
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1285
+ </g>
1286
+ <defs>
1287
+ <filter id="filter0_d_14557_62513_imgvid" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1288
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1289
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1290
+ <feOffset dy="1"/>
1291
+ <feGaussianBlur stdDeviation="1"/>
1292
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1293
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
1294
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
1295
+ </filter>
1296
+ </defs>
1297
+ </svg>
1298
+ </span>
1299
+ <input [id]="'question_reference_imgvid_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
1300
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1301
+ <label class="cursor-pointer" [for]="'question_reference_imgvid_reupload'+i+j+k">
1302
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1303
+ <g filter="url(#filter0_d_14557_62522)">
1304
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1305
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1306
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1307
+ </g>
1308
+ <defs>
1309
+ <filter id="filter0_d_14557_62522_imgvid" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1310
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1311
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1312
+ <feOffset dy="1"/>
1313
+ <feGaussianBlur stdDeviation="1"/>
1314
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1315
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1316
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1317
+ </filter>
1318
+ </defs>
1319
+ </svg>
1320
+ </label>
1321
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
1322
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1323
+ <g filter="url(#filter0_d_14557_62514)">
1324
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1325
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1326
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1327
+ </g>
1328
+ <defs>
1329
+ <filter id="filter0_d_14557_62514_imgvid" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1330
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1331
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1332
+ <feOffset dy="1"/>
1333
+ <feGaussianBlur stdDeviation="1"/>
1334
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1335
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1336
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1337
+ </filter>
1338
+ </defs>
1339
+ </svg>
1340
+ </span>
1341
+ </div>
1342
+ </div>
1343
+ <div>
1344
+ <input [id]="'question_reference_imgvid'+i+j" (change)="uploadFile($event, i, j)"
1345
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1346
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference_imgvid'+i+j" class="add-reference-btn mb-5">
1347
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
1348
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1349
+ viewBox="0 0 20 20" fill="none">
1350
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
1351
+ stroke-width="1.67" stroke-linecap="round"
1352
+ stroke-linejoin="round" />
1353
+ </svg>
1354
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
1355
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
1356
+ viewBox="0 0 21 20" fill="none">
1357
+ <g clip-path="url(#clip0_4082_3122)">
1358
+ <path
1359
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1360
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
1361
+ stroke-linejoin="round" />
1362
+ </g>
1363
+ <defs>
1364
+ <clipPath id="clip0_4082_3122_imgvid">
1365
+ <rect width="20" height="20" fill="white"
1366
+ transform="translate(0.5)" />
1367
+ </clipPath>
1368
+ </defs>
1369
+ </svg>
1370
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
1371
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
1372
+ </label>
1373
+ </div>
1374
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
1375
+ class="form-select mb-5">
1376
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
1377
+ {{answer.label}}</option>
1378
+ </select>
1379
+ <div *ngIf="getAnswers(i, j).controls?.length" class="row">
1380
+ <ng-container [formGroup]="getAnswers(i, j).at(0)">
1381
+ <div class="col-12 form-check form-switch text-left align-items-center btn-sec mt-3 d-flex">
1382
+ <input class="form-check-input pointer" type="checkbox"
1383
+ name="toc" value="1" ngDefaultControl
1384
+ formControlName="allowUploadfromGallery">
1385
+ <label class="form-check-label pointer ms-2"
1386
+ for="flexSwitchCheckDefault">Allow upload from gallery</label>
1387
+ </div>
1388
+ <div class="col-12 form-check form-switch text-left align-items-center btn-sec mt-3 d-flex" *ngIf="userType && userType === 'tango'">
1389
+ <input class="form-check-input pointer" type="checkbox"
1390
+ name="toc" value="1" ngDefaultControl
1391
+ formControlName="limit">
1392
+ <label class="form-check-label pointer ms-2"
1393
+ for="flexSwitchCheckDefault">Set Limits</label>
1394
+ <svg class="ms-2" ngbTooltip="Uploads are allowed as per the configured image/video limits" width="16" height="16" viewBox="0 0 16 16" fill="none" matTooltipPosition="above" matTooltipClass="custom-test">
1395
+ <g clip-path="url(#clip0_2301_100038_imgvid)"><path d="M7.99967 10.6654V7.9987M7.99967 5.33203H8.00634M14.6663 7.9987C14.6663 11.6806 11.6816 14.6654 7.99967 14.6654C4.31778 14.6654 1.33301 11.6806 1.33301 7.9987C1.33301 4.3168 4.31778 1.33203 7.99967 1.33203C11.6816 1.33203 14.6663 4.3168 14.6663 7.9987Z" stroke="#98A2B3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g>
1396
+ <defs><clipPath id="clip0_2301_100038_imgvid"><rect width="16" height="16" fill="white"></rect></clipPath></defs>
1397
+ </svg>
1398
+ </div>
1399
+ <div class="col-lg-12 form-check form-switch text-left align-items-center btn-sec mt-5" *ngIf="getAnswers(i, j).at(0)?.get('limit')?.value">
1400
+ <div class="d-flex">
1401
+ <div class="me-3 mt-3">Attach</div>
1402
+ <div class="w-70px me-3">
1403
+ <select formControlName="imageLimit" class="form-select">
1404
+ <option [ngValue]="1">1</option>
1405
+ <option [ngValue]="2">2</option>
1406
+ <option [ngValue]="3">3</option>
1407
+ <option [ngValue]="4">4</option>
1408
+ <option [ngValue]="5">5</option>
1409
+ </select>
1410
+ </div>
1411
+ <div class="me-3 mt-3">images and</div>
1412
+ <div class="w-70px me-3">
1413
+ <select formControlName="videoLimit" class="form-select">
1414
+ <option [ngValue]="1">1</option>
1415
+ <option [ngValue]="2">2</option>
1416
+ <option [ngValue]="3">3</option>
1417
+ <option [ngValue]="4">4</option>
1418
+ <option [ngValue]="5">5</option>
1419
+ </select>
1420
+ </div>
1421
+ <div class="me-3 mt-3">Videos.</div>
1422
+ </div>
1423
+ </div>
1424
+ <div class="limitTooltipText mt-3" *ngIf="getAnswers(i, j).at(0)?.get('limit')?.value && (getAnswers(i, j).at(0)?.get('imageLimit')?.value || getAnswers(i, j).at(0)?.get('videoLimit')?.value)">
1425
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
1426
+ <g clip-path="url(#clip0_2301_100039)"><path d="M7.99967 10.6654V7.9987M7.99967 5.33203H8.00634M14.6663 7.9987C14.6663 11.6806 11.6816 14.6654 7.99967 14.6654C4.31778 14.6654 1.33301 11.6806 1.33301 7.9987C1.33301 4.3168 4.31778 1.33203 7.99967 1.33203C11.6816 1.33203 14.6663 4.3168 14.6663 7.9987Z" stroke="#98A2B3" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></g>
1427
+ <defs><clipPath id="clip0_2301_100039"><rect width="16" height="16" fill="white"></rect></clipPath></defs>
1428
+ </svg>
1429
+ Checklist fillers must capture/upload {{ getAnswers(i, j).at(0)?.get('imageLimit')?.value ? getAnswers(i, j).at(0)?.get('imageLimit')?.value + ' image' + ((getAnswers(i, j).at(0)?.get('imageLimit')?.value ?? 0) > 1 ? 's' : '') : '' }} {{ getAnswers(i, j).at(0)?.get('videoLimit')?.value ? ' and ' + getAnswers(i, j).at(0)?.get('videoLimit')?.value + ' video' + ((getAnswers(i, j).at(0)?.get('videoLimit')?.value ?? 0) > 1 ? 's' : '') : '' }}
1430
+ </div>
1431
+ </ng-container>
1432
+ </div>
1433
+ </ng-container>
1434
+
1435
+ <ng-container *ngIf="question.get('answerType')?.value === 'multipleImage'">
1436
+ <div class="d-flex flex-column mb-5">
1437
+ <textarea formControlName="qname" placeholder="Enter question here"
1438
+ class="form-control"></textarea>
1439
+ <ng-container
1440
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
1441
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
1442
+ class="text-danger mt-2">* Question is required</div>
1443
+ </ng-container>
1444
+ </div>
1445
+
1446
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
1447
+ class="form-select mb-5">
1448
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
1449
+ {{answer.label}}</option>
1450
+ </select>
1451
+
1452
+ <ng-container *ngFor="let answer of getAnswers(i, j).controls; let k = index">
1453
+ <ng-container [formGroup]="answer">
1454
+ <div class="row">
1455
+ <div class="col-12 mb-5">
1456
+ <div *ngFor="let image of answer.get('referenceImage')?.value; let l = index" style="position: relative;" class="col-md-4 image-container">
1457
+ <!-- <svg *ngIf="image"
1458
+ (click)="onDeleteAnswerReferenceImage(i, j, k, l)"
1459
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
1460
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
1461
+ xmlns="http://www.w3.org/2000/svg">
1462
+ <path
1463
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
1464
+ stroke="#B42318" stroke-width="1.67"
1465
+ stroke-linecap="round" stroke-linejoin="round" />
1466
+ </svg> -->
1467
+
1468
+
1469
+ <img class="mb-5" height="300px"
1470
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
1471
+ *ngIf="image"
1472
+ src="{{environment.TraxAnswerCDN}}{{image}}">
1473
+
1474
+ <div class="overlay-icons">
1475
+ <span class="cursor-pointer" (click)="onPopup(image)">
1476
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1477
+ <g filter="url(#filter0_d_14557_62513)">
1478
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1479
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1480
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1481
+ </g>
1482
+ <defs>
1483
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1484
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1485
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1486
+ <feOffset dy="1"/>
1487
+ <feGaussianBlur stdDeviation="1"/>
1488
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1489
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
1490
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
1491
+ </filter>
1492
+ </defs>
1493
+ </svg>
1494
+ </span>
1495
+ <input [id]="'question_reference_multi_reupload'+i+j+k+l" (change)="uploadFile($event, i, j,k,l)"
1496
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1497
+ <label class="cursor-pointer" [for]="'question_reference_multi_reupload'+i+j+k+l">
1498
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1499
+ <g filter="url(#filter0_d_14557_62522)">
1500
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1501
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1502
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1503
+ </g>
1504
+ <defs>
1505
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1506
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1507
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1508
+ <feOffset dy="1"/>
1509
+ <feGaussianBlur stdDeviation="1"/>
1510
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1511
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1512
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1513
+ </filter>
1514
+ </defs>
1515
+ </svg>
1516
+ </label>
1517
+ <span class="cursor-pointer" (click)="onDeleteAnswerReferenceImage(i, j, k, l)">
1518
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1519
+ <g filter="url(#filter0_d_14557_62514)">
1520
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1521
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1522
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1523
+ </g>
1524
+ <defs>
1525
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1526
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1527
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1528
+ <feOffset dy="1"/>
1529
+ <feGaussianBlur stdDeviation="1"/>
1530
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1531
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1532
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1533
+ </filter>
1534
+ </defs>
1535
+ </svg>
1536
+ </span>
1537
+ </div>
1538
+ </div>
1539
+
1540
+
1541
+ <input [id]="'answer_validation_reference'+i+j+k"
1542
+ (change)="uploadFile($event, i, j, k)"
1543
+ style="display: none;" type="file"
1544
+ accept="image/png, image/jpeg">
1545
+ <div class="row">
1546
+ <div class="col-6">
1547
+ <div
1548
+ class="d-flex align-items-center justify-content-between">
1549
+ <label *ngIf="(answer.get('referenceImage')?.value?.length ?? 0) < 3 " [for]="'answer_validation_reference'+i+j+k"
1550
+ class="add-reference-btn ">
1551
+ <svg *ngIf="!answer.get('referenceImage')?.value?.length"
1552
+ class="mr-2"
1553
+ xmlns="http://www.w3.org/2000/svg"
1554
+ width="20" height="20" viewBox="0 0 20 20"
1555
+ fill="none">
1556
+ <path
1557
+ d="M10 4.16797V15.8346M4.16669 10.0013H15.8334"
1558
+ stroke="#009BF3" stroke-width="1.67"
1559
+ stroke-linecap="round"
1560
+ stroke-linejoin="round" />
1561
+ </svg>
1562
+ <svg *ngIf="answer.get('referenceImage')?.value?.length"
1563
+ xmlns="http://www.w3.org/2000/svg"
1564
+ class="mx-2" width="21" height="20"
1565
+ viewBox="0 0 21 20" fill="none">
1566
+ <g clip-path="url(#clip0_4082_3122)">
1567
+ <path
1568
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1569
+ stroke="#009BF3" stroke-width="1.67"
1570
+ stroke-linecap="round"
1571
+ stroke-linejoin="round" />
1572
+ </g>
1573
+ <defs>
1574
+ <clipPath id="clip0_4082_3122">
1575
+ <rect width="20" height="20"
1576
+ fill="white"
1577
+ transform="translate(0.5)" />
1578
+ </clipPath>
1579
+ </defs>
1580
+ </svg>
1581
+ <span *ngIf="!answer.get('referenceImage')?.value?.length">Add Reference Image</span>
1582
+ <span *ngIf="answer.get('referenceImage')?.value?.length">Add Next Image</span>
1583
+
1584
+ </label>
1585
+
1586
+ <div>
1587
+ <div class="form-check form-switch">
1588
+ <input
1589
+ [formControl]="question.controls.allowUploadfromGallery"
1590
+ class="form-check-input" type="checkbox"
1591
+ role="switch"
1592
+ [id]="'allow_upload_from_gallery' + i + j">
1593
+ <label class="form-check-label check-label"
1594
+ [for]="'allow_upload_from_gallery' + i + j">Allow
1595
+ upload from gallery</label>
1596
+ </div>
1597
+ </div>
1598
+ </div>
1599
+ </div>
1600
+ <div *ngIf="question.controls.descriptivetype" class="col-6">
1601
+ <div class="d-flex align-items-center h-100">
1602
+ <div class="form-check">
1603
+ <input [formControl]="question.controls.descriptivetype"
1604
+ class="form-check-input cursor-pointer"
1605
+ type="radio" value="text"
1606
+ [name]="'descriptive_answer_validation' + i + j + k"
1607
+ [id]="'descriptive_answer_validation_text' + i + j + k">
1608
+ <label class="cursor-pointer dscriptiveType"
1609
+ [for]="'descriptive_answer_validation_text' + i + j + k">Text</label>
1610
+ </div>
1611
+ <div class="form-check ms-5">
1612
+ <input [formControl]="question.controls.descriptivetype"
1613
+ class="form-check-input cursor-pointer"
1614
+ type="radio" value="number"
1615
+ [name]="'descriptive_answer_validation' + i + j + k"
1616
+ [id]="'descriptive_answer_validation_number' + i + j + k">
1617
+ <label class="cursor-pointer dscriptiveType"
1618
+ [for]="'descriptive_answer_validation_number' + i + j + k">Number</label>
1619
+ </div>
1620
+ </div>
1621
+ </div>
1622
+ </div>
1623
+ </div>
1624
+ </div>
1625
+ </ng-container>
1626
+ </ng-container>
1627
+
1628
+
1629
+ </ng-container>
1630
+
1631
+ <ng-container *ngIf="question.get('answerType')?.value === 'date' || question.get('answerType')?.value === 'time'">
1632
+ <div class="d-flex flex-column mb-5">
1633
+ <textarea formControlName="qname" placeholder="Enter question here"
1634
+ class="form-control"></textarea>
1635
+ <ng-container
1636
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
1637
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
1638
+ class="text-danger mt-2">* Question is required</div>
1639
+ </ng-container>
1640
+ </div>
1641
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
1642
+ <!-- <svg *ngIf="image"
1643
+ (click)="onDeleteQuestionReferenceImage(i, j, k)"
1644
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
1645
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
1646
+ xmlns="http://www.w3.org/2000/svg">
1647
+ <path
1648
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
1649
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
1650
+ stroke-linejoin="round" />
1651
+ </svg> -->
1652
+
1653
+
1654
+ <img class="mb-5" height="300px"
1655
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
1656
+ *ngIf="image"
1657
+ src="{{environment.TraxAnswerCDN}}{{image}}">
1658
+
1659
+ <div class="overlay-icons">
1660
+ <span class="cursor-pointer" (click)="onPopup(image)">
1661
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1662
+ <g filter="url(#filter0_d_14557_62513)">
1663
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1664
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1665
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1666
+ </g>
1667
+ <defs>
1668
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1669
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1670
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1671
+ <feOffset dy="1"/>
1672
+ <feGaussianBlur stdDeviation="1"/>
1673
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1674
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
1675
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
1676
+ </filter>
1677
+ </defs>
1678
+ </svg>
1679
+ </span>
1680
+ <input [id]="'question_reference_dateTime_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
1681
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1682
+ <label class="cursor-pointer" [for]="'question_reference_dateTime_reupload'+i+j+k">
1683
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1684
+ <g filter="url(#filter0_d_14557_62522)">
1685
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1686
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1687
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1688
+ </g>
1689
+ <defs>
1690
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1691
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1692
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1693
+ <feOffset dy="1"/>
1694
+ <feGaussianBlur stdDeviation="1"/>
1695
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1696
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1697
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1698
+ </filter>
1699
+ </defs>
1700
+ </svg>
1701
+ </label>
1702
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
1703
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1704
+ <g filter="url(#filter0_d_14557_62514)">
1705
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1706
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1707
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1708
+ </g>
1709
+ <defs>
1710
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1711
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1712
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1713
+ <feOffset dy="1"/>
1714
+ <feGaussianBlur stdDeviation="1"/>
1715
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1716
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1717
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1718
+ </filter>
1719
+ </defs>
1720
+ </svg>
1721
+ </span>
1722
+ </div>
1723
+ </div>
1724
+
1725
+
1726
+ <div>
1727
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
1728
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1729
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference'+i+j" class="add-reference-btn mb-5">
1730
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
1731
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1732
+ viewBox="0 0 20 20" fill="none">
1733
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
1734
+ stroke-width="1.67" stroke-linecap="round"
1735
+ stroke-linejoin="round" />
1736
+ </svg>
1737
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
1738
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
1739
+ viewBox="0 0 21 20" fill="none">
1740
+ <g clip-path="url(#clip0_4082_3122)">
1741
+ <path
1742
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1743
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
1744
+ stroke-linejoin="round" />
1745
+ </g>
1746
+ <defs>
1747
+ <clipPath id="clip0_4082_3122">
1748
+ <rect width="20" height="20" fill="white"
1749
+ transform="translate(0.5)" />
1750
+ </clipPath>
1751
+ </defs>
1752
+ </svg>
1753
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
1754
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
1755
+
1756
+ </label>
1757
+ </div>
1758
+
1759
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
1760
+ class="form-select mb-5">
1761
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
1762
+ {{answer.label}}</option>
1763
+ </select>
1764
+ <ng-container *ngIf="question.get('answerType')?.value === 'date' && getAnswers(i, j)?.length">
1765
+ <ng-container [formGroup]="getAnswers(i, j).at(0)">
1766
+ <div class="d-flex answervalidation">
1767
+ <input class="" type="checkbox"
1768
+ style="width:16px;height:16px;cursor: pointer;"
1769
+ value="1"
1770
+ formControlName="historicDate">
1771
+ <div class="checkbox mt-1 mx-2"
1772
+ style="cursor: default;">
1773
+ <span class="form-check-label check-label">Allow Historic Dates on Date Picker</span>
1774
+ </div>
1775
+ </div>
1776
+ </ng-container>
1777
+ </ng-container>
1778
+ </ng-container>
1779
+
1780
+ <ng-container *ngIf="question.get('answerType')?.value === 'linearscale'">
1781
+ <div class="d-flex flex-column mb-5">
1782
+ <textarea formControlName="qname" placeholder="Enter question here"
1783
+ class="form-control"></textarea>
1784
+ <ng-container
1785
+ *ngIf="question.get('qname')?.invalid && question.get('qname')?.touched">
1786
+ <div *ngIf="question.get('qname')?.hasError('required') || question.get('qname')?.hasError('whitespace')"
1787
+ class="text-danger mt-2">* Question is required</div>
1788
+ </ng-container>
1789
+ </div>
1790
+ <div *ngFor="let image of question.get('questionReferenceImage')?.value; let k = index" style="position: relative;" class="col-md-4 image-container">
1791
+ <!-- <svg *ngIf="image"
1792
+ (click)="onDeleteQuestionReferenceImage(i, j, k)"
1793
+ style="position: absolute; right: 10px; top: 10px; cursor: pointer;"
1794
+ width="20" height="20" viewBox="0 0 20 20" fill="none"
1795
+ xmlns="http://www.w3.org/2000/svg">
1796
+ <path
1797
+ d="M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168"
1798
+ stroke="#B42318" stroke-width="1.67" stroke-linecap="round"
1799
+ stroke-linejoin="round" />
1800
+ </svg> -->
1801
+
1802
+
1803
+ <img class="mb-5" height="300px"
1804
+ style="width: 90%; object-fit: contain; background: white; border-radius: 5px;"
1805
+ *ngIf="image"
1806
+ src="{{environment.TraxAnswerCDN}}{{image}}">
1807
+
1808
+ <div class="overlay-icons">
1809
+ <span class="cursor-pointer" (click)="onPopup(image)">
1810
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1811
+ <g filter="url(#filter0_d_14557_62513)">
1812
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1813
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1814
+ <path d="M22.5 11.5H27.5M27.5 11.5V16.5M27.5 11.5L21.6667 17.3333M17.5 26.5H12.5M12.5 26.5V21.5M12.5 26.5L18.3333 20.6667" stroke="#344054" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
1815
+ </g>
1816
+ <defs>
1817
+ <filter id="filter0_d_14557_62513" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1818
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1819
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1820
+ <feOffset dy="1"/>
1821
+ <feGaussianBlur stdDeviation="1"/>
1822
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1823
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62513"/>
1824
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62513" result="shape"/>
1825
+ </filter>
1826
+ </defs>
1827
+ </svg>
1828
+ </span>
1829
+ <input [id]="'question_reference_linear_reupload'+i+j+k" (change)="uploadFile($event, i, j,-1,k)"
1830
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1831
+ <label class="cursor-pointer" [for]="'question_reference_linear_reupload'+i+j+k">
1832
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1833
+ <g filter="url(#filter0_d_14557_62522)">
1834
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1835
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1836
+ <path d="M27.5 21.5V24.8333C27.5 25.2754 27.3244 25.6993 27.0118 26.0118C26.6993 26.3244 26.2754 26.5 25.8333 26.5H14.1667C13.7246 26.5 13.3007 26.3244 12.9882 26.0118C12.6756 25.6993 12.5 25.2754 12.5 24.8333V21.5M24.1667 15.6667L20 11.5M20 11.5L15.8333 15.6667M20 11.5V21.5" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1837
+ </g>
1838
+ <defs>
1839
+ <filter id="filter0_d_14557_62522" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1840
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1841
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1842
+ <feOffset dy="1"/>
1843
+ <feGaussianBlur stdDeviation="1"/>
1844
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1845
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62522"/>
1846
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62522" result="shape"/>
1847
+ </filter>
1848
+ </defs>
1849
+ </svg>
1850
+ </label>
1851
+ <span class="cursor-pointer" (click)="onDeleteQuestionReferenceImage(i, j, k)">
1852
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
1853
+ <g filter="url(#filter0_d_14557_62514)">
1854
+ <rect x="2" y="1" width="36" height="36" rx="8" fill="white"/>
1855
+ <rect x="2.5" y="1.5" width="35" height="35" rx="7.5" stroke="#D0D5DD"/>
1856
+ <path d="M12.5 13.9974H14.1667M14.1667 13.9974H27.5M14.1667 13.9974V25.6641C14.1667 26.1061 14.3423 26.53 14.6548 26.8426C14.9674 27.1551 15.3913 27.3307 15.8333 27.3307H24.1667C24.6087 27.3307 25.0326 27.1551 25.3452 26.8426C25.6577 26.53 25.8333 26.1061 25.8333 25.6641V13.9974H14.1667ZM16.6667 13.9974V12.3307C16.6667 11.8887 16.8423 11.4648 17.1548 11.1522C17.4674 10.8397 17.8913 10.6641 18.3333 10.6641H21.6667C22.1087 10.6641 22.5326 10.8397 22.8452 11.1522C23.1577 11.4648 23.3333 11.8887 23.3333 12.3307V13.9974M18.3333 18.1641V23.1641M21.6667 18.1641V23.1641" stroke="#344054" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
1857
+ </g>
1858
+ <defs>
1859
+ <filter id="filter0_d_14557_62514" x="0" y="0" width="40" height="40" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
1860
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
1861
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
1862
+ <feOffset dy="1"/>
1863
+ <feGaussianBlur stdDeviation="1"/>
1864
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
1865
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_14557_62514"/>
1866
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_14557_62514" result="shape"/>
1867
+ </filter>
1868
+ </defs>
1869
+ </svg>
1870
+ </span>
1871
+ </div>
1872
+ </div>
1873
+
1874
+ <div>
1875
+ <input [id]="'question_reference'+i+j" (change)="uploadFile($event, i, j)"
1876
+ style="display: none;" type="file" accept="image/png, image/jpeg">
1877
+ <label *ngIf="(question.get('questionReferenceImage')?.value?.length ?? 0) < 3 " [for]="'question_reference'+i+j" class="add-reference-btn mb-5">
1878
+ <svg *ngIf="!question.get('questionReferenceImage')?.value?.length" class="mr-2"
1879
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1880
+ viewBox="0 0 20 20" fill="none">
1881
+ <path d="M10 4.16797V15.8346M4.16669 10.0013H15.8334" stroke="#009BF3"
1882
+ stroke-width="1.67" stroke-linecap="round"
1883
+ stroke-linejoin="round" />
1884
+ </svg>
1885
+ <svg *ngIf="question.get('questionReferenceImage')?.value?.length"
1886
+ xmlns="http://www.w3.org/2000/svg" class="mx-2" width="21" height="20"
1887
+ viewBox="0 0 21 20" fill="none">
1888
+ <g clip-path="url(#clip0_4082_3122)">
1889
+ <path
1890
+ d="M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019"
1891
+ stroke="#009BF3" stroke-width="1.67" stroke-linecap="round"
1892
+ stroke-linejoin="round" />
1893
+ </g>
1894
+ <defs>
1895
+ <clipPath id="clip0_4082_3122">
1896
+ <rect width="20" height="20" fill="white"
1897
+ transform="translate(0.5)" />
1898
+ </clipPath>
1899
+ </defs>
1900
+ </svg>
1901
+ <span *ngIf="!question.get('questionReferenceImage')?.value?.length">Add Reference Image</span>
1902
+ <span *ngIf="question.get('questionReferenceImage')?.value?.length">Add Next Image</span>
1903
+
1904
+ </label>
1905
+ </div>
1906
+ <select (change)="onQuestionChange($event, i, j)" formControlName="answerType"
1907
+ class="form-select mb-5">
1908
+ <option *ngFor="let answer of answerTypes" [value]="answer.value">
1909
+ {{answer.label}}</option>
1910
+ </select>
1911
+
1912
+ <ng-container *ngIf="getAnswers(i, j)?.length">
1913
+ <ng-container [formGroup]="getAnswers(i, j).at(0)">
1914
+ <div class="row">
1915
+ <div class="col-md-4">
1916
+ <div class="dropText">
1917
+ Select Type
1918
+ </div>
1919
+ <div class="mt-2">
1920
+ <select class="form-select" formControlName="linearType" (change)="updateLinearTypeRange($event, i, j)">
1921
+ <option value="number">Whole Number</option>
1922
+ <option value="degree">Degree °C</option>
1923
+ <option value="percentage">Percentage</option>
1924
+ </select>
1925
+ </div>
1926
+ </div>
1927
+ <div class="col-md-4">
1928
+ <div class="dropText">
1929
+ Min Value
1930
+ </div>
1931
+ <div class="mt-2">
1932
+ <lib-counter style="width: 40%" formControlName="rangeStart" [step]="1" placeholder="0" [type]="getAnswers(i, j).at(0)?.get('linearType')?.value ?? 'number'"></lib-counter>
1933
+ </div>
1934
+ </div>
1935
+ <div class="col-md-4">
1936
+ <div class="dropText">
1937
+ Max Value
1938
+ </div>
1939
+ <div class="mt-2">
1940
+ <lib-counter style="width: 40%" formControlName="rangeEnd" [step]="1" placeholder="100" [type]="getAnswers(i, j).at(0)?.get('linearType')?.value ?? 'number'"></lib-counter>
1941
+ </div>
1942
+ </div>
1943
+ </div>
1944
+ <ng-container *ngIf="getAnswers(i, j).at(0)?.invalid && getAnswers(i, j).at(0)?.touched">
1945
+ <div *ngIf="getAnswers(i, j).at(0)?.hasError('invalidRange')"
1946
+ class="text-danger mt-2">* Min value must be less than max value.</div>
1947
+ </ng-container>
1948
+ </ng-container>
1949
+ </ng-container>
1950
+ </ng-container>
1951
+
1952
+ <div class="d-flex justify-content-end mb-5">
1953
+ <svg (click)="onQuestionClone(i, j, question)" class="me-8 cursor-pointer"
1954
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1955
+ matTooltip="Duplicate" matTooltipPosition="above"
1956
+ matTooltipClass="custom-test" viewBox="0 0 20 20" fill="none">
1957
+ <g clip-path="url(#clip0_3385_10578)">
1958
+ <path
1959
+ d="M4.16663 12.4993H3.33329C2.89127 12.4993 2.46734 12.3238 2.15478 12.0112C1.84222 11.6986 1.66663 11.2747 1.66663 10.8327V3.33268C1.66663 2.89065 1.84222 2.46673 2.15478 2.15417C2.46734 1.84161 2.89127 1.66602 3.33329 1.66602H10.8333C11.2753 1.66602 11.6992 1.84161 12.0118 2.15417C12.3244 2.46673 12.5 2.89065 12.5 3.33268V4.16602M9.16663 7.49935H16.6666C17.5871 7.49935 18.3333 8.24554 18.3333 9.16602V16.666C18.3333 17.5865 17.5871 18.3327 16.6666 18.3327H9.16663C8.24615 18.3327 7.49996 17.5865 7.49996 16.666V9.16602C7.49996 8.24554 8.24615 7.49935 9.16663 7.49935Z"
1960
+ stroke="#667085" stroke-width="1.66667" stroke-linecap="round"
1961
+ stroke-linejoin="round" />
1962
+ </g>
1963
+ <defs>
1964
+ <clipPath id="clip0_3385_10578">
1965
+ <rect width="20" height="20" fill="white" />
1966
+ </clipPath>
1967
+ </defs>
1968
+ </svg>
1969
+ <svg *ngIf="(getQuestions(i)?.controls?.length ?? 0) > 1" (click)="onQuestionDelete(i, j)" class="cursor-pointer"
1970
+ xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1971
+ matTooltip="Delete question" matTooltipPosition="above"
1972
+ matTooltipClass="custom-test" viewBox="0 0 20 20" fill="none">
1973
+ <path
1974
+ d="M2.5 4.99935H4.16667M4.16667 4.99935H17.5M4.16667 4.99935V16.666C4.16667 17.108 4.34226 17.532 4.65482 17.8445C4.96738 18.1571 5.39131 18.3327 5.83333 18.3327H14.1667C14.6087 18.3327 15.0326 18.1571 15.3452 17.8445C15.6577 17.532 15.8333 17.108 15.8333 16.666V4.99935H4.16667ZM6.66667 4.99935V3.33268C6.66667 2.89065 6.84226 2.46673 7.15482 2.15417C7.46738 1.84161 7.89131 1.66602 8.33333 1.66602H11.6667C12.1087 1.66602 12.5326 1.84161 12.8452 2.15417C13.1577 2.46673 13.3333 2.89065 13.3333 3.33268V4.99935M8.33333 9.16602V14.166M11.6667 9.16602V14.166"
1975
+ stroke="#667085" stroke-width="1.66667" stroke-linecap="round"
1976
+ stroke-linejoin="round" />
1977
+ </svg>
1978
+ </div>
1979
+
1980
+ <button type="button" (click)="addNewQuestion(i, j)"
1981
+ *ngIf="j === (getQuestions(i)?.controls?.length ?? 0) - 1"
1982
+ class="btn btn-outline w-100">
1983
+ <svg class="mr-2" xmlns="http://www.w3.org/2000/svg" width="20" height="20"
1984
+ viewBox="0 0 20 20" fill="none">
1985
+ <path d="M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333" stroke="#344054"
1986
+ stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round" />
1987
+ </svg>
1988
+
1989
+ <span>Add New Question</span>
1990
+
1991
+ </button>
1992
+
1993
+ </div>
1994
+ </ng-container>
1995
+ </ng-container>
1996
+ </ng-container>
1997
+ </ng-container>
1998
+
1999
+ </form>
2000
+
2001
+ </div>
2002
+ </div>
2003
+ </div>