@piserve-tech/form-submission 1.3.314 → 1.3.316

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 (443) hide show
  1. package/README.md +24 -24
  2. package/ng-package.json +30 -0
  3. package/package.json +33 -46
  4. package/{assets → src/assets}/icons/close-sidebar-mark-icon.svg +3 -3
  5. package/{assets → src/assets}/icons/copy-icon.svg +5 -5
  6. package/{assets → src/assets}/icons/delete-icon.svg +7 -7
  7. package/{assets → src/assets}/icons/delete-no-outline-icon.svg +7 -7
  8. package/src/environment/environment.ts +6 -0
  9. package/src/form-fields/aggregate-function/aggregate-function.component.html +63 -0
  10. package/src/form-fields/aggregate-function/aggregate-function.component.scss +1 -0
  11. package/src/form-fields/aggregate-function/aggregate-function.component.spec.ts +21 -0
  12. package/src/form-fields/aggregate-function/aggregate-function.component.ts +148 -0
  13. package/src/form-fields/check-box-fields/check-box-fields.component.html +81 -0
  14. package/src/form-fields/check-box-fields/check-box-fields.component.scss +28 -0
  15. package/src/form-fields/check-box-fields/check-box-fields.component.spec.ts +21 -0
  16. package/src/form-fields/check-box-fields/check-box-fields.component.ts +538 -0
  17. package/src/form-fields/currency-fields/currency-fields.component.html +85 -0
  18. package/src/form-fields/currency-fields/currency-fields.component.scss +48 -0
  19. package/src/form-fields/currency-fields/currency-fields.component.spec.ts +21 -0
  20. package/src/form-fields/currency-fields/currency-fields.component.ts +589 -0
  21. package/src/form-fields/date-time-fields/date-time-fields.component.html +268 -0
  22. package/src/form-fields/date-time-fields/date-time-fields.component.scss +88 -0
  23. package/src/form-fields/date-time-fields/date-time-fields.component.spec.ts +21 -0
  24. package/src/form-fields/date-time-fields/date-time-fields.component.ts +693 -0
  25. package/src/form-fields/drop-down-fields/drop-down-fields.component.html +77 -0
  26. package/src/form-fields/drop-down-fields/drop-down-fields.component.scss +12 -0
  27. package/src/form-fields/drop-down-fields/drop-down-fields.component.spec.ts +21 -0
  28. package/src/form-fields/drop-down-fields/drop-down-fields.component.ts +698 -0
  29. package/src/form-fields/file-picker-fields/file-picker-fields.component.html +72 -0
  30. package/src/form-fields/file-picker-fields/file-picker-fields.component.scss +33 -0
  31. package/src/form-fields/file-picker-fields/file-picker-fields.component.spec.ts +21 -0
  32. package/src/form-fields/file-picker-fields/file-picker-fields.component.ts +256 -0
  33. package/src/form-fields/form-fields.module.ts +110 -0
  34. package/src/form-fields/hidden-field/hidden-field.component.scss +0 -0
  35. package/src/form-fields/hidden-field/hidden-field.component.spec.ts +21 -0
  36. package/src/form-fields/hidden-field/hidden-field.component.ts +156 -0
  37. package/src/form-fields/iframe-fields/iframe-fields.component.html +31 -0
  38. package/src/form-fields/iframe-fields/iframe-fields.component.scss +0 -0
  39. package/src/form-fields/iframe-fields/iframe-fields.component.spec.ts +21 -0
  40. package/src/form-fields/iframe-fields/iframe-fields.component.ts +225 -0
  41. package/src/form-fields/location-fields/location-fields.component.html +54 -0
  42. package/src/form-fields/location-fields/location-fields.component.scss +22 -0
  43. package/src/form-fields/location-fields/location-fields.component.spec.ts +21 -0
  44. package/src/form-fields/location-fields/location-fields.component.ts +83 -0
  45. package/src/form-fields/mail-fields/mail-fields.component.html +66 -0
  46. package/src/form-fields/mail-fields/mail-fields.component.scss +10 -0
  47. package/src/form-fields/mail-fields/mail-fields.component.spec.ts +21 -0
  48. package/src/form-fields/mail-fields/mail-fields.component.ts +127 -0
  49. package/src/form-fields/mobile-fields/mobile-fields.component.html +97 -0
  50. package/src/form-fields/mobile-fields/mobile-fields.component.scss +52 -0
  51. package/src/form-fields/mobile-fields/mobile-fields.component.spec.ts +21 -0
  52. package/src/form-fields/mobile-fields/mobile-fields.component.ts +310 -0
  53. package/src/form-fields/number-fields/number-fields.component.html +70 -0
  54. package/src/form-fields/number-fields/number-fields.component.scss +17 -0
  55. package/src/form-fields/number-fields/number-fields.component.spec.ts +21 -0
  56. package/src/form-fields/number-fields/number-fields.component.ts +256 -0
  57. package/src/form-fields/password-fields/password-fields.component.html +113 -0
  58. package/src/form-fields/password-fields/password-fields.component.scss +61 -0
  59. package/src/form-fields/password-fields/password-fields.component.spec.ts +21 -0
  60. package/src/form-fields/password-fields/password-fields.component.ts +273 -0
  61. package/src/form-fields/radio-button-fields/radio-button-fields.component.html +82 -0
  62. package/src/form-fields/radio-button-fields/radio-button-fields.component.scss +28 -0
  63. package/src/form-fields/radio-button-fields/radio-button-fields.component.spec.ts +21 -0
  64. package/src/form-fields/radio-button-fields/radio-button-fields.component.ts +391 -0
  65. package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.html +67 -0
  66. package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.scss +23 -0
  67. package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.spec.ts +21 -0
  68. package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.ts +145 -0
  69. package/src/form-fields/section-fields/section-fields.component.html +4 -0
  70. package/src/form-fields/section-fields/section-fields.component.scss +37 -0
  71. package/src/form-fields/section-fields/section-fields.component.spec.ts +21 -0
  72. package/src/form-fields/section-fields/section-fields.component.ts +25 -0
  73. package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.html +93 -0
  74. package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.scss +52 -0
  75. package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.spec.ts +21 -0
  76. package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.ts +155 -0
  77. package/src/form-fields/signature-fields/signature-fields.component.html +43 -0
  78. package/src/form-fields/signature-fields/signature-fields.component.scss +10 -0
  79. package/src/form-fields/signature-fields/signature-fields.component.spec.ts +21 -0
  80. package/src/form-fields/signature-fields/signature-fields.component.ts +25 -0
  81. package/src/form-fields/slider-fields/slider-fields.component.html +67 -0
  82. package/src/form-fields/slider-fields/slider-fields.component.scss +55 -0
  83. package/src/form-fields/slider-fields/slider-fields.component.spec.ts +21 -0
  84. package/src/form-fields/slider-fields/slider-fields.component.ts +63 -0
  85. package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.html +52 -0
  86. package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.scss +85 -0
  87. package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.spec.ts +21 -0
  88. package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.ts +62 -0
  89. package/src/form-fields/text-area-fields/text-area-fields.component.html +68 -0
  90. package/src/form-fields/text-area-fields/text-area-fields.component.scss +19 -0
  91. package/src/form-fields/text-area-fields/text-area-fields.component.spec.ts +21 -0
  92. package/src/form-fields/text-area-fields/text-area-fields.component.ts +166 -0
  93. package/src/form-fields/text-fields/text-fields.component.html +67 -0
  94. package/src/form-fields/text-fields/text-fields.component.scss +26 -0
  95. package/src/form-fields/text-fields/text-fields.component.spec.ts +21 -0
  96. package/src/form-fields/text-fields/text-fields.component.ts +248 -0
  97. package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.html +70 -0
  98. package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.scss +112 -0
  99. package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.spec.ts +21 -0
  100. package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.ts +74 -0
  101. package/src/form-fields/url-fields/url-fields.component.html +109 -0
  102. package/src/form-fields/url-fields/url-fields.component.scss +22 -0
  103. package/src/form-fields/url-fields/url-fields.component.spec.ts +21 -0
  104. package/src/form-fields/url-fields/url-fields.component.ts +123 -0
  105. package/src/form-submission/form-submission.module.ts +40 -0
  106. package/src/form-submission/header/header.component.html +6 -0
  107. package/src/form-submission/header/header.component.scss +26 -0
  108. package/src/form-submission/header/header.component.spec.ts +21 -0
  109. package/src/form-submission/header/header.component.ts +12 -0
  110. package/src/form-submission/navigation-tabs/navigation-tabs.component.html +134 -0
  111. package/src/form-submission/navigation-tabs/navigation-tabs.component.scss +200 -0
  112. package/src/form-submission/navigation-tabs/navigation-tabs.component.spec.ts +21 -0
  113. package/src/form-submission/navigation-tabs/navigation-tabs.component.ts +134 -0
  114. package/src/form-submission/next-prev-navigation/next-prev-navigation.component.html +207 -0
  115. package/src/form-submission/next-prev-navigation/next-prev-navigation.component.scss +208 -0
  116. package/src/form-submission/next-prev-navigation/next-prev-navigation.component.spec.ts +21 -0
  117. package/src/form-submission/next-prev-navigation/next-prev-navigation.component.ts +74 -0
  118. package/src/form-submission/save-as-draft/saveDraftModalComponent .ts +60 -0
  119. package/src/form-submission/save-as-draft/saveDraftModalComponent.html +33 -0
  120. package/src/form-submission/save-as-draft/saveDraftModalComponent.scss +195 -0
  121. package/src/form-submission/submission-container/submission-container.component.html +30 -0
  122. package/src/form-submission/submission-container/submission-container.component.scss +67 -0
  123. package/src/form-submission/submission-container/submission-container.component.spec.ts +21 -0
  124. package/src/form-submission/submission-container/submission-container.component.ts +14 -0
  125. package/src/form-submission/submit-form/submit-form.component.html +76 -0
  126. package/src/form-submission/submit-form/submit-form.component.scss +88 -0
  127. package/src/form-submission/submit-form/submit-form.component.spec.ts +21 -0
  128. package/src/form-submission/submit-form/submit-form.component.ts +1953 -0
  129. package/src/lib/form-submission.component.html +15 -0
  130. package/src/lib/form-submission.component.scss +1 -0
  131. package/src/lib/form-submission.component.ts +120 -0
  132. package/src/lib/form-submission.module.ts +31 -0
  133. package/src/lib/form-submission.service.spec.ts +16 -0
  134. package/src/lib/form-submission.service.ts +9 -0
  135. package/src/models/aggregate.model.ts +4 -0
  136. package/{models/answer.model.d.ts → src/models/answer.model.ts} +25 -23
  137. package/src/models/appearance.model.ts +64 -0
  138. package/{models/attachment.model.d.ts → src/models/attachment.model.ts} +6 -6
  139. package/{models/defaultAnswerEntry.model.d.ts → src/models/defaultAnswerEntry.model.ts} +7 -5
  140. package/{models/defaultAnswersModel.model.d.ts → src/models/defaultAnswersModel.model.ts} +5 -4
  141. package/{models/defaultQuestionAnswer.model.d.ts → src/models/defaultQuestionAnswer.model.ts} +6 -6
  142. package/src/models/elementOptionAPI.model.ts +13 -0
  143. package/src/models/elementOptionAPIData.model.ts +5 -0
  144. package/src/models/elementOptionDB.model.ts +9 -0
  145. package/src/models/elementOptionDBCriteria.model.ts +7 -0
  146. package/{models/emitters.model.d.ts → src/models/emitters.model.ts} +8 -8
  147. package/{models/enum/condition.enum.d.ts → src/models/enum/condition.enum.ts} +2 -2
  148. package/src/models/enum/elementType .enum.ts +22 -0
  149. package/src/models/enum/entityType.enum.ts +10 -0
  150. package/{models/formConfiguration.model.d.ts → src/models/formConfiguration.model.ts} +2 -2
  151. package/{models/formElement.model.d.ts → src/models/formElement.model.ts} +22 -22
  152. package/{models/formElementType.model.d.ts → src/models/formElementType.model.ts} +3 -2
  153. package/{models/grid.model.d.ts → src/models/grid.model.ts} +14 -13
  154. package/{models/hiddenField.model.d.ts → src/models/hiddenField.model.ts} +5 -5
  155. package/{models/iFrameProperties.model.d.ts → src/models/iFrameProperties.model.ts} +13 -13
  156. package/src/models/logic.model.ts +11 -0
  157. package/src/models/multifields.model.ts +12 -0
  158. package/{models/option.model.d.ts → src/models/option.model.ts} +5 -5
  159. package/src/models/page.model.ts +7 -0
  160. package/src/models/publicForm.model.ts +19 -0
  161. package/src/models/question.model.ts +27 -0
  162. package/src/models/questionAnswer.model.ts +8 -0
  163. package/src/models/questionGroup.model.ts +12 -0
  164. package/src/models/response.model.ts +9 -0
  165. package/src/models/result.model.ts +5 -0
  166. package/{models/row.model.d.ts → src/models/row.model.ts} +2 -1
  167. package/src/models/scoring.model.ts +10 -0
  168. package/src/models/section.model.ts +6 -0
  169. package/src/models/subForm.model.ts +25 -0
  170. package/src/models/subformConfiguration.model.ts +4 -0
  171. package/src/models/subformPropery.model.ts +8 -0
  172. package/{models/submission.model.d.ts → src/models/submission.model.ts} +16 -14
  173. package/{models/submissionCopyConfig.mopdel.d.ts → src/models/submissionCopyConfig.mopdel.ts} +4 -4
  174. package/{models/terms&condition.model.d.ts → src/models/terms&condition.model.ts} +1 -1
  175. package/src/models/validation.model.ts +48 -0
  176. package/src/models/whenClause.model.ts +7 -0
  177. package/{models/whenClauseCondition.model.d.ts → src/models/whenClauseCondition.model.ts} +6 -6
  178. package/{models/whenClauseElements.model.d.ts → src/models/whenClauseElements.model.ts} +6 -5
  179. package/{public-api.d.ts → src/public-api.ts} +4 -0
  180. package/src/question/card-subform/card-subform.component.html +282 -0
  181. package/src/question/card-subform/card-subform.component.scss +49 -0
  182. package/src/question/card-subform/card-subform.component.spec.ts +21 -0
  183. package/src/question/card-subform/card-subform.component.ts +407 -0
  184. package/src/question/confirm-dialog/confirm-dialog.component.html +32 -0
  185. package/src/question/confirm-dialog/confirm-dialog.component.scss +109 -0
  186. package/src/question/confirm-dialog/confirm-dialog.component.spec.ts +21 -0
  187. package/src/question/confirm-dialog/confirm-dialog.component.ts +24 -0
  188. package/src/question/form-elements/form-elements.component.html +28 -0
  189. package/src/question/form-elements/form-elements.component.scss +0 -0
  190. package/src/question/form-elements/form-elements.component.spec.ts +21 -0
  191. package/src/question/form-elements/form-elements.component.ts +41 -0
  192. package/src/question/inline-multiple-subform/inline-multiple-subform.component.html +321 -0
  193. package/src/question/inline-multiple-subform/inline-multiple-subform.component.scss +78 -0
  194. package/src/question/inline-multiple-subform/inline-multiple-subform.component.spec.ts +21 -0
  195. package/src/question/inline-multiple-subform/inline-multiple-subform.component.ts +425 -0
  196. package/src/question/multifields/multifields.component.html +78 -0
  197. package/src/question/multifields/multifields.component.scss +6 -0
  198. package/src/question/multifields/multifields.component.spec.ts +21 -0
  199. package/src/question/multifields/multifields.component.ts +27 -0
  200. package/src/question/multiple-subform/multiple-subform.component.html +185 -0
  201. package/src/question/multiple-subform/multiple-subform.component.scss +52 -0
  202. package/src/question/multiple-subform/multiple-subform.component.spec.ts +21 -0
  203. package/src/question/multiple-subform/multiple-subform.component.ts +481 -0
  204. package/src/question/question/question.component.html +51 -0
  205. package/src/question/question/question.component.scss +0 -0
  206. package/src/question/question/question.component.spec.ts +21 -0
  207. package/src/question/question/question.component.ts +129 -0
  208. package/src/question/question-group/question-group.component.html +147 -0
  209. package/src/question/question-group/question-group.component.scss +36 -0
  210. package/src/question/question-group/question-group.component.spec.ts +21 -0
  211. package/src/question/question-group/question-group.component.ts +94 -0
  212. package/src/question/question.module.ts +22 -0
  213. package/src/question/recursive-logic/recursive-logic.component.html +33 -0
  214. package/src/question/recursive-logic/recursive-logic.component.scss +0 -0
  215. package/src/question/recursive-logic/recursive-logic.component.spec.ts +21 -0
  216. package/src/question/recursive-logic/recursive-logic.component.ts +29 -0
  217. package/src/question/sub-form/sub-form.component.html +254 -0
  218. package/src/question/sub-form/sub-form.component.scss +83 -0
  219. package/src/question/sub-form/sub-form.component.spec.ts +21 -0
  220. package/src/question/sub-form/sub-form.component.ts +421 -0
  221. package/src/services/aggregate.service.ts +148 -0
  222. package/src/services/countryService.ts +92 -0
  223. package/src/services/data.service.ts +36 -0
  224. package/src/services/element-tracker.service.spec.ts +16 -0
  225. package/src/services/element-tracker.service.ts +24 -0
  226. package/src/services/form-validation.service.ts +151 -0
  227. package/src/services/form.service.spec.ts +16 -0
  228. package/src/services/form.service.ts +407 -0
  229. package/src/services/mapper.service.ts +625 -0
  230. package/src/services/recaptcha.service.spec.ts +16 -0
  231. package/src/services/recaptcha.service.ts +179 -0
  232. package/src/services/score.service.ts +352 -0
  233. package/src/services/subform-copy.service.ts +148 -0
  234. package/src/services/validation.service.spec.ts +16 -0
  235. package/src/services/validation.service.ts +33 -0
  236. package/src/services/whenClause.service.ts +502 -0
  237. package/src/shared/shared.module.ts +58 -0
  238. package/src/styles/shared-style.scss +86 -0
  239. package/src/sub-form/sub-form.module.ts +24 -0
  240. package/src/sub-form/submission-modal/submission-modal.component.html +160 -0
  241. package/src/sub-form/submission-modal/submission-modal.component.scss +54 -0
  242. package/src/sub-form/submission-modal/submission-modal.component.spec.ts +21 -0
  243. package/src/sub-form/submission-modal/submission-modal.component.ts +127 -0
  244. package/tsconfig.lib.json +14 -0
  245. package/tsconfig.lib.prod.json +10 -0
  246. package/tsconfig.spec.json +14 -0
  247. package/environment/environment.d.ts +0 -5
  248. package/esm2022/environment/environment.mjs +0 -6
  249. package/esm2022/form-fields/aggregate-function/aggregate-function.component.mjs +0 -146
  250. package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +0 -473
  251. package/esm2022/form-fields/currency-fields/currency-fields.component.mjs +0 -502
  252. package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +0 -608
  253. package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +0 -585
  254. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +0 -224
  255. package/esm2022/form-fields/form-fields.module.mjs +0 -174
  256. package/esm2022/form-fields/hidden-field/hidden-field.component.mjs +0 -137
  257. package/esm2022/form-fields/iframe-fields/iframe-fields.component.mjs +0 -198
  258. package/esm2022/form-fields/location-fields/location-fields.component.mjs +0 -85
  259. package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +0 -131
  260. package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +0 -270
  261. package/esm2022/form-fields/number-fields/number-fields.component.mjs +0 -242
  262. package/esm2022/form-fields/password-fields/password-fields.component.mjs +0 -257
  263. package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +0 -346
  264. package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +0 -148
  265. package/esm2022/form-fields/section-fields/section-fields.component.mjs +0 -29
  266. package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +0 -158
  267. package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +0 -32
  268. package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +0 -73
  269. package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +0 -66
  270. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +0 -159
  271. package/esm2022/form-fields/text-fields/text-fields.component.mjs +0 -245
  272. package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +0 -85
  273. package/esm2022/form-fields/url-fields/url-fields.component.mjs +0 -124
  274. package/esm2022/form-submission/form-submission.module.mjs +0 -64
  275. package/esm2022/form-submission/header/header.component.mjs +0 -20
  276. package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +0 -171
  277. package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +0 -124
  278. package/esm2022/form-submission/save-as-draft/saveDraftModalComponent .mjs +0 -50
  279. package/esm2022/form-submission/submission-container/submission-container.component.mjs +0 -17
  280. package/esm2022/form-submission/submit-form/submit-form.component.mjs +0 -1610
  281. package/esm2022/lib/form-submission.component.mjs +0 -113
  282. package/esm2022/lib/form-submission.module.mjs +0 -56
  283. package/esm2022/lib/form-submission.service.mjs +0 -14
  284. package/esm2022/models/aggregate.model.mjs +0 -2
  285. package/esm2022/models/answer.model.mjs +0 -2
  286. package/esm2022/models/appearance.model.mjs +0 -2
  287. package/esm2022/models/attachment.model.mjs +0 -2
  288. package/esm2022/models/defaultAnswerEntry.model.mjs +0 -2
  289. package/esm2022/models/defaultAnswersModel.model.mjs +0 -2
  290. package/esm2022/models/defaultQuestionAnswer.model.mjs +0 -2
  291. package/esm2022/models/elementOptionAPI.model.mjs +0 -2
  292. package/esm2022/models/elementOptionAPIData.model.mjs +0 -2
  293. package/esm2022/models/elementOptionDB.model.mjs +0 -2
  294. package/esm2022/models/elementOptionDBCriteria.model.mjs +0 -2
  295. package/esm2022/models/emitters.model.mjs +0 -2
  296. package/esm2022/models/enum/condition.enum.mjs +0 -18
  297. package/esm2022/models/enum/elementType .enum.mjs +0 -24
  298. package/esm2022/models/enum/entityType.enum.mjs +0 -12
  299. package/esm2022/models/formConfiguration.model.mjs +0 -2
  300. package/esm2022/models/formElement.model.mjs +0 -2
  301. package/esm2022/models/formElementType.model.mjs +0 -2
  302. package/esm2022/models/grid.model.mjs +0 -2
  303. package/esm2022/models/hiddenField.model.mjs +0 -2
  304. package/esm2022/models/iFrameProperties.model.mjs +0 -2
  305. package/esm2022/models/logic.model.mjs +0 -2
  306. package/esm2022/models/multifields.model.mjs +0 -2
  307. package/esm2022/models/option.model.mjs +0 -2
  308. package/esm2022/models/page.model.mjs +0 -2
  309. package/esm2022/models/publicForm.model.mjs +0 -2
  310. package/esm2022/models/question.model.mjs +0 -2
  311. package/esm2022/models/questionAnswer.model.mjs +0 -2
  312. package/esm2022/models/questionGroup.model.mjs +0 -2
  313. package/esm2022/models/row.model.mjs +0 -2
  314. package/esm2022/models/scoring.model.mjs +0 -2
  315. package/esm2022/models/section.model.mjs +0 -2
  316. package/esm2022/models/subForm.model.mjs +0 -2
  317. package/esm2022/models/subformConfiguration.model.mjs +0 -2
  318. package/esm2022/models/subformPropery.model.mjs +0 -2
  319. package/esm2022/models/submission.model.mjs +0 -2
  320. package/esm2022/models/submissionCopyConfig.mopdel.mjs +0 -2
  321. package/esm2022/models/terms&condition.model.mjs +0 -2
  322. package/esm2022/models/validation.model.mjs +0 -2
  323. package/esm2022/models/whenClause.model.mjs +0 -2
  324. package/esm2022/models/whenClauseCondition.model.mjs +0 -2
  325. package/esm2022/models/whenClauseElements.model.mjs +0 -2
  326. package/esm2022/piserve-tech-form-submission.mjs +0 -5
  327. package/esm2022/public-api.mjs +0 -7
  328. package/esm2022/question/card-subform/card-subform.component.mjs +0 -354
  329. package/esm2022/question/confirm-dialog/confirm-dialog.component.mjs +0 -27
  330. package/esm2022/question/form-elements/form-elements.component.mjs +0 -62
  331. package/esm2022/question/inline-multiple-subform/inline-multiple-subform.component.mjs +0 -384
  332. package/esm2022/question/multifields/multifields.component.mjs +0 -54
  333. package/esm2022/question/multiple-subform/multiple-subform.component.mjs +0 -413
  334. package/esm2022/question/question/question.component.mjs +0 -145
  335. package/esm2022/question/question-group/question-group.component.mjs +0 -102
  336. package/esm2022/question/recursive-logic/recursive-logic.component.mjs +0 -49
  337. package/esm2022/question/sub-form/sub-form.component.mjs +0 -351
  338. package/esm2022/services/aggregate.service.mjs +0 -139
  339. package/esm2022/services/countryService.mjs +0 -89
  340. package/esm2022/services/data.service.mjs +0 -36
  341. package/esm2022/services/element-tracker.service.mjs +0 -27
  342. package/esm2022/services/form-validation.service.mjs +0 -128
  343. package/esm2022/services/form.service.mjs +0 -333
  344. package/esm2022/services/mapper.service.mjs +0 -519
  345. package/esm2022/services/recaptcha.service.mjs +0 -136
  346. package/esm2022/services/score.service.mjs +0 -268
  347. package/esm2022/services/subform-copy.service.mjs +0 -122
  348. package/esm2022/services/validation.service.mjs +0 -35
  349. package/esm2022/services/whenClause.service.mjs +0 -423
  350. package/esm2022/shared/shared.module.mjs +0 -97
  351. package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +0 -133
  352. package/fesm2022/piserve-tech-form-submission.mjs +0 -11658
  353. package/fesm2022/piserve-tech-form-submission.mjs.map +0 -1
  354. package/form-fields/aggregate-function/aggregate-function.component.d.ts +0 -43
  355. package/form-fields/check-box-fields/check-box-fields.component.d.ts +0 -73
  356. package/form-fields/currency-fields/currency-fields.component.d.ts +0 -62
  357. package/form-fields/date-time-fields/date-time-fields.component.d.ts +0 -96
  358. package/form-fields/drop-down-fields/drop-down-fields.component.d.ts +0 -88
  359. package/form-fields/file-picker-fields/file-picker-fields.component.d.ts +0 -72
  360. package/form-fields/form-fields.module.d.ts +0 -40
  361. package/form-fields/hidden-field/hidden-field.component.d.ts +0 -38
  362. package/form-fields/iframe-fields/iframe-fields.component.d.ts +0 -35
  363. package/form-fields/location-fields/location-fields.component.d.ts +0 -29
  364. package/form-fields/mail-fields/mail-fields.component.d.ts +0 -41
  365. package/form-fields/mobile-fields/mobile-fields.component.d.ts +0 -71
  366. package/form-fields/number-fields/number-fields.component.d.ts +0 -53
  367. package/form-fields/password-fields/password-fields.component.d.ts +0 -57
  368. package/form-fields/radio-button-fields/radio-button-fields.component.d.ts +0 -70
  369. package/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.d.ts +0 -46
  370. package/form-fields/section-fields/section-fields.component.d.ts +0 -10
  371. package/form-fields/selection-matrix-fields/selection-matrix-fields.component.d.ts +0 -45
  372. package/form-fields/signature-fields/signature-fields.component.d.ts +0 -13
  373. package/form-fields/slider-fields/slider-fields.component.d.ts +0 -32
  374. package/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.d.ts +0 -26
  375. package/form-fields/text-area-fields/text-area-fields.component.d.ts +0 -49
  376. package/form-fields/text-fields/text-fields.component.d.ts +0 -49
  377. package/form-fields/toggle-switch-fields/toggle-switch-fields.component.d.ts +0 -29
  378. package/form-fields/url-fields/url-fields.component.d.ts +0 -41
  379. package/form-submission/form-submission.module.d.ts +0 -20
  380. package/form-submission/header/header.component.d.ts +0 -7
  381. package/form-submission/navigation-tabs/navigation-tabs.component.d.ts +0 -57
  382. package/form-submission/next-prev-navigation/next-prev-navigation.component.d.ts +0 -46
  383. package/form-submission/save-as-draft/saveDraftModalComponent .d.ts +0 -17
  384. package/form-submission/submission-container/submission-container.component.d.ts +0 -7
  385. package/form-submission/submit-form/submit-form.component.d.ts +0 -237
  386. package/index.d.ts +0 -5
  387. package/lib/form-submission.component.d.ts +0 -30
  388. package/lib/form-submission.module.d.ts +0 -16
  389. package/lib/form-submission.service.d.ts +0 -6
  390. package/models/aggregate.model.d.ts +0 -4
  391. package/models/appearance.model.d.ts +0 -64
  392. package/models/elementOptionAPI.model.d.ts +0 -12
  393. package/models/elementOptionAPIData.model.d.ts +0 -5
  394. package/models/elementOptionDB.model.d.ts +0 -8
  395. package/models/elementOptionDBCriteria.model.d.ts +0 -7
  396. package/models/enum/elementType .enum.d.ts +0 -22
  397. package/models/enum/entityType.enum.d.ts +0 -10
  398. package/models/logic.model.d.ts +0 -9
  399. package/models/multifields.model.d.ts +0 -11
  400. package/models/page.model.d.ts +0 -6
  401. package/models/publicForm.model.d.ts +0 -18
  402. package/models/question.model.d.ts +0 -26
  403. package/models/questionAnswer.model.d.ts +0 -7
  404. package/models/questionGroup.model.d.ts +0 -11
  405. package/models/scoring.model.d.ts +0 -10
  406. package/models/section.model.d.ts +0 -6
  407. package/models/subForm.model.d.ts +0 -24
  408. package/models/subformConfiguration.model.d.ts +0 -4
  409. package/models/subformPropery.model.d.ts +0 -7
  410. package/models/validation.model.d.ts +0 -48
  411. package/models/whenClause.model.d.ts +0 -6
  412. package/question/card-subform/card-subform.component.d.ts +0 -44
  413. package/question/confirm-dialog/confirm-dialog.component.d.ts +0 -12
  414. package/question/form-elements/form-elements.component.d.ts +0 -20
  415. package/question/inline-multiple-subform/inline-multiple-subform.component.d.ts +0 -47
  416. package/question/multifields/multifields.component.d.ts +0 -11
  417. package/question/multiple-subform/multiple-subform.component.d.ts +0 -39
  418. package/question/question/question.component.d.ts +0 -30
  419. package/question/question-group/question-group.component.d.ts +0 -29
  420. package/question/recursive-logic/recursive-logic.component.d.ts +0 -19
  421. package/question/sub-form/sub-form.component.d.ts +0 -70
  422. package/services/aggregate.service.d.ts +0 -29
  423. package/services/countryService.d.ts +0 -21
  424. package/services/data.service.d.ts +0 -19
  425. package/services/element-tracker.service.d.ts +0 -10
  426. package/services/form-validation.service.d.ts +0 -16
  427. package/services/form.service.d.ts +0 -27
  428. package/services/mapper.service.d.ts +0 -31
  429. package/services/recaptcha.service.d.ts +0 -46
  430. package/services/score.service.d.ts +0 -27
  431. package/services/subform-copy.service.d.ts +0 -10
  432. package/services/validation.service.d.ts +0 -14
  433. package/services/whenClause.service.d.ts +0 -45
  434. package/shared/shared.module.d.ts +0 -25
  435. package/sub-form/submission-modal/submission-modal.component.d.ts +0 -31
  436. /package/{assets → src/assets}/fonts/Garamond.woff2 +0 -0
  437. /package/{assets → src/assets}/fonts/Georgia.woff2 +0 -0
  438. /package/{assets → src/assets}/fonts/Poppins.woff2 +0 -0
  439. /package/{assets → src/assets}/fonts/Tahoma.woff2 +0 -0
  440. /package/{assets → src/assets}/fonts/Tajawal.woff2 +0 -0
  441. /package/{assets → src/assets}/fonts/Verdana.woff2 +0 -0
  442. /package/{assets → src/assets}/icons/left_arrow.svg +0 -0
  443. /package/{assets → src/assets}/icons/right_arrow.svg +0 -0
