udp-stencil-component-library 25.18.2-beta.4 → 25.18.2-beta.5

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 (231) hide show
  1. package/dist/cjs/date-time-renderer.file-upload-renderer.form-metadata-display-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.cjs.js.map +1 -1
  2. package/dist/cjs/date-time-renderer_7.cjs.entry.js +13 -13
  3. package/dist/cjs/{enums-DVbZnzL8.js → enums-CgcTuQjC.js} +8 -2
  4. package/dist/cjs/enums-CgcTuQjC.js.map +1 -0
  5. package/dist/cjs/form-metadata-display.image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.cjs.js.map +1 -1
  6. package/dist/cjs/form-metadata-display_8.cjs.entry.js +10 -10
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.entry.cjs.js.map +1 -1
  9. package/dist/cjs/question-configs-renderer_4.cjs.entry.js +7 -7
  10. package/dist/cjs/stencil-library.cjs.js +1 -1
  11. package/dist/cjs/{udp-forms-builder-question-template-CNONS2l5.js → udp-forms-builder-question-template-BMMpObLX.js} +3 -3
  12. package/dist/cjs/udp-forms-builder-question-template-BMMpObLX.js.map +1 -0
  13. package/dist/cjs/udp-forms-builder.cjs.entry.js +2 -2
  14. package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
  15. package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +3 -3
  16. package/dist/cjs/udp-forms-follow-up-list-card.entry.cjs.js.map +1 -1
  17. package/dist/cjs/udp-forms-list-card.cjs.entry.js +6 -6
  18. package/dist/cjs/udp-forms-list-card.entry.cjs.js.map +1 -1
  19. package/dist/cjs/udp-forms-list.cjs.entry.js +2 -2
  20. package/dist/cjs/udp-forms-list.entry.cjs.js.map +1 -1
  21. package/dist/cjs/udp-forms-renderer.cjs.entry.js +270 -202
  22. package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
  23. package/dist/cjs/udp-forms-ui.cjs.entry.js +6 -6
  24. package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
  25. package/dist/cjs/{utils-DZ_OMtAy.js → utils-Bp02BX38.js} +8 -8
  26. package/dist/cjs/utils-Bp02BX38.js.map +1 -0
  27. package/dist/collection/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.js +1 -1
  28. package/dist/collection/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.js.map +1 -1
  29. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.js +3 -3
  30. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.js.map +1 -1
  31. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +4 -4
  32. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js.map +1 -1
  33. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.js +5 -5
  34. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.js.map +1 -1
  35. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +5 -5
  36. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js.map +1 -1
  37. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +6 -6
  38. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js.map +1 -1
  39. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer/question-specific-configs-renderer.js +1 -1
  40. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer/question-specific-configs-renderer.js.map +1 -1
  41. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +3 -3
  42. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js.map +1 -1
  43. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +4 -4
  44. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js.map +1 -1
  45. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.js +1 -1
  46. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.js.map +1 -1
  47. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.js +3 -3
  48. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.js.map +1 -1
  49. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +7 -7
  50. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js.map +1 -1
  51. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js +2 -2
  52. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js.map +1 -1
  53. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.js +3 -3
  54. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.js.map +1 -1
  55. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js +13 -13
  56. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js.map +1 -1
  57. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.js +195 -0
  58. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.js.map +1 -0
  59. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +86 -238
  60. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js.map +1 -1
  61. package/dist/collection/components/forms/udp-forms/udp-forms-utils/classes/UdpForm.js.map +1 -0
  62. package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpFormSubmission.js +4 -12
  63. package/dist/collection/components/forms/udp-forms/udp-forms-utils/classes/UdpFormSubmission.js.map +1 -0
  64. package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/enums.js +6 -0
  65. package/dist/collection/components/forms/udp-forms/udp-forms-utils/enums.js.map +1 -0
  66. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/IFormHandler.js.map +1 -0
  67. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/UdpFormHandler.js.map +1 -0
  68. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandlerFactory.js.map +1 -0
  69. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/IFormSubmissionHandler.js.map +1 -0
  70. package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PrivateFormSubmissionHandler.js +6 -4
  71. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PrivateFormSubmissionHandler.js.map +1 -0
  72. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PublicFormSubmissionHandler.js.map +1 -0
  73. package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/formUtils.js.map +1 -0
  74. package/dist/collection/components/forms/udp-forms/udp-forms-utils/types.js.map +1 -0
  75. package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/utils.js +5 -5
  76. package/dist/collection/components/forms/udp-forms/udp-forms-utils/utils.js.map +1 -0
  77. package/dist/collection/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.js +10 -10
  78. package/dist/collection/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.js.map +1 -1
  79. package/dist/collection/components/forms/udp-forms/udp-question/udp-question.js +13 -13
  80. package/dist/collection/components/forms/udp-forms/udp-question/udp-question.js.map +1 -1
  81. package/dist/collection/components/inputs/form metadata display/form-metadata-display.js +2 -2
  82. package/dist/collection/components/inputs/form metadata display/form-metadata-display.js.map +1 -1
  83. package/dist/components/date-time-renderer2.js.map +1 -1
  84. package/dist/components/enums.js +7 -1
  85. package/dist/components/enums.js.map +1 -1
  86. package/dist/components/file-upload-renderer2.js +2 -2
  87. package/dist/components/file-upload-renderer2.js.map +1 -1
  88. package/dist/components/form-metadata-display-renderer2.js +3 -3
  89. package/dist/components/form-metadata-display-renderer2.js.map +1 -1
  90. package/dist/components/form-metadata-display2.js +1 -1
  91. package/dist/components/form-metadata-display2.js.map +1 -1
  92. package/dist/components/forms-builder-utils.js.map +1 -1
  93. package/dist/components/list-options-renderer2.js +3 -3
  94. package/dist/components/list-options-renderer2.js.map +1 -1
  95. package/dist/components/question-configs-renderer2.js +5 -5
  96. package/dist/components/question-configs-renderer2.js.map +1 -1
  97. package/dist/components/question-specific-configs-renderer2.js.map +1 -1
  98. package/dist/components/signature-renderer2.js +1 -1
  99. package/dist/components/signature-renderer2.js.map +1 -1
  100. package/dist/components/text-input-renderer2.js +2 -2
  101. package/dist/components/text-input-renderer2.js.map +1 -1
  102. package/dist/components/udp-forms-builder.js.map +1 -1
  103. package/dist/components/udp-forms-follow-up-list-card.js +2 -2
  104. package/dist/components/udp-forms-follow-up-list-card.js.map +1 -1
  105. package/dist/components/udp-forms-list-card2.js +4 -4
  106. package/dist/components/udp-forms-list-card2.js.map +1 -1
  107. package/dist/components/udp-forms-list.js +1 -1
  108. package/dist/components/udp-forms-list.js.map +1 -1
  109. package/dist/components/udp-forms-renderer.js +273 -207
  110. package/dist/components/udp-forms-renderer.js.map +1 -1
  111. package/dist/components/udp-forms-ui2.js +6 -6
  112. package/dist/components/udp-forms-ui2.js.map +1 -1
  113. package/dist/components/udp-question-comments2.js +5 -5
  114. package/dist/components/udp-question-comments2.js.map +1 -1
  115. package/dist/components/udp-question2.js +4 -4
  116. package/dist/components/udp-question2.js.map +1 -1
  117. package/dist/components/utils.js +6 -6
  118. package/dist/components/utils.js.map +1 -1
  119. package/dist/docs.json +118 -154
  120. package/dist/esm/date-time-renderer.file-upload-renderer.form-metadata-display-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.js.map +1 -1
  121. package/dist/esm/date-time-renderer_7.entry.js +13 -13
  122. package/dist/esm/{enums-CHxgVY-B.js → enums-DHT5wSnX.js} +9 -3
  123. package/dist/esm/enums-DHT5wSnX.js.map +1 -0
  124. package/dist/esm/form-metadata-display.image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.js.map +1 -1
  125. package/dist/esm/form-metadata-display_8.entry.js +10 -10
  126. package/dist/esm/loader.js +1 -1
  127. package/dist/esm/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.entry.js.map +1 -1
  128. package/dist/esm/question-configs-renderer_4.entry.js +7 -7
  129. package/dist/esm/stencil-library.js +1 -1
  130. package/dist/esm/{udp-forms-builder-question-template-DQJb7f4Y.js → udp-forms-builder-question-template-D6ADNZEG.js} +3 -3
  131. package/dist/esm/udp-forms-builder-question-template-D6ADNZEG.js.map +1 -0
  132. package/dist/esm/udp-forms-builder.entry.js +2 -2
  133. package/dist/esm/udp-forms-builder.entry.js.map +1 -1
  134. package/dist/esm/udp-forms-follow-up-list-card.entry.js +3 -3
  135. package/dist/esm/udp-forms-follow-up-list-card.entry.js.map +1 -1
  136. package/dist/esm/udp-forms-list-card.entry.js +6 -6
  137. package/dist/esm/udp-forms-list-card.entry.js.map +1 -1
  138. package/dist/esm/udp-forms-list.entry.js +2 -2
  139. package/dist/esm/udp-forms-list.entry.js.map +1 -1
  140. package/dist/esm/udp-forms-renderer.entry.js +270 -202
  141. package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
  142. package/dist/esm/udp-forms-ui.entry.js +6 -6
  143. package/dist/esm/udp-forms-ui.entry.js.map +1 -1
  144. package/dist/esm/{utils-CiUp9KGZ.js → utils-kwLwITIE.js} +8 -8
  145. package/dist/esm/utils-kwLwITIE.js.map +1 -0
  146. package/dist/stencil-library/date-time-renderer.file-upload-renderer.form-metadata-display-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.esm.js.map +1 -1
  147. package/dist/stencil-library/date-time-renderer_7.entry.js +1 -1
  148. package/dist/stencil-library/{enums-CHxgVY-B.js → enums-DHT5wSnX.js} +2 -2
  149. package/dist/stencil-library/enums-DHT5wSnX.js.map +1 -0
  150. package/dist/stencil-library/form-metadata-display.image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.esm.js.map +1 -1
  151. package/dist/stencil-library/form-metadata-display_8.entry.js +1 -1
  152. package/dist/stencil-library/form-metadata-display_8.entry.js.map +1 -1
  153. package/dist/stencil-library/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.entry.esm.js.map +1 -1
  154. package/dist/stencil-library/question-configs-renderer_4.entry.js +1 -1
  155. package/dist/stencil-library/stencil-library.esm.js +1 -1
  156. package/dist/stencil-library/{udp-forms-builder-question-template-DQJb7f4Y.js → udp-forms-builder-question-template-D6ADNZEG.js} +2 -2
  157. package/dist/stencil-library/udp-forms-builder-question-template-D6ADNZEG.js.map +1 -0
  158. package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
  159. package/dist/stencil-library/udp-forms-builder.entry.js +1 -1
  160. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.esm.js.map +1 -1
  161. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
  162. package/dist/stencil-library/udp-forms-list-card.entry.esm.js.map +1 -1
  163. package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
  164. package/dist/stencil-library/udp-forms-list-card.entry.js.map +1 -1
  165. package/dist/stencil-library/udp-forms-list.entry.esm.js.map +1 -1
  166. package/dist/stencil-library/udp-forms-list.entry.js +1 -1
  167. package/dist/stencil-library/udp-forms-renderer.entry.esm.js.map +1 -1
  168. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  169. package/dist/stencil-library/udp-forms-renderer.entry.js.map +1 -1
  170. package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
  171. package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
  172. package/dist/stencil-library/udp-forms-ui.entry.js.map +1 -1
  173. package/dist/stencil-library/{utils-CiUp9KGZ.js → utils-kwLwITIE.js} +1 -1
  174. package/dist/stencil-library/utils-kwLwITIE.js.map +1 -0
  175. package/dist/types/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.d.ts +2 -2
  176. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.d.ts +1 -1
  177. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.d.ts +1 -1
  178. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.d.ts +1 -1
  179. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.d.ts +1 -1
  180. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.d.ts +1 -1
  181. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.d.ts +1 -1
  182. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.d.ts +1 -1
  183. package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.d.ts +2 -2
  184. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.d.ts +4 -4
  185. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.d.ts +12 -0
  186. package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +4 -9
  187. package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpFormSubmission.d.ts +4 -5
  188. package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/enums.d.ts +5 -0
  189. package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/types.d.ts +0 -1
  190. package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/utils.d.ts +1 -1
  191. package/dist/types/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.d.ts +2 -2
  192. package/dist/types/components/forms/udp-forms/udp-question/udp-question.d.ts +4 -4
  193. package/dist/types/components.d.ts +32 -30
  194. package/package.json +1 -1
  195. package/dist/cjs/enums-DVbZnzL8.js.map +0 -1
  196. package/dist/cjs/udp-forms-builder-question-template-CNONS2l5.js.map +0 -1
  197. package/dist/cjs/utils-DZ_OMtAy.js.map +0 -1
  198. package/dist/collection/components/forms/udp-forms/utils/classes/UdpForm.js.map +0 -1
  199. package/dist/collection/components/forms/udp-forms/utils/classes/UdpFormSubmission.js.map +0 -1
  200. package/dist/collection/components/forms/udp-forms/utils/enums.js.map +0 -1
  201. package/dist/collection/components/forms/udp-forms/utils/form-handler/IFormHandler.js.map +0 -1
  202. package/dist/collection/components/forms/udp-forms/utils/form-handler/UdpFormHandler.js.map +0 -1
  203. package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/FormSubmissionHandlerFactory.js.map +0 -1
  204. package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/IFormSubmissionHandler.js.map +0 -1
  205. package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/PrivateFormSubmissionHandler.js.map +0 -1
  206. package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/PublicFormSubmissionHandler.js.map +0 -1
  207. package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/formUtils.js.map +0 -1
  208. package/dist/collection/components/forms/udp-forms/utils/types.js.map +0 -1
  209. package/dist/collection/components/forms/udp-forms/utils/utils.js.map +0 -1
  210. package/dist/esm/enums-CHxgVY-B.js.map +0 -1
  211. package/dist/esm/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
  212. package/dist/esm/utils-CiUp9KGZ.js.map +0 -1
  213. package/dist/stencil-library/enums-CHxgVY-B.js.map +0 -1
  214. package/dist/stencil-library/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
  215. package/dist/stencil-library/utils-CiUp9KGZ.js.map +0 -1
  216. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.js +0 -0
  217. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.js +0 -0
  218. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.js +0 -0
  219. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.js +0 -0
  220. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.js +0 -0
  221. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.js +0 -0
  222. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.js +0 -0
  223. /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/types.js +0 -0
  224. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.d.ts +0 -0
  225. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.d.ts +0 -0
  226. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.d.ts +0 -0
  227. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.d.ts +0 -0
  228. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.d.ts +0 -0
  229. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PrivateFormSubmissionHandler.d.ts +0 -0
  230. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.d.ts +0 -0
  231. /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/udp-forms-utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// take a masterForm's structure and build the empty currentValues object\nimport { UdpForm } from \"src/components\";\n\n/**\n * Translate and format UTC timestamp to local time.\n */\nexport const dateFormatter = (dateString: string, formatStyle: 'long' | 'short' = 'long' ) => {\n let normalizedDateString = dateString;\n\n // Check if the string is in the 'YYYY-MM-DD HH:mm:ss.sss' format (i.e., contains a space, not 'T')\n // If the input is '2025-12-10T20:23:23.055Z', it passes straight through.\n // This format is assumed to be missing timezone info and needs to be treated as UTC.\n if (dateString.includes(' ')) {\n // Replace the space with 'T' \n normalizedDateString = dateString.replace(' ', 'T');\n }\n\n if (!dateString.toUpperCase().endsWith('Z')) {\n // append Z if not there\n normalizedDateString = normalizedDateString + 'Z';\n }\n\n const date = new Date(normalizedDateString);\n\n // short format: DD/MM/YY HH:MM am/pm (e.g. 05/09/25 03:45 pm)\n if (formatStyle === 'short') {\n const pad = (n: number) => String(n).padStart(2, '0');\n const day = pad(date.getDate());\n const month = pad(date.getMonth() + 1);\n const yearShort = String(date.getFullYear()).slice(-2);\n\n const hours24 = date.getHours();\n const minutes = pad(date.getMinutes());\n const period = hours24 >= 12 ? 'pm' : 'am';\n const hours12 = hours24 % 12 === 0 ? 12 : hours24 % 12;\n const hours = String(hours12).padStart(2, '0');\n\n return `${day}/${month}/${yearShort} ${hours}:${minutes} ${period}`;\n }\n\n // default long format \n return date.toLocaleString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n hour12: true\n });\n};\n\n\n// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }\nexport const buildEmptyCurrentValues = (masterForm: UdpForm) => {\n const currentValues = {};\n\n for (const section of masterForm.udpFormUdpFormSection) {\n currentValues[section.name] = {};\n\n const questionsOfSection = masterForm.formQuestions.filter(\n question => question.formSectionId == section.id,\n );\n\n for (const question of questionsOfSection) {\n currentValues[section.name][question.name] = {\n value: '', // default empty value\n comments: [], // default empty comments array\n metadata: {}, // default metadata object\n };\n }\n }\n\n return currentValues;\n};\n\n\nexport const overrideFont = (element: HTMLElement, cssVariable) => {\n if(element?.shadowRoot?.lastElementChild){ // this returns null in react for some instances\n element?.shadowRoot?.lastElementChild?.setAttribute?.('style', `font-family: var(${cssVariable})`)\n return;\n }\n const observer = new MutationObserver((mutationsList, observer) => {\n mutationsList.forEach(mutation => {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n mutation.addedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n (node as HTMLElement)?.setAttribute?.('style', `font-family: var(${cssVariable})`);\n observer.disconnect(); // Stop observing once the target is found\n }\n });\n }\n });\n });\n\n if (element?.shadowRoot) {\n observer.observe(element.shadowRoot, { childList: true });\n }\n };\n\n\nexport const fontOverrideMapping = {\n Arial: \"--font-override-arial\"\n}"]}
