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.
- 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
- package/dist/cjs/date-time-renderer_7.cjs.entry.js +13 -13
- package/dist/cjs/{enums-DVbZnzL8.js → enums-CgcTuQjC.js} +8 -2
- package/dist/cjs/enums-CgcTuQjC.js.map +1 -0
- 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
- package/dist/cjs/form-metadata-display_8.cjs.entry.js +10 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.entry.cjs.js.map +1 -1
- package/dist/cjs/question-configs-renderer_4.cjs.entry.js +7 -7
- package/dist/cjs/stencil-library.cjs.js +1 -1
- package/dist/cjs/{udp-forms-builder-question-template-CNONS2l5.js → udp-forms-builder-question-template-BMMpObLX.js} +3 -3
- package/dist/cjs/udp-forms-builder-question-template-BMMpObLX.js.map +1 -0
- package/dist/cjs/udp-forms-builder.cjs.entry.js +2 -2
- package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +3 -3
- package/dist/cjs/udp-forms-follow-up-list-card.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-list-card.cjs.entry.js +6 -6
- package/dist/cjs/udp-forms-list-card.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-list.cjs.entry.js +2 -2
- package/dist/cjs/udp-forms-list.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-renderer.cjs.entry.js +270 -202
- package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-ui.cjs.entry.js +6 -6
- package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
- package/dist/cjs/{utils-DZ_OMtAy.js → utils-Bp02BX38.js} +8 -8
- package/dist/cjs/utils-Bp02BX38.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.js +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.js +3 -3
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +4 -4
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js.map +1 -1
- 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
- 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
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +5 -5
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +6 -6
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js.map +1 -1
- 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
- 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
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +3 -3
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +4 -4
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.js +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.js +3 -3
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +7 -7
- package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js +2 -2
- package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js.map +1 -1
- 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
- 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
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js +13 -13
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.js +195 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +86 -238
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/classes/UdpForm.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpFormSubmission.js +4 -12
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/classes/UdpFormSubmission.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/enums.js +6 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/enums.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/IFormHandler.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-handler/UdpFormHandler.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/FormSubmissionHandlerFactory.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/IFormSubmissionHandler.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PrivateFormSubmissionHandler.js +6 -4
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PrivateFormSubmissionHandler.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/PublicFormSubmissionHandler.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/form-submission-handler/formUtils.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/types.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/utils.js +5 -5
- package/dist/collection/components/forms/udp-forms/udp-forms-utils/utils.js.map +1 -0
- package/dist/collection/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.js +10 -10
- package/dist/collection/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/udp-question/udp-question.js +13 -13
- package/dist/collection/components/forms/udp-forms/udp-question/udp-question.js.map +1 -1
- package/dist/collection/components/inputs/form metadata display/form-metadata-display.js +2 -2
- package/dist/collection/components/inputs/form metadata display/form-metadata-display.js.map +1 -1
- package/dist/components/date-time-renderer2.js.map +1 -1
- package/dist/components/enums.js +7 -1
- package/dist/components/enums.js.map +1 -1
- package/dist/components/file-upload-renderer2.js +2 -2
- package/dist/components/file-upload-renderer2.js.map +1 -1
- package/dist/components/form-metadata-display-renderer2.js +3 -3
- package/dist/components/form-metadata-display-renderer2.js.map +1 -1
- package/dist/components/form-metadata-display2.js +1 -1
- package/dist/components/form-metadata-display2.js.map +1 -1
- package/dist/components/forms-builder-utils.js.map +1 -1
- package/dist/components/list-options-renderer2.js +3 -3
- package/dist/components/list-options-renderer2.js.map +1 -1
- package/dist/components/question-configs-renderer2.js +5 -5
- package/dist/components/question-configs-renderer2.js.map +1 -1
- package/dist/components/question-specific-configs-renderer2.js.map +1 -1
- package/dist/components/signature-renderer2.js +1 -1
- package/dist/components/signature-renderer2.js.map +1 -1
- package/dist/components/text-input-renderer2.js +2 -2
- package/dist/components/text-input-renderer2.js.map +1 -1
- package/dist/components/udp-forms-builder.js.map +1 -1
- package/dist/components/udp-forms-follow-up-list-card.js +2 -2
- package/dist/components/udp-forms-follow-up-list-card.js.map +1 -1
- package/dist/components/udp-forms-list-card2.js +4 -4
- package/dist/components/udp-forms-list-card2.js.map +1 -1
- package/dist/components/udp-forms-list.js +1 -1
- package/dist/components/udp-forms-list.js.map +1 -1
- package/dist/components/udp-forms-renderer.js +273 -207
- package/dist/components/udp-forms-renderer.js.map +1 -1
- package/dist/components/udp-forms-ui2.js +6 -6
- package/dist/components/udp-forms-ui2.js.map +1 -1
- package/dist/components/udp-question-comments2.js +5 -5
- package/dist/components/udp-question-comments2.js.map +1 -1
- package/dist/components/udp-question2.js +4 -4
- package/dist/components/udp-question2.js.map +1 -1
- package/dist/components/utils.js +6 -6
- package/dist/components/utils.js.map +1 -1
- package/dist/docs.json +118 -154
- 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
- package/dist/esm/date-time-renderer_7.entry.js +13 -13
- package/dist/esm/{enums-CHxgVY-B.js → enums-DHT5wSnX.js} +9 -3
- package/dist/esm/enums-DHT5wSnX.js.map +1 -0
- 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
- package/dist/esm/form-metadata-display_8.entry.js +10 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.entry.js.map +1 -1
- package/dist/esm/question-configs-renderer_4.entry.js +7 -7
- package/dist/esm/stencil-library.js +1 -1
- package/dist/esm/{udp-forms-builder-question-template-DQJb7f4Y.js → udp-forms-builder-question-template-D6ADNZEG.js} +3 -3
- package/dist/esm/udp-forms-builder-question-template-D6ADNZEG.js.map +1 -0
- package/dist/esm/udp-forms-builder.entry.js +2 -2
- package/dist/esm/udp-forms-builder.entry.js.map +1 -1
- package/dist/esm/udp-forms-follow-up-list-card.entry.js +3 -3
- package/dist/esm/udp-forms-follow-up-list-card.entry.js.map +1 -1
- package/dist/esm/udp-forms-list-card.entry.js +6 -6
- package/dist/esm/udp-forms-list-card.entry.js.map +1 -1
- package/dist/esm/udp-forms-list.entry.js +2 -2
- package/dist/esm/udp-forms-list.entry.js.map +1 -1
- package/dist/esm/udp-forms-renderer.entry.js +270 -202
- package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
- package/dist/esm/udp-forms-ui.entry.js +6 -6
- package/dist/esm/udp-forms-ui.entry.js.map +1 -1
- package/dist/esm/{utils-CiUp9KGZ.js → utils-kwLwITIE.js} +8 -8
- package/dist/esm/utils-kwLwITIE.js.map +1 -0
- 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
- package/dist/stencil-library/date-time-renderer_7.entry.js +1 -1
- package/dist/stencil-library/{enums-CHxgVY-B.js → enums-DHT5wSnX.js} +2 -2
- package/dist/stencil-library/enums-DHT5wSnX.js.map +1 -0
- 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
- package/dist/stencil-library/form-metadata-display_8.entry.js +1 -1
- package/dist/stencil-library/form-metadata-display_8.entry.js.map +1 -1
- 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
- package/dist/stencil-library/question-configs-renderer_4.entry.js +1 -1
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/stencil-library/{udp-forms-builder-question-template-DQJb7f4Y.js → udp-forms-builder-question-template-D6ADNZEG.js} +2 -2
- package/dist/stencil-library/udp-forms-builder-question-template-D6ADNZEG.js.map +1 -0
- package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-builder.entry.js +1 -1
- package/dist/stencil-library/udp-forms-follow-up-list-card.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.js.map +1 -1
- package/dist/stencil-library/udp-forms-list.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-list.entry.js +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
- package/dist/stencil-library/udp-forms-renderer.entry.js.map +1 -1
- package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
- package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
- package/dist/stencil-library/udp-forms-ui.entry.js.map +1 -1
- package/dist/stencil-library/{utils-CiUp9KGZ.js → utils-kwLwITIE.js} +1 -1
- package/dist/stencil-library/utils-kwLwITIE.js.map +1 -0
- package/dist/types/components/forms/udp-forms/udp-forms-builder/forms-builder-utils.d.ts +2 -2
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/date-time-renderer/date-time-renderer.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.d.ts +1 -1
- 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
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.d.ts +2 -2
- package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.d.ts +4 -4
- package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-utils.d.ts +12 -0
- package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +4 -9
- package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpFormSubmission.d.ts +4 -5
- package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/enums.d.ts +5 -0
- package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/types.d.ts +0 -1
- package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/utils.d.ts +1 -1
- package/dist/types/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.d.ts +2 -2
- package/dist/types/components/forms/udp-forms/udp-question/udp-question.d.ts +4 -4
- package/dist/types/components.d.ts +32 -30
- package/package.json +1 -1
- package/dist/cjs/enums-DVbZnzL8.js.map +0 -1
- package/dist/cjs/udp-forms-builder-question-template-CNONS2l5.js.map +0 -1
- package/dist/cjs/utils-DZ_OMtAy.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/classes/UdpForm.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/classes/UdpFormSubmission.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/enums.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-handler/IFormHandler.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-handler/UdpFormHandler.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/FormSubmissionHandlerFactory.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/IFormSubmissionHandler.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/PrivateFormSubmissionHandler.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/PublicFormSubmissionHandler.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/form-submission-handler/formUtils.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/types.js.map +0 -1
- package/dist/collection/components/forms/udp-forms/utils/utils.js.map +0 -1
- package/dist/esm/enums-CHxgVY-B.js.map +0 -1
- package/dist/esm/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
- package/dist/esm/utils-CiUp9KGZ.js.map +0 -1
- package/dist/stencil-library/enums-CHxgVY-B.js.map +0 -1
- package/dist/stencil-library/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
- package/dist/stencil-library/utils-CiUp9KGZ.js.map +0 -1
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/types.js +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PrivateFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-forms-ui2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.css?tag=udp-forms-ui&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.tsx"],"sourcesContent":[".background {\n background-color: var(--gray-01);\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.item {\n padding-bottom: var(--spacing-02);\n /* margin-bottom: var(--spacing-05); */\n}\n\n.items {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n padding-top: var(--spacing-02);\n padding-bottom: var(--spacing-02);\n}\n\n.footer {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.submit {\n background-color: var(--primary-color);\n box-sizing: border-box;\n border: none;\n color: white;\n padding: 8px 24px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.3s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n min-width: 48px;\n min-height: 24px;\n /* Default size */\n}\n\n.submit:disabled {\n background-color: var(--gray-05);\n cursor: default;\n}\n\n.submit-card {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/* .form-section-content */\n.form-section-content {\n margin-bottom: var(--spacing-05);\n background-color: white;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n}\n\n.form-container {\n padding-top: var(--spacing-05);\n padding-bottom: var(--spacing-05);\n min-height: 100px;\n}\n\n.form-section-block {\n margin-bottom: var(--spacing-05);\n}\n\n.form-section-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: var(--primary-color, #000);\n color: var(--primary-contrast-text, #FFF);\n padding: var(--spacing-04, 16px) var(--spacing-05, 24px);\n align-items: center;\n min-height: var(--spacing-10, 60px);\n}\n\n.form-section-text {\n margin-bottom: var(--spacing-03);\n}\n\n.center-div {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.finish-button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* .header */\n.form-renderer-header {\n padding: var(--spacing-05) var(--spacing-05);\n background-color: var(--primary-color-dark, #000);\n color: var(--primary-contrast-text, #FFF);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.header-content {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-03);\n}\n\n.header-text {\n flex: 1;\n min-width: 0;\n /* Allow text to shrink */\n}\n\n/* Save button visibility - JavaScript controlled */\n.header-save-button {\n display: block;\n /* Always available, component controls its own visibility */\n}\n\n.floating-save-button {\n display: block;\n /* Always available, component controls its own visibility */\n}\n\n.error-banner {\n background-color: #fdecea;\n border: 1px solid #f5c6cb;\n color: #a94442;\n padding: 12px;\n margin-bottom: 12px;\n border-radius: 4px;\n}\n\n\n/*\n * Save button visibility is now controlled by JavaScript-based overlap detection\n * in the udp-save-draft-button component. This provides real-time detection of\n * overlaps with form content, accounting for menu drawers and dynamic layouts.\n *\n * The component automatically switches between floating and inline modes based on\n * actual element positions and available space, not viewport breakpoints.\n */\n\n/* Mobile layout adjustments */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-02);\n }\n\n .header-text {\n margin-bottom: var(--spacing-02);\n }\n}\n\n/* Small height screens: Always use header button */\n@media (max-height: 600px) {\n .header-save-button {\n display: block;\n }\n\n .floating-save-button {\n display: none;\n }\n}\n\n.auto-save-status {\n margin-top: var(--spacing-02);\n padding: var(--spacing-01) 0;\n font-size: 12px;\n opacity: 0.8;\n}","import { Component, h, Prop, State, Element, Watch, Event, EventEmitter } from '@stencil/core';\nimport { Guid, UdpFormQuestion } from '../../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../../utils/enums';\nimport { fontOverrideMapping, overrideFont } from '../../utils/utils';\nimport { getIconFromName } from '../../../../data-display/icons/iconUtils';\nimport { UdpFormSubmission } from '../../utils/classes/UdpFormSubmission';\nimport { UdpForm } from '../../utils/classes/UdpForm';\n\n\n@Component({\n tag: 'udp-forms-ui',\n styleUrl: 'udp-forms-ui.css',\n shadow: true,\n})\nexport class UdpFormsUi {\n @Prop() udpForm: UdpForm;\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() udpFormSubmission: UdpFormSubmission\n @Prop() submitSuccessful: boolean = false;\n @Prop() isLoading: boolean = false;\n @Prop() isSaving: boolean = false;\n @Prop() saveErrorMessage: string | null = null;\n @Prop() showAutoSaveStatus: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() handleSubmit: (values: any) => Promise<void>;\n @Prop() handleChange: (values: { [name: string]: any }) => void;\n @Prop() handleSave: (values: { [name: string]: any }) => Promise<void>;\n @Prop() handleAction: (actionId: Guid, params: Object) => void;\n @Prop() handleFinish: () => void;\n @Prop() clientUserInfo: { id: string | null; displayName: string | null; email: string | null } = {\n id: null,\n displayName: null,\n email: null,\n }; \n @Prop() isSubmitted: boolean = false;\n @Prop() dynamicSections: any[];\n @Prop() duplicateRepeatableSection: any;\n @Prop() deleteRepeatableSection: any;\n @Prop() isShowManualSaveIcon: boolean = false;\n @Prop() performBackgroundSaveAndUpdateLocalSubmissionState: (values: { [name: string]: any }) => Promise<void>;\n\n @State() showSavedMessage: boolean = false;\n\n @Event() formDirtyChange: EventEmitter<boolean>;\n\n @Element() el: HTMLElement;\n\n\n @State() isDialogOpen: boolean = false;\n @State() dialogAction: () => void;\n @State() dialogMessage: string = 'Are you sure you want to delete this section? This section contains links to follow-up forms. Deleting it will remove those links.';\n \n\n private savedMessageTimeoutId: any;\n\n private titleId: string = 'udp-forms-title';\n private descriptionId: string = 'udp-forms-description';\n\n componentDidLoad() {\n this.overrideStyles();\n }\n\n componentDidUpdate() {\n this.overrideStyles();\n }\n\n disconnectedCallback() {\n // Clean up timeout when component is destroyed\n if (this.savedMessageTimeoutId) {\n clearTimeout(this.savedMessageTimeoutId);\n }\n }\n\n @Watch('isSaving')\n watchIsSaving(newValue: boolean, oldValue: boolean) {\n console.log('isSaving watcher triggered:', { oldValue, newValue, saveErrorMessage: this.saveErrorMessage });\n\n // When isSaving changes from true to false (save completed successfully)\n if (oldValue === true && newValue === false && !this.saveErrorMessage) {\n console.log('Setting showSavedMessage to true');\n this.showSavedMessage = true;\n\n // Clear any existing timeout\n if (this.savedMessageTimeoutId) {\n clearTimeout(this.savedMessageTimeoutId);\n }\n\n // Hide the \"Saved\" message after 5 seconds\n this.savedMessageTimeoutId = setTimeout(() => {\n console.log('Hiding saved message after 5 seconds');\n this.showSavedMessage = false;\n }, 5000);\n }\n }\n\n overrideStyles() {\n const shadowRoot = (this as any).el?.shadowRoot;\n shadowRoot?.querySelectorAll('unity-typography').forEach(element => {\n const styleOverride =\n element.id === this.titleId ? this.udpForm?.styleOverrides?.titleText : element.id === this.descriptionId ? this.udpForm?.styleOverrides?.paragraphText : ({} as any);\n\n if (styleOverride?.fontFamily && fontOverrideMapping[styleOverride.fontFamily]) {\n overrideFont(element, fontOverrideMapping[styleOverride.fontFamily]);\n }\n if (styleOverride?.variant) {\n element.setAttribute('variant', styleOverride.variant);\n }\n });\n }\n\n private isSectionContainsFollowUpFormLink(sectionKey: string): boolean {\n const sectionObject = this.udpFormSubmission.data.submissionResponseData[sectionKey]\n\n for (const [_key, questionObject] of Object.entries(sectionObject) as any) {\n if (questionObject?.metadata && questionObject.metadata?.followUpFormSubmissionId) {\n return true;\n }\n }\n\n return false;\n }\n\n render() {\n if (this.isLoading) {\n return (\n <udp-linear-loader />\n );\n }\n\n if (!this.udpForm) {\n return (\n <div class=\"error-banner\">\n <unity-typography variant=\"body2\">Error Loading Form</unity-typography>\n </div>\n );\n }\n\n let questionNumber = 1;\n\n const sectionSet = new Set();\n this.udpForm.formQuestions.forEach(fq => sectionSet.add(fq.section));\n // const orderedSectionNumbers = [...sectionSet].sort((a: number, b: number) => a - b);\n\n const hiddenQuestionTypes = [UdpFormsFieldTypeEnum.Hidden, UdpFormsFieldTypeEnum.Paragraph];\n\n const backgroundOverrides: { backgroundImage?: string | null; backgroundColor?: string | null } = {};\n if (this.udpForm?.styleOverrides?.background?.backgroundImage) {\n // uncomment when we want to allow background images\n //backgroundOverrides.backgroundImage = `url(${this.udpForm?.styleOverrides?.background?.backgroundImage})`;\n } else if (this.udpForm?.styleOverrides?.background?.backgroundColor) {\n backgroundOverrides.backgroundColor = this.udpForm?.styleOverrides?.background?.backgroundColor;\n }\n return (\n <div class={'background'} style={backgroundOverrides}>\n <udp-container maxWidth=\"md\">\n <div class=\"form-container\">\n {!this.submitSuccessful ? (\n \n <stencil-form\n handleSubmit={this.handleSubmit}\n initialValues={this.initialValues}\n handleChange={this.handleChange}\n onDirtyChange={event => this.formDirtyChange.emit(event.detail)}\n >\n {this.readonly && \n (<div class=\"error-banner\">\n <unity-typography variant=\"body2\">View Only Mode. The contents of this form cannot be changed.</unity-typography>\n </div>)}\n <fluent-dialog\n open={this.isDialogOpen}\n message={this.dialogMessage}\n labelOne={'Confirm'}\n labelTwo={'Cancel'}\n actionOne={() => this.dialogAction()}\n actionTwo={() => (this.isDialogOpen = false)}\n />\n {/********** QUESTIONS *********/}\n <div>\n {/* <div class=\"header\" style={this.udpForm?.styleOverrides?.headerBackgroundColor ? { backgroundColor: this.udpForm?.styleOverrides?.headerBackgroundColor } : ''}> */}\n <div class=\"form-section-block\">\n <div\n class=\"form-renderer-header\"\n style={{\n ...(this.udpForm?.styleOverrides?.headerBackgroundColor && {\n backgroundColor: this.udpForm.styleOverrides.headerBackgroundColor,\n }),\n }}\n >\n <unity-typography id={this.titleId} variant={'h6'} color=\"inherit\">\n {this.udpForm.name}\n </unity-typography>\n\n {/* Auto-save status indicator for authenticated users */}\n {this.showAutoSaveStatus && (\n <div class=\"auto-save-status\">\n {/* {this.isSaving && (\n <unity-typography variant=\"body\" color=\"primary\">\n Saving...\n </unity-typography>\n )} */}\n {this.saveErrorMessage && (\n <unity-typography variant=\"body\" color=\"secondary\">\n {this.saveErrorMessage}\n </unity-typography>\n )}\n </div>\n )}\n {this.isShowManualSaveIcon && (\n <udp-save-draft-button\n isVisible={this.isShowManualSaveIcon}\n isSaving={this.isSaving}\n // saveErrorMessage={this.saveErrorMessage}\n showSavedMessage={this.showSavedMessage}\n handleSave={this.handleSave}\n />\n )}\n </div>\n\n <div class=\"form-section-content\">\n <div class=\"items\">\n <div class=\"form-section-text\">\n <unity-typography id={this.descriptionId} variant={this.udpForm?.styleOverrides?.paragraphText?.variant ?? 'body'} color=\"inherit\">\n {this.udpForm.description}\n </unity-typography>\n </div>\n </div>\n </div>\n </div>\n {/* Save Button - moves between header and floating based on space */}\n {this.dynamicSections.map((section, sIndex) => {\n return (\n <div class=\"form-section-block\">\n <div class=\"form-section-header\">\n <div class=\"form-section-header-title\">\n <unity-typography variant=\"h6\" color=\"inherit\">\n {`${section.title}${section.sectionPositionSuffix > 1 ? ` (${section.sectionPositionSuffix})` : ''}`}\n </unity-typography>\n </div>\n <div class=\"form-section-header-actions\">\n {/* // Only show the add button if the section is repeatable and is the last in the repeat group */}\n {section.sectionProperties.isRepeatable && this.dynamicSections.filter(s => s.id === section.id).length === section.sectionPositionSuffix && !this.readonly && (\n <stencil-icon-button icon={getIconFromName('add')} tooltip=\"Repeat This Section\" onClick={() => this.duplicateRepeatableSection(sIndex)} />\n )}\n {/* // show the delete button if the section is repeatable and not the original section */}\n {!section.isOriginalSection && !this.readonly && (\n <stencil-icon-button \n icon={getIconFromName('subtract')} \n tooltip=\"Delete This Repeated Section\" \n onClick={\n () => {\n // e.stopPropagation();\n if (this.isSectionContainsFollowUpFormLink(`${section.name}_${section.sectionPositionSuffix}`)) {\n this.dialogAction = async () => {\n this.deleteRepeatableSection(sIndex)\n await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);\n this.isDialogOpen = false;\n }; \n } else {\n this.deleteRepeatableSection(sIndex)\n }\n \n this.isDialogOpen = true;\n }} />\n )}\n </div>\n </div>\n\n <div class=\"form-section-content\">\n <div class=\"items\">\n <div class=\"form-section-text\">\n <unity-typography variant=\"body\" color=\"inherit\">\n {section.sectionText}\n </unity-typography>\n </div>\n\n <div>\n {section.formQuestions.map((question: UdpFormQuestion) => {\n const isHidden = hiddenQuestionTypes.includes(question.fieldTypeId);\n const num: number = questionNumber;\n if (!isHidden) questionNumber++;\n\n const sectionKey = section.sectionPositionSuffix > 1 ? `${section.name}_${section.sectionPositionSuffix}` : `${section.name}`\n\n return (\n <div class=\"item\">\n <udp-question\n styleOverrides={{\n helperText: this.udpForm.styleOverrides?.helperText,\n paragraphText: this.udpForm.styleOverrides?.paragraphText,\n questionText: this.udpForm.styleOverrides?.questionText,\n }}\n question={question}\n questionNumber={num}\n value={this.initialValues?.[sectionKey]?.[question.name]?.value ?? ''}\n disabled={this.disabled}\n readonly={this.readonly}\n key={question.questionIdentifierKey}\n initialValues={this.initialValues}\n clientUserInfo={this.clientUserInfo}\n udpFormSubmission={this.udpFormSubmission}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </div>\n );\n })}\n {this.udpFormSubmission?.status != 2 && ( \n <div class=\"footer\">\n <input\n disabled={this.isLoading || this.disabled || this.readonly}\n type=\"submit\"\n value=\"Submit\"\n class=\"submit\"\n id=\"udpRecord-udp-forms-renderer-Submit\"\n onClick={() => {\n console.log('Submit button clicked');\n // Let the form handle the submit naturally\n }}\n />\n </div>\n )}\n </div>\n </stencil-form>\n ) : (\n //if the form has been submit, display success message with a button to trigger the action associated to the form\n <div class=\"center-div\">\n <udp-ambient-card>\n <div class=\"submit-card\">\n <unity-typography>Thank you for your submission.</unity-typography>\n {/* // No action configured for now. */}\n {/* <div class=\"finish-button\">\n <custom-button onClick={this.handleFinish}>Back</custom-button>\n </div> */}\n </div>\n </udp-ambient-card>\n </div>\n )}\n </div>\n </udp-container>\n </div>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"udp-forms-ui2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.css?tag=udp-forms-ui&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.tsx"],"sourcesContent":[".background {\n background-color: var(--gray-01);\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.item {\n padding-bottom: var(--spacing-02);\n /* margin-bottom: var(--spacing-05); */\n}\n\n.items {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n padding-top: var(--spacing-02);\n padding-bottom: var(--spacing-02);\n}\n\n.footer {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.submit {\n background-color: var(--primary-color);\n box-sizing: border-box;\n border: none;\n color: white;\n padding: 8px 24px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.3s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n min-width: 48px;\n min-height: 24px;\n /* Default size */\n}\n\n.submit:disabled {\n background-color: var(--gray-05);\n cursor: default;\n}\n\n.submit-card {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n/* .form-section-content */\n.form-section-content {\n margin-bottom: var(--spacing-05);\n background-color: white;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05);\n}\n\n.form-container {\n padding-top: var(--spacing-05);\n padding-bottom: var(--spacing-05);\n min-height: 100px;\n}\n\n.form-section-block {\n margin-bottom: var(--spacing-05);\n}\n\n.form-section-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: var(--primary-color, #000);\n color: var(--primary-contrast-text, #FFF);\n padding: var(--spacing-04, 16px) var(--spacing-05, 24px);\n align-items: center;\n min-height: var(--spacing-10, 60px);\n}\n\n.form-section-text {\n margin-bottom: var(--spacing-03);\n}\n\n.center-div {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.finish-button {\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n/* .header */\n.form-renderer-header {\n padding: var(--spacing-05) var(--spacing-05);\n background-color: var(--primary-color-dark, #000);\n color: var(--primary-contrast-text, #FFF);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.header-content {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-03);\n}\n\n.header-text {\n flex: 1;\n min-width: 0;\n /* Allow text to shrink */\n}\n\n/* Save button visibility - JavaScript controlled */\n.header-save-button {\n display: block;\n /* Always available, component controls its own visibility */\n}\n\n.floating-save-button {\n display: block;\n /* Always available, component controls its own visibility */\n}\n\n.error-banner {\n background-color: #fdecea;\n border: 1px solid #f5c6cb;\n color: #a94442;\n padding: 12px;\n margin-bottom: 12px;\n border-radius: 4px;\n}\n\n\n/*\n * Save button visibility is now controlled by JavaScript-based overlap detection\n * in the udp-save-draft-button component. This provides real-time detection of\n * overlaps with form content, accounting for menu drawers and dynamic layouts.\n *\n * The component automatically switches between floating and inline modes based on\n * actual element positions and available space, not viewport breakpoints.\n */\n\n/* Mobile layout adjustments */\n@media (max-width: 768px) {\n .header-content {\n flex-direction: column;\n align-items: stretch;\n gap: var(--spacing-02);\n }\n\n .header-text {\n margin-bottom: var(--spacing-02);\n }\n}\n\n/* Small height screens: Always use header button */\n@media (max-height: 600px) {\n .header-save-button {\n display: block;\n }\n\n .floating-save-button {\n display: none;\n }\n}\n\n.auto-save-status {\n margin-top: var(--spacing-02);\n padding: var(--spacing-01) 0;\n font-size: 12px;\n opacity: 0.8;\n}","import { Component, h, Prop, State, Element, Watch, Event, EventEmitter } from '@stencil/core';\nimport { Guid, UdpFormQuestion } from '../../udp-forms-utils/types';\nimport { UdpFormsFieldTypeEnum, UdpFormsSubmissionStatusEnum } from '../../udp-forms-utils/enums';\nimport { fontOverrideMapping, overrideFont } from '../../udp-forms-utils/utils';\nimport { getIconFromName } from '../../../../data-display/icons/iconUtils';\nimport { UdpFormSubmission } from '../../udp-forms-utils/classes/UdpFormSubmission';\nimport { UdpForm } from '../../udp-forms-utils/classes/UdpForm';\n\n\n@Component({\n tag: 'udp-forms-ui',\n styleUrl: 'udp-forms-ui.css',\n shadow: true,\n})\nexport class UdpFormsUi {\n @Prop() udpForm: UdpForm;\n @Prop() currentValues: { [name: string]: any } = {};\n @Prop() udpFormSubmission: UdpFormSubmission\n @Prop() submitSuccessful: boolean = false;\n @Prop() isLoading: boolean = false;\n @Prop() isSaving: boolean = false;\n @Prop() saveErrorMessage: string | null = null;\n @Prop() showAutoSaveStatus: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() handleSubmit: (values: any) => Promise<void>;\n @Prop() handleChange: (values: { [name: string]: any }) => void;\n @Prop() handleSave: (values: { [name: string]: any }) => Promise<void>;\n @Prop() handleAction: (actionId: Guid, params: Object) => void;\n @Prop() handleFinish: () => void;\n @Prop() clientUserInfo: { id: string | null; displayName: string | null; email: string | null } = {\n id: null,\n displayName: null,\n email: null,\n }; \n @Prop() isSubmitted: boolean = false;\n @Prop() dynamicSections: any[];\n @Prop() duplicateRepeatableSection: any;\n @Prop() deleteRepeatableSection: any;\n @Prop() isShowManualSaveIcon: boolean = false;\n @Prop() performBackgroundSaveAndUpdateLocalSubmissionState: (values: { [name: string]: any }) => Promise<void>;\n\n @State() showSavedMessage: boolean = false;\n\n @Event() formDirtyChange: EventEmitter<boolean>;\n\n @Element() el: HTMLElement;\n\n\n @State() isDialogOpen: boolean = false;\n @State() dialogAction: () => void;\n @State() dialogMessage: string = 'Are you sure you want to delete this section? This section contains links to follow-up forms. Deleting it will remove those links.';\n \n\n private savedMessageTimeoutId: any;\n\n private titleId: string = 'udp-forms-title';\n private descriptionId: string = 'udp-forms-description';\n\n componentDidLoad() {\n this.overrideStyles();\n }\n\n componentDidUpdate() {\n this.overrideStyles();\n }\n\n disconnectedCallback() {\n // Clean up timeout when component is destroyed\n if (this.savedMessageTimeoutId) {\n clearTimeout(this.savedMessageTimeoutId);\n }\n }\n\n @Watch('isSaving')\n watchIsSaving(newValue: boolean, oldValue: boolean) {\n console.log('isSaving watcher triggered:', { oldValue, newValue, saveErrorMessage: this.saveErrorMessage });\n\n // When isSaving changes from true to false (save completed successfully)\n if (oldValue === true && newValue === false && !this.saveErrorMessage) {\n console.log('Setting showSavedMessage to true');\n this.showSavedMessage = true;\n\n // Clear any existing timeout\n if (this.savedMessageTimeoutId) {\n clearTimeout(this.savedMessageTimeoutId);\n }\n\n // Hide the \"Saved\" message after 5 seconds\n this.savedMessageTimeoutId = setTimeout(() => {\n console.log('Hiding saved message after 5 seconds');\n this.showSavedMessage = false;\n }, 5000);\n }\n }\n\n overrideStyles() {\n const shadowRoot = (this as any).el?.shadowRoot;\n shadowRoot?.querySelectorAll('unity-typography').forEach(element => {\n const styleOverride =\n element.id === this.titleId ? this.udpForm?.styleOverrides?.titleText : element.id === this.descriptionId ? this.udpForm?.styleOverrides?.paragraphText : ({} as any);\n\n if (styleOverride?.fontFamily && fontOverrideMapping[styleOverride.fontFamily]) {\n overrideFont(element, fontOverrideMapping[styleOverride.fontFamily]);\n }\n if (styleOverride?.variant) {\n element.setAttribute('variant', styleOverride.variant);\n }\n });\n }\n\n private isSectionContainsFollowUpFormLink(sectionKey: string): boolean {\n const sectionObject = this.udpFormSubmission.data.submissionResponseData[sectionKey]\n\n for (const [_key, questionObject] of Object.entries(sectionObject) as any) {\n if (questionObject?.metadata && questionObject.metadata?.followUpFormSubmissionId) {\n return true;\n }\n }\n\n return false;\n }\n\n render() {\n if (this.isLoading) {\n return (\n <udp-linear-loader />\n );\n }\n\n if (!this.udpForm) {\n return (\n <div class=\"error-banner\">\n <unity-typography variant=\"body2\">Error Loading Form</unity-typography>\n </div>\n );\n }\n\n let questionNumber = 1;\n\n const sectionSet = new Set();\n this.udpForm.formQuestions.forEach(fq => sectionSet.add(fq.section));\n // const orderedSectionNumbers = [...sectionSet].sort((a: number, b: number) => a - b);\n\n const hiddenQuestionTypes = [UdpFormsFieldTypeEnum.Hidden, UdpFormsFieldTypeEnum.Paragraph];\n\n const backgroundOverrides: { backgroundImage?: string | null; backgroundColor?: string | null } = {};\n if (this.udpForm?.styleOverrides?.background?.backgroundImage) {\n // uncomment when we want to allow background images\n //backgroundOverrides.backgroundImage = `url(${this.udpForm?.styleOverrides?.background?.backgroundImage})`;\n } else if (this.udpForm?.styleOverrides?.background?.backgroundColor) {\n backgroundOverrides.backgroundColor = this.udpForm?.styleOverrides?.background?.backgroundColor;\n }\n return (\n <div class={'background'} style={backgroundOverrides}>\n <udp-container maxWidth=\"md\">\n <div class=\"form-container\">\n {!this.submitSuccessful ? (\n \n <stencil-form\n handleSubmit={this.handleSubmit}\n initialValues={this.currentValues}\n handleChange={this.handleChange}\n onDirtyChange={event => this.formDirtyChange.emit(event.detail)}\n >\n {this.readonly && \n (<div class=\"error-banner\">\n <unity-typography variant=\"body2\">View Only Mode. The contents of this form cannot be changed.</unity-typography>\n </div>)}\n <fluent-dialog\n open={this.isDialogOpen}\n message={this.dialogMessage}\n labelOne={'Confirm'}\n labelTwo={'Cancel'}\n actionOne={() => this.dialogAction()}\n actionTwo={() => (this.isDialogOpen = false)}\n />\n {/********** QUESTIONS *********/}\n <div>\n {/* <div class=\"header\" style={this.udpForm?.styleOverrides?.headerBackgroundColor ? { backgroundColor: this.udpForm?.styleOverrides?.headerBackgroundColor } : ''}> */}\n <div class=\"form-section-block\">\n <div\n class=\"form-renderer-header\"\n style={{\n ...(this.udpForm?.styleOverrides?.headerBackgroundColor && {\n backgroundColor: this.udpForm.styleOverrides.headerBackgroundColor,\n }),\n }}\n >\n <unity-typography id={this.titleId} variant={'h6'} color=\"inherit\">\n {this.udpForm.name}\n </unity-typography>\n\n {/* Auto-save status indicator for authenticated users */}\n {this.showAutoSaveStatus && (\n <div class=\"auto-save-status\">\n {/* {this.isSaving && (\n <unity-typography variant=\"body\" color=\"primary\">\n Saving...\n </unity-typography>\n )} */}\n {this.saveErrorMessage && (\n <unity-typography variant=\"body\" color=\"secondary\">\n {this.saveErrorMessage}\n </unity-typography>\n )}\n </div>\n )}\n {this.isShowManualSaveIcon && (\n <udp-save-draft-button\n isVisible={this.isShowManualSaveIcon}\n isSaving={this.isSaving}\n // saveErrorMessage={this.saveErrorMessage}\n showSavedMessage={this.showSavedMessage}\n handleSave={this.handleSave}\n />\n )}\n </div>\n\n <div class=\"form-section-content\">\n <div class=\"items\">\n <div class=\"form-section-text\">\n <unity-typography id={this.descriptionId} variant={this.udpForm?.styleOverrides?.paragraphText?.variant ?? 'body'} color=\"inherit\">\n {this.udpForm.description}\n </unity-typography>\n </div>\n </div>\n </div>\n </div>\n {/* Save Button - moves between header and floating based on space */}\n {this.dynamicSections.map((section, sIndex) => {\n return (\n <div class=\"form-section-block\">\n <div class=\"form-section-header\">\n <div class=\"form-section-header-title\">\n <unity-typography variant=\"h6\" color=\"inherit\">\n {`${section.title}${section.sectionPositionSuffix > 1 ? ` (${section.sectionPositionSuffix})` : ''}`}\n </unity-typography>\n </div>\n <div class=\"form-section-header-actions\">\n {/* // Only show the add button if the section is repeatable and is the last in the repeat group */}\n {section.sectionProperties.isRepeatable && this.dynamicSections.filter(s => s.id === section.id).length === section.sectionPositionSuffix && !this.readonly && (\n <stencil-icon-button icon={getIconFromName('add')} tooltip=\"Repeat This Section\" onClick={() => this.duplicateRepeatableSection(sIndex)} />\n )}\n {/* // show the delete button if the section is repeatable and not the original section */}\n {!section.isOriginalSection && !this.readonly && (\n <stencil-icon-button \n icon={getIconFromName('subtract')} \n tooltip=\"Delete This Repeated Section\" \n onClick={\n () => {\n // e.stopPropagation();\n if (this.isSectionContainsFollowUpFormLink(`${section.name}_${section.sectionPositionSuffix}`)) {\n this.dialogAction = async () => {\n this.deleteRepeatableSection(sIndex)\n await this.performBackgroundSaveAndUpdateLocalSubmissionState(this.udpFormSubmission.data.submissionResponseData);\n this.isDialogOpen = false;\n }; \n } else {\n this.deleteRepeatableSection(sIndex)\n }\n \n this.isDialogOpen = true;\n }} />\n )}\n </div>\n </div>\n\n <div class=\"form-section-content\">\n <div class=\"items\">\n <div class=\"form-section-text\">\n <unity-typography variant=\"body\" color=\"inherit\">\n {section.sectionText}\n </unity-typography>\n </div>\n\n <div>\n {section.formQuestions.map((question: UdpFormQuestion) => {\n const isHidden = hiddenQuestionTypes.includes(question.fieldTypeId);\n const num: number = questionNumber;\n if (!isHidden) questionNumber++;\n\n const sectionKey = section.sectionPositionSuffix > 1 ? `${section.name}_${section.sectionPositionSuffix}` : `${section.name}`\n\n return (\n <div class=\"item\">\n <udp-question\n styleOverrides={{\n helperText: this.udpForm.styleOverrides?.helperText,\n paragraphText: this.udpForm.styleOverrides?.paragraphText,\n questionText: this.udpForm.styleOverrides?.questionText,\n }}\n question={question}\n questionNumber={num}\n value={this.currentValues?.[sectionKey]?.[question.name]?.value ?? ''}\n disabled={this.disabled}\n readonly={this.readonly}\n key={question.questionIdentifierKey}\n currentValues={this.currentValues}\n clientUserInfo={this.clientUserInfo}\n udpFormSubmission={this.udpFormSubmission}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </div>\n );\n })}\n {this.udpFormSubmission?.status != UdpFormsSubmissionStatusEnum.Submitted && ( \n <div class=\"footer\">\n <input\n disabled={this.isLoading || this.disabled || this.readonly}\n type=\"submit\"\n value=\"Submit\"\n class=\"submit\"\n id=\"udpRecord-udp-forms-renderer-Submit\"\n onClick={() => {\n console.log('Submit button clicked');\n // Let the form handle the submit naturally\n }}\n />\n </div>\n )}\n </div>\n </stencil-form>\n ) : (\n //if the form has been submit, display success message with a button to trigger the action associated to the form\n <div class=\"center-div\">\n <udp-ambient-card>\n <div class=\"submit-card\">\n <unity-typography>Thank you for your submission.</unity-typography>\n {/* // No action configured for now. */}\n {/* <div class=\"finish-button\">\n <custom-button onClick={this.handleFinish}>Back</custom-button>\n </div> */}\n </div>\n </udp-ambient-card>\n </div>\n )}\n </div>\n </udp-container>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -17,7 +17,7 @@ const UdpQuestionComments = /*@__PURE__*/ proxyCustomElement(class UdpQuestionCo
|
|
|
17
17
|
this.__attachShadow();
|
|
18
18
|
this.questionCommentAction = createEvent(this, "questionCommentAction");
|
|
19
19
|
this.commentFieldProps = {};
|
|
20
|
-
this.
|
|
20
|
+
this.currentValues = {};
|
|
21
21
|
this.userId = null;
|
|
22
22
|
}
|
|
23
23
|
emitQuestionCommentAction(type, commentId) {
|
|
@@ -45,7 +45,7 @@ const UdpQuestionComments = /*@__PURE__*/ proxyCustomElement(class UdpQuestionCo
|
|
|
45
45
|
render() {
|
|
46
46
|
var _a, _b;
|
|
47
47
|
const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');
|
|
48
|
-
const questionData = ((_b = (_a = this.
|
|
48
|
+
const questionData = ((_b = (_a = this.currentValues) === null || _a === void 0 ? void 0 : _a[sectionName]) === null || _b === void 0 ? void 0 : _b[questionName]) || {
|
|
49
49
|
comments: [],
|
|
50
50
|
draftComments: [],
|
|
51
51
|
};
|
|
@@ -62,9 +62,9 @@ const UdpQuestionComments = /*@__PURE__*/ proxyCustomElement(class UdpQuestionCo
|
|
|
62
62
|
: [];
|
|
63
63
|
// enforce single active action UX:
|
|
64
64
|
// - Only one draft is shown/active at a time (pick first draft if present)
|
|
65
|
-
// detect any draft anywhere in the form's
|
|
65
|
+
// detect any draft anywhere in the form's currentValues
|
|
66
66
|
const activeDraft = draftComments.length > 0 ? draftComments[0] : null;
|
|
67
|
-
const isAnyQuestionContainsActiveDraft = Object.values(this.
|
|
67
|
+
const isAnyQuestionContainsActiveDraft = Object.values(this.currentValues || {}).some((section) => Object.values(section || {}).some((q) => {
|
|
68
68
|
if (!q)
|
|
69
69
|
return false;
|
|
70
70
|
const drafts = q.draftComments;
|
|
@@ -91,7 +91,7 @@ const UdpQuestionComments = /*@__PURE__*/ proxyCustomElement(class UdpQuestionCo
|
|
|
91
91
|
}, [257, "udp-question-comments", {
|
|
92
92
|
"question": [16],
|
|
93
93
|
"commentFieldProps": [16],
|
|
94
|
-
"
|
|
94
|
+
"currentValues": [16],
|
|
95
95
|
"userId": [1, "user-id"]
|
|
96
96
|
}]);
|
|
97
97
|
function defineCustomElement() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-question-comments2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.css?tag=udp-question-comments&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.tsx"],"sourcesContent":[".question-comment-display {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03);\n margin: var(--spacing-05) 0;\n border: 1px solid var(--border-color, #ccc);\n border-radius: 6px;\n padding: var(--spacing-05) var(--spacing-04);\n /* Force long words to wrap to prevent box overflow */\n overflow-wrap: break-word; \n word-wrap: break-word;\n}\n\n/* Target the typography component that holds the comment body */\n.question-comment-display unity-typography:not(.question-comment-header) {\n display: block; /* Allows the element to respect width/wrapping */\n white-space: pre-wrap; /* Respects newlines (\\n) and auto-wraps text */\n word-break: break-word; /* Safety for very long strings of characters */\n}\n\n.question-comment-display > .question-comment-header {\n position: absolute;\n bottom: -0.6em; \n right: 1em;\n background: white; \n padding: 0 0.4em;\n font-size: 0.85em;\n white-space: nowrap; /* Keeps the \"Name on Date\" on one line */\n}\n\n.question-comment-add-comment-button {\n display: flex;\n justify-content: center;\n margin: var(--spacing-03) 0;\n}\n\n.question-comment-action-container {\n display: flex;\n justify-content: end;\n}","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"],"version":3}
|
|
1
|
+
{"file":"udp-question-comments2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.css?tag=udp-question-comments&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.tsx"],"sourcesContent":[".question-comment-display {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03);\n margin: var(--spacing-05) 0;\n border: 1px solid var(--border-color, #ccc);\n border-radius: 6px;\n padding: var(--spacing-05) var(--spacing-04);\n /* Force long words to wrap to prevent box overflow */\n overflow-wrap: break-word; \n word-wrap: break-word;\n}\n\n/* Target the typography component that holds the comment body */\n.question-comment-display unity-typography:not(.question-comment-header) {\n display: block; /* Allows the element to respect width/wrapping */\n white-space: pre-wrap; /* Respects newlines (\\n) and auto-wraps text */\n word-break: break-word; /* Safety for very long strings of characters */\n}\n\n.question-comment-display > .question-comment-header {\n position: absolute;\n bottom: -0.6em; \n right: 1em;\n background: white; \n padding: 0 0.4em;\n font-size: 0.85em;\n white-space: nowrap; /* Keeps the \"Name on Date\" on one line */\n}\n\n.question-comment-add-comment-button {\n display: flex;\n justify-content: center;\n margin: var(--spacing-03) 0;\n}\n\n.question-comment-action-container {\n display: flex;\n justify-content: end;\n}","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"],"version":3}
|
|
@@ -37,7 +37,7 @@ const UdpQuestion = /*@__PURE__*/ proxyCustomElement(class UdpQuestion extends H
|
|
|
37
37
|
this.launchFollowUpFormSideSheet = createEvent(this, "launchFollowUpFormSideSheet");
|
|
38
38
|
this.disabled = false;
|
|
39
39
|
this.readonly = false;
|
|
40
|
-
this.
|
|
40
|
+
this.currentValues = {};
|
|
41
41
|
this.clientUserInfo = {
|
|
42
42
|
id: null,
|
|
43
43
|
displayName: null,
|
|
@@ -246,7 +246,7 @@ const UdpQuestion = /*@__PURE__*/ proxyCustomElement(class UdpQuestion extends H
|
|
|
246
246
|
'question-container': true,
|
|
247
247
|
} }, 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 && ((() => {
|
|
248
248
|
var _a;
|
|
249
|
-
const metadata = (_a = this.
|
|
249
|
+
const metadata = (_a = this.currentValues[sectionKey][questionKey]) === null || _a === void 0 ? void 0 : _a.metadata;
|
|
250
250
|
const followUpId = metadata === null || metadata === void 0 ? void 0 : metadata.followUpFormSubmissionId;
|
|
251
251
|
if (followUpId) {
|
|
252
252
|
// Valid GUID → show arrow icon to open follow-up form
|
|
@@ -260,7 +260,7 @@ const UdpQuestion = /*@__PURE__*/ proxyCustomElement(class UdpQuestion extends H
|
|
|
260
260
|
this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });
|
|
261
261
|
} }));
|
|
262
262
|
}
|
|
263
|
-
})()))), 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,
|
|
263
|
+
})()))), 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 }))));
|
|
264
264
|
}
|
|
265
265
|
get el() { return this; }
|
|
266
266
|
static get watchers() { return {
|
|
@@ -279,7 +279,7 @@ const UdpQuestion = /*@__PURE__*/ proxyCustomElement(class UdpQuestion extends H
|
|
|
279
279
|
"disabled": [4],
|
|
280
280
|
"readonly": [4],
|
|
281
281
|
"styleOverrides": [16],
|
|
282
|
-
"
|
|
282
|
+
"currentValues": [16],
|
|
283
283
|
"clientUserInfo": [16],
|
|
284
284
|
"udpFormSubmission": [16],
|
|
285
285
|
"_fieldComponent": [32],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-question2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-question/udp-question.css?tag=udp-question&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question.tsx"],"sourcesContent":["\n.hidden {\n display: none;\n}\n\n.question-container {\n border-top: 1px solid rgba(0, 0, 0, 0.08); \n padding-top: 1rem; \n}\n\n.question-title-and-helper-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03)\n}\n\n.question-title-and-followup-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","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"],"version":3}
|
|
1
|
+
{"file":"udp-question2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/forms/udp-forms/udp-question/udp-question.css?tag=udp-question&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question.tsx"],"sourcesContent":["\n.hidden {\n display: none;\n}\n\n.question-container {\n border-top: 1px solid rgba(0, 0, 0, 0.08); \n padding-top: 1rem; \n}\n\n.question-title-and-helper-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03)\n}\n\n.question-title-and-followup-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","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"],"version":3}
|
package/dist/components/utils.js
CHANGED
|
@@ -39,20 +39,20 @@ const dateFormatter = (dateString, formatStyle = 'long') => {
|
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
41
|
// eg. { section1: { question1: { value: '', comments: [], metadata: {} }, question2: { value: '', comments: [], metadata: {} } }, section2: { question3: { value: '', comments: [], metadata: {} } } }
|
|
42
|
-
const
|
|
43
|
-
const
|
|
42
|
+
const buildEmptyCurrentValues = (masterForm) => {
|
|
43
|
+
const currentValues = {};
|
|
44
44
|
for (const section of masterForm.udpFormUdpFormSection) {
|
|
45
|
-
|
|
45
|
+
currentValues[section.name] = {};
|
|
46
46
|
const questionsOfSection = masterForm.formQuestions.filter(question => question.formSectionId == section.id);
|
|
47
47
|
for (const question of questionsOfSection) {
|
|
48
|
-
|
|
48
|
+
currentValues[section.name][question.name] = {
|
|
49
49
|
value: '', // default empty value
|
|
50
50
|
comments: [], // default empty comments array
|
|
51
51
|
metadata: {}, // default metadata object
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
return
|
|
55
|
+
return currentValues;
|
|
56
56
|
};
|
|
57
57
|
const overrideFont = (element, cssVariable) => {
|
|
58
58
|
var _a, _b, _c, _d;
|
|
@@ -81,7 +81,7 @@ const fontOverrideMapping = {
|
|
|
81
81
|
Arial: "--font-override-arial"
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
-
export {
|
|
84
|
+
export { buildEmptyCurrentValues as b, dateFormatter as d, fontOverrideMapping as f, overrideFont as o };
|
|
85
85
|
//# sourceMappingURL=utils.js.map
|
|
86
86
|
|
|
87
87
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"utils.js","mappings":"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","names":[],"sources":["src/components/forms/udp-forms/utils/utils.ts"],"sourcesContent":["// take a masterForm's structure and build the empty
|
|
1
|
+
{"file":"utils.js","mappings":"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","names":[],"sources":["src/components/forms/udp-forms/udp-forms-utils/utils.ts"],"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}"],"version":3}
|