@@ -0,0 +1,625 @@
1
+ import { Appearance } from '../models/appearance.model';
2
+ import { ElementOptionAPI } from '../models/elementOptionAPI.model';
3
+ import { elementOptionAPIData } from '../models/elementOptionAPIData.model';
4
+ import { ElementOptionDB } from '../models/elementOptionDB.model';
5
+ import { ElementOptionDBCriteria } from '../models/elementOptionDBCriteria.model';
6
+ import { FormElement } from '../models/formElement.model';
7
+ import { Grid } from '../models/grid.model';
8
+ import { Page } from '../models/page.model';
9
+ import { PublicForm } from '../models/publicForm.model';
10
+ import { Question } from '../models/question.model';
11
+ import { Row } from '../models/row.model';
12
+ import { Validation } from '../models/validation.model';
13
+ import { Option } from '../models/option.model';
14
+ import { Section } from '../models/section.model';
15
+ import { SubForm } from '../models/subForm.model';
16
+ import { FormElementType } from '../models/formElementType.model';
17
+ import { Logic } from '../models/logic.model';
18
+ import { Attachment } from '../models/attachment.model';
19
+ import { Submission } from '../models/submission.model';
20
+ import { Answer } from '../models/answer.model';
21
+ import { termsAndConditionType } from '../models/terms&condition.model';
22
+ import { FormConfiguration } from '../models/formConfiguration.model';
23
+ import { QuestionGroup } from '../models/questionGroup.model';
24
+ import { SubformProperty } from '../models/subformPropery.model';
25
+ import { Multifields } from '../models/multifields.model';
26
+ import { AggregateFunction } from '../models/aggregate.model';
27
+ import { DefaultAnswersModel } from '../models/defaultAnswersModel.model';
28
+ import { DefaultAnswerEntry } from '../models/defaultAnswerEntry.model';
29
+ import { DefaultQuestionAnswer } from '../models/defaultQuestionAnswer.model';
30
+ import { SubformConfiguration } from '../models/subformConfiguration.model';
31
+ import { EmitterDTO } from '../models/emitters.model';
32
+ import { add } from 'ngx-bootstrap/chronos';
33
+ import { Scoring } from '../models/scoring.model';
34
+ import { HiddenField } from '../models/hiddenField.model';
35
+ import { IFrameProperties } from '../models/iFrameProperties.model';
36
+ import { SubmissionCopyConfig } from '../models/submissionCopyConfig.mopdel';
37
+
38
+ export function mapPublicFormToModel(apiPublicForm: any): PublicForm {
39
+ return {
40
+ name: apiPublicForm.result.name,
41
+ formConfiguration: mapFormConfigurationToModel(
42
+ apiPublicForm.result.moduleConfiguration
43
+ ),
44
+ currency:apiPublicForm?.result?.currency,
45
+ defautlCurrency:apiPublicForm?.result?.defaultCurrency,
46
+ pages: apiPublicForm.result.pages.map((apiPage: any) =>
47
+ mapPageToModel(apiPage,apiPublicForm?.result?.currency,apiPublicForm?.result?.defaultCurrency)
48
+ ),
49
+ questionAnswers:apiPublicForm.result.questionAnswers,
50
+ parentId:apiPublicForm.result.parentId,
51
+ emitters: apiPublicForm.result.emittersDTOS
52
+ ? apiPublicForm.result.emittersDTOS.map((emitter: any) => mapEmitterToModel(emitter))
53
+ : [],
54
+ score:apiPublicForm.score,
55
+ maximumPossibleScore:apiPublicForm.maximumPossibleScore,
56
+ };
57
+ }
58
+
59
+
60
+ export function mapEmitterToModel(apiEmitter: any): EmitterDTO {
61
+ return {
62
+ id: apiEmitter.id,
63
+ keyName: apiEmitter.keyName,
64
+ valueSource: apiEmitter.valueSource,
65
+ questionId: apiEmitter.questionId,
66
+ inputValue: apiEmitter.inputValue,
67
+ isConflict: apiEmitter.isConflict ?? false
68
+ };
69
+ }
70
+
71
+
72
+ function mapFormConfigurationToModel(
73
+ apiFormConfiguration: any
74
+ ): FormConfiguration {
75
+ return {
76
+ saveAutomatically: apiFormConfiguration?.saveAutomatically,
77
+ saveInterval: apiFormConfiguration?.saveInterval,
78
+ customizeFont: apiFormConfiguration?.customizeFont,
79
+ fontFamily: apiFormConfiguration?.fontFamily,
80
+ fontSize: apiFormConfiguration?.fontSize,
81
+ enableDataExport: apiFormConfiguration?.enableDataExport,
82
+ fileFormats: apiFormConfiguration?.fileFormats,
83
+ enableQuestionNumbering: apiFormConfiguration?.enableQuestionNumbering,
84
+ questionNumbering: apiFormConfiguration?.questionNumbering,
85
+ enableGoogleRecaptcha: apiFormConfiguration?.enableGoogleRecaptcha,
86
+ googleRecaptchaKey: apiFormConfiguration?.googleRecaptchaKey,
87
+ googleRecaptchaSecret: apiFormConfiguration?.googleRecaptchaSecret,
88
+ navigation: apiFormConfiguration?.navigation,
89
+ markAllQuestionsAsRequired: apiFormConfiguration?.markAllQuestionsAsRequired,
90
+ };
91
+ }
92
+
93
+
94
+
95
+ export function mapPageToModel(apiPage: any, currency:any, defaultCurrency:any): Page {
96
+ return {
97
+ title: apiPage.title,
98
+ testElementName: apiPage.testElementName,
99
+ rows: apiPage?.rows?.map((apiRow: any) => mapRowToModel(apiRow,currency,defaultCurrency)),
100
+ };
101
+ }
102
+
103
+ function mapRowToModel(apiRow: any, currency:any,defaultCurrency:any): Row {
104
+ return {
105
+ grid: apiRow.grid.map((apiGrid: any) => mapGridToModel(apiGrid,currency,defaultCurrency)),
106
+ };
107
+ }
108
+
109
+ function mapGridToModel(apiGrid: any, currency:any,defaultCurrency:any): Grid {
110
+ let entity: Section | Question | SubForm | QuestionGroup | Multifields | undefined;
111
+
112
+ switch (apiGrid.entityType) {
113
+ case 'QUESTION':
114
+ entity = mapQuestionToModel(apiGrid.element,currency,defaultCurrency);
115
+ break;
116
+ case 'SECTION':
117
+ entity = mapSectionToModel(apiGrid.element);
118
+ break;
119
+ case 'SUBFORM':
120
+ entity = mapSubFormToModel(apiGrid.element,currency,defaultCurrency);
121
+ break;
122
+ case 'QUESTION_GROUP':
123
+ entity = mapQuestionGroupToModel(apiGrid.element,currency,defaultCurrency);
124
+ break;
125
+ case 'MULTIFIELD':
126
+ entity = mapMultifieldsToModel(apiGrid.element,currency,defaultCurrency);
127
+ break;
128
+ default:
129
+ throw new Error(`Unknown entity type: ${apiGrid.entityType}`);
130
+ }
131
+
132
+ const whenClause = mapWhenClauseModel(apiGrid.whenClauseDTO);
133
+ // read actions safely
134
+ const actions: string[] = Array.isArray(whenClause?.whenClauseActions)
135
+ ? whenClause.whenClauseActions
136
+ : [];
137
+
138
+ // pick last action if multiple (your UI prevents that but safe handling)
139
+ const action = actions.length > 0 ? actions[actions.length - 1] : undefined;
140
+
141
+ let shouldShow = true; // default visible
142
+
143
+ if (action === 'SHOW') {
144
+ shouldShow = false; // default hidden when action = SHOW
145
+ }
146
+ if (action === 'HIDE') {
147
+ shouldShow = true; // default shown when action = HIDE
148
+ }
149
+
150
+ return {
151
+ entityType: apiGrid.entityType,
152
+ element: entity,
153
+ whenClause: whenClause,
154
+ show: shouldShow
155
+ };
156
+ }
157
+
158
+ export function mapWhenClauseModel(whenClauseDTO: any) {
159
+ // 🧩 Guard: Handle undefined/null or malformed data
160
+ if (!whenClauseDTO || !Array.isArray(whenClauseDTO.whenClauseCondition)) {
161
+
162
+ return {
163
+ activate: false,
164
+ whenClauseCondition: [],
165
+ whenClauseActions: []
166
+ };
167
+ }
168
+
169
+ return {
170
+ activate: !!whenClauseDTO.activate,
171
+ whenClauseActions: whenClauseDTO.whenClauseActions || [],
172
+ whenClauseCondition: whenClauseDTO.whenClauseCondition.map((condition: any) => ({
173
+ logic: condition.logic || '',
174
+ questionid: condition.questionid || '',
175
+ condition: condition.condition || '',
176
+ value: condition.value ?? '' // handle null/undefined gracefully
177
+ }))
178
+ };
179
+ }
180
+
181
+ export function mapSectionToModel(apiSection: any): Section {
182
+ return {
183
+ id: apiSection.id,
184
+ title: apiSection.title,
185
+ description: apiSection.description,
186
+ testElementName: apiSection.testElementName
187
+ };
188
+ }
189
+
190
+ export function mapQuestionToModel(apiQuestion: any, currency:any, defaultCurrency:any): Question {
191
+ return {
192
+ count: apiQuestion.count,
193
+ id: apiQuestion.id,
194
+ questionNumber: apiQuestion.questionNumber,
195
+ required: apiQuestion.required,
196
+ hint: apiQuestion.hint,
197
+ question: apiQuestion.question,
198
+ testElementName: apiQuestion.testElementName,
199
+ answer: apiQuestion?.answer,
200
+ validation: true,
201
+ formElement: mapFormElementToModel(apiQuestion.formElement,currency,defaultCurrency),
202
+ childLogics: apiQuestion?.childLogics?.map((logic: any) =>
203
+ mapLogicToModel(logic, currency,defaultCurrency)
204
+ ),
205
+ answerId: apiQuestion?.answerId,
206
+ attachments: apiQuestion?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)) || [],
207
+ deleteFiles: [],
208
+ defaultValue:apiQuestion?.defaultValue,
209
+ disableEdit:apiQuestion?.disableEdit,
210
+ score:apiQuestion.score,
211
+ maximumPossibleScore:apiQuestion.maximumPossibleScore,
212
+ amountInWords: apiQuestion?.amountInWords,
213
+ answerCurrency:apiQuestion?.currencySymbol
214
+ };
215
+ }
216
+
217
+ function mapAttachmentToModel(apiAttachment: any): Attachment {
218
+ return {
219
+ fileId: apiAttachment.fileId,
220
+ fileName: apiAttachment.fileName,
221
+ fileUrl: apiAttachment.fileUrl,
222
+ fileSize:apiAttachment?.fileSize
223
+ };
224
+ }
225
+
226
+ function mapFormElementToModel(apiFormElement: any, currency:any, defaultCurrency:any): FormElement {
227
+ return {
228
+ elementType: apiFormElement.elementType,
229
+ appearance: mapAppearanceToModel(apiFormElement.appearance,currency,defaultCurrency),
230
+ validation: mapValidationToModel(apiFormElement.validation),
231
+ option: mapOptionToModel(apiFormElement?.option),
232
+ aggregateFunction: mapAggregateFunction(apiFormElement?.aggregateFunction),
233
+ selectionMatrixLabel: apiFormElement.selectionMatrixLabel,
234
+ selectionMatrixColumn: apiFormElement.selectionMatrixColumn,
235
+ termsAndConditionType: maptermsAndCondition(apiFormElement),
236
+ scoring: mapScoringToModel(apiFormElement.scoring),
237
+ hiddenField: mapHiddenFieldToModel(apiFormElement?.hiddenField),
238
+ iFrameProperties: mapIframeProperties(apiFormElement?.iFrameProperties)
239
+ };
240
+ }
241
+
242
+ function mapIframeProperties(iFrameProperties: any): IFrameProperties {
243
+ return {
244
+ contentType: iFrameProperties?.contentType,
245
+ url: iFrameProperties?.url,
246
+ html: iFrameProperties?.html,
247
+ style: iFrameProperties?.style,
248
+ script: iFrameProperties?.script
249
+ }
250
+ }
251
+
252
+ function mapHiddenFieldToModel(hiddenField: any): HiddenField {
253
+ return {
254
+ value: hiddenField?.value,
255
+ valueSource: hiddenField?.valueSource,
256
+ key: hiddenField?.key
257
+ }
258
+ }
259
+
260
+ function mapAggregateFunction(aggregateFunction: any): AggregateFunction | undefined {
261
+ if (!aggregateFunction) {
262
+ return undefined;
263
+ }
264
+
265
+ return {
266
+ aggregateOperation: aggregateFunction.aggregateOperation,
267
+ formula: aggregateFunction.formula
268
+ };
269
+ }
270
+
271
+ function maptermsAndCondition(Element: any): termsAndConditionType {
272
+ if(Element.termsAndCondition != undefined){
273
+ let data = Element.termsAndCondition
274
+ return {
275
+ termsAndConditionType: data.termsAndConditionType,
276
+ fileUrl: data.fileUrl,
277
+ fileName: data.fileName,
278
+ };
279
+ }
280
+ else{
281
+ return {
282
+ termsAndConditionType: '',
283
+ fileUrl: '',
284
+ fileName: '',
285
+ }
286
+ }
287
+
288
+ }
289
+
290
+ function mapLogicToModel(apiLogic: any, currency:any,defaultCurrency:any): Logic {
291
+ return {
292
+ id: apiLogic.id,
293
+ inputValue: apiLogic.inputValue,
294
+ condition: apiLogic.condition,
295
+ showLogic: false,
296
+ rows: apiLogic?.rows?.map((element: any) =>
297
+ mapRowToModel(element,currency,defaultCurrency)
298
+ ),
299
+ };
300
+ }
301
+
302
+ export function mapSubFormToModel(apiSubForm: any, currency:any,defaultCurrency:any): SubForm {
303
+ return {
304
+ id: apiSubForm.id,
305
+ count: apiSubForm.count,
306
+ title: apiSubForm.title,
307
+ description: apiSubForm.description,
308
+ testElementName: apiSubForm.testElementName,
309
+ rows: apiSubForm.rows.map((element: any) => mapRowToModel(element,currency,defaultCurrency)),
310
+ submissions: apiSubForm?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),
311
+ property: apiSubForm.property ? mapPropertyToModel(apiSubForm.property) : undefined,
312
+ defaultAnswers: apiSubForm.defaultAnswers ? mapDefaultAnswersToModel(apiSubForm.defaultAnswers) : undefined,
313
+ deleted: false,
314
+ scores:apiSubForm.scores,
315
+ maximumPossibleScore:apiSubForm.maximumPossibleScore,
316
+ submissionCopyConfig: mapSubmissionCopyConfig(apiSubForm.submissionCopyConfig),
317
+ required: apiSubForm.required
318
+ };
319
+ }
320
+
321
+ export function mapSubmissionCopyConfig(copyConfig:any): SubmissionCopyConfig | undefined {
322
+ if(!copyConfig) return undefined;
323
+ return {
324
+ allowCopyFromOtherSubmissions: copyConfig.allowCopyFromOtherSubmissions,
325
+ editableQuestions: copyConfig.editableQuestions,
326
+ };
327
+ }
328
+
329
+ export function mapDefaultAnswersToModel(apiDefaultAnswers: any): DefaultAnswersModel {
330
+ return {
331
+ answers: apiDefaultAnswers.answers.map((entry: any) => mapDefaultAnswerEntry(entry))
332
+ };
333
+ }
334
+
335
+ export function mapDefaultAnswerEntry(apiEntry: any): DefaultAnswerEntry {
336
+ return {
337
+ isDeleteEnable: apiEntry.isDeleteEnable,
338
+ defaultQuestionsAnswers: apiEntry.defaultQuestionsAnswers.map((question: any) => mapDefaultQuestionAnswer(question))
339
+ };
340
+ }
341
+
342
+ export function mapDefaultQuestionAnswer(apiQuestion: any): DefaultQuestionAnswer {
343
+ return {
344
+ defaultAnswer: apiQuestion.defaultAnswer,
345
+ readOnly: apiQuestion.readOnly,
346
+ isDeleteEnable: apiQuestion.isDeleteEnable,
347
+ questionId: apiQuestion.questionId
348
+ };
349
+ }
350
+
351
+ function mapPropertyToModel(apiProperty: any): SubformProperty {
352
+ return {
353
+ subFormStructure: apiProperty.subFormStructure,
354
+ subFormType: apiProperty.subFormType,
355
+ allowDelete: apiProperty.allowDelete,
356
+ allowCopy: apiProperty.allowCopy,
357
+ addButtonLabel: apiProperty.addButtonLabel
358
+ };
359
+ }
360
+
361
+ export function mapQuestionGroupToModel(apiQuestionGroup: any,currency:any,defaultCurrency:any): QuestionGroup {
362
+ return {
363
+ id: apiQuestionGroup.id,
364
+ count: apiQuestionGroup.count,
365
+ title: apiQuestionGroup.title,
366
+ description: apiQuestionGroup.description,
367
+ testElementName: apiQuestionGroup.testElementName,
368
+ rows: apiQuestionGroup.rows.map((element: any) => mapRowToModel(element,currency,defaultCurrency)),
369
+ submissions: apiQuestionGroup?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),
370
+ };
371
+ }
372
+
373
+ export function mapMultifieldsToModel(apiQuestionGroup: any,currency:any,defaultCurrency:any): Multifields {
374
+ return {
375
+ id: apiQuestionGroup.id,
376
+ question: apiQuestionGroup.question,
377
+ questionNumber: apiQuestionGroup.questionNumber,
378
+ count: apiQuestionGroup.count,
379
+ testElementName: apiQuestionGroup.testElementName,
380
+ rows: apiQuestionGroup.rows.map((element: any) => mapRowToModel(element,currency,defaultCurrency)),
381
+ submissions: apiQuestionGroup?.submissions?.map((submission: any) => mapSubmissionToModel(submission)),
382
+ };
383
+ }
384
+
385
+ function mapSubmissionToModel(apiSubmission: any): Submission {
386
+ return {
387
+ submissionId: apiSubmission?.submissionId,
388
+ answers: apiSubmission?.answers?.map((answer: any) => mapAnswerToModel(answer)),
389
+ configuration: mapSubformConfiguration(apiSubmission?.configuration),
390
+ scores:apiSubmission.scores,
391
+ sourceSubmissionId:apiSubmission.sourceSubmissionId,
392
+ isCopied:apiSubmission.isCopied
393
+ };
394
+ }
395
+
396
+ function mapAnswerToModel(apiAnswer: any): Answer {
397
+ return {
398
+ questionId: apiAnswer.questionId,
399
+ answer: apiAnswer?.answer,
400
+ answerId: apiAnswer?.answerId,
401
+ attachments: apiAnswer?.attachments?.map((attachment: any) => mapAttachmentToModel(attachment)),
402
+ scores:apiAnswer.scores,
403
+ maximumPossibleScore:apiAnswer.maximumPossibleScore,
404
+ show:apiAnswer?.show,
405
+ amountInWords: apiAnswer?.amountInWords,
406
+ answerCurrency:apiAnswer?.currencySymbol
407
+ };
408
+ }
409
+
410
+ function mapSubformConfiguration(config: any): SubformConfiguration | undefined {
411
+ if (!config) return undefined;
412
+ return {
413
+ allowDelete: !!config.allowDelete,
414
+ isDefault: !!config.isDefault,
415
+ };
416
+ }
417
+
418
+ export function mapFormElementTypeToModel(
419
+ apiFormElementType: any
420
+ ): FormElementType<any> {
421
+ return {
422
+ entityType: apiFormElementType?.entityType,
423
+ element: apiFormElementType?.element,
424
+ };
425
+ }
426
+
427
+ function mapAppearanceToModel(apiAppearance: any, currency:any, defaultCurrency:any): Appearance {
428
+ return {
429
+ placeholder: apiAppearance?.placeholder,
430
+ fontSize: apiAppearance?.fontSize,
431
+ textAlign: apiAppearance?.textAlign,
432
+ font: apiAppearance?.font,
433
+ underline: apiAppearance?.underline,
434
+ bold: apiAppearance?.bold,
435
+ italics: apiAppearance?.italics,
436
+ defaultValue: apiAppearance?.defaultValue,
437
+ numberOfRows: apiAppearance?.numberOfRows,
438
+ singleSelection: apiAppearance?.singleSelection,
439
+ displayCountryCode: apiAppearance?.displayCountryCode,
440
+ displayFlag: apiAppearance?.displayFlag,
441
+ displayCode: apiAppearance?.displayCode,
442
+ showCountryName: apiAppearance?.showCountryName,
443
+ beautifyNumbers: apiAppearance?.beautifyNumbers,
444
+ upAndDownButton: apiAppearance?.upAndDownButton,
445
+ allowNegativeValues: apiAppearance?.allowNegativeValues,
446
+ showPreviewButton: apiAppearance?.showPreviewButton,
447
+ confirmPassword: apiAppearance?.confirmPassword,
448
+ viewButton: apiAppearance?.viewButton,
449
+ displayStrong: apiAppearance?.displayStrong,
450
+ dateType: apiAppearance?.dateType,
451
+ format: apiAppearance?.format,
452
+ setCurrentPosition: apiAppearance?.setCurrentPosition,
453
+ defaultZoomLevel: apiAppearance?.defaultZoomLevel,
454
+ allowFullScreen: apiAppearance?.allowFullScreen,
455
+ latitude: apiAppearance?.latitude,
456
+ longitude: apiAppearance?.longitude,
457
+ showAcceptButton: apiAppearance?.showAcceptButton,
458
+ labelOnValue: apiAppearance?.labelOnValue,
459
+ labelOffValue: apiAppearance?.labelOffValue,
460
+ labelOnColor: apiAppearance?.labelOnColor,
461
+ labelOffColor: apiAppearance?.labelOffColor,
462
+ minValue: apiAppearance?.minValue,
463
+ maxValue: apiAppearance?.maxValue,
464
+ stepValue: apiAppearance?.stepValue,
465
+ changeSliderColor: apiAppearance?.changeSliderColor,
466
+ sliderColor: apiAppearance?.sliderColor,
467
+ canvasOption: apiAppearance?.canvasOption,
468
+ selectionType: apiAppearance?.selectionType,
469
+ dragAndDrop: apiAppearance?.dragAndDrop,
470
+ previewUploadedFiles: apiAppearance?.previewUploadedFiles,
471
+ multiFileUploads: apiAppearance?.multiFileUploads,
472
+ selectionColorRequired: apiAppearance?.selectionColorRequired,
473
+ selectionColor: apiAppearance?.selectionColor,
474
+ color: apiAppearance?.color,
475
+ avatarPicker:apiAppearance?.avatarPicker,
476
+ timeFormat:apiAppearance?.timeFormat,
477
+ displayOptionsInColumn:apiAppearance?.displayOptionsInColumn,
478
+ currencySymbol:apiAppearance?.currencySymbol,
479
+ decimalPrecision:apiAppearance?.decimalPrecision,
480
+ symbolPosition:apiAppearance?.symbolPosition,
481
+ thousandSeparator:apiAppearance?.thousandSeparator,
482
+ currency:currency,
483
+ limitCurrencies:apiAppearance?.limitCurrencies,
484
+ currencyOption:apiAppearance?.currencyOption,
485
+ specificCurrencySymbol:apiAppearance?.specificCurrencySymbol,
486
+ limitCurrencySymbol:apiAppearance?.limitCurrencySymbol,
487
+ width: apiAppearance?.width,
488
+ height: apiAppearance?.height,
489
+ showAmountInWords: apiAppearance?.showAmountInWords,
490
+ defaultCurrency:defaultCurrency
491
+ };
492
+ }
493
+
494
+ function mapValidationToModel(apiValidation: any): Validation {
495
+ return {
496
+ regexValidation: apiValidation?.regexValidation,
497
+ regex: apiValidation?.regex,
498
+ validationMessage: apiValidation?.validationMessage,
499
+ limitedCharacters: apiValidation?.limitedCharacters,
500
+ count: apiValidation?.count,
501
+ minimumSelection: apiValidation?.minimumSelection,
502
+ maximumSelection: apiValidation?.maximumSelection,
503
+ countryWiseValidation: apiValidation?.countryWiseValidation,
504
+ restrictCountry: apiValidation?.restrictCountry,
505
+ allowedCountries: apiValidation?.allowedCountries,
506
+ blockedCountries: apiValidation?.blockedCountries,
507
+ regularExpression: apiValidation?.regularExpression,
508
+ expectedDomains: apiValidation?.expectedDomains,
509
+ min: apiValidation?.min,
510
+ max: apiValidation?.max,
511
+ minLength: apiValidation?.minLength,
512
+ maxLength: apiValidation?.maxLength,
513
+ requireLowercaseLetters: apiValidation?.requireLowercaseLetters,
514
+ requireUppercaseLetters: apiValidation?.requireUppercaseLetters,
515
+ requireNumbers: apiValidation?.requireNumbers,
516
+ requireSpecialCharacters: apiValidation?.requireSpecialCharacters,
517
+ allowedSpecialCharacters: apiValidation?.allowedSpecialCharacters,
518
+ minDateOption: apiValidation?.minDateOption,
519
+ minDate: apiValidation?.minDate,
520
+ maxDateOption: apiValidation?.maxDateOption,
521
+ maxDate: apiValidation?.maxDate,
522
+ regionBoundary: apiValidation?.regionBoundary,
523
+ region: apiValidation?.region,
524
+ preventFromProceedingWithoutAgree:
525
+ apiValidation?.preventFromProceedingWithoutAgree,
526
+ buttonColour: apiValidation?.buttonColour,
527
+ maxFileSize: apiValidation?.maxFileSize,
528
+ minFileSize: apiValidation?.minFileSize,
529
+ minSelection: apiValidation?.minSelection,
530
+ maxSelection: apiValidation?.maxSelection,
531
+ fileTypes: apiValidation?.fileTypes,
532
+ fileSize: apiValidation?.fileSize,
533
+ fileSizeUnit: apiValidation?.fileSizeUnit,
534
+ totalFileSize: apiValidation?.totalFileSize,
535
+ minSelectionRequired: apiValidation?.minSelectionRequired,
536
+ minSelectionValue: apiValidation?.minSelectionValue,
537
+ validationType: apiValidation?.validationType,
538
+ validation: apiValidation?.validation,
539
+ minTime: apiValidation?.minTime,
540
+ maxTime:apiValidation?.maxTime,
541
+ minTimeOption:apiValidation?.minTimeOption,
542
+ maxTimeOption: apiValidation?.maxTimeOption,
543
+ };
544
+ }
545
+
546
+ function mapElementOptionDBToModel(apiElementOptionDB: any): ElementOptionDB {
547
+ return {
548
+ tableName: apiElementOptionDB.tableName,
549
+ valueField: apiElementOptionDB.valueField,
550
+ labelField: apiElementOptionDB.labelField,
551
+ labelPattern: apiElementOptionDB.labelPattern,
552
+ criteria: apiElementOptionDB?.criteria.map((apiCriteria: any) =>
553
+ mapElementOptionDBCriteriaToModel(apiCriteria)
554
+ ),
555
+ };
556
+ }
557
+
558
+ function mapElementOptionDBCriteriaToModel(
559
+ apiElementOptionDBCriteria: any
560
+ ): ElementOptionDBCriteria {
561
+ return {
562
+ field: apiElementOptionDBCriteria?.field,
563
+ condition: apiElementOptionDBCriteria?.condition,
564
+ valueSource: apiElementOptionDBCriteria?.valueSource,
565
+ inputValue: apiElementOptionDBCriteria?.inputValue,
566
+ logicalOperator: apiElementOptionDBCriteria?.logicalOperator,
567
+ };
568
+ }
569
+
570
+ function mapElementOptionAPIToModel(
571
+ apiElementOptionAPI: any
572
+ ): ElementOptionAPI {
573
+ return {
574
+ external: apiElementOptionAPI?.external,
575
+ url: apiElementOptionAPI?.url,
576
+ valueField: apiElementOptionAPI?.valueField,
577
+ labelField: apiElementOptionAPI?.labelField,
578
+ pathToValue: apiElementOptionAPI?.pathToValue,
579
+ headers: apiElementOptionAPI?.headers?.map(mapElementOptionAPIDataToModel),
580
+ params: apiElementOptionAPI?.params?.map(mapElementOptionAPIDataToModel),
581
+ pathVariables: apiElementOptionAPI?.pathVariables?.map(
582
+ mapElementOptionAPIDataToModel
583
+ ),
584
+ labelPattern:apiElementOptionAPI?.labelPattern
585
+ };
586
+ }
587
+
588
+ function mapElementOptionAPIDataToModel(
589
+ apiElementOptionAPIData: any
590
+ ): elementOptionAPIData {
591
+ return {
592
+ keyName: apiElementOptionAPIData?.keyName,
593
+ valueSource: apiElementOptionAPIData?.valueSource,
594
+ inputValue: apiElementOptionAPIData?.inputValue,
595
+ };
596
+ }
597
+
598
+ function mapOptionToModel(apiOption: any): Option {
599
+ return {
600
+ optionType: apiOption?.optionType,
601
+ lookupTable: apiOption?.lookupTable,
602
+ customOptions: apiOption?.customOptions?.map((option: { value: any }) => ({
603
+ value: option.value,
604
+ })),
605
+ database: apiOption?.database
606
+ ? mapElementOptionDBToModel(apiOption?.database)
607
+ : undefined,
608
+ api: apiOption?.api ? mapElementOptionAPIToModel(apiOption.api) : undefined,
609
+ };
610
+ }
611
+
612
+ function mapScoringToModel(apiScoring: any): Scoring | undefined {
613
+ if (!apiScoring) return undefined;
614
+
615
+ return {
616
+ enableScoring: apiScoring.enableScoring,
617
+ defaultScore: apiScoring.defaultScore,
618
+ enableScoringType: apiScoring.enableScoringType,
619
+ score: apiScoring.score?.map((s: any) => ({
620
+ label: s.label || [],
621
+ score: s.score,
622
+ scoreType: s.scoreType
623
+ }))
624
+ };
625
+ }
@@ -0,0 +1,16 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+
3
+ import { RecaptchaService } from './recaptcha.service';
4
+
5
+ describe('RecaptchaService', () => {
6
+ let service: RecaptchaService;
7
+
8
+ beforeEach(() => {
9
+ TestBed.configureTestingModule({});
10
+ service = TestBed.inject(RecaptchaService);
11
+ });
12
+
13
+ it('should be created', () => {
14
+ expect(service).toBeTruthy();
15
+ });
16
+ });