@@ -1,9 +1,9 @@
1
1
  import { h } from "@stencil/core";
2
- import { dateFormatter } from "../../utils/utils";
2
+ import { dateFormatter } from "../../udp-forms-utils/utils";
3
3
  export class UdpQuestionComments {
4
4
  constructor() {
5
5
  this.commentFieldProps = {};
6
- this.initialValues = {};
6
+ this.currentValues = {};
7
7
  this.userId = null;
8
8
  }
9
9
  emitQuestionCommentAction(type, commentId) {
@@ -31,7 +31,7 @@ export class UdpQuestionComments {
31
31
  render() {
32
32
  var _a, _b;
33
33
  const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');
34
- const questionData = ((_b = (_a = this.initialValues) === null || _a === void 0 ? void 0 : _a[sectionName]) === null || _b === void 0 ? void 0 : _b[questionName]) || {
34
+ const questionData = ((_b = (_a = this.currentValues) === null || _a === void 0 ? void 0 : _a[sectionName]) === null || _b === void 0 ? void 0 : _b[questionName]) || {
35
35
  comments: [],
36
36
  draftComments: [],
37
37
  };
@@ -48,9 +48,9 @@ export class UdpQuestionComments {
48
48
  : [];
49
49
  // enforce single active action UX:
50
50
  // - Only one draft is shown/active at a time (pick first draft if present)
51
- // detect any draft anywhere in the form's initialValues
51
+ // detect any draft anywhere in the form's currentValues
52
52
  const activeDraft = draftComments.length > 0 ? draftComments[0] : null;
53
- const isAnyQuestionContainsActiveDraft = Object.values(this.initialValues || {}).some((section) => Object.values(section || {}).some((q) => {
53
+ const isAnyQuestionContainsActiveDraft = Object.values(this.currentValues || {}).some((section) => Object.values(section || {}).some((q) => {
54
54
  if (!q)
55
55
  return false;
56
56
  const drafts = q.draftComments;
@@ -96,8 +96,8 @@ export class UdpQuestionComments {
96
96
  "references": {
97
97
  "UdpFormQuestion": {
98
98
  "location": "import",
99
- "path": "../../utils/types",
100
- "id": "src/components/forms/udp-forms/utils/types.ts::UdpFormQuestion"
99
+ "path": "../../udp-forms-utils/types",
100
+ "id": "src/components/forms/udp-forms/udp-forms-utils/types.ts::UdpFormQuestion"
101
101
  }
102
102
  }
103
103
  },
@@ -128,7 +128,7 @@ export class UdpQuestionComments {
128
128
  "setter": false,
129
129
  "defaultValue": "{}"
130
130
  },
131
- "initialValues": {
131
+ "currentValues": {
132
132
  "type": "unknown",
133
133
  "mutable": false,
134
134
  "complexType": {
@@ -155,8 +155,8 @@ export class UdpQuestionComments {
155
155
  "references": {
156
156
  "Guid": {
157
157
  "location": "import",
158
- "path": "../../utils/types",
159
- "id": "src/components/forms/udp-forms/utils/types.ts::Guid"
158
+ "path": "../../udp-forms-utils/types",
159
+ "id": "src/components/forms/udp-forms/udp-forms-utils/types.ts::Guid"
160
160
  }
161
161
  }
162
162
  },
@@ -1 +1 @@
1
- {"version":3,"file":"udp-question-comments.js","sourceRoot":"","sources":["../../../../../../src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../../utils/types';\nimport { dateFormatter } from '../../utils/utils';\n\n@Component({\n tag: 'udp-question-comments',\n styleUrl: 'udp-question-comments.css',\n shadow: true,\n})\nexport class UdpQuestionComments {\n @Prop() question: UdpFormQuestion;\n @Prop() commentFieldProps: object = {};\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n @Event({ bubbles: true, composed: true }) questionCommentAction: EventEmitter<{\n type: 'add' | 'save' | 'edit' | 'delete' | 'editClose';\n questionIdentifierKey: string;\n commentId: string;\n }>;\n\n private emitQuestionCommentAction(type: 'add' | 'save' | 'edit' | 'delete' | 'editClose', commentId) {\n this.questionCommentAction.emit({\n type,\n questionIdentifierKey: this.question.questionIdentifierKey,\n commentId,\n });\n }\n\n private handleCommentAdd() {\n this.emitQuestionCommentAction('add', null);\n }\n private handleCommentSave(commentId) {\n this.emitQuestionCommentAction('save', commentId);\n }\n private handleCommentEdit(commentId) {\n this.emitQuestionCommentAction('edit', commentId);\n }\n private handleCommentDelete(commentId) {\n this.emitQuestionCommentAction('delete', commentId);\n }\n private handleCommentEditClose(commentId) {\n this.emitQuestionCommentAction('editClose', commentId);\n }\n\n render() {\n const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');\n const questionData = this.initialValues?.[sectionName]?.[questionName] || {\n comments: [],\n draftComments: [],\n };\n\n // normalize incoming shape (back-compat)\n const savedComments = Array.isArray(questionData.comments)\n ? questionData.comments\n : questionData.comments\n ? [questionData.comments]\n : [];\n const draftComments = Array.isArray(questionData.draftComments)\n ? questionData.draftComments\n : questionData.draftComments\n ? [questionData.draftComments]\n : [];\n\n // enforce single active action UX:\n // - Only one draft is shown/active at a time (pick first draft if present)\n\n // detect any draft anywhere in the form's initialValues\n const activeDraft = draftComments.length > 0 ? draftComments[0] : null;\n const isAnyQuestionContainsActiveDraft = Object.values(this.initialValues || {}).some((section: any) =>\n Object.values(section || {}).some((q: any) => {\n if (!q) return false;\n const drafts = q.draftComments;\n if (!drafts) return false;\n if ( Array.isArray(drafts) && drafts.length < 1) return false\n\n return true\n }),\n );\n\n return (\n <div>\n {/* Render saved comments — disable actions if a draft is active */}\n {savedComments.map((commentObj, idx) => {\n const commentsIdentifierValueKey = `${this.question.questionIdentifierKey}.comments[${idx}].value`;\n const isOwner = commentObj?.userId === this.userId;\n const showActions = !activeDraft && isOwner; // only show edit/delete when no active draft and owner\n \n\n // return the comment edit component if it's the active draft\n if (activeDraft && commentObj.commentId == activeDraft.commentId) {\n return (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentDelete(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Delete\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"close16\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n </div>\n </div>\n )\n }\n\n // return the comment display component \n return !commentObj?.isDeleted ? (\n <div class=\"question-comment-input-container\" key={commentObj.commentId || idx}>\n <stencil-field name={commentsIdentifierValueKey} style={{ display: 'none' }}>\n <text-area disabled={true} />\n </stencil-field>\n\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class=\"question-comment-header\">\n {`${commentObj?.userDisplayName} ${\n commentObj?.timestamp ? `on ${dateFormatter(commentObj.timestamp, 'short')}` : ''\n }`}\n </unity-typography>\n {commentObj?.value}\n </div>\n <div class=\"question-comment-action-container\">\n {showActions && !isAnyQuestionContainsActiveDraft && (\n <div>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEdit(commentObj.commentId)}\n startIcon={<udp-icon iconName=\"edit\" color=\"inherit\" />}\n >\n Edit\n </udp-button>\n </div>\n )}\n </div>\n </div>\n ) : (\n <div></div>\n );\n })}\n\n {/* New commend at the bottom of the comment thread */}\n {activeDraft && activeDraft.isTempComment && !savedComments.includes(c => c.commentId == activeDraft.commentId) && (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n </div>\n </div>\n )}\n\n {/* Add button only when there is no active draft */}\n {!activeDraft && !isAnyQuestionContainsActiveDraft &&(\n <div class=\"question-comment-add-comment-button\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentAdd()}\n startIcon={<udp-icon iconName=\"add\" color=\"inherit\" />}\n >\n Add a Comment\n </udp-button>\n </div>\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"udp-question-comments.js","sourceRoot":"","sources":["../../../../../../src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../../udp-forms-utils/types';\nimport { dateFormatter } from '../../udp-forms-utils/utils';\n\n@Component({\n tag: 'udp-question-comments',\n styleUrl: 'udp-question-comments.css',\n shadow: true,\n})\nexport class UdpQuestionComments {\n @Prop() question: UdpFormQuestion;\n @Prop() commentFieldProps: object = {};\n @Prop() currentValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n @Event({ bubbles: true, composed: true }) questionCommentAction: EventEmitter<{\n type: 'add' | 'save' | 'edit' | 'delete' | 'editClose';\n questionIdentifierKey: string;\n commentId: string;\n }>;\n\n private emitQuestionCommentAction(type: 'add' | 'save' | 'edit' | 'delete' | 'editClose', commentId) {\n this.questionCommentAction.emit({\n type,\n questionIdentifierKey: this.question.questionIdentifierKey,\n commentId,\n });\n }\n\n private handleCommentAdd() {\n this.emitQuestionCommentAction('add', null);\n }\n private handleCommentSave(commentId) {\n this.emitQuestionCommentAction('save', commentId);\n }\n private handleCommentEdit(commentId) {\n this.emitQuestionCommentAction('edit', commentId);\n }\n private handleCommentDelete(commentId) {\n this.emitQuestionCommentAction('delete', commentId);\n }\n private handleCommentEditClose(commentId) {\n this.emitQuestionCommentAction('editClose', commentId);\n }\n\n render() {\n const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');\n const questionData = this.currentValues?.[sectionName]?.[questionName] || {\n comments: [],\n draftComments: [],\n };\n\n // normalize incoming shape (back-compat)\n const savedComments = Array.isArray(questionData.comments)\n ? questionData.comments\n : questionData.comments\n ? [questionData.comments]\n : [];\n const draftComments = Array.isArray(questionData.draftComments)\n ? questionData.draftComments\n : questionData.draftComments\n ? [questionData.draftComments]\n : [];\n\n // enforce single active action UX:\n // - Only one draft is shown/active at a time (pick first draft if present)\n\n // detect any draft anywhere in the form's currentValues\n const activeDraft = draftComments.length > 0 ? draftComments[0] : null;\n const isAnyQuestionContainsActiveDraft = Object.values(this.currentValues || {}).some((section: any) =>\n Object.values(section || {}).some((q: any) => {\n if (!q) return false;\n const drafts = q.draftComments;\n if (!drafts) return false;\n if ( Array.isArray(drafts) && drafts.length < 1) return false\n\n return true\n }),\n );\n\n return (\n <div>\n {/* Render saved comments — disable actions if a draft is active */}\n {savedComments.map((commentObj, idx) => {\n const commentsIdentifierValueKey = `${this.question.questionIdentifierKey}.comments[${idx}].value`;\n const isOwner = commentObj?.userId === this.userId;\n const showActions = !activeDraft && isOwner; // only show edit/delete when no active draft and owner\n \n\n // return the comment edit component if it's the active draft\n if (activeDraft && commentObj.commentId == activeDraft.commentId) {\n return (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentDelete(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Delete\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"close16\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n </div>\n </div>\n )\n }\n\n // return the comment display component \n return !commentObj?.isDeleted ? (\n <div class=\"question-comment-input-container\" key={commentObj.commentId || idx}>\n <stencil-field name={commentsIdentifierValueKey} style={{ display: 'none' }}>\n <text-area disabled={true} />\n </stencil-field>\n\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class=\"question-comment-header\">\n {`${commentObj?.userDisplayName} ${\n commentObj?.timestamp ? `on ${dateFormatter(commentObj.timestamp, 'short')}` : ''\n }`}\n </unity-typography>\n {commentObj?.value}\n </div>\n <div class=\"question-comment-action-container\">\n {showActions && !isAnyQuestionContainsActiveDraft && (\n <div>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEdit(commentObj.commentId)}\n startIcon={<udp-icon iconName=\"edit\" color=\"inherit\" />}\n >\n Edit\n </udp-button>\n </div>\n )}\n </div>\n </div>\n ) : (\n <div></div>\n );\n })}\n\n {/* New commend at the bottom of the comment thread */}\n {activeDraft && activeDraft.isTempComment && !savedComments.includes(c => c.commentId == activeDraft.commentId) && (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n </div>\n </div>\n )}\n\n {/* Add button only when there is no active draft */}\n {!activeDraft && !isAnyQuestionContainsActiveDraft &&(\n <div class=\"question-comment-add-comment-button\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentAdd()}\n startIcon={<udp-icon iconName=\"add\" color=\"inherit\" />}\n >\n Add a Comment\n </udp-button>\n </div>\n )}\n </div>\n );\n }\n}\n"]}
@@ -1,14 +1,14 @@
1
1
  import { h } from "@stencil/core";
2
- import { UdpFormsFieldTypeEnum } from "../utils/enums";
3
- import { fontOverrideMapping, overrideFont } from "../utils/utils";
2
+ import { UdpFormsFieldTypeEnum } from "../udp-forms-utils/enums";
3
+ import { fontOverrideMapping, overrideFont } from "../udp-forms-utils/utils";
4
4
  import { useFormApi } from "../../form/useFormApi";
5
5
  import { getIconFromName } from "../../../data-display/icons/iconUtils";
6
- import { UdpFormsPageIdEnum } from "../utils/enums";
6
+ import { UdpFormsPageIdEnum } from "../udp-forms-utils/enums";
7
7
  export class UdpQuestion {
8
8
  constructor() {
9
9
  this.disabled = false;
10
10
  this.readonly = false;
11
- this.initialValues = {};
11
+ this.currentValues = {};
12
12
  this.clientUserInfo = {
13
13
  id: null,
14
14
  displayName: null,
@@ -218,7 +218,7 @@ export class UdpQuestion {
218
218
  'question-container': true,
219
219
  } }, h("div", { class: "question-title-and-helper-container" }, h("div", { class: "question-title-and-followup-container" }, this.question.questionText && (h("unity-typography", { id: `questionText${this.question.name}`, variant: ((_b = (_a = this.styleOverrides) === null || _a === void 0 ? void 0 : _a.questionText) === null || _b === void 0 ? void 0 : _b.variant) || 'h3' }, titleText)), h("div", null, this.question.fieldProperties.allowFollowUpForms && ((() => {
220
220
  var _a;
221
- const metadata = (_a = this.initialValues[sectionKey][questionKey]) === null || _a === void 0 ? void 0 : _a.metadata;
221
+ const metadata = (_a = this.currentValues[sectionKey][questionKey]) === null || _a === void 0 ? void 0 : _a.metadata;
222
222
  const followUpId = metadata === null || metadata === void 0 ? void 0 : metadata.followUpFormSubmissionId;
223
223
  if (followUpId) {
224
224
  // Valid GUID → show arrow icon to open follow-up form
@@ -232,7 +232,7 @@ export class UdpQuestion {
232
232
  this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });
233
233
  } }));
234
234
  }
235
- })()))), this.question.helperText && (h("unity-typography", { id: `helperText${this.question.name}`, variant: ((_d = (_c = this.styleOverrides) === null || _c === void 0 ? void 0 : _c.helperText) === null || _d === void 0 ? void 0 : _d.variant) || 'caption-text' }, this.question.helperText))), component, this.question.fieldProperties.allowFollowUpForms && (h("div", null, h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormId` }, h("text-field", null)), h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion` }, h("text-field", null)), h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId` }, h("text-field", null)))), this.question.fieldProperties.allowComments && (h("udp-question-comments", { question: this.question, initialValues: this.initialValues, userId: this.clientUserInfo.id }))));
235
+ })()))), this.question.helperText && (h("unity-typography", { id: `helperText${this.question.name}`, variant: ((_d = (_c = this.styleOverrides) === null || _c === void 0 ? void 0 : _c.helperText) === null || _d === void 0 ? void 0 : _d.variant) || 'caption-text' }, this.question.helperText))), component, this.question.fieldProperties.allowFollowUpForms && (h("div", null, h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormId` }, h("text-field", null)), h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion` }, h("text-field", null)), h("stencil-field", { hidden: true, name: `${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId` }, h("text-field", null)))), this.question.fieldProperties.allowComments && (h("udp-question-comments", { question: this.question, currentValues: this.currentValues, userId: this.clientUserInfo.id }))));
236
236
  }
237
237
  static get is() { return "udp-question"; }
238
238
  static get encapsulation() { return "shadow"; }
@@ -257,8 +257,8 @@ export class UdpQuestion {
257
257
  "references": {
258
258
  "UdpFormQuestion": {
259
259
  "location": "import",
260
- "path": "../utils/types",
261
- "id": "src/components/forms/udp-forms/utils/types.ts::UdpFormQuestion"
260
+ "path": "../udp-forms-utils/types",
261
+ "id": "src/components/forms/udp-forms/udp-forms-utils/types.ts::UdpFormQuestion"
262
262
  }
263
263
  }
264
264
  },
@@ -358,8 +358,8 @@ export class UdpQuestion {
358
358
  "references": {
359
359
  "FontOverrides": {
360
360
  "location": "import",
361
- "path": "../utils/types",
362
- "id": "src/components/forms/udp-forms/utils/types.ts::FontOverrides"
361
+ "path": "../udp-forms-utils/types",
362
+ "id": "src/components/forms/udp-forms/udp-forms-utils/types.ts::FontOverrides"
363
363
  }
364
364
  }
365
365
  },
@@ -372,7 +372,7 @@ export class UdpQuestion {
372
372
  "getter": false,
373
373
  "setter": false
374
374
  },
375
- "initialValues": {
375
+ "currentValues": {
376
376
  "type": "unknown",
377
377
  "mutable": false,
378
378
  "complexType": {
@@ -417,8 +417,8 @@ export class UdpQuestion {
417
417
  "references": {
418
418
  "UdpFormSubmission": {
419
419
  "location": "import",
420
- "path": "../utils/classes/UdpFormSubmission",
421
- "id": "src/components/forms/udp-forms/utils/classes/UdpFormSubmission.ts::UdpFormSubmission"
420
+ "path": "../udp-forms-utils/classes/UdpFormSubmission",
421
+ "id": "src/components/forms/udp-forms/udp-forms-utils/classes/UdpFormSubmission.ts::UdpFormSubmission"
422
422
  }
423
423
  }
424
424
  },
@@ -1 +1 @@
1
- {"version":3,"file":"udp-question.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/udp-question/udp-question.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Element, h, Prop, State, Watch, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion } from '../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../utils/enums';\nimport { FontOverrides } from '../utils/types';\nimport { fontOverrideMapping, overrideFont } from '../utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../utils/enums';\nimport { UdpFormSubmission } from '../utils/classes/UdpFormSubmission';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() clientUserInfo: { id: string | null; displayName: string | null; email: string | null } = {\n id: null,\n displayName: null,\n email: null,\n }\n @Prop() udpFormSubmission: UdpFormSubmission = null;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.FormMetadataDisplay: {\n const isPersistedSubmission = !!this.udpFormSubmission?.id;\n\n // If persisted, do NOT fall back to client user (avoids showing Person A while viewing Person B's submission)\n const userDisplayName = isPersistedSubmission\n ? (this.udpFormSubmission?.userDisplayName ?? null)\n : (this.clientUserInfo?.displayName ?? null);\n\n const userEmail = isPersistedSubmission\n ? (this.udpFormSubmission?.userEmail ?? null)\n : (this.clientUserInfo?.email ?? null);\n\n const submittedOn = this.udpFormSubmission?.submittedOn ?? null;\n\n return (\n <form-metadata-display\n userDisplayName={userDisplayName}\n userEmail={userEmail}\n submittedOn={submittedOn}\n {...fieldProps}\n />\n );\n };\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n // const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.initialValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n {this.question.fieldProperties.allowComments && (\n <udp-question-comments\n question={this.question}\n initialValues={this.initialValues}\n userId={this.clientUserInfo.id}\n />\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"udp-question.js","sourceRoot":"","sources":["../../../../../src/components/forms/udp-forms/udp-question/udp-question.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAEnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAQ9D,MAAM,OAAO,WAAW;IALxB;QASU,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAM1B,kBAAa,GAA4B,EAAE,CAAC;QAC5C,mBAAc,GAA4E;YAChG,EAAE,EAAE,IAAI;YACR,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;SACZ,CAAA;QACO,sBAAiB,GAAsB,IAAI,CAAC;QAKnC,cAAS,GAKtB,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAC3C,YAAO,GAAQ,IAAI,CAAC;KA2ZtC;IAjZW,WAAW;QACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC9D,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,yDAAyD;gBACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACxC,GAAG,EAAE;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAC5C,CAAC;gBAEF,mDAAmD;gBAClD,IAAY,CAAC,kBAAkB,GAAG,WAAW,CAAC;gBAE/C,sBAAsB;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,KAAK,EAAE,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;YAElD,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YACtE,MAAM,WAAW,GAAa,EAAE,CAAC;YAEjC,6BAA6B;YAC7B,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAe,EAAE,EAAE;gBAC3C,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,KAAK,EAAE,CAAC;oBAC3F,MAAM,SAAS,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,qBAAqB,QAAQ,CAAC;oBACvE,IAAI,SAAS,EAAE,CAAC;wBACd,MAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;wBAChE,IAAI,aAAa,EAAE,CAAC;4BAClB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,4BAA4B;YAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC9B,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;gBAExD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACvC,QAAQ,EAAE,CAAC;gBACb,CAAC;qBAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBAChD,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1B,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,GAAG;gBACf,QAAQ;gBACR,OAAO;gBACP,OAAO;gBACP,WAAW,EAAE,WAAW,CAAC,MAAM;aAChC,CAAC;YAEF,4CAA4C;YAC5C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,SAAiB;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,KAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,KAAI,UAAU,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,gCAAgC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAEO,iBAAiB;;QACvB,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,QAAQ;YACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;SACjC,CAAC;QAEF,MAAM,UAAU,mCAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAE,CAAC;QACnI,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,qBAAqB,CAAC,cAAc;gBACvC,OAAO,CACL,qCAAmB,KAAK;oBACtB,kCAAgB,UAAU,EAAI,CAChB,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,aAAa;gBACtC,OAAO,CACL,qCAAmB,KAAK;oBACtB,+BAAW,SAAS,EAAE,IAAI,IAAM,UAAU,EAAI,CAChC,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,QAAQ;gBACjC,OAAO,CACL,qCAAmB,KAAK;oBACtB,qCAAiB,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,IAAM,UAAU,EAAI,CACjG,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,WAAW;gBACpC,OAAO,CACL,qCAAmB,KAAK;oBACtB,qCAAiB,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,EAAE,IAAI,IAAM,UAAU,EAAI,CAC9E,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,oBAAoB,CAAC;YAChD,KAAK,qBAAqB,CAAC,sBAAsB;gBAC/C,IAAI,OAAO,GAAqC,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,GAAG,mDAAG,KAAK,CAAC,EAAE,CAAC,iBAAG,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,IAAK,UAAU,EAAG,CAAC,CAAC;gBACjJ,OAAO,CACL,qCAAmB,KAAK;oBACtB,kCAAc,OAAO,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,sBAAsB,IAAM,UAAU,EAAI,CACnI,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,CACL,qCAAmB,KAAK;oBACtB,qCACE,QAAQ,EAAC,OAAO,EAChB,UAAU,EAAC,SAAS,EACpB,WAAW,EAAE,IAAI,EACjB,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE;4BACL,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;4BACjC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;4BACjC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;yBAC3C,IACG,UAAU,EACd,CACY,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,eAAe;gBACxC,OAAO,CACL,qCAAmB,KAAK;oBACtB,qCAAiB,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,WAAW,EAAE,IAAI,IAAM,UAAU,EAAI,CAC9E,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,YAAY;gBACrC,OAAO,CACL,qCAAmB,KAAK;oBACtB,uCAAmB,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,IAAM,UAAU,EAAI,CAC3E,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,YAAY;gBACrC,OAAO,CACL,qCAAmB,KAAK;oBACtB,uCAAmB,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,IAAM,UAAU,EAAI,CAC3E,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,gBAAgB;gBACzC,OAAO,CACL,qCAAmB,KAAK;oBACtB,2CAAuB,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,EAAE,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,IAAM,UAAU,EAAI,CACvF,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,UAAU;gBACnC,OAAO,CACL,qCAAmB,KAAK;oBACtB,iCAAa,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,IAAM,UAAU,EAAI,CACxD,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,WAAW;gBACpC,OAAO,CACL,qCAAmB,KAAK;oBACtB,kCAAc,SAAS,EAAE,IAAI,IAAM,UAAU,EAAI,CACnC,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,SAAS;gBAClC,OAAO,CACL;oBACE,qCAAmB,KAAK,IAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;wBACtM,uCAAqB,UAAU,IAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CACxC;oBAChB,qBAAgB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,8BAA8B;wBAC3H,kCAAgB,UAAU,IAAE,KAAK,EAAE,WAAW,IAAG,CACnC,CACZ,CACP,CAAC;YACJ,KAAK,qBAAqB,CAAC,SAAS;gBAClC,+FAA+F;gBAC/F,OAAO,CACL,qBAAe,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK;oBACtD,aAAO,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,GAAI;oBACzE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,wBAAkB,EAAE,EAAE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAA,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,aAAa,0CAAE,OAAO,KAAI,MAAM,IACvH,IAAI,CAAC,KAAK,CACM,CACpB,CAAC,CAAC,CAAC,CACF,cAAO,CACR,CACa,CACjB,CAAC;YACJ,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,CACL,qCAAmB,KAAK;oBACtB,qCAAmB,UAAU,EAAI,CACnB,CACjB,CAAC;YAEJ,KAAK,qBAAqB,CAAC,KAAK;gBAC9B,OAAO,CACL,mCACE,EAAE,EAAE,IAAI,CAAC,cAAc,EACvB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,gBAAgB,EACrD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EACjC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAC/B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAC/B,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,IACnC,UAAU,IACd,QAAQ,EAAE,KAAK,IACf,CACH,CAAC;YACJ,KAAK,qBAAqB,CAAC,mBAAmB;gBAAE,CAAC;oBAC/C,MAAM,qBAAqB,GAAG,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,EAAE,CAAA,CAAC;oBAE3D,8GAA8G;oBAC9G,MAAM,eAAe,GAAG,qBAAqB;wBAC3C,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,eAAe,mCAAI,IAAI,CAAC;wBACnD,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,WAAW,mCAAI,IAAI,CAAC,CAAC;oBAE/C,MAAM,SAAS,GAAG,qBAAqB;wBACrC,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,SAAS,mCAAI,IAAI,CAAC;wBAC7C,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,mCAAI,IAAI,CAAC,CAAC;oBAEzC,MAAM,WAAW,GAAG,MAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,WAAW,mCAAI,IAAI,CAAC;oBAEhE,OAAO,CACL,2CACE,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,IACpB,UAAU,EACd,CACH,CAAC;gBACJ,CAAC;gBAAA,CAAC;YACF,KAAK,qBAAqB,CAAC,MAAM,CAAC;YAClC;gBACE,OAAO,cAAO,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,gBAAgB;;QACpB,mEAAmE;QACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/E,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACzC,CAAC;QAED,8CAA8C;QAC9C,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,oBAAoB,CAAC,IAAI,CAAC;gBACxB,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;gBACjC,YAAY,EAAE,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAG,QAAQ,CAAC,0CAAE,UAAU;gBACzD,OAAO,EAAE,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAG,QAAQ,CAAC,0CAAE,OAAO;aAClD,CAAC,CAAC;QACL,CAAC;QACD,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;YACtC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU;gBAAE,OAAO;YAC5F,YAAY,CAAC,MAAA,MAAA,MAAA,IAAI,CAAC,EAAE,0CAAE,UAAU,0CAAE,cAAc,mDAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM;;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,KAC/I,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAClG,EAAE,CAAC;QACH,kFAAkF;QAClF,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,QAAQ,CAAC;QACjE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,CACL,WACE,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,qBAAqB,CAAC,MAAM;gBACpE,oBAAoB,EAAE,IAAI;aAC3B;YAED,WAAK,KAAK,EAAC,qCAAqC;gBAC9C,WAAK,KAAK,EAAC,uCAAuC;oBAC/C,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAC7B,wBACE,EAAE,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EACvC,OAAO,EAAE,CAAA,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,YAAY,0CAAE,OAAO,KAAI,IAAI,IAE1D,SAAS,CACO,CACpB;oBACD,eACC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,IAAI,CACnD,CAAC,GAAG,EAAE;;wBACJ,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0CAAE,QAAQ,CAAC;wBACvE,MAAM,UAAU,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,wBAAwB,CAAC;wBACtD,IAAI,UAAU,EAAE,CAAC;4BACb,sDAAsD;4BACxD,MAAM,GAAG,GAAG,SAAS,kBAAkB,CAAC,kBAAkB,sBAAsB,UAAU,EAAE,CAAC;4BAC7F,OAAO,CACL,2BACE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAC,qBAAqB,EAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GACzC,CACH,CAAC;wBACJ,CAAC;wBAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnB,wDAAwD;4BACxD,OAAO,CACL,2BACE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EACjC,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAE,GAAG,EAAE;oCACZ,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;oCAC5C,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;gCACrE,CAAC,GACD,CACH,CAAC;wBACJ,CAAC;oBAEH,CAAC,CAAC,EAAE,CACL,CACK,CACF;gBACL,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAC3B,wBACE,EAAE,EAAE,aAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EACrC,OAAO,EAAE,CAAA,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,0CAAE,OAAO,KAAI,cAAc,IAElE,IAAI,CAAC,QAAQ,CAAC,UAAU,CACR,CACpB,CACG;YAEL,SAAS;YAET,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,kBAAkB,IAAI,CACnD;gBACE,qBAAgB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,gCAAgC;oBACxG,qBAAc,CACA;gBAChB,qBAAe,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,qCAAqC;oBAC5G,qBAAc,CACA;gBAChB,qBAAe,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,0CAA0C;oBACjH,qBAAc,CACA,CACZ,CACP;YACA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,IAAI,CAC9C,6BACE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,GAC9B,CACH,CACG,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, ComponentInterface, Element, h, Prop, State, Watch, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion } from '../udp-forms-utils/types';\nimport { UdpFormsFieldTypeEnum } from '../udp-forms-utils/enums';\nimport { FontOverrides } from '../udp-forms-utils/types';\nimport { fontOverrideMapping, overrideFont } from '../udp-forms-utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../udp-forms-utils/enums';\nimport { UdpFormSubmission } from '../udp-forms-utils/classes/UdpFormSubmission';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() currentValues: { [name: string]: any } = {};\n @Prop() clientUserInfo: { id: string | null; displayName: string | null; email: string | null } = {\n id: null,\n displayName: null,\n email: null,\n }\n @Prop() udpFormSubmission: UdpFormSubmission = null;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.FormMetadataDisplay: {\n const isPersistedSubmission = !!this.udpFormSubmission?.id;\n\n // If persisted, do NOT fall back to client user (avoids showing Person A while viewing Person B's submission)\n const userDisplayName = isPersistedSubmission\n ? (this.udpFormSubmission?.userDisplayName ?? null)\n : (this.clientUserInfo?.displayName ?? null);\n\n const userEmail = isPersistedSubmission\n ? (this.udpFormSubmission?.userEmail ?? null)\n : (this.clientUserInfo?.email ?? null);\n\n const submittedOn = this.udpFormSubmission?.submittedOn ?? null;\n\n return (\n <form-metadata-display\n userDisplayName={userDisplayName}\n userEmail={userEmail}\n submittedOn={submittedOn}\n {...fieldProps}\n />\n );\n };\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n // const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.currentValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n {this.question.fieldProperties.allowComments && (\n <udp-question-comments\n question={this.question}\n currentValues={this.currentValues}\n userId={this.clientUserInfo.id}\n />\n )}\n </div>\n );\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
- import { dateFormatter } from "../../forms/udp-forms/utils/utils";
2
+ import { dateFormatter } from "../../forms/udp-forms/udp-forms-utils/utils";
3
3
  /**
4
4
  * A small display-only component for showing read-only form metadata.
5
5
  *
@@ -52,7 +52,7 @@ export class FormMetadataDisplay {
52
52
  render() {
53
53
  return (
54
54
  // role/aria-label provide a lightweight accessible grouping for screen readers
55
- h("div", { key: '469db81d4d885bc6b582aa06fb4a8e84107294f0', class: "container", role: "group", "aria-label": "Form metadata" }, this.displayOwnerFullName && this.userDisplayName && this.renderRow('Name', this.userDisplayName), this.displayOwnerEmail && this.userEmail && this.renderRow('Email', this.userEmail), this.displaySubmissionDate && this.submittedOn && this.renderRow('Submitted on', dateFormatter(this.submittedOn, 'long'))));
55
+ h("div", { key: '021592a0d62e034a1ff09871021fe86988bfa49d', class: "container", role: "group", "aria-label": "Form metadata" }, this.displayOwnerFullName && this.userDisplayName && this.renderRow('Name', this.userDisplayName), this.displayOwnerEmail && this.userEmail && this.renderRow('Email', this.userEmail), this.displaySubmissionDate && this.submittedOn && this.renderRow('Submitted on', dateFormatter(this.submittedOn, 'long'))));
56
56
  }
57
57
  static get is() { return "form-metadata-display"; }
58
58
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"form-metadata-display.js","sourceRoot":"","sources":["../../../../src/components/inputs/form metadata display/form-metadata-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAwBE;;;WAGG;QACK,yBAAoB,GAAY,IAAI,CAAC;QAE7C;;;WAGG;QACK,sBAAiB,GAAY,IAAI,CAAC;QAE1C;;;WAGG;QACK,0BAAqB,GAAY,IAAI,CAAC;KA8B/C;IA5BC;;;OAGG;IACH,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,CACL,WAAK,KAAK,EAAC,KAAK;YAEd,YAAM,KAAK,EAAC,OAAO,IAAE,KAAK,CAAQ;YAClC,wBAAkB,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,IAAE,KAAK,CAAoB,CACnE,CACP,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO;QACL,+EAA+E;QAC/E,4DAAK,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,gBAAY,eAAe;YAC3D,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;YACjG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACnF,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CACtH,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport { dateFormatter } from 'src/components/forms/udp-forms/utils/utils';\n\n/**\n * A small display-only component for showing read-only form metadata.\n *\n * Intended usage:\n * - Rendered near the top or bottom of a form submission view\n * - Pure presentational output based on props (no internal state, no events)\n *\n * Layout:\n * - Uses a simple \"label + value\" row pattern for consistent alignment\n * - Hides rows when the corresponding value is missing or the display flag is false\n *\n * @example\n * ```tsx\n * <form-metadata-display\n * userDisplayName=\"Ada Lovelace\"\n * userEmail=\"ada@example.com\"\n * submittedOn={new Date()}\n * />\n * ```\n */\n@Component({\n tag: 'form-metadata-display',\n styleUrl: 'form-metadata-display.css',\n shadow: true,\n})\nexport class FormMetadataDisplay {\n /**\n * Full name (or display name) of the form owner/submitter.\n * Row is only rendered when `displayOwnerFullName` is true and this value is non-empty.\n */\n @Prop() userDisplayName: string;\n\n /**\n * Email of the form owner/submitter.\n * Row is only rendered when `displayOwnerEmail` is true and this value is non-empty.\n */\n @Prop() userEmail: string;\n\n /**\n * Submission timestamp.\n * Row is only rendered when `displaySubmissionDate` is true and this value is non-null.\n */\n @Prop() submittedOn: string | null;\n\n /**\n * Toggles rendering of the \"Name\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerFullName: boolean = true;\n\n /**\n * Toggles rendering of the \"Email\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerEmail: boolean = true;\n\n /**\n * Toggles rendering of the \"Submitted on\" row.\n * Defaults to true.\n */\n @Prop() displaySubmissionDate: boolean = true;\n\n /**\n * Renders a single metadata row using a standard label/value layout.\n * @internal\n */\n renderRow(label: string, value: string) {\n return (\n <div class=\"row\">\n {/* Label is visually subtle; value uses standard typography for emphasis */}\n <span class=\"label\">{label}</span>\n <unity-typography class=\"value\" variant=\"h4\">{value}</unity-typography>\n </div>\n );\n }\n\n /**\n * Renders the metadata container. Rows are conditionally included based on flags + data presence.\n * @internal\n */\n render() {\n return (\n // role/aria-label provide a lightweight accessible grouping for screen readers\n <div class=\"container\" role=\"group\" aria-label=\"Form metadata\">\n {this.displayOwnerFullName && this.userDisplayName && this.renderRow('Name', this.userDisplayName)}\n {this.displayOwnerEmail && this.userEmail && this.renderRow('Email', this.userEmail)}\n {this.displaySubmissionDate && this.submittedOn && this.renderRow('Submitted on', dateFormatter(this.submittedOn, 'long'))}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"form-metadata-display.js","sourceRoot":"","sources":["../../../../src/components/inputs/form metadata display/form-metadata-display.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAErF;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,MAAM,OAAO,mBAAmB;IALhC;QAwBE;;;WAGG;QACK,yBAAoB,GAAY,IAAI,CAAC;QAE7C;;;WAGG;QACK,sBAAiB,GAAY,IAAI,CAAC;QAE1C;;;WAGG;QACK,0BAAqB,GAAY,IAAI,CAAC;KA8B/C;IA5BC;;;OAGG;IACH,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,OAAO,CACL,WAAK,KAAK,EAAC,KAAK;YAEd,YAAM,KAAK,EAAC,OAAO,IAAE,KAAK,CAAQ;YAClC,wBAAkB,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,IAAE,KAAK,CAAoB,CACnE,CACP,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO;QACL,+EAA+E;QAC/E,4DAAK,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,OAAO,gBAAY,eAAe;YAC3D,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC;YACjG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACnF,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CACtH,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h } from '@stencil/core';\nimport { dateFormatter } from 'src/components/forms/udp-forms/udp-forms-utils/utils';\n\n/**\n * A small display-only component for showing read-only form metadata.\n *\n * Intended usage:\n * - Rendered near the top or bottom of a form submission view\n * - Pure presentational output based on props (no internal state, no events)\n *\n * Layout:\n * - Uses a simple \"label + value\" row pattern for consistent alignment\n * - Hides rows when the corresponding value is missing or the display flag is false\n *\n * @example\n * ```tsx\n * <form-metadata-display\n * userDisplayName=\"Ada Lovelace\"\n * userEmail=\"ada@example.com\"\n * submittedOn={new Date()}\n * />\n * ```\n */\n@Component({\n tag: 'form-metadata-display',\n styleUrl: 'form-metadata-display.css',\n shadow: true,\n})\nexport class FormMetadataDisplay {\n /**\n * Full name (or display name) of the form owner/submitter.\n * Row is only rendered when `displayOwnerFullName` is true and this value is non-empty.\n */\n @Prop() userDisplayName: string;\n\n /**\n * Email of the form owner/submitter.\n * Row is only rendered when `displayOwnerEmail` is true and this value is non-empty.\n */\n @Prop() userEmail: string;\n\n /**\n * Submission timestamp.\n * Row is only rendered when `displaySubmissionDate` is true and this value is non-null.\n */\n @Prop() submittedOn: string | null;\n\n /**\n * Toggles rendering of the \"Name\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerFullName: boolean = true;\n\n /**\n * Toggles rendering of the \"Email\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerEmail: boolean = true;\n\n /**\n * Toggles rendering of the \"Submitted on\" row.\n * Defaults to true.\n */\n @Prop() displaySubmissionDate: boolean = true;\n\n /**\n * Renders a single metadata row using a standard label/value layout.\n * @internal\n */\n renderRow(label: string, value: string) {\n return (\n <div class=\"row\">\n {/* Label is visually subtle; value uses standard typography for emphasis */}\n <span class=\"label\">{label}</span>\n <unity-typography class=\"value\" variant=\"h4\">{value}</unity-typography>\n </div>\n );\n }\n\n /**\n * Renders the metadata container. Rows are conditionally included based on flags + data presence.\n * @internal\n */\n render() {\n return (\n // role/aria-label provide a lightweight accessible grouping for screen readers\n <div class=\"container\" role=\"group\" aria-label=\"Form metadata\">\n {this.displayOwnerFullName && this.userDisplayName && this.renderRow('Name', this.userDisplayName)}\n {this.displayOwnerEmail && this.userEmail && this.renderRow('Email', this.userEmail)}\n {this.displaySubmissionDate && this.submittedOn && this.renderRow('Submitted on', dateFormatter(this.submittedOn, 'long'))}\n </div>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"file":"date-time-renderer2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.css?tag=date-time-renderer&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.question-item-date-inputs-container,\n.question-item-time-inputs-container,\n.question-item-date-time-inputs-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04, 16px);\n}\n\n.question-item-date-inputs-container-date-range,\n.question-item-date-inputs-container-time-range,\n.question-item-date-inputs-container-datetime-range {\n display: flex;\n flex-direction: row;\n gap: var(--spacing-04, 16px);\n}\n","import { Component, Fragment, h, Prop } from '@stencil/core';\nimport { UdpFormQuestion } from '../../../utils/types'; // Using path that worked previously\nimport { UdpFormsFieldTypeEnum } from '../../../utils/enums';\n\n// We will need to import any components used like udp-date-selector, udp-time-selector, udp-datetime-selector, stencil-toggle, unity-typography etc.\n// This will require knowing their correct import paths or ensuring they are globally available.\n\n@Component({\n tag: 'date-time-renderer',\n styleUrl: 'date-time-renderer.css',\n shadow: true,\n})\nexport class DateTimeRenderer {\n @Prop() question: UdpFormQuestion;\n @Prop() isViewOnly: boolean;\n @Prop() formSectionsDraft: any[][];\n @Prop() sIndex: number;\n @Prop() qIndex: number;\n @Prop() onFormSectionsDraftChange: (updatedSections: any[][]) => void;\n @Prop() getHandler: (fieldTypeId: number, handlerName: string) => any;\n\n renderSwitch() {\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.DateSelector: // Date Selector\n return (\n <div class=\"question-item-date-inputs-container\">\n <div class=\"question-item-date-inputs-container-date-range\">\n <udp-date-selector\n label=\"Min Date\"\n value={this.question.fieldProperties.minDate}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minDate');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-date-selector>\n <udp-date-selector\n label=\"Max Date\"\n value={this.question.fieldProperties.maxDate}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxDate');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-date-selector>\n </div>\n <stencil-toggle\n label=\"Allow Future Date\"\n disabled={this.isViewOnly}\n checked={this.question.fieldProperties.allowFutureDate === true}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'allowFutureDate');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n );\n case UdpFormsFieldTypeEnum.TimeSelector: // Time Selector\n return (\n <div class=\"question-item-time-inputs-container\">\n <div class=\"question-item-date-inputs-container-time-range\">\n <udp-time-selector\n label=\"Min Time\"\n value={this.question.fieldProperties.minTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-time-selector>\n <udp-time-selector\n label=\"Max Time\"\n value={this.question.fieldProperties.maxTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-time-selector>\n </div>\n </div>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector: // DateTime Selector\n return (\n <Fragment>\n <div class=\"question-item-date-time-inputs-container\">\n <div class=\"question-item-date-inputs-container-datetime-range\">\n <udp-datetime-selector\n label=\"Min Datetime\"\n value={this.question.fieldProperties.minDateTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minDateTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-datetime-selector>\n <udp-datetime-selector\n label=\"Max Datetime\"\n value={this.question.fieldProperties.maxDateTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxDateTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-datetime-selector>\n </div>\n <div class=\"question-item-future-date-container\">\n <stencil-toggle\n label=\"Allow Future Date\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.allowFutureDate}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'allowFutureDate');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n </div>\n </Fragment>\n );\n default:\n return null;\n }\n }\n\n render() {\n return this.renderSwitch();\n }\n}\n"],"version":3}
1
+ {"file":"date-time-renderer2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.css?tag=date-time-renderer&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.question-item-date-inputs-container,\n.question-item-time-inputs-container,\n.question-item-date-time-inputs-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04, 16px);\n}\n\n.question-item-date-inputs-container-date-range,\n.question-item-date-inputs-container-time-range,\n.question-item-date-inputs-container-datetime-range {\n display: flex;\n flex-direction: row;\n gap: var(--spacing-04, 16px);\n}\n","import { Component, Fragment, h, Prop } from '@stencil/core';\nimport { UdpFormQuestion } from '../../../udp-forms-utils/types'; // Using path that worked previously\nimport { UdpFormsFieldTypeEnum } from '../../../udp-forms-utils/enums';\n\n// We will need to import any components used like udp-date-selector, udp-time-selector, udp-datetime-selector, stencil-toggle, unity-typography etc.\n// This will require knowing their correct import paths or ensuring they are globally available.\n\n@Component({\n tag: 'date-time-renderer',\n styleUrl: 'date-time-renderer.css',\n shadow: true,\n})\nexport class DateTimeRenderer {\n @Prop() question: UdpFormQuestion;\n @Prop() isViewOnly: boolean;\n @Prop() formSectionsDraft: any[][];\n @Prop() sIndex: number;\n @Prop() qIndex: number;\n @Prop() onFormSectionsDraftChange: (updatedSections: any[][]) => void;\n @Prop() getHandler: (fieldTypeId: number, handlerName: string) => any;\n\n renderSwitch() {\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.DateSelector: // Date Selector\n return (\n <div class=\"question-item-date-inputs-container\">\n <div class=\"question-item-date-inputs-container-date-range\">\n <udp-date-selector\n label=\"Min Date\"\n value={this.question.fieldProperties.minDate}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minDate');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-date-selector>\n <udp-date-selector\n label=\"Max Date\"\n value={this.question.fieldProperties.maxDate}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxDate');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-date-selector>\n </div>\n <stencil-toggle\n label=\"Allow Future Date\"\n disabled={this.isViewOnly}\n checked={this.question.fieldProperties.allowFutureDate === true}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'allowFutureDate');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n );\n case UdpFormsFieldTypeEnum.TimeSelector: // Time Selector\n return (\n <div class=\"question-item-time-inputs-container\">\n <div class=\"question-item-date-inputs-container-time-range\">\n <udp-time-selector\n label=\"Min Time\"\n value={this.question.fieldProperties.minTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-time-selector>\n <udp-time-selector\n label=\"Max Time\"\n value={this.question.fieldProperties.maxTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-time-selector>\n </div>\n </div>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector: // DateTime Selector\n return (\n <Fragment>\n <div class=\"question-item-date-time-inputs-container\">\n <div class=\"question-item-date-inputs-container-datetime-range\">\n <udp-datetime-selector\n label=\"Min Datetime\"\n value={this.question.fieldProperties.minDateTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'minDateTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-datetime-selector>\n <udp-datetime-selector\n label=\"Max Datetime\"\n value={this.question.fieldProperties.maxDateTime}\n fullWidth={true}\n onChange={e => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyDateTime');\n const updated = handler(e, this.formSectionsDraft, this.sIndex, this.qIndex, 'maxDateTime');\n this.onFormSectionsDraftChange(updated);\n }}\n ></udp-datetime-selector>\n </div>\n <div class=\"question-item-future-date-container\">\n <stencil-toggle\n label=\"Allow Future Date\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.allowFutureDate}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'allowFutureDate');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n </div>\n </Fragment>\n );\n default:\n return null;\n }\n }\n\n render() {\n return this.renderSwitch();\n }\n}\n"],"version":3}
@@ -30,8 +30,14 @@ var UdpFormsPageIdEnum;
30
30
  UdpFormsPageIdEnum["FormBuilderPageId"] = "c77aa2c8-f8b8-41af-aa77-c8612fc918c1";
31
31
  UdpFormsPageIdEnum["FormRendererPageId"] = "c696afbd-8d83-4f80-aaa1-9a3530a05a21";
32
32
  })(UdpFormsPageIdEnum || (UdpFormsPageIdEnum = {}));
33
+ var UdpFormsSubmissionStatusEnum;
34
+ (function (UdpFormsSubmissionStatusEnum) {
35
+ UdpFormsSubmissionStatusEnum[UdpFormsSubmissionStatusEnum["InProgress"] = 1] = "InProgress";
36
+ UdpFormsSubmissionStatusEnum[UdpFormsSubmissionStatusEnum["Submitted"] = 2] = "Submitted";
37
+ UdpFormsSubmissionStatusEnum[UdpFormsSubmissionStatusEnum["Created"] = 3] = "Created";
38
+ })(UdpFormsSubmissionStatusEnum || (UdpFormsSubmissionStatusEnum = {}));
33
39
 
34
- export { UdpFormsFieldTypeEnum as U, UdpFormsTypeEnum as a, UdpFormsPageIdEnum as b };
40
+ export { UdpFormsFieldTypeEnum as U, UdpFormsTypeEnum as a, UdpFormsPageIdEnum as b, UdpFormsSubmissionStatusEnum as c };
35
41
  //# sourceMappingURL=enums.js.map
36
42
 
37
43
  //# sourceMappingURL=enums.js.map
@@ -1 +1 @@
1
- {"file":"enums.js","mappings":"AAAY,IAAA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;IAC/B,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;IAClB,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;IACjB,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;IACZ,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;IACf,qBAAA,CAAA,qBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB;IACxB,qBAAA,CAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAA0B;IAC1B,qBAAA,CAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB;IACnB,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;IAChB,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAiB;IACjB,qBAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAqB;IACrB,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe;IACf,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc;IACd,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;IACX,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc;IACd,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB;IAChB,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAwB;AAC1B,CAAC,EApBW,qBAAqB,KAArB,qBAAqB,GAoBhC,EAAA,CAAA,CAAA;AAEW,IAAA;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,GAAc;AACd,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,GAAc;AAChB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;AAEW,IAAA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,sCAA0D;AAC1D,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,sCAA2D;AAC7D,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;;;;","names":[],"sources":["src/components/forms/udp-forms/utils/enums.ts"],"sourcesContent":["export enum UdpFormsFieldTypeEnum {\n Hidden = 1,\n SingleLineText = 2,\n MultiLineText = 3,\n Checkbox = 4,\n RadioButton = 5,\n DropdownSingleSelect = 6,\n DropdownMultipleSelect = 7,\n ListMultiSelect = 8,\n DateSelector = 9,\n TimeSelector = 10,\n DateTimeSelector = 11,\n FileUpload = 12,\n YesNo = 13,\n Signature = 14,\n Tally = 15,\n Number = 16,\n Paragraph = 17,\n ImageUpload = 18,\n FormMetadataDisplay = 19,\n}\n\nexport enum UdpFormsTypeEnum {\n Standard = '1',\n FollowUp = '2',\n}\n\nexport enum UdpFormsPageIdEnum {\n FormBuilderPageId = 'c77aa2c8-f8b8-41af-aa77-c8612fc918c1', \n FormRendererPageId = 'c696afbd-8d83-4f80-aaa1-9a3530a05a21', \n}"],"version":3}
1
+ {"file":"enums.js","mappings":"AAAY,IAAA;AAAZ,CAAA,UAAY,qBAAqB,EAAA;IAC/B,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAkB;IAClB,qBAAA,CAAA,qBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB;IACjB,qBAAA,CAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY;IACZ,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe;IACf,qBAAA,CAAA,qBAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAwB;IACxB,qBAAA,CAAA,qBAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAA0B;IAC1B,qBAAA,CAAA,qBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB;IACnB,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB;IAChB,qBAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAiB;IACjB,qBAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAqB;IACrB,qBAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe;IACf,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc;IACd,qBAAA,CAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU;IACV,qBAAA,CAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW;IACX,qBAAA,CAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAc;IACd,qBAAA,CAAA,qBAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAgB;IAChB,qBAAA,CAAA,qBAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAAwB;AAC1B,CAAC,EApBW,qBAAqB,KAArB,qBAAqB,GAoBhC,EAAA,CAAA,CAAA;AAEW,IAAA;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,GAAc;AACd,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,GAAc;AAChB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;AAEW,IAAA;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,mBAAA,CAAA,GAAA,sCAA0D;AAC1D,IAAA,kBAAA,CAAA,oBAAA,CAAA,GAAA,sCAA2D;AAC7D,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA;AAEW,IAAA;AAAZ,CAAA,UAAY,4BAA4B,EAAA;IACtC,4BAAA,CAAA,4BAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc;IACd,4BAAA,CAAA,4BAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa;IACb,4BAAA,CAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EAJW,4BAA4B,KAA5B,4BAA4B,GAIvC,EAAA,CAAA,CAAA;;;;","names":[],"sources":["src/components/forms/udp-forms/udp-forms-utils/enums.ts"],"sourcesContent":["export enum UdpFormsFieldTypeEnum {\n Hidden = 1,\n SingleLineText = 2,\n MultiLineText = 3,\n Checkbox = 4,\n RadioButton = 5,\n DropdownSingleSelect = 6,\n DropdownMultipleSelect = 7,\n ListMultiSelect = 8,\n DateSelector = 9,\n TimeSelector = 10,\n DateTimeSelector = 11,\n FileUpload = 12,\n YesNo = 13,\n Signature = 14,\n Tally = 15,\n Number = 16,\n Paragraph = 17,\n ImageUpload = 18,\n FormMetadataDisplay = 19,\n}\n\nexport enum UdpFormsTypeEnum {\n Standard = '1',\n FollowUp = '2',\n}\n\nexport enum UdpFormsPageIdEnum {\n FormBuilderPageId = 'c77aa2c8-f8b8-41af-aa77-c8612fc918c1', \n FormRendererPageId = 'c696afbd-8d83-4f80-aaa1-9a3530a05a21', \n}\n\nexport enum UdpFormsSubmissionStatusEnum {\n InProgress = 1,\n Submitted = 2,\n Created = 3,\n} \n"],"version":3}
@@ -14,13 +14,13 @@ const FileUploadRenderer = /*@__PURE__*/ proxyCustomElement(class FileUploadRend
14
14
  }
15
15
  render() {
16
16
  var _a, _b;
17
- return (h("div", { key: '0d0900ccd61c4bdb94a57aae8c31e3a8391bc7cf', class: "file-upload-input-container" }, h("div", { key: 'd88efd56295b9f864d70bcae6200bd88e0acfa3b' }, h("stencil-toggle", { key: '907fb4c0aa49d0c687b57ff3a72e17c598c88e6d', label: "Hide Drag And Drop", disabled: this.isViewOnly, checked: !!((_a = this.question.fieldProperties) === null || _a === void 0 ? void 0 : _a.hideDragAndDrop), onToggledChange: () => {
17
+ return (h("div", { key: '4c2326ffeef74c656ee599ca6d689d94e2783d47', class: "file-upload-input-container" }, h("div", { key: 'fd65c4069a3c91400384f0d96ab6a41d4ff95b6e' }, h("stencil-toggle", { key: 'e72cee723049232e0e8a44502ff5f13fded37a93', label: "Hide Drag And Drop", disabled: this.isViewOnly, checked: !!((_a = this.question.fieldProperties) === null || _a === void 0 ? void 0 : _a.hideDragAndDrop), onToggledChange: () => {
18
18
  if (this.isViewOnly)
19
19
  return;
20
20
  const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');
21
21
  const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'hideDragAndDrop');
22
22
  this.onFormSectionsDraftChange(updated);
23
- }, labelPosition: "right" })), h("div", { key: '31ae768a4d8a4ba415d0e429f61fb2a684177947' }, h("stencil-toggle", { key: '1aaa023cd3a947525a04ea3bdc03cd097c3055ee', label: "Hide Button", disabled: this.isViewOnly, checked: !!((_b = this.question.fieldProperties) === null || _b === void 0 ? void 0 : _b.hideButton), onToggledChange: () => {
23
+ }, labelPosition: "right" })), h("div", { key: 'ccb8385b5af42cecbe0cb57ff2a2250d38a684d8' }, h("stencil-toggle", { key: '1737f83b6faae4e1fe15b69c5b970992155e291c', label: "Hide Button", disabled: this.isViewOnly, checked: !!((_b = this.question.fieldProperties) === null || _b === void 0 ? void 0 : _b.hideButton), onToggledChange: () => {
24
24
  if (this.isViewOnly)
25
25
  return;
26
26
  const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');
@@ -1 +1 @@
1
- {"file":"file-upload-renderer2.js","mappings":";;;;AAAA,MAAM,qBAAqB,GAAG,mEAAmE;;MCSpF,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;;;;;;;;IAS7B,MAAM,GAAA;;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,oBAAoB,EAC1B,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,OAAO,EAAE,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,CAAA,EACzD,eAAe,EAAE,MAAK;gBACpB,IAAI,IAAI,CAAC,UAAU;oBAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;AAC9F,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;AAC5F,gBAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;AACzC,aAAC,EACD,aAAa,EAAC,OAAO,GACL,CACd,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,OAAO,EAAE,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAA,EACpD,eAAe,EAAE,MAAK;gBACpB,IAAI,IAAI,CAAC,UAAU;oBAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;AAC9F,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AACvF,gBAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;aACxC,EACD,aAAa,EAAC,OAAO,GACL,CACd,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.css?tag=file-upload-renderer&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.tsx"],"sourcesContent":["/* Styles for file-upload-renderer */\n.file-upload-input-container {\n display: flex;\n flex-direction: column; /* Stack toggles vertically */\n /* gap: var(--spacing-05, 16px); Consistent spacing with other components */\n}\n\n/* Add any other specific styles for file upload inputs here */ ","import { Component, h, Prop } from '@stencil/core';\nimport { UdpFormQuestion } from '../../../utils/types';\n// stencil-toggle should be globally available or imported if necessary\n\n@Component({\n tag: 'file-upload-renderer',\n styleUrl: 'file-upload-renderer.css',\n shadow: true,\n})\nexport class FileUploadRenderer {\n @Prop() question: UdpFormQuestion;\n @Prop() isViewOnly: boolean;\n @Prop() formSectionsDraft: any[][];\n @Prop() sIndex: number;\n @Prop() qIndex: number;\n @Prop() onFormSectionsDraftChange: (updatedSections: any[][]) => void;\n @Prop() getHandler: (fieldTypeId: number, handlerName: string) => any;\n\n render() {\n return (\n <div class=\"file-upload-input-container\">\n <div>\n <stencil-toggle\n label=\"Hide Drag And Drop\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.hideDragAndDrop}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'hideDragAndDrop');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n <div>\n <stencil-toggle\n label=\"Hide Button\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.hideButton}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'hideButton');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"file-upload-renderer2.js","mappings":";;;;AAAA,MAAM,qBAAqB,GAAG,mEAAmE;;MCSpF,kBAAkB,iBAAAA,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;;;;;;;;IAS7B,MAAM,GAAA;;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,oBAAoB,EAC1B,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,OAAO,EAAE,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,eAAe,CAAA,EACzD,eAAe,EAAE,MAAK;gBACpB,IAAI,IAAI,CAAC,UAAU;oBAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;AAC9F,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;AAC5F,gBAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;AACzC,aAAC,EACD,aAAa,EAAC,OAAO,GACL,CACd,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACE,CAAA,CAAA,gBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAC,aAAa,EACnB,QAAQ,EAAE,IAAI,CAAC,UAAU,EACzB,OAAO,EAAE,CAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAA,EACpD,eAAe,EAAE,MAAK;gBACpB,IAAI,IAAI,CAAC,UAAU;oBAAE;AACrB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,kCAAkC,CAAC;AAC9F,gBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;AACvF,gBAAA,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;aACxC,EACD,aAAa,EAAC,OAAO,GACL,CACd,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.css?tag=file-upload-renderer&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.tsx"],"sourcesContent":["/* Styles for file-upload-renderer */\n.file-upload-input-container {\n display: flex;\n flex-direction: column; /* Stack toggles vertically */\n /* gap: var(--spacing-05, 16px); Consistent spacing with other components */\n}\n\n/* Add any other specific styles for file upload inputs here */ ","import { Component, h, Prop } from '@stencil/core';\nimport { UdpFormQuestion } from '../../../udp-forms-utils/types';\n// stencil-toggle should be globally available or imported if necessary\n\n@Component({\n tag: 'file-upload-renderer',\n styleUrl: 'file-upload-renderer.css',\n shadow: true,\n})\nexport class FileUploadRenderer {\n @Prop() question: UdpFormQuestion;\n @Prop() isViewOnly: boolean;\n @Prop() formSectionsDraft: any[][];\n @Prop() sIndex: number;\n @Prop() qIndex: number;\n @Prop() onFormSectionsDraftChange: (updatedSections: any[][]) => void;\n @Prop() getHandler: (fieldTypeId: number, handlerName: string) => any;\n\n render() {\n return (\n <div class=\"file-upload-input-container\">\n <div>\n <stencil-toggle\n label=\"Hide Drag And Drop\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.hideDragAndDrop}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'hideDragAndDrop');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n <div>\n <stencil-toggle\n label=\"Hide Button\"\n disabled={this.isViewOnly}\n checked={!!this.question.fieldProperties?.hideButton}\n onToggledChange={() => {\n if (this.isViewOnly) return;\n const handler = this.getHandler(this.question.fieldTypeId, 'handleFieldPropertyBooleanToggle');\n const updated = handler(this.formSectionsDraft, this.sIndex, this.qIndex, 'hideButton');\n this.onFormSectionsDraftChange(updated);\n }}\n labelPosition=\"right\"\n ></stencil-toggle>\n </div>\n </div>\n );\n }\n}\n"],"version":3}