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
|
-
{"version":3,"file":"udp-forms-builder.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.css?tag=udp-forms-builder&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.tsx"],"sourcesContent":[":host {\n display: block;\n --udp-form-primary-color: #007bff; /* Example primary color */\n --udp-form-spacing-unit: 16px;\n\n}\n\n/* ################### FORM PAGE ################### */\n.udp-forms-page {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-06, 32px);\n /* background-color: white; */\n padding: var(--spacing-06, 32px);\n padding-bottom: var(--spacing-12);\n}\n\n\n.form-section-questions-container {\n display: flex;\n flex-direction: column;\n}\n\n\n/* ################### FORM METADATA ################### */\n\n\n.form-details-container {\n display: flex;\n flex-direction: column;\n /* align-items: flex-start; */\n /* margin: 0 2rem; */\n /* gap: var(--spacing-05, 24px); */\n padding: var(--spacing-05, 24px);\n background-color: var(--card-background-color, white);\n}\n\n.form-details-version-container {\n margin-bottom: var(--spacing-05)\n}\n\n.udp-form-builder-field-container,\n.udp-forms-builder-item-generic-configs,\n.udp-forms-builder-item-specific-configs {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04, 16px);\n}\n\n/* ################### SECTIONS ################### */\n.form-section {\n /* background-color: var(--primary-color-alpha-15); */\n /* border: 2px solid var(--primary-color-alpha-50); */\n /* border-radius: 8px; */\n /* padding: var(--spacing-04); */\n}\n\n\n.form-section-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: var(--primary-color-dark, #000);\n color: var(--primary-contrast-text, #FFF);\n padding: var(--spacing-04, 16px) var(--spacing-05, 24px);\n /* margin-bottom: var(--spacing-04); */\n align-items: center;\n}\n\n.add-question-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.question-editor-container {\n padding: var(--spacing-05, 24px);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05, 24px);\n}\n\n.add-question-to-section-button-container {\n padding: var(--spacing-02, 8px) 0;\n margin: auto;\n}\n\n.sortable-ghost {\n opacity: 0.5;\n transform: scale(0.98);\n background: #f4f4f4;\n border: 1px dashed #ccc;\n}\n\n.sortable-chosen {\n background: #eef6ff;\n box-shadow: 0 0 4px 2px rgba(51, 153, 255, 0.3);\n}\n\n.form-question-drag-handle {\n transform: rotate(90deg);\n cursor: grab;\n}\n\n.form-question-drag-handle:active {\n cursor: grabbing;\n}\n\n.form-question-drag-handle .drag-wrapper {\n cursor: inherit;\n}\n\n.form-question-drag-handle stencil-icon-button {\n pointer-events: none; /* disables click so cursor applies from parent */\n}\n\n\n","import { Component, h, State, Prop, Watch } from '@stencil/core';\nimport { Guid } from '../utils/types';\nimport { makeApiCall } from '../../../../udp-utilities/api/makeApiCall/makeApiCall';\nimport questionsTemplate from './udp-forms-builder-question-template';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { ConfigService } from '../../../../udp-utilities/api-config';\nimport { getCurrentTenantId } from 'src/udp-utilities/tenant/tenantUtils';\nimport Sortable from 'sortablejs';\nimport { Element } from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { styleOverrideDefault, formSectionDefault, formMetadataDefault, deepCloneFormSections } from './forms-builder-utils';\nimport { UdpFormsPageIdEnum, UdpFormsTypeEnum } from '../utils/enums';\nimport { UdpFormMetadata } from '../utils/types';\n\n@Component({\n tag: 'udp-forms-builder',\n styleUrl: 'udp-forms-builder.css',\n shadow: true,\n})\nexport class UdpFormsBuilder {\n @Element() private hostEl: HTMLElement;\n\n @Prop() formId: Guid;\n @Prop() version: number;\n @Prop() enqueueSnackbar: Function;\n @Prop() closeSnackbar: Function;\n @Prop() history: { push: (path: string) => void };\n @Prop() isFollowUpFormConfigOn: boolean = false; // allow form engine to use follow-up forms feature\n @Prop() isPublicFormConfigOn: boolean = false; // allow form engine to use public forms feature\n @Prop() isCommentingConfigOn: boolean = true; // allow form engine to use commenting feature\n @Prop() formsBuilderUrlPath: string = ''; // alternative path for redirect to the form builder page. If not provided, use default path.\n\n\n @State() formMetadata: UdpFormMetadata = formMetadataDefault as UdpFormMetadata;\n @State() formSections: any[] = [];\n @State() formSectionsDraft: any[] = [];\n @State() isNewForm: boolean = true;\n @State() isMostRecentFormVersion: boolean = false;\n\n @State() isError: boolean = false;\n @State() isLoading: boolean = false;\n\n @State() isShowStyleOverrides: boolean = false;\n @State() isStyleSheetOpen: boolean = false;\n @State() isDialogOpen: boolean = false;\n @State() showMenuAtIndex: { sIndex: number; qIndex: number } | null = null;\n @State() editingQuestion: { sIndex: number; qIndex: number } | null = null;\n @State() editingSection: { sIndex: number } | null = null;\n @State() isQuestionEditorOpen: boolean = false;\n @State() isSectionEditorOpen: boolean = false;\n @State() lookupOptionsDataProcessed: any[] = [];\n\n\n @State() dialogAction: (() => void) | null = null;\n @State() dialogMessage: string = 'Are you sure you want to delete this?';\n\n\n\n private sortableInstances: Sortable[] = [];\n private formsBuilderPageId = UdpFormsPageIdEnum.FormBuilderPageId;\n private formTypeOptions: { value: string; label: string }[] = Object.keys(UdpFormsTypeEnum)\n .filter(key => isNaN(Number(key))) // only keep the named keys\n .map(key => ({\n value: String(UdpFormsTypeEnum[key as keyof typeof UdpFormsTypeEnum]), // cast to string\n label: key,\n }));\n\n // ********************************** API CALLS **********************************\n\n async initializeForm() {\n // set default form values\n this.formMetadata.isPrivate = formMetadataDefault.isPrivate;\n this.formMetadata.tenantId = getCurrentTenantId();\n this.formMetadata.type = formMetadataDefault.type;\n this.formMetadata.version = formMetadataDefault.version;\n this.formMetadata.name = formMetadataDefault.name;\n this.formMetadata.description = formMetadataDefault.description;\n this.formMetadata.styleOverrides = styleOverrideDefault;\n\n try {\n this.isLoading = true;\n\n // get lookup options\n const lookupResponse = await makeApiCall('GET', ConfigService.productV1ApiUrl + '/UdpLookup');\n\n if (!lookupResponse) {\n throw new Error(`Error fetching lookup data`);\n }\n\n\n this.lookupOptionsDataProcessed = lookupResponse.map(lookupObj => {\n return { ...lookupObj, value: lookupObj.id, label: lookupObj.name };\n });\n\n // determine if it's to create a new form, view an old form, or create a new version\n if (this.formId && this.version) {\n const formDataResponse = await makeApiCall('GET', `${ConfigService.productV1ApiUrl}/UdpForm/${this.formId}/${this.version}/describe`);\n const formLatestVersionResponse = await makeApiCall('GET', `${ConfigService.productV1ApiUrl}/UdpForm/${this.formId}/describe`);\n\n this.isNewForm = false;\n\n if (!formDataResponse || !formLatestVersionResponse || !formDataResponse.id || !formLatestVersionResponse) {\n throw new Error(`Error fetching form data`);\n }\n\n // view only mode\n if (formDataResponse.id == formLatestVersionResponse.id && formDataResponse.version == formLatestVersionResponse.version) {\n this.isMostRecentFormVersion = true;\n }\n\n // Clone formSections and initialize empty question arrays\n const tempSections = structuredClone(formDataResponse.udpFormUdpFormSection).map(section => ({ ...section, formQuestions: [] }));\n tempSections.forEach(section => {\n if(!section.sectionProperties) {\n section.sectionProperties = {}\n } else {\n section.sectionProperties = JSON.parse(section.sectionProperties)\n }\n })\n\n\n // Map questions into their respective sections\n formDataResponse.formQuestions.forEach(question => {\n const section = tempSections.find(s => s.id === question.formSectionId);\n if (section) {\n const fieldProps = { ...question.fieldProperties };\n\n // Remove items if lookupId exists\n if ('lookupId' in fieldProps && 'items' in fieldProps) {\n delete fieldProps.items;\n }\n\n section.formQuestions.push({\n ...question,\n fieldProperties: fieldProps,\n questionTypeName: this.getQuestionTypeName(question.fieldTypeId),\n isContainsOptionItems: this.getIsContainsOptionItems(question.fieldTypeId),\n icon: this.getIconForQuestion(question.fieldTypeId),\n });\n\n\n }\n });\n\n // Sort questions within each section\n tempSections.forEach(section => {\n section.formQuestions.sort((a, b) => a.questionOrder - b.questionOrder);\n });\n\n // Sort sections\n tempSections.sort((a, b) => a.order - b.order)\n\n\n const { ...metadata } = formDataResponse;\n\n // Merge fetched styleOverrides with defaults\n metadata.styleOverrides = this.deepMerge(styleOverrideDefault, JSON.parse(metadata.styleOverrides) || {});\n\n // Set form metadata and sections\n this.formMetadata = metadata;\n this.formSections = tempSections;\n this.isLoading = false;\n }\n } catch (e) {\n this.isError = true;\n\n this.enqueueSnackbar('Error loading form data', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n } finally {\n this.isLoading = false;\n }\n }\n\n async submitForm() {\n if (!this.isValidForm()) {\n return;\n }\n\n this.isLoading = true;\n\n try {\n // Prepare and send form metadata\n const processedFormMetadata = {\n name: this.formMetadata.name,\n description: this.formMetadata.description,\n tenantId: this.formMetadata.tenantId,\n isPrivate: this.formMetadata.isPrivate,\n type: this.formMetadata.type,\n styleOverrides: JSON.stringify(this.formMetadata.styleOverrides),\n id: this.formMetadata.id,\n version: this.formMetadata.version,\n };\n\n\n const formUrl = `${ConfigService.productV1ApiUrl}/UdpForm${this.isMostRecentFormVersion ? '/versions' : ''}`;\n const formResponse = await makeApiCall('POST', formUrl, processedFormMetadata);\n\n const formId = formResponse.id;\n const formVersion = formResponse.version;\n\n if (!formResponse || !formResponse.id || !formResponse.version) {\n throw new Error(`Invalid form response: ${JSON.stringify(formResponse)}`);\n }\n\n // Prepare and send questions in order\n let sectionOrder = 0;\n let questionOrder = 0;\n const questionRequests: Promise<any>[] = [];\n\n for (const [sIndex, section] of this.formSections.entries()) {\n sectionOrder += 1;\n\n const processedSectionData = {\n ...section,\n formId,\n formVersion,\n order: sectionOrder,\n sectionProperties: JSON.stringify(section.sectionProperties),\n name: `section${sectionOrder}`\n };\n\n const sectionResponse = await makeApiCall('POST', `${ConfigService.productV1ApiUrl}/UdpFormSection`, processedSectionData);\n\n if (!sectionResponse || !sectionResponse.id) {\n throw new Error(`Invalid section response: ${JSON.stringify(sectionResponse)}`);\n }\n\n const sectionId = sectionResponse.id;\n\n for (const question of section.formQuestions) {\n questionOrder += 1;\n\n const processedQuestionData = {\n ...question,\n formId,\n formVersion,\n section: sIndex + 1,\n questionOrder,\n formSectionId: sectionId,\n name: `question${questionOrder}`,\n };\n\n const questionRequest = makeApiCall('POST', `${ConfigService.productV1ApiUrl}/UdpFormQuestion`, processedQuestionData);\n questionRequests.push(questionRequest);\n }\n }\n\n // Wait for all questions to be submitted\n await Promise.all(questionRequests);\n\n this.enqueueSnackbar('Success', {\n variant: 'success',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n\n if(this.formsBuilderUrlPath) {\n this.history.push(`${this.formsBuilderUrlPath}&udpf_formId=${formId}&udpf_version=${formVersion}`);\n return \n }\n\n this.history.push(`/page/${this.formsBuilderPageId}?udpf_formId=${formId}&udpf_version=${formVersion}`);\n } catch (error) {\n console.error('Form submission error:', error);\n this.enqueueSnackbar('Error saving form', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n } finally {\n this.isLoading = false;\n }\n }\n\n // ********************************** STENCIL RELATED **********************************\n\n componentDidLoad() {\n this.initializeSortable();\n }\n\n componentDidUpdate() {\n this.initializeSortable();\n }\n\n componentWillLoad() {\n this.initializeForm();\n }\n\n // @Watch('formSections')\n // onFormSectionsChange(newValue: any[]) {\n // console.log(newValue);\n // }\n\n // @Watch('formMetadata')\n // onFormMetadataChange(newValue) {\n // console.log(newValue);\n // }\n\n @Watch('formId')\n @Watch('version')\n onFormIdOrVersionChange() {\n this.initializeForm();\n }\n\n // ********************************** SORTABLE LOGIC **********************************\n\n private initializeSortable() {\n // sortable only if the form is editable\n if (!(this.isNewForm || this.isMostRecentFormVersion)) {\n return;\n }\n\n this.sortableInstances.forEach(instance => instance.destroy());\n this.sortableInstances = [];\n\n this.formSections.forEach((_, sIndex) => {\n const el = this.hostEl.shadowRoot.querySelector(`#section-${sIndex}`);\n if (el) {\n const sortable = new Sortable(el, {\n animation: 200,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n draggable: 'udp-forms-builder-question-item',\n handle: '.form-question-drag-handle',\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n direction: 'vertical',\n forceFallback: false,\n dragoverBubble: false,\n swapThreshold: 0.6,\n onEnd: evt => this.handleDragEnd(evt, sIndex),\n });\n this.sortableInstances.push(sortable);\n }\n });\n }\n\n private handleDragEnd(evt: Sortable.SortableEvent, sIndex: number) {\n const oldIndex = evt.oldIndex;\n const newIndex = evt.newIndex;\n if (oldIndex === newIndex || oldIndex == null || newIndex == null) return;\n\n const sectionCopy = structuredClone(this.formSections[sIndex]);\n const [moved] = sectionCopy.formQuestions.splice(oldIndex, 1);\n sectionCopy.formQuestions.splice(newIndex, 0, moved);\n\n // const newFormSections = [...this.formSections];\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections[sIndex] = sectionCopy;\n\n this.formSections = newFormSections;\n }\n\n // ********************************** SIDE SHEET LOGIC **********************************\n\n private toggleStyleSheet = () => {\n this.isStyleSheetOpen = !this.isStyleSheetOpen;\n };\n\n // ********************************** QUESTION HANDLERS **********************************\n private getQuestionTypeName = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.questionTypeName : 'Unknown';\n };\n\n private getIsContainsOptionItems = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.isContainsOptionItems || false : false;\n };\n\n private getIconForQuestion = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.icon : null;\n };\n\n private handleQuestionDelete = (sIndex: number, qIndex: number) => {\n const sectionsCopy = deepCloneFormSections(this.formSections);\n sectionsCopy[sIndex].formQuestions.splice(qIndex, 1);\n this.formSections = sectionsCopy;\n };\n\n private handleQuestionCopy = (sIndex: number, qIndex: number) => {\n const sectionsCopy = deepCloneFormSections(this.formSections);\n const targetQuestion = this.formSections[sIndex].formQuestions[qIndex];\n\n const newQuestion = {\n ...targetQuestion,\n questionText: (targetQuestion.questionText || '') + ' (Copy)',\n id: uuidv4(),\n };\n\n sectionsCopy[sIndex].formQuestions.splice(qIndex + 1, 0, newQuestion);\n this.formSections = sectionsCopy;\n };\n\n private handleQuestionClick = (sIndex: number, qIndex: number) => {\n this.editingQuestion = { sIndex, qIndex };\n this.isQuestionEditorOpen = true;\n this.formSectionsDraft = deepCloneFormSections(this.formSections);\n };\n\n private closeQuestionEditor = () => {\n this.isQuestionEditorOpen = false;\n this.editingQuestion = null;\n this.formSectionsDraft = null;\n };\n\n private addQuestionOfType = (defaultQuestionObj, sIndex?: number, qIndex?: number): { sIndex: number; qIndex: number } => {\n const newQuestion = {\n questionTypeName: defaultQuestionObj.questionTypeName,\n fieldTypeId: defaultQuestionObj.fieldTypeId,\n fieldProperties: defaultQuestionObj.defaultFieldProperties,\n helperText: '',\n questionText: '',\n section: sIndex !== undefined ? sIndex + 1 : this.formSections.length > 0 ? this.formSections[this.formSections.length - 1].formQuestions[0].section : 1, // Assign section based on sIndex or last section\n isContainsOptionItems: defaultQuestionObj.isContainsOptionItems,\n icon: defaultQuestionObj.icon,\n required: false,\n form: null,\n isPrivate: true,\n id: uuidv4(),\n };\n\n const newFormSections = deepCloneFormSections(this.formSections); // Use helper to get a deep copy\n\n let actualSIndex = sIndex;\n let actualQIndex = qIndex;\n\n if (sIndex !== undefined && qIndex !== undefined) {\n // Insert at specific index\n if (newFormSections[sIndex].formQuestions) {\n newFormSections[sIndex].formQuestions.splice(qIndex, 0, newQuestion);\n } else {\n // fallback\n const lastSectionIdx = newFormSections.length - 1;\n newFormSections[lastSectionIdx].formQuestions.push(newQuestion);\n actualSIndex = lastSectionIdx;\n actualQIndex = newFormSections[lastSectionIdx].formQuestions.length - 1;\n }\n } else {\n // Append to the last section or create a new one\n const lastSectionIdx = newFormSections.length - 1;\n if (lastSectionIdx < 0 || newFormSections[lastSectionIdx].formQuestions.length === 0) {\n newFormSections.push({ ...formSectionDefault, formQuestions: [newQuestion] });\n actualSIndex = newFormSections.length - 1;\n actualQIndex = 0;\n } else {\n newFormSections[lastSectionIdx].formQuestions.push(newQuestion);\n actualSIndex = lastSectionIdx;\n actualQIndex = newFormSections[lastSectionIdx].formQuestions.length - 1;\n }\n }\n\n // this.formSections = newFormSections;\n this.formSectionsDraft = newFormSections;\n if (this.showMenuAtIndex) this.showMenuAtIndex = null;\n\n return { sIndex: actualSIndex, qIndex: actualQIndex };\n };\n\n private deepMerge(target: any, source: any): any {\n const output = { ...target };\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n output[key] = this.deepMerge(target[key] || {}, source[key]);\n } else {\n output[key] = source[key];\n }\n }\n return output;\n }\n\n // ********************************** SECTION HANDLERS **********************************\n\n private handleSectionMoveDown = (sIndex: number) => {\n if (sIndex >= this.formSections.length - 1) return;\n\n const sectionsCopy = [...this.formSections];\n [sectionsCopy[sIndex], sectionsCopy[sIndex + 1]] = [sectionsCopy[sIndex + 1], sectionsCopy[sIndex]];\n this.formSections = sectionsCopy;\n };\n\n private handleSectionMoveUp = (sIndex: number) => {\n if (sIndex <= 0) return;\n\n const sectionsCopy = [...this.formSections];\n [sectionsCopy[sIndex], sectionsCopy[sIndex - 1]] = [sectionsCopy[sIndex - 1], sectionsCopy[sIndex]];\n this.formSections = sectionsCopy;\n };\n\n private handleSectionDelete = (sIndex: number) => {\n const newFormSections = [...this.formSections];\n newFormSections.splice(sIndex, 1);\n this.formSections = newFormSections;\n };\n\n private updateFormSectionsWithDraft = () => {\n this.formSections = this.formSectionsDraft;\n this.formSectionsDraft = null;\n };\n\n private hasUnsavedFormSectionsChanges = (): boolean => {\n // return !isEqual(this.formSections, this.formSectionsDraft); // NEED TO INSTALL PACKAGE\n return JSON.stringify(this.formSections) !== JSON.stringify(this.formSectionsDraft); // Breaks on circular refs or non-serializable types (like Dates, Maps, etc.)\n };\n\n private handleSectionEditClick = (sIndex: number) => {\n this.editingSection = { sIndex };\n this.isSectionEditorOpen = true;\n this.formSectionsDraft = deepCloneFormSections(this.formSections);\n };\n\n private closeSectionEditor = () => {\n this.isSectionEditorOpen = false;\n this.editingSection = null;\n this.formSectionsDraft = null;\n };\n\n // ********************************** FORM VALIDATION HELPERS **********************************\n\n private isValidForm(): boolean {\n return this.validateFormMetadata() && this.validateFormSections() && this.validateAllQuestions() ;\n }\n\n private validateFormMetadata(): boolean {\n if (!this.formMetadata.name?.trim()) {\n this.enqueueSnackbar('Please enter a form name.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n\n return true;\n }\n\n private validateFormSections(): boolean {\n if (this.formSections.length < 1) {\n this.enqueueSnackbar('Please add at least one section to the form.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n\n return false;\n }\n\n for (let sIndex = 0; sIndex < this.formSections.length; sIndex++) {\n const formSection = this.formSections[sIndex];\n const questions = formSection?.formQuestions || [];\n\n if (questions.length < 1) {\n const sectionTitle = formSection?.title ? `\"${formSection.title}\"` : `#${sIndex + 1}`;\n this.enqueueSnackbar(`Section ${sectionTitle} must contain at least one question.`, {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n }\n\n return true;\n }\n\n private validateAllQuestions(): boolean {\n for (let sIndex = 0; sIndex < this.formSections.length; sIndex++) {\n const formSection = this.formSections[sIndex];\n const questions = formSection?.formQuestions || [];\n for (let qIndex = 0; qIndex < questions.length; qIndex++) {\n const isValid = this.validateQuestionItem(sIndex, qIndex);\n if (!isValid) {\n this.enqueueSnackbar('Please validate all questions.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n }\n }\n return true;\n }\n\n private validateQuestionItem(sIndex: number, qIndex: number): boolean {\n const questionItem = this.formSections[sIndex].formQuestions[qIndex];\n // Respect template metadata for optional question text (e.g., Paragraph)\n const template = questionsTemplate.find(q => q.fieldTypeId === questionItem.fieldTypeId);\n const requiresQuestionText = !(template && (template as any).questionTextOptional);\n if (requiresQuestionText && !questionItem.questionText) {\n return false;\n }\n\n if (questionItem.isContainsOptionItems) {\n const fieldProps = questionItem.fieldProperties;\n\n // If there's a lookupId, assume it's valid and skip item validation\n if (!fieldProps?.lookupId) {\n // If no items or empty, invalid\n if (!Array.isArray(fieldProps?.items) || fieldProps.items.length === 0) {\n return false;\n }\n\n // Check that each item has both display and value\n const invalidItemExists = fieldProps.items.some(item => !item.display || !item.value);\n\n if (invalidItemExists) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n\n render() {\n if (this.isError) {\n return <div> There is an Error With the Form Builder</div>;\n }\n\n const isEditable = this.isNewForm || this.isMostRecentFormVersion;\n\n return (\n <div>\n {/* FIXME: Review this */}\n <primary-action-header\n title={'UDP Form Builder'}\n actionButtonLabel={isEditable ? (this.isMostRecentFormVersion ? `Create New Version (v.${this.version + 1})` : 'Create New Form') : ''}\n primaryActionClick={isEditable ? () => this.submitForm() : null}\n // HIDE STYLE OVERRIDE IN UI\n defaultActionButtons={\n isEditable ? [{ label: 'Style Overrides', clickHandler: this.toggleStyleSheet, tooltip: 'Style Overrides', visible: false, icon: getIconFromName('settings') }] : []\n }\n tabs={false}\n />\n {/* <udp-side-sheet open={this.isStyleSheetOpen} onUdpSideSheetClose={() => (this.isStyleSheetOpen = false)} title=\"Style Overrides\" position=\"right\" width=\"md\">\n <udp-forms-builder-style-override formMetadata={this.formMetadata} onFormMetadataChange={updated => (this.formMetadata = updated)}></udp-forms-builder-style-override>\n </udp-side-sheet> */}\n\n <udp-side-sheet\n open={this.isQuestionEditorOpen}\n onUdpSideSheetClose={() => this.closeQuestionEditor()}\n onUdpPrimaryButtonClick={() => {\n // don't do anything if no changes are made.\n // it'll close the side sheet without this\n if (!this.hasUnsavedFormSectionsChanges()) {\n return;\n }\n this.updateFormSectionsWithDraft();\n this.closeQuestionEditor();\n }}\n primaryButtonDisabled={!this.hasUnsavedFormSectionsChanges()}\n title=\"Edit Question\"\n position=\"right\"\n width=\"md\"\n primaryButtonLabel=\"Update\"\n >\n {this.isQuestionEditorOpen && (\n <div class=\"question-editor-container\">\n <question-configs-renderer\n formSectionsDraft={this.formSectionsDraft}\n sIndex={this.editingQuestion.sIndex}\n qIndex={this.editingQuestion.qIndex}\n isViewOnly={!isEditable}\n onFormSectionsDraftChange={updated => (this.formSectionsDraft = updated)}\n lookupOptions={this.lookupOptionsDataProcessed}\n formType={this.formMetadata.type}\n isFollowUpFormConfigOn={this.isFollowUpFormConfigOn}\n isCommentingConfigOn={this.isCommentingConfigOn}\n />\n </div>\n )}\n </udp-side-sheet>\n\n <udp-side-sheet\n open={this.isSectionEditorOpen}\n onUdpSideSheetClose={() => this.closeSectionEditor()}\n title=\"Edit Section Fields\"\n position=\"right\"\n width=\"md\"\n primaryButtonDisabled={!this.hasUnsavedFormSectionsChanges()}\n primaryButtonLabel=\"Update\"\n onUdpPrimaryButtonClick={() => {\n // don't do anything if no changes are made.\n // it'll close the side sheet without this\n if (!this.hasUnsavedFormSectionsChanges()) {\n return;\n }\n this.updateFormSectionsWithDraft();\n this.closeSectionEditor();\n }}\n >\n {this.isSectionEditorOpen && (\n <div class=\"section-editor-container\">\n <section-configs-renderer\n formSectionsDraft={this.formSectionsDraft}\n sIndex={this.editingSection.sIndex}\n isViewOnly={!isEditable}\n onFormSectionsDraftChange={updated => (this.formSectionsDraft = updated)}\n />\n </div>\n )}\n </udp-side-sheet>\n <fluent-dialog\n open={this.isDialogOpen}\n message={this.dialogMessage}\n labelOne={'Confirm'}\n labelTwo={'Cancel'}\n actionOne={() => {\n if (typeof this.dialogAction === 'function') {\n this.dialogAction();\n }\n }}\n actionTwo={() => (this.isDialogOpen = false)}\n />\n\n {this.isLoading && <udp-linear-loader />}\n {!this.isLoading && (\n <udp-container maxWidth=\"lg\">\n <div class=\"udp-forms-page\">\n <div class=\"form-details-container\">\n <div class=\"form-details-name-container\">\n {isEditable ? (\n <div class=\"form-details-name-input\">\n <text-field\n label=\"Form Name\"\n value={this.formMetadata.name}\n placeholder=\"Form Name\"\n disabled={!isEditable}\n required={true}\n margin=\"none\"\n maxCharacter={128}\n onInput={e => {\n this.formMetadata = {\n ...this.formMetadata,\n name: (e.target as HTMLInputElement).value,\n };\n }}\n ></text-field>\n </div>\n ) : (\n <div class=\"form-details-name-display\">\n <unity-typography variant={'h2'}>{this.formMetadata.name + ' (View Only)'}</unity-typography>\n </div>\n )}\n </div>\n\n <div class=\"form-details-description-container\">\n {isEditable ? (\n <div class=\"form-details-details-input\">\n <text-area\n label=\"Form Description\"\n value={this.formMetadata.description}\n placeholder=\"Form Description\"\n disabled={!isEditable}\n required={false}\n margin=\"none\"\n maxCharacter={256}\n onInput={e => {\n this.formMetadata = {\n ...this.formMetadata,\n description: (e.target as HTMLInputElement).value,\n };\n }}\n ></text-area>\n </div>\n ) : (\n <div class=\"form-details-description-display\">\n <unity-typography>{this.formMetadata.description}</unity-typography>\n </div>\n )}\n </div>\n {this.isFollowUpFormConfigOn && (\n this.isNewForm ? \n <udp-selector\n label=\"Form Type\"\n key=\"udo-form-type-selector\"\n initialValue={this.formMetadata.type}\n options={this.formTypeOptions}\n disabled={!isEditable || !this.isNewForm}\n required={true}\n onChange={(e: CustomEvent) => {\n this.formMetadata = {\n ...this.formMetadata,\n type: e.detail,\n };\n }}\n /> :\n <div class=\"form-details-version-container\">\n <unity-typography>Form Type: {UdpFormsTypeEnum[this.formMetadata.type]}</unity-typography>\n </div>\n )}\n <div class=\"form-details-version-container\">\n <unity-typography>Version: {this.formMetadata.version}</unity-typography>\n </div>\n {this.isPublicFormConfigOn && (\n <div class=\"form-details-private-container\">\n <div class=\"toggle-container\">\n <stencil-toggle\n label=\"Private Form\"\n margin=\"none\"\n disabled={!isEditable}\n checked={this.formMetadata.isPrivate === true}\n labelPosition=\"right\"\n onToggledChange={() => {\n let newIsPrivate = !this.formMetadata.isPrivate;\n this.formMetadata = {\n ...this.formMetadata,\n isPrivate: newIsPrivate,\n };\n }}\n ></stencil-toggle>\n </div>\n </div>\n )}\n </div>\n\n {isEditable && (\n <div class=\"add-question-button-container\">\n <udp-button\n startIcon={<udp-icon iconName={'add'} color={'inherit'} />}\n onClick={() => {\n const newSectionIndex = this.formSections.length;\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.push({ ...formSectionDefault, order: newSectionIndex + 1, title: `Section ${newSectionIndex + 1}` });\n this.formSections = newFormSections;\n }}\n >\n Add a Section\n </udp-button>\n </div>\n )}\n\n {this.formSections.map((section, sIndex) => {\n return (\n <div key={sIndex} class=\"form-section\">\n <div class=\"form-section-header\">\n <div class=\"form-section-header-title\">\n <unity-typography variant=\"h6\" color=\"inherit\">\n {section.title}\n </unity-typography>\n </div>\n\n {isEditable && (\n <div class=\"form-section-header-actions\">\n {sIndex > 0 && (\n <stencil-icon-button\n icon={getIconFromName('arrowUp')}\n tooltip=\"Move Section Up\"\n onClick={() => {\n this.handleSectionMoveUp(sIndex);\n }}\n />\n )}\n {sIndex < this.formSections.length - 1 && (\n <stencil-icon-button\n icon={getIconFromName('arrowDown')}\n tooltip=\"Move Section Down\"\n onClick={() => {\n this.handleSectionMoveDown(sIndex);\n }}\n />\n )}\n <stencil-icon-button icon={getIconFromName('edit')} tooltip={`Edit Section Fields`} onClick={() => this.handleSectionEditClick(sIndex)} />\n <stencil-icon-button\n icon={getIconFromName('trashCan')}\n tooltip=\"Delete Section\"\n onClick={e => {\n e.stopPropagation();\n this.dialogMessage = 'Are you sure you want to delete this section?';\n this.dialogAction = () => {\n this.handleSectionDelete(sIndex);\n this.isDialogOpen = false;\n };\n\n this.isDialogOpen = true;\n }}\n />\n </div>\n )}\n </div>\n\n <div class=\"form-section-questions-container\">\n {(this.isNewForm || this.isMostRecentFormVersion) && this.showMenuAtIndex && this.showMenuAtIndex.sIndex === sIndex && this.showMenuAtIndex.qIndex === 0 && (\n <udp-forms-builder-menu\n isVisible={true}\n questionsTemplate={questionsTemplate}\n onAddSection={() => {\n const newSectionIndex = this.formSections.length;\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.push({ ...formSectionDefault, order: newSectionIndex, title: `Section ${newSectionIndex + 1}` });\n this.formSections = newFormSections;\n this.showMenuAtIndex = { sIndex: newSectionIndex, qIndex: 0 };\n }}\n onAddQuestion={e => {\n const indices = this.showMenuAtIndex\n ? this.addQuestionOfType(e.detail, this.showMenuAtIndex.sIndex, this.showMenuAtIndex.qIndex)\n : this.addQuestionOfType(e.detail);\n\n this.editingQuestion = { ...indices };\n this.isQuestionEditorOpen = true;\n }}\n onCancelClick={() => (this.showMenuAtIndex = null)}\n />\n )}\n <div class=\"form-section-questions-draggable-container\" id={`section-${sIndex}`}>\n {section.formQuestions.map((questionItem, qIndex) => {\n return (\n <udp-forms-builder-question-item\n key={questionItem.id}\n iconName={questionItem.icon}\n primaryText={`${questionItem.questionText}`}\n secondaryText={questionItem.helperText ? questionItem.helperText : null}\n avatarBackgroundColor={this.validateQuestionItem(sIndex, qIndex) ? 'info' : 'warning'}\n >\n <stencil-chip slot=\"status-chip\" text=\"Required\" showDelete={false} clickable={false} hidden={!questionItem.required} />\n {isEditable && (\n <div slot=\"drag-and-drop\">\n <div class=\"form-question-drag-handle\">\n <div class=\"drag-wrapper\">\n <stencil-icon-button icon={getIconFromName('draggable')} tooltip=\"Move Question\" noBackground={true} />\n </div>\n </div>\n </div>\n )}\n\n <div slot=\"actions\">\n {isEditable ? (\n <fragment>\n <stencil-icon-button\n icon={getIconFromName('edit')}\n tooltip=\"Edit Question Details\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionClick(sIndex, qIndex);\n }}\n noBackground={true}\n />\n <stencil-icon-button\n icon={getIconFromName('copy')}\n tooltip=\"Duplicate Question\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionCopy(sIndex, qIndex);\n }}\n noBackground={true}\n />\n <stencil-icon-button\n icon={getIconFromName('trashCan')}\n tooltip=\"Delete Question\"\n onClick={e => {\n e.stopPropagation();\n this.dialogMessage = 'Are you sure you want to delete this question?';\n this.dialogAction = () => {\n this.handleQuestionDelete(sIndex, qIndex);\n this.isDialogOpen = false;\n };\n this.isDialogOpen = true;\n }}\n noBackground={true}\n />\n </fragment>\n ) : (\n <stencil-icon-button\n icon={getIconFromName('view')}\n tooltip=\"View Question Details\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionClick(sIndex, qIndex);\n }}\n noBackground={true}\n />\n )}\n </div>\n </udp-forms-builder-question-item>\n );\n })}\n </div>\n\n {isEditable &&\n !this.showMenuAtIndex && ( // Only show button if no menu is active\n <div class=\"add-question-to-section-button-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.showMenuAtIndex = { sIndex: sIndex, qIndex: section.formQuestions.length };\n }}\n startIcon={<udp-icon iconName={'add'} color={'inherit'} />}\n >\n Add a Question\n </udp-button>\n </div>\n )}\n\n {isEditable &&\n this.showMenuAtIndex?.sIndex === sIndex &&\n this.showMenuAtIndex?.qIndex === section.formQuestions.length &&\n section.formQuestions.length > 0 && (\n <udp-forms-builder-menu\n isVisible={true}\n questionsTemplate={questionsTemplate}\n onAddSection={() => {\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.splice(sIndex + 1, 0, []);\n this.formSections = newFormSections;\n this.showMenuAtIndex = null;\n }}\n onAddQuestion={e => {\n if (this.showMenuAtIndex) {\n const indices = this.addQuestionOfType(e.detail, this.showMenuAtIndex.sIndex, this.showMenuAtIndex.qIndex);\n this.editingQuestion = { ...indices };\n this.isQuestionEditorOpen = true;\n }\n }}\n onCancelClick={() => (this.showMenuAtIndex = null)}\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </udp-container>\n )}\n </div>\n );\n }\n}\n"],"names":["uuidv4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"udp-forms-builder.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.css?tag=udp-forms-builder&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.tsx"],"sourcesContent":[":host {\n display: block;\n --udp-form-primary-color: #007bff; /* Example primary color */\n --udp-form-spacing-unit: 16px;\n\n}\n\n/* ################### FORM PAGE ################### */\n.udp-forms-page {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-06, 32px);\n /* background-color: white; */\n padding: var(--spacing-06, 32px);\n padding-bottom: var(--spacing-12);\n}\n\n\n.form-section-questions-container {\n display: flex;\n flex-direction: column;\n}\n\n\n/* ################### FORM METADATA ################### */\n\n\n.form-details-container {\n display: flex;\n flex-direction: column;\n /* align-items: flex-start; */\n /* margin: 0 2rem; */\n /* gap: var(--spacing-05, 24px); */\n padding: var(--spacing-05, 24px);\n background-color: var(--card-background-color, white);\n}\n\n.form-details-version-container {\n margin-bottom: var(--spacing-05)\n}\n\n.udp-form-builder-field-container,\n.udp-forms-builder-item-generic-configs,\n.udp-forms-builder-item-specific-configs {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-04, 16px);\n}\n\n/* ################### SECTIONS ################### */\n.form-section {\n /* background-color: var(--primary-color-alpha-15); */\n /* border: 2px solid var(--primary-color-alpha-50); */\n /* border-radius: 8px; */\n /* padding: var(--spacing-04); */\n}\n\n\n.form-section-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n background-color: var(--primary-color-dark, #000);\n color: var(--primary-contrast-text, #FFF);\n padding: var(--spacing-04, 16px) var(--spacing-05, 24px);\n /* margin-bottom: var(--spacing-04); */\n align-items: center;\n}\n\n.add-question-button-container {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.question-editor-container {\n padding: var(--spacing-05, 24px);\n display: flex;\n flex-direction: column;\n gap: var(--spacing-05, 24px);\n}\n\n.add-question-to-section-button-container {\n padding: var(--spacing-02, 8px) 0;\n margin: auto;\n}\n\n.sortable-ghost {\n opacity: 0.5;\n transform: scale(0.98);\n background: #f4f4f4;\n border: 1px dashed #ccc;\n}\n\n.sortable-chosen {\n background: #eef6ff;\n box-shadow: 0 0 4px 2px rgba(51, 153, 255, 0.3);\n}\n\n.form-question-drag-handle {\n transform: rotate(90deg);\n cursor: grab;\n}\n\n.form-question-drag-handle:active {\n cursor: grabbing;\n}\n\n.form-question-drag-handle .drag-wrapper {\n cursor: inherit;\n}\n\n.form-question-drag-handle stencil-icon-button {\n pointer-events: none; /* disables click so cursor applies from parent */\n}\n\n\n","import { Component, h, State, Prop, Watch } from '@stencil/core';\nimport { Guid } from '../udp-forms-utils/types';\nimport { makeApiCall } from '../../../../udp-utilities/api/makeApiCall/makeApiCall';\nimport questionsTemplate from './udp-forms-builder-question-template';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { ConfigService } from '../../../../udp-utilities/api-config';\nimport { getCurrentTenantId } from 'src/udp-utilities/tenant/tenantUtils';\nimport Sortable from 'sortablejs';\nimport { Element } from '@stencil/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { styleOverrideDefault, formSectionDefault, formMetadataDefault, deepCloneFormSections } from './forms-builder-utils';\nimport { UdpFormsPageIdEnum, UdpFormsTypeEnum } from '../udp-forms-utils/enums';\nimport { UdpFormMetadata } from '../udp-forms-utils/types';\n\n@Component({\n tag: 'udp-forms-builder',\n styleUrl: 'udp-forms-builder.css',\n shadow: true,\n})\nexport class UdpFormsBuilder {\n @Element() private hostEl: HTMLElement;\n\n @Prop() formId: Guid;\n @Prop() version: number;\n @Prop() enqueueSnackbar: Function;\n @Prop() closeSnackbar: Function;\n @Prop() history: { push: (path: string) => void };\n @Prop() isFollowUpFormConfigOn: boolean = false; // allow form engine to use follow-up forms feature\n @Prop() isPublicFormConfigOn: boolean = false; // allow form engine to use public forms feature\n @Prop() isCommentingConfigOn: boolean = true; // allow form engine to use commenting feature\n @Prop() formsBuilderUrlPath: string = ''; // alternative path for redirect to the form builder page. If not provided, use default path.\n\n\n @State() formMetadata: UdpFormMetadata = formMetadataDefault as UdpFormMetadata;\n @State() formSections: any[] = [];\n @State() formSectionsDraft: any[] = [];\n @State() isNewForm: boolean = true;\n @State() isMostRecentFormVersion: boolean = false;\n\n @State() isError: boolean = false;\n @State() isLoading: boolean = false;\n\n @State() isShowStyleOverrides: boolean = false;\n @State() isStyleSheetOpen: boolean = false;\n @State() isDialogOpen: boolean = false;\n @State() showMenuAtIndex: { sIndex: number; qIndex: number } | null = null;\n @State() editingQuestion: { sIndex: number; qIndex: number } | null = null;\n @State() editingSection: { sIndex: number } | null = null;\n @State() isQuestionEditorOpen: boolean = false;\n @State() isSectionEditorOpen: boolean = false;\n @State() lookupOptionsDataProcessed: any[] = [];\n\n\n @State() dialogAction: (() => void) | null = null;\n @State() dialogMessage: string = 'Are you sure you want to delete this?';\n\n\n\n private sortableInstances: Sortable[] = [];\n private formsBuilderPageId = UdpFormsPageIdEnum.FormBuilderPageId;\n private formTypeOptions: { value: string; label: string }[] = Object.keys(UdpFormsTypeEnum)\n .filter(key => isNaN(Number(key))) // only keep the named keys\n .map(key => ({\n value: String(UdpFormsTypeEnum[key as keyof typeof UdpFormsTypeEnum]), // cast to string\n label: key,\n }));\n\n // ********************************** API CALLS **********************************\n\n async initializeForm() {\n // set default form values\n this.formMetadata.isPrivate = formMetadataDefault.isPrivate;\n this.formMetadata.tenantId = getCurrentTenantId();\n this.formMetadata.type = formMetadataDefault.type;\n this.formMetadata.version = formMetadataDefault.version;\n this.formMetadata.name = formMetadataDefault.name;\n this.formMetadata.description = formMetadataDefault.description;\n this.formMetadata.styleOverrides = styleOverrideDefault;\n\n try {\n this.isLoading = true;\n\n // get lookup options\n const lookupResponse = await makeApiCall('GET', ConfigService.productV1ApiUrl + '/UdpLookup');\n\n if (!lookupResponse) {\n throw new Error(`Error fetching lookup data`);\n }\n\n\n this.lookupOptionsDataProcessed = lookupResponse.map(lookupObj => {\n return { ...lookupObj, value: lookupObj.id, label: lookupObj.name };\n });\n\n // determine if it's to create a new form, view an old form, or create a new version\n if (this.formId && this.version) {\n const formDataResponse = await makeApiCall('GET', `${ConfigService.productV1ApiUrl}/UdpForm/${this.formId}/${this.version}/describe`);\n const formLatestVersionResponse = await makeApiCall('GET', `${ConfigService.productV1ApiUrl}/UdpForm/${this.formId}/describe`);\n\n this.isNewForm = false;\n\n if (!formDataResponse || !formLatestVersionResponse || !formDataResponse.id || !formLatestVersionResponse) {\n throw new Error(`Error fetching form data`);\n }\n\n // view only mode\n if (formDataResponse.id == formLatestVersionResponse.id && formDataResponse.version == formLatestVersionResponse.version) {\n this.isMostRecentFormVersion = true;\n }\n\n // Clone formSections and initialize empty question arrays\n const tempSections = structuredClone(formDataResponse.udpFormUdpFormSection).map(section => ({ ...section, formQuestions: [] }));\n tempSections.forEach(section => {\n if(!section.sectionProperties) {\n section.sectionProperties = {}\n } else {\n section.sectionProperties = JSON.parse(section.sectionProperties)\n }\n })\n\n\n // Map questions into their respective sections\n formDataResponse.formQuestions.forEach(question => {\n const section = tempSections.find(s => s.id === question.formSectionId);\n if (section) {\n const fieldProps = { ...question.fieldProperties };\n\n // Remove items if lookupId exists\n if ('lookupId' in fieldProps && 'items' in fieldProps) {\n delete fieldProps.items;\n }\n\n section.formQuestions.push({\n ...question,\n fieldProperties: fieldProps,\n questionTypeName: this.getQuestionTypeName(question.fieldTypeId),\n isContainsOptionItems: this.getIsContainsOptionItems(question.fieldTypeId),\n icon: this.getIconForQuestion(question.fieldTypeId),\n });\n\n\n }\n });\n\n // Sort questions within each section\n tempSections.forEach(section => {\n section.formQuestions.sort((a, b) => a.questionOrder - b.questionOrder);\n });\n\n // Sort sections\n tempSections.sort((a, b) => a.order - b.order)\n\n\n const { ...metadata } = formDataResponse;\n\n // Merge fetched styleOverrides with defaults\n metadata.styleOverrides = this.deepMerge(styleOverrideDefault, JSON.parse(metadata.styleOverrides) || {});\n\n // Set form metadata and sections\n this.formMetadata = metadata;\n this.formSections = tempSections;\n this.isLoading = false;\n }\n } catch (e) {\n this.isError = true;\n\n this.enqueueSnackbar('Error loading form data', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n } finally {\n this.isLoading = false;\n }\n }\n\n async submitForm() {\n if (!this.isValidForm()) {\n return;\n }\n\n this.isLoading = true;\n\n try {\n // Prepare and send form metadata\n const processedFormMetadata = {\n name: this.formMetadata.name,\n description: this.formMetadata.description,\n tenantId: this.formMetadata.tenantId,\n isPrivate: this.formMetadata.isPrivate,\n type: this.formMetadata.type,\n styleOverrides: JSON.stringify(this.formMetadata.styleOverrides),\n id: this.formMetadata.id,\n version: this.formMetadata.version,\n };\n\n\n const formUrl = `${ConfigService.productV1ApiUrl}/UdpForm${this.isMostRecentFormVersion ? '/versions' : ''}`;\n const formResponse = await makeApiCall('POST', formUrl, processedFormMetadata);\n\n const formId = formResponse.id;\n const formVersion = formResponse.version;\n\n if (!formResponse || !formResponse.id || !formResponse.version) {\n throw new Error(`Invalid form response: ${JSON.stringify(formResponse)}`);\n }\n\n // Prepare and send questions in order\n let sectionOrder = 0;\n let questionOrder = 0;\n const questionRequests: Promise<any>[] = [];\n\n for (const [sIndex, section] of this.formSections.entries()) {\n sectionOrder += 1;\n\n const processedSectionData = {\n ...section,\n formId,\n formVersion,\n order: sectionOrder,\n sectionProperties: JSON.stringify(section.sectionProperties),\n name: `section${sectionOrder}`\n };\n\n const sectionResponse = await makeApiCall('POST', `${ConfigService.productV1ApiUrl}/UdpFormSection`, processedSectionData);\n\n if (!sectionResponse || !sectionResponse.id) {\n throw new Error(`Invalid section response: ${JSON.stringify(sectionResponse)}`);\n }\n\n const sectionId = sectionResponse.id;\n\n for (const question of section.formQuestions) {\n questionOrder += 1;\n\n const processedQuestionData = {\n ...question,\n formId,\n formVersion,\n section: sIndex + 1,\n questionOrder,\n formSectionId: sectionId,\n name: `question${questionOrder}`,\n };\n\n const questionRequest = makeApiCall('POST', `${ConfigService.productV1ApiUrl}/UdpFormQuestion`, processedQuestionData);\n questionRequests.push(questionRequest);\n }\n }\n\n // Wait for all questions to be submitted\n await Promise.all(questionRequests);\n\n this.enqueueSnackbar('Success', {\n variant: 'success',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n\n if(this.formsBuilderUrlPath) {\n this.history.push(`${this.formsBuilderUrlPath}&udpf_formId=${formId}&udpf_version=${formVersion}`);\n return \n }\n\n this.history.push(`/page/${this.formsBuilderPageId}?udpf_formId=${formId}&udpf_version=${formVersion}`);\n } catch (error) {\n console.error('Form submission error:', error);\n this.enqueueSnackbar('Error saving form', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n } finally {\n this.isLoading = false;\n }\n }\n\n // ********************************** STENCIL RELATED **********************************\n\n componentDidLoad() {\n this.initializeSortable();\n }\n\n componentDidUpdate() {\n this.initializeSortable();\n }\n\n componentWillLoad() {\n this.initializeForm();\n }\n\n // @Watch('formSections')\n // onFormSectionsChange(newValue: any[]) {\n // console.log(newValue);\n // }\n\n // @Watch('formMetadata')\n // onFormMetadataChange(newValue) {\n // console.log(newValue);\n // }\n\n @Watch('formId')\n @Watch('version')\n onFormIdOrVersionChange() {\n this.initializeForm();\n }\n\n // ********************************** SORTABLE LOGIC **********************************\n\n private initializeSortable() {\n // sortable only if the form is editable\n if (!(this.isNewForm || this.isMostRecentFormVersion)) {\n return;\n }\n\n this.sortableInstances.forEach(instance => instance.destroy());\n this.sortableInstances = [];\n\n this.formSections.forEach((_, sIndex) => {\n const el = this.hostEl.shadowRoot.querySelector(`#section-${sIndex}`);\n if (el) {\n const sortable = new Sortable(el, {\n animation: 200,\n easing: 'cubic-bezier(0.25, 1, 0.5, 1)',\n draggable: 'udp-forms-builder-question-item',\n handle: '.form-question-drag-handle',\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n direction: 'vertical',\n forceFallback: false,\n dragoverBubble: false,\n swapThreshold: 0.6,\n onEnd: evt => this.handleDragEnd(evt, sIndex),\n });\n this.sortableInstances.push(sortable);\n }\n });\n }\n\n private handleDragEnd(evt: Sortable.SortableEvent, sIndex: number) {\n const oldIndex = evt.oldIndex;\n const newIndex = evt.newIndex;\n if (oldIndex === newIndex || oldIndex == null || newIndex == null) return;\n\n const sectionCopy = structuredClone(this.formSections[sIndex]);\n const [moved] = sectionCopy.formQuestions.splice(oldIndex, 1);\n sectionCopy.formQuestions.splice(newIndex, 0, moved);\n\n // const newFormSections = [...this.formSections];\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections[sIndex] = sectionCopy;\n\n this.formSections = newFormSections;\n }\n\n // ********************************** SIDE SHEET LOGIC **********************************\n\n private toggleStyleSheet = () => {\n this.isStyleSheetOpen = !this.isStyleSheetOpen;\n };\n\n // ********************************** QUESTION HANDLERS **********************************\n private getQuestionTypeName = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.questionTypeName : 'Unknown';\n };\n\n private getIsContainsOptionItems = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.isContainsOptionItems || false : false;\n };\n\n private getIconForQuestion = fieldTypeId => {\n const question = questionsTemplate.find(q => q.fieldTypeId === fieldTypeId);\n return question ? question.icon : null;\n };\n\n private handleQuestionDelete = (sIndex: number, qIndex: number) => {\n const sectionsCopy = deepCloneFormSections(this.formSections);\n sectionsCopy[sIndex].formQuestions.splice(qIndex, 1);\n this.formSections = sectionsCopy;\n };\n\n private handleQuestionCopy = (sIndex: number, qIndex: number) => {\n const sectionsCopy = deepCloneFormSections(this.formSections);\n const targetQuestion = this.formSections[sIndex].formQuestions[qIndex];\n\n const newQuestion = {\n ...targetQuestion,\n questionText: (targetQuestion.questionText || '') + ' (Copy)',\n id: uuidv4(),\n };\n\n sectionsCopy[sIndex].formQuestions.splice(qIndex + 1, 0, newQuestion);\n this.formSections = sectionsCopy;\n };\n\n private handleQuestionClick = (sIndex: number, qIndex: number) => {\n this.editingQuestion = { sIndex, qIndex };\n this.isQuestionEditorOpen = true;\n this.formSectionsDraft = deepCloneFormSections(this.formSections);\n };\n\n private closeQuestionEditor = () => {\n this.isQuestionEditorOpen = false;\n this.editingQuestion = null;\n this.formSectionsDraft = null;\n };\n\n private addQuestionOfType = (defaultQuestionObj, sIndex?: number, qIndex?: number): { sIndex: number; qIndex: number } => {\n const newQuestion = {\n questionTypeName: defaultQuestionObj.questionTypeName,\n fieldTypeId: defaultQuestionObj.fieldTypeId,\n fieldProperties: defaultQuestionObj.defaultFieldProperties,\n helperText: '',\n questionText: '',\n section: sIndex !== undefined ? sIndex + 1 : this.formSections.length > 0 ? this.formSections[this.formSections.length - 1].formQuestions[0].section : 1, // Assign section based on sIndex or last section\n isContainsOptionItems: defaultQuestionObj.isContainsOptionItems,\n icon: defaultQuestionObj.icon,\n required: false,\n form: null,\n isPrivate: true,\n id: uuidv4(),\n };\n\n const newFormSections = deepCloneFormSections(this.formSections); // Use helper to get a deep copy\n\n let actualSIndex = sIndex;\n let actualQIndex = qIndex;\n\n if (sIndex !== undefined && qIndex !== undefined) {\n // Insert at specific index\n if (newFormSections[sIndex].formQuestions) {\n newFormSections[sIndex].formQuestions.splice(qIndex, 0, newQuestion);\n } else {\n // fallback\n const lastSectionIdx = newFormSections.length - 1;\n newFormSections[lastSectionIdx].formQuestions.push(newQuestion);\n actualSIndex = lastSectionIdx;\n actualQIndex = newFormSections[lastSectionIdx].formQuestions.length - 1;\n }\n } else {\n // Append to the last section or create a new one\n const lastSectionIdx = newFormSections.length - 1;\n if (lastSectionIdx < 0 || newFormSections[lastSectionIdx].formQuestions.length === 0) {\n newFormSections.push({ ...formSectionDefault, formQuestions: [newQuestion] });\n actualSIndex = newFormSections.length - 1;\n actualQIndex = 0;\n } else {\n newFormSections[lastSectionIdx].formQuestions.push(newQuestion);\n actualSIndex = lastSectionIdx;\n actualQIndex = newFormSections[lastSectionIdx].formQuestions.length - 1;\n }\n }\n\n // this.formSections = newFormSections;\n this.formSectionsDraft = newFormSections;\n if (this.showMenuAtIndex) this.showMenuAtIndex = null;\n\n return { sIndex: actualSIndex, qIndex: actualQIndex };\n };\n\n private deepMerge(target: any, source: any): any {\n const output = { ...target };\n for (const key in source) {\n if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {\n output[key] = this.deepMerge(target[key] || {}, source[key]);\n } else {\n output[key] = source[key];\n }\n }\n return output;\n }\n\n // ********************************** SECTION HANDLERS **********************************\n\n private handleSectionMoveDown = (sIndex: number) => {\n if (sIndex >= this.formSections.length - 1) return;\n\n const sectionsCopy = [...this.formSections];\n [sectionsCopy[sIndex], sectionsCopy[sIndex + 1]] = [sectionsCopy[sIndex + 1], sectionsCopy[sIndex]];\n this.formSections = sectionsCopy;\n };\n\n private handleSectionMoveUp = (sIndex: number) => {\n if (sIndex <= 0) return;\n\n const sectionsCopy = [...this.formSections];\n [sectionsCopy[sIndex], sectionsCopy[sIndex - 1]] = [sectionsCopy[sIndex - 1], sectionsCopy[sIndex]];\n this.formSections = sectionsCopy;\n };\n\n private handleSectionDelete = (sIndex: number) => {\n const newFormSections = [...this.formSections];\n newFormSections.splice(sIndex, 1);\n this.formSections = newFormSections;\n };\n\n private updateFormSectionsWithDraft = () => {\n this.formSections = this.formSectionsDraft;\n this.formSectionsDraft = null;\n };\n\n private hasUnsavedFormSectionsChanges = (): boolean => {\n // return !isEqual(this.formSections, this.formSectionsDraft); // NEED TO INSTALL PACKAGE\n return JSON.stringify(this.formSections) !== JSON.stringify(this.formSectionsDraft); // Breaks on circular refs or non-serializable types (like Dates, Maps, etc.)\n };\n\n private handleSectionEditClick = (sIndex: number) => {\n this.editingSection = { sIndex };\n this.isSectionEditorOpen = true;\n this.formSectionsDraft = deepCloneFormSections(this.formSections);\n };\n\n private closeSectionEditor = () => {\n this.isSectionEditorOpen = false;\n this.editingSection = null;\n this.formSectionsDraft = null;\n };\n\n // ********************************** FORM VALIDATION HELPERS **********************************\n\n private isValidForm(): boolean {\n return this.validateFormMetadata() && this.validateFormSections() && this.validateAllQuestions() ;\n }\n\n private validateFormMetadata(): boolean {\n if (!this.formMetadata.name?.trim()) {\n this.enqueueSnackbar('Please enter a form name.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n\n return true;\n }\n\n private validateFormSections(): boolean {\n if (this.formSections.length < 1) {\n this.enqueueSnackbar('Please add at least one section to the form.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n\n return false;\n }\n\n for (let sIndex = 0; sIndex < this.formSections.length; sIndex++) {\n const formSection = this.formSections[sIndex];\n const questions = formSection?.formQuestions || [];\n\n if (questions.length < 1) {\n const sectionTitle = formSection?.title ? `\"${formSection.title}\"` : `#${sIndex + 1}`;\n this.enqueueSnackbar(`Section ${sectionTitle} must contain at least one question.`, {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n }\n\n return true;\n }\n\n private validateAllQuestions(): boolean {\n for (let sIndex = 0; sIndex < this.formSections.length; sIndex++) {\n const formSection = this.formSections[sIndex];\n const questions = formSection?.formQuestions || [];\n for (let qIndex = 0; qIndex < questions.length; qIndex++) {\n const isValid = this.validateQuestionItem(sIndex, qIndex);\n if (!isValid) {\n this.enqueueSnackbar('Please validate all questions.', {\n variant: 'error',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n return false;\n }\n }\n }\n return true;\n }\n\n private validateQuestionItem(sIndex: number, qIndex: number): boolean {\n const questionItem = this.formSections[sIndex].formQuestions[qIndex];\n // Respect template metadata for optional question text (e.g., Paragraph)\n const template = questionsTemplate.find(q => q.fieldTypeId === questionItem.fieldTypeId);\n const requiresQuestionText = !(template && (template as any).questionTextOptional);\n if (requiresQuestionText && !questionItem.questionText) {\n return false;\n }\n\n if (questionItem.isContainsOptionItems) {\n const fieldProps = questionItem.fieldProperties;\n\n // If there's a lookupId, assume it's valid and skip item validation\n if (!fieldProps?.lookupId) {\n // If no items or empty, invalid\n if (!Array.isArray(fieldProps?.items) || fieldProps.items.length === 0) {\n return false;\n }\n\n // Check that each item has both display and value\n const invalidItemExists = fieldProps.items.some(item => !item.display || !item.value);\n\n if (invalidItemExists) {\n return false;\n }\n }\n }\n\n return true;\n }\n\n\n render() {\n if (this.isError) {\n return <div> There is an Error With the Form Builder</div>;\n }\n\n const isEditable = this.isNewForm || this.isMostRecentFormVersion;\n\n return (\n <div>\n {/* FIXME: Review this */}\n <primary-action-header\n title={'UDP Form Builder'}\n actionButtonLabel={isEditable ? (this.isMostRecentFormVersion ? `Create New Version (v.${this.version + 1})` : 'Create New Form') : ''}\n primaryActionClick={isEditable ? () => this.submitForm() : null}\n // HIDE STYLE OVERRIDE IN UI\n defaultActionButtons={\n isEditable ? [{ label: 'Style Overrides', clickHandler: this.toggleStyleSheet, tooltip: 'Style Overrides', visible: false, icon: getIconFromName('settings') }] : []\n }\n tabs={false}\n />\n {/* <udp-side-sheet open={this.isStyleSheetOpen} onUdpSideSheetClose={() => (this.isStyleSheetOpen = false)} title=\"Style Overrides\" position=\"right\" width=\"md\">\n <udp-forms-builder-style-override formMetadata={this.formMetadata} onFormMetadataChange={updated => (this.formMetadata = updated)}></udp-forms-builder-style-override>\n </udp-side-sheet> */}\n\n <udp-side-sheet\n open={this.isQuestionEditorOpen}\n onUdpSideSheetClose={() => this.closeQuestionEditor()}\n onUdpPrimaryButtonClick={() => {\n // don't do anything if no changes are made.\n // it'll close the side sheet without this\n if (!this.hasUnsavedFormSectionsChanges()) {\n return;\n }\n this.updateFormSectionsWithDraft();\n this.closeQuestionEditor();\n }}\n primaryButtonDisabled={!this.hasUnsavedFormSectionsChanges()}\n title=\"Edit Question\"\n position=\"right\"\n width=\"md\"\n primaryButtonLabel=\"Update\"\n >\n {this.isQuestionEditorOpen && (\n <div class=\"question-editor-container\">\n <question-configs-renderer\n formSectionsDraft={this.formSectionsDraft}\n sIndex={this.editingQuestion.sIndex}\n qIndex={this.editingQuestion.qIndex}\n isViewOnly={!isEditable}\n onFormSectionsDraftChange={updated => (this.formSectionsDraft = updated)}\n lookupOptions={this.lookupOptionsDataProcessed}\n formType={this.formMetadata.type}\n isFollowUpFormConfigOn={this.isFollowUpFormConfigOn}\n isCommentingConfigOn={this.isCommentingConfigOn}\n />\n </div>\n )}\n </udp-side-sheet>\n\n <udp-side-sheet\n open={this.isSectionEditorOpen}\n onUdpSideSheetClose={() => this.closeSectionEditor()}\n title=\"Edit Section Fields\"\n position=\"right\"\n width=\"md\"\n primaryButtonDisabled={!this.hasUnsavedFormSectionsChanges()}\n primaryButtonLabel=\"Update\"\n onUdpPrimaryButtonClick={() => {\n // don't do anything if no changes are made.\n // it'll close the side sheet without this\n if (!this.hasUnsavedFormSectionsChanges()) {\n return;\n }\n this.updateFormSectionsWithDraft();\n this.closeSectionEditor();\n }}\n >\n {this.isSectionEditorOpen && (\n <div class=\"section-editor-container\">\n <section-configs-renderer\n formSectionsDraft={this.formSectionsDraft}\n sIndex={this.editingSection.sIndex}\n isViewOnly={!isEditable}\n onFormSectionsDraftChange={updated => (this.formSectionsDraft = updated)}\n />\n </div>\n )}\n </udp-side-sheet>\n <fluent-dialog\n open={this.isDialogOpen}\n message={this.dialogMessage}\n labelOne={'Confirm'}\n labelTwo={'Cancel'}\n actionOne={() => {\n if (typeof this.dialogAction === 'function') {\n this.dialogAction();\n }\n }}\n actionTwo={() => (this.isDialogOpen = false)}\n />\n\n {this.isLoading && <udp-linear-loader />}\n {!this.isLoading && (\n <udp-container maxWidth=\"lg\">\n <div class=\"udp-forms-page\">\n <div class=\"form-details-container\">\n <div class=\"form-details-name-container\">\n {isEditable ? (\n <div class=\"form-details-name-input\">\n <text-field\n label=\"Form Name\"\n value={this.formMetadata.name}\n placeholder=\"Form Name\"\n disabled={!isEditable}\n required={true}\n margin=\"none\"\n maxCharacter={128}\n onInput={e => {\n this.formMetadata = {\n ...this.formMetadata,\n name: (e.target as HTMLInputElement).value,\n };\n }}\n ></text-field>\n </div>\n ) : (\n <div class=\"form-details-name-display\">\n <unity-typography variant={'h2'}>{this.formMetadata.name + ' (View Only)'}</unity-typography>\n </div>\n )}\n </div>\n\n <div class=\"form-details-description-container\">\n {isEditable ? (\n <div class=\"form-details-details-input\">\n <text-area\n label=\"Form Description\"\n value={this.formMetadata.description}\n placeholder=\"Form Description\"\n disabled={!isEditable}\n required={false}\n margin=\"none\"\n maxCharacter={256}\n onInput={e => {\n this.formMetadata = {\n ...this.formMetadata,\n description: (e.target as HTMLInputElement).value,\n };\n }}\n ></text-area>\n </div>\n ) : (\n <div class=\"form-details-description-display\">\n <unity-typography>{this.formMetadata.description}</unity-typography>\n </div>\n )}\n </div>\n {this.isFollowUpFormConfigOn && (\n this.isNewForm ? \n <udp-selector\n label=\"Form Type\"\n key=\"udo-form-type-selector\"\n initialValue={this.formMetadata.type}\n options={this.formTypeOptions}\n disabled={!isEditable || !this.isNewForm}\n required={true}\n onChange={(e: CustomEvent) => {\n this.formMetadata = {\n ...this.formMetadata,\n type: e.detail,\n };\n }}\n /> :\n <div class=\"form-details-version-container\">\n <unity-typography>Form Type: {UdpFormsTypeEnum[this.formMetadata.type]}</unity-typography>\n </div>\n )}\n <div class=\"form-details-version-container\">\n <unity-typography>Version: {this.formMetadata.version}</unity-typography>\n </div>\n {this.isPublicFormConfigOn && (\n <div class=\"form-details-private-container\">\n <div class=\"toggle-container\">\n <stencil-toggle\n label=\"Private Form\"\n margin=\"none\"\n disabled={!isEditable}\n checked={this.formMetadata.isPrivate === true}\n labelPosition=\"right\"\n onToggledChange={() => {\n let newIsPrivate = !this.formMetadata.isPrivate;\n this.formMetadata = {\n ...this.formMetadata,\n isPrivate: newIsPrivate,\n };\n }}\n ></stencil-toggle>\n </div>\n </div>\n )}\n </div>\n\n {isEditable && (\n <div class=\"add-question-button-container\">\n <udp-button\n startIcon={<udp-icon iconName={'add'} color={'inherit'} />}\n onClick={() => {\n const newSectionIndex = this.formSections.length;\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.push({ ...formSectionDefault, order: newSectionIndex + 1, title: `Section ${newSectionIndex + 1}` });\n this.formSections = newFormSections;\n }}\n >\n Add a Section\n </udp-button>\n </div>\n )}\n\n {this.formSections.map((section, sIndex) => {\n return (\n <div key={sIndex} class=\"form-section\">\n <div class=\"form-section-header\">\n <div class=\"form-section-header-title\">\n <unity-typography variant=\"h6\" color=\"inherit\">\n {section.title}\n </unity-typography>\n </div>\n\n {isEditable && (\n <div class=\"form-section-header-actions\">\n {sIndex > 0 && (\n <stencil-icon-button\n icon={getIconFromName('arrowUp')}\n tooltip=\"Move Section Up\"\n onClick={() => {\n this.handleSectionMoveUp(sIndex);\n }}\n />\n )}\n {sIndex < this.formSections.length - 1 && (\n <stencil-icon-button\n icon={getIconFromName('arrowDown')}\n tooltip=\"Move Section Down\"\n onClick={() => {\n this.handleSectionMoveDown(sIndex);\n }}\n />\n )}\n <stencil-icon-button icon={getIconFromName('edit')} tooltip={`Edit Section Fields`} onClick={() => this.handleSectionEditClick(sIndex)} />\n <stencil-icon-button\n icon={getIconFromName('trashCan')}\n tooltip=\"Delete Section\"\n onClick={e => {\n e.stopPropagation();\n this.dialogMessage = 'Are you sure you want to delete this section?';\n this.dialogAction = () => {\n this.handleSectionDelete(sIndex);\n this.isDialogOpen = false;\n };\n\n this.isDialogOpen = true;\n }}\n />\n </div>\n )}\n </div>\n\n <div class=\"form-section-questions-container\">\n {(this.isNewForm || this.isMostRecentFormVersion) && this.showMenuAtIndex && this.showMenuAtIndex.sIndex === sIndex && this.showMenuAtIndex.qIndex === 0 && (\n <udp-forms-builder-menu\n isVisible={true}\n questionsTemplate={questionsTemplate}\n onAddSection={() => {\n const newSectionIndex = this.formSections.length;\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.push({ ...formSectionDefault, order: newSectionIndex, title: `Section ${newSectionIndex + 1}` });\n this.formSections = newFormSections;\n this.showMenuAtIndex = { sIndex: newSectionIndex, qIndex: 0 };\n }}\n onAddQuestion={e => {\n const indices = this.showMenuAtIndex\n ? this.addQuestionOfType(e.detail, this.showMenuAtIndex.sIndex, this.showMenuAtIndex.qIndex)\n : this.addQuestionOfType(e.detail);\n\n this.editingQuestion = { ...indices };\n this.isQuestionEditorOpen = true;\n }}\n onCancelClick={() => (this.showMenuAtIndex = null)}\n />\n )}\n <div class=\"form-section-questions-draggable-container\" id={`section-${sIndex}`}>\n {section.formQuestions.map((questionItem, qIndex) => {\n return (\n <udp-forms-builder-question-item\n key={questionItem.id}\n iconName={questionItem.icon}\n primaryText={`${questionItem.questionText}`}\n secondaryText={questionItem.helperText ? questionItem.helperText : null}\n avatarBackgroundColor={this.validateQuestionItem(sIndex, qIndex) ? 'info' : 'warning'}\n >\n <stencil-chip slot=\"status-chip\" text=\"Required\" showDelete={false} clickable={false} hidden={!questionItem.required} />\n {isEditable && (\n <div slot=\"drag-and-drop\">\n <div class=\"form-question-drag-handle\">\n <div class=\"drag-wrapper\">\n <stencil-icon-button icon={getIconFromName('draggable')} tooltip=\"Move Question\" noBackground={true} />\n </div>\n </div>\n </div>\n )}\n\n <div slot=\"actions\">\n {isEditable ? (\n <fragment>\n <stencil-icon-button\n icon={getIconFromName('edit')}\n tooltip=\"Edit Question Details\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionClick(sIndex, qIndex);\n }}\n noBackground={true}\n />\n <stencil-icon-button\n icon={getIconFromName('copy')}\n tooltip=\"Duplicate Question\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionCopy(sIndex, qIndex);\n }}\n noBackground={true}\n />\n <stencil-icon-button\n icon={getIconFromName('trashCan')}\n tooltip=\"Delete Question\"\n onClick={e => {\n e.stopPropagation();\n this.dialogMessage = 'Are you sure you want to delete this question?';\n this.dialogAction = () => {\n this.handleQuestionDelete(sIndex, qIndex);\n this.isDialogOpen = false;\n };\n this.isDialogOpen = true;\n }}\n noBackground={true}\n />\n </fragment>\n ) : (\n <stencil-icon-button\n icon={getIconFromName('view')}\n tooltip=\"View Question Details\"\n onClick={e => {\n e.stopPropagation();\n this.handleQuestionClick(sIndex, qIndex);\n }}\n noBackground={true}\n />\n )}\n </div>\n </udp-forms-builder-question-item>\n );\n })}\n </div>\n\n {isEditable &&\n !this.showMenuAtIndex && ( // Only show button if no menu is active\n <div class=\"add-question-to-section-button-container\">\n <udp-button\n variant=\"text\"\n onClick={() => {\n this.showMenuAtIndex = { sIndex: sIndex, qIndex: section.formQuestions.length };\n }}\n startIcon={<udp-icon iconName={'add'} color={'inherit'} />}\n >\n Add a Question\n </udp-button>\n </div>\n )}\n\n {isEditable &&\n this.showMenuAtIndex?.sIndex === sIndex &&\n this.showMenuAtIndex?.qIndex === section.formQuestions.length &&\n section.formQuestions.length > 0 && (\n <udp-forms-builder-menu\n isVisible={true}\n questionsTemplate={questionsTemplate}\n onAddSection={() => {\n const newFormSections = deepCloneFormSections(this.formSections);\n newFormSections.splice(sIndex + 1, 0, []);\n this.formSections = newFormSections;\n this.showMenuAtIndex = null;\n }}\n onAddQuestion={e => {\n if (this.showMenuAtIndex) {\n const indices = this.addQuestionOfType(e.detail, this.showMenuAtIndex.sIndex, this.showMenuAtIndex.qIndex);\n this.editingQuestion = { ...indices };\n this.isQuestionEditorOpen = true;\n }\n }}\n onCancelClick={() => (this.showMenuAtIndex = null)}\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </udp-container>\n )}\n </div>\n );\n }\n}\n"],"names":["uuidv4"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,h as t,a as o}from"./index-CaZq3YdB.js";import{m as s}from"./makeApiCall-B-daVutk.js";import{f as e,q as n,d as r,a,s as c}from"./udp-forms-builder-question-template-DQJb7f4Y.js";import{g as l}from"./iconUtils-DcPvHO4A.js";import{g as h}from"./tenantUtils-Basdb1b1.js";import d from"sortablejs";import{v4 as u}from"uuid";import{U as p,a as m}from"./enums-CHxgVY-B.js";import{C as f}from"./configService-BqLfkVKh.js";import"axios";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const b=":host{display:block;--udp-form-primary-color:#007bff;--udp-form-spacing-unit:16px}.udp-forms-page{display:flex;flex-direction:column;gap:var(--spacing-06, 32px);padding:var(--spacing-06, 32px);padding-bottom:var(--spacing-12)}.form-section-questions-container{display:flex;flex-direction:column}.form-details-container{display:flex;flex-direction:column;padding:var(--spacing-05, 24px);background-color:var(--card-background-color, white)}.form-details-version-container{margin-bottom:var(--spacing-05)}.udp-form-builder-field-container,.udp-forms-builder-item-generic-configs,.udp-forms-builder-item-specific-configs{display:flex;flex-direction:column;gap:var(--spacing-04, 16px)}.form-section{}.form-section-header{display:flex;flex-direction:row;justify-content:space-between;background-color:var(--primary-color-dark, #000);color:var(--primary-contrast-text, #FFF);padding:var(--spacing-04, 16px) var(--spacing-05, 24px);align-items:center}.add-question-button-container{display:flex;justify-content:center;align-items:center}.question-editor-container{padding:var(--spacing-05, 24px);display:flex;flex-direction:column;gap:var(--spacing-05, 24px)}.add-question-to-section-button-container{padding:var(--spacing-02, 8px) 0;margin:auto}.sortable-ghost{opacity:0.5;transform:scale(0.98);background:#f4f4f4;border:1px dashed #ccc}.sortable-chosen{background:#eef6ff;box-shadow:0 0 4px 2px rgba(51, 153, 255, 0.3)}.form-question-drag-handle{transform:rotate(90deg);cursor:grab}.form-question-drag-handle:active{cursor:grabbing}.form-question-drag-handle .drag-wrapper{cursor:inherit}.form-question-drag-handle stencil-icon-button{pointer-events:none;}";var g=undefined&&undefined.__rest||function(i,t){var o={};for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)&&t.indexOf(s)<0)o[s]=i[s];if(i!=null&&typeof Object.getOwnPropertySymbols==="function")for(var e=0,s=Object.getOwnPropertySymbols(i);e<s.length;e++){if(t.indexOf(s[e])<0&&Object.prototype.propertyIsEnumerable.call(i,s[e]))o[s[e]]=i[s[e]]}return o};const v=class{constructor(t){i(this,t);this.isFollowUpFormConfigOn=false;this.isPublicFormConfigOn=false;this.isCommentingConfigOn=true;this.formsBuilderUrlPath="";this.formMetadata=e;this.formSections=[];this.formSectionsDraft=[];this.isNewForm=true;this.isMostRecentFormVersion=false;this.isError=false;this.isLoading=false;this.isShowStyleOverrides=false;this.isStyleSheetOpen=false;this.isDialogOpen=false;this.showMenuAtIndex=null;this.editingQuestion=null;this.editingSection=null;this.isQuestionEditorOpen=false;this.isSectionEditorOpen=false;this.lookupOptionsDataProcessed=[];this.dialogAction=null;this.dialogMessage="Are you sure you want to delete this?";this.sortableInstances=[];this.formsBuilderPageId=p.FormBuilderPageId;this.formTypeOptions=Object.keys(m).filter((i=>isNaN(Number(i)))).map((i=>({value:String(m[i]),label:i})));this.toggleStyleSheet=()=>{this.isStyleSheetOpen=!this.isStyleSheetOpen};this.getQuestionTypeName=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.questionTypeName:"Unknown"};this.getIsContainsOptionItems=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.isContainsOptionItems||false:false};this.getIconForQuestion=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.icon:null};this.handleQuestionDelete=(i,t)=>{const o=r(this.formSections);o[i].formQuestions.splice(t,1);this.formSections=o};this.handleQuestionCopy=(i,t)=>{const o=r(this.formSections);const s=this.formSections[i].formQuestions[t];const e=Object.assign(Object.assign({},s),{questionText:(s.questionText||"")+" (Copy)",id:u()});o[i].formQuestions.splice(t+1,0,e);this.formSections=o};this.handleQuestionClick=(i,t)=>{this.editingQuestion={sIndex:i,qIndex:t};this.isQuestionEditorOpen=true;this.formSectionsDraft=r(this.formSections)};this.closeQuestionEditor=()=>{this.isQuestionEditorOpen=false;this.editingQuestion=null;this.formSectionsDraft=null};this.addQuestionOfType=(i,t,o)=>{const s={questionTypeName:i.questionTypeName,fieldTypeId:i.fieldTypeId,fieldProperties:i.defaultFieldProperties,helperText:"",questionText:"",section:t!==undefined?t+1:this.formSections.length>0?this.formSections[this.formSections.length-1].formQuestions[0].section:1,isContainsOptionItems:i.isContainsOptionItems,icon:i.icon,required:false,form:null,isPrivate:true,id:u()};const e=r(this.formSections);let n=t;let c=o;if(t!==undefined&&o!==undefined){if(e[t].formQuestions){e[t].formQuestions.splice(o,0,s)}else{const i=e.length-1;e[i].formQuestions.push(s);n=i;c=e[i].formQuestions.length-1}}else{const i=e.length-1;if(i<0||e[i].formQuestions.length===0){e.push(Object.assign(Object.assign({},a),{formQuestions:[s]}));n=e.length-1;c=0}else{e[i].formQuestions.push(s);n=i;c=e[i].formQuestions.length-1}}this.formSectionsDraft=e;if(this.showMenuAtIndex)this.showMenuAtIndex=null;return{sIndex:n,qIndex:c}};this.handleSectionMoveDown=i=>{if(i>=this.formSections.length-1)return;const t=[...this.formSections];[t[i],t[i+1]]=[t[i+1],t[i]];this.formSections=t};this.handleSectionMoveUp=i=>{if(i<=0)return;const t=[...this.formSections];[t[i],t[i-1]]=[t[i-1],t[i]];this.formSections=t};this.handleSectionDelete=i=>{const t=[...this.formSections];t.splice(i,1);this.formSections=t};this.updateFormSectionsWithDraft=()=>{this.formSections=this.formSectionsDraft;this.formSectionsDraft=null};this.hasUnsavedFormSectionsChanges=()=>JSON.stringify(this.formSections)!==JSON.stringify(this.formSectionsDraft);this.handleSectionEditClick=i=>{this.editingSection={sIndex:i};this.isSectionEditorOpen=true;this.formSectionsDraft=r(this.formSections)};this.closeSectionEditor=()=>{this.isSectionEditorOpen=false;this.editingSection=null;this.formSectionsDraft=null}}async initializeForm(){this.formMetadata.isPrivate=e.isPrivate;this.formMetadata.tenantId=h();this.formMetadata.type=e.type;this.formMetadata.version=e.version;this.formMetadata.name=e.name;this.formMetadata.description=e.description;this.formMetadata.styleOverrides=c;try{this.isLoading=true;const i=await s("GET",f.productV1ApiUrl+"/UdpLookup");if(!i){throw new Error(`Error fetching lookup data`)}this.lookupOptionsDataProcessed=i.map((i=>Object.assign(Object.assign({},i),{value:i.id,label:i.name})));if(this.formId&&this.version){const i=await s("GET",`${f.productV1ApiUrl}/UdpForm/${this.formId}/${this.version}/describe`);const t=await s("GET",`${f.productV1ApiUrl}/UdpForm/${this.formId}/describe`);this.isNewForm=false;if(!i||!t||!i.id||!t){throw new Error(`Error fetching form data`)}if(i.id==t.id&&i.version==t.version){this.isMostRecentFormVersion=true}const o=structuredClone(i.udpFormUdpFormSection).map((i=>Object.assign(Object.assign({},i),{formQuestions:[]})));o.forEach((i=>{if(!i.sectionProperties){i.sectionProperties={}}else{i.sectionProperties=JSON.parse(i.sectionProperties)}}));i.formQuestions.forEach((i=>{const t=o.find((t=>t.id===i.formSectionId));if(t){const o=Object.assign({},i.fieldProperties);if("lookupId"in o&&"items"in o){delete o.items}t.formQuestions.push(Object.assign(Object.assign({},i),{fieldProperties:o,questionTypeName:this.getQuestionTypeName(i.fieldTypeId),isContainsOptionItems:this.getIsContainsOptionItems(i.fieldTypeId),icon:this.getIconForQuestion(i.fieldTypeId)}))}}));o.forEach((i=>{i.formQuestions.sort(((i,t)=>i.questionOrder-t.questionOrder))}));o.sort(((i,t)=>i.order-t.order));const e=g(i,[]);e.styleOverrides=this.deepMerge(c,JSON.parse(e.styleOverrides)||{});this.formMetadata=e;this.formSections=o;this.isLoading=false}}catch(i){this.isError=true;this.enqueueSnackbar("Error loading form data",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isLoading=false}}async submitForm(){if(!this.isValidForm()){return}this.isLoading=true;try{const i={name:this.formMetadata.name,description:this.formMetadata.description,tenantId:this.formMetadata.tenantId,isPrivate:this.formMetadata.isPrivate,type:this.formMetadata.type,styleOverrides:JSON.stringify(this.formMetadata.styleOverrides),id:this.formMetadata.id,version:this.formMetadata.version};const t=`${f.productV1ApiUrl}/UdpForm${this.isMostRecentFormVersion?"/versions":""}`;const o=await s("POST",t,i);const e=o.id;const n=o.version;if(!o||!o.id||!o.version){throw new Error(`Invalid form response: ${JSON.stringify(o)}`)}let r=0;let a=0;const c=[];for(const[i,t]of this.formSections.entries()){r+=1;const o=Object.assign(Object.assign({},t),{formId:e,formVersion:n,order:r,sectionProperties:JSON.stringify(t.sectionProperties),name:`section${r}`});const l=await s("POST",`${f.productV1ApiUrl}/UdpFormSection`,o);if(!l||!l.id){throw new Error(`Invalid section response: ${JSON.stringify(l)}`)}const h=l.id;for(const o of t.formQuestions){a+=1;const t=Object.assign(Object.assign({},o),{formId:e,formVersion:n,section:i+1,questionOrder:a,formSectionId:h,name:`question${a}`});const r=s("POST",`${f.productV1ApiUrl}/UdpFormQuestion`,t);c.push(r)}}await Promise.all(c);this.enqueueSnackbar("Success",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}});if(this.formsBuilderUrlPath){this.history.push(`${this.formsBuilderUrlPath}&udpf_formId=${e}&udpf_version=${n}`);return}this.history.push(`/page/${this.formsBuilderPageId}?udpf_formId=${e}&udpf_version=${n}`)}catch(i){console.error("Form submission error:",i);this.enqueueSnackbar("Error saving form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isLoading=false}}componentDidLoad(){this.initializeSortable()}componentDidUpdate(){this.initializeSortable()}componentWillLoad(){this.initializeForm()}onFormIdOrVersionChange(){this.initializeForm()}initializeSortable(){if(!(this.isNewForm||this.isMostRecentFormVersion)){return}this.sortableInstances.forEach((i=>i.destroy()));this.sortableInstances=[];this.formSections.forEach(((i,t)=>{const o=this.hostEl.shadowRoot.querySelector(`#section-${t}`);if(o){const i=new d(o,{animation:200,easing:"cubic-bezier(0.25, 1, 0.5, 1)",draggable:"udp-forms-builder-question-item",handle:".form-question-drag-handle",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",direction:"vertical",forceFallback:false,dragoverBubble:false,swapThreshold:.6,onEnd:i=>this.handleDragEnd(i,t)});this.sortableInstances.push(i)}}))}handleDragEnd(i,t){const o=i.oldIndex;const s=i.newIndex;if(o===s||o==null||s==null)return;const e=structuredClone(this.formSections[t]);const[n]=e.formQuestions.splice(o,1);e.formQuestions.splice(s,0,n);const a=r(this.formSections);a[t]=e;this.formSections=a}deepMerge(i,t){const o=Object.assign({},i);for(const s in t){if(t[s]&&typeof t[s]==="object"&&!Array.isArray(t[s])){o[s]=this.deepMerge(i[s]||{},t[s])}else{o[s]=t[s]}}return o}isValidForm(){return this.validateFormMetadata()&&this.validateFormSections()&&this.validateAllQuestions()}validateFormMetadata(){var i;if(!((i=this.formMetadata.name)===null||i===void 0?void 0:i.trim())){this.enqueueSnackbar("Please enter a form name.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}return true}validateFormSections(){if(this.formSections.length<1){this.enqueueSnackbar("Please add at least one section to the form.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}for(let i=0;i<this.formSections.length;i++){const t=this.formSections[i];const o=(t===null||t===void 0?void 0:t.formQuestions)||[];if(o.length<1){const o=(t===null||t===void 0?void 0:t.title)?`"${t.title}"`:`#${i+1}`;this.enqueueSnackbar(`Section ${o} must contain at least one question.`,{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}}return true}validateAllQuestions(){for(let i=0;i<this.formSections.length;i++){const t=this.formSections[i];const o=(t===null||t===void 0?void 0:t.formQuestions)||[];for(let t=0;t<o.length;t++){const o=this.validateQuestionItem(i,t);if(!o){this.enqueueSnackbar("Please validate all questions.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}}}return true}validateQuestionItem(i,t){const o=this.formSections[i].formQuestions[t];const s=n.find((i=>i.fieldTypeId===o.fieldTypeId));const e=!(s&&s.questionTextOptional);if(e&&!o.questionText){return false}if(o.isContainsOptionItems){const i=o.fieldProperties;if(!(i===null||i===void 0?void 0:i.lookupId)){if(!Array.isArray(i===null||i===void 0?void 0:i.items)||i.items.length===0){return false}const t=i.items.some((i=>!i.display||!i.value));if(t){return false}}}return true}render(){if(this.isError){return t("div",null," There is an Error With the Form Builder")}const i=this.isNewForm||this.isMostRecentFormVersion;return t("div",null,t("primary-action-header",{title:"UDP Form Builder",actionButtonLabel:i?this.isMostRecentFormVersion?`Create New Version (v.${this.version+1})`:"Create New Form":"",primaryActionClick:i?()=>this.submitForm():null,defaultActionButtons:i?[{label:"Style Overrides",clickHandler:this.toggleStyleSheet,tooltip:"Style Overrides",visible:false,icon:l("settings")}]:[],tabs:false}),t("udp-side-sheet",{open:this.isQuestionEditorOpen,onUdpSideSheetClose:()=>this.closeQuestionEditor(),onUdpPrimaryButtonClick:()=>{if(!this.hasUnsavedFormSectionsChanges()){return}this.updateFormSectionsWithDraft();this.closeQuestionEditor()},primaryButtonDisabled:!this.hasUnsavedFormSectionsChanges(),title:"Edit Question",position:"right",width:"md",primaryButtonLabel:"Update"},this.isQuestionEditorOpen&&t("div",{class:"question-editor-container"},t("question-configs-renderer",{formSectionsDraft:this.formSectionsDraft,sIndex:this.editingQuestion.sIndex,qIndex:this.editingQuestion.qIndex,isViewOnly:!i,onFormSectionsDraftChange:i=>this.formSectionsDraft=i,lookupOptions:this.lookupOptionsDataProcessed,formType:this.formMetadata.type,isFollowUpFormConfigOn:this.isFollowUpFormConfigOn,isCommentingConfigOn:this.isCommentingConfigOn}))),t("udp-side-sheet",{open:this.isSectionEditorOpen,onUdpSideSheetClose:()=>this.closeSectionEditor(),title:"Edit Section Fields",position:"right",width:"md",primaryButtonDisabled:!this.hasUnsavedFormSectionsChanges(),primaryButtonLabel:"Update",onUdpPrimaryButtonClick:()=>{if(!this.hasUnsavedFormSectionsChanges()){return}this.updateFormSectionsWithDraft();this.closeSectionEditor()}},this.isSectionEditorOpen&&t("div",{class:"section-editor-container"},t("section-configs-renderer",{formSectionsDraft:this.formSectionsDraft,sIndex:this.editingSection.sIndex,isViewOnly:!i,onFormSectionsDraftChange:i=>this.formSectionsDraft=i}))),t("fluent-dialog",{open:this.isDialogOpen,message:this.dialogMessage,labelOne:"Confirm",labelTwo:"Cancel",actionOne:()=>{if(typeof this.dialogAction==="function"){this.dialogAction()}},actionTwo:()=>this.isDialogOpen=false}),this.isLoading&&t("udp-linear-loader",null),!this.isLoading&&t("udp-container",{maxWidth:"lg"},t("div",{class:"udp-forms-page"},t("div",{class:"form-details-container"},t("div",{class:"form-details-name-container"},i?t("div",{class:"form-details-name-input"},t("text-field",{label:"Form Name",value:this.formMetadata.name,placeholder:"Form Name",disabled:!i,required:true,margin:"none",maxCharacter:128,onInput:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{name:i.target.value})}})):t("div",{class:"form-details-name-display"},t("unity-typography",{variant:"h2"},this.formMetadata.name+" (View Only)"))),t("div",{class:"form-details-description-container"},i?t("div",{class:"form-details-details-input"},t("text-area",{label:"Form Description",value:this.formMetadata.description,placeholder:"Form Description",disabled:!i,required:false,margin:"none",maxCharacter:256,onInput:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{description:i.target.value})}})):t("div",{class:"form-details-description-display"},t("unity-typography",null,this.formMetadata.description))),this.isFollowUpFormConfigOn&&(this.isNewForm?t("udp-selector",{label:"Form Type",key:"udo-form-type-selector",initialValue:this.formMetadata.type,options:this.formTypeOptions,disabled:!i||!this.isNewForm,required:true,onChange:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{type:i.detail})}}):t("div",{class:"form-details-version-container"},t("unity-typography",null,"Form Type: ",m[this.formMetadata.type]))),t("div",{class:"form-details-version-container"},t("unity-typography",null,"Version: ",this.formMetadata.version)),this.isPublicFormConfigOn&&t("div",{class:"form-details-private-container"},t("div",{class:"toggle-container"},t("stencil-toggle",{label:"Private Form",margin:"none",disabled:!i,checked:this.formMetadata.isPrivate===true,labelPosition:"right",onToggledChange:()=>{let i=!this.formMetadata.isPrivate;this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{isPrivate:i})}})))),i&&t("div",{class:"add-question-button-container"},t("udp-button",{startIcon:t("udp-icon",{iconName:"add",color:"inherit"}),onClick:()=>{const i=this.formSections.length;const t=r(this.formSections);t.push(Object.assign(Object.assign({},a),{order:i+1,title:`Section ${i+1}`}));this.formSections=t}},"Add a Section")),this.formSections.map(((o,s)=>{var e,c;return t("div",{key:s,class:"form-section"},t("div",{class:"form-section-header"},t("div",{class:"form-section-header-title"},t("unity-typography",{variant:"h6",color:"inherit"},o.title)),i&&t("div",{class:"form-section-header-actions"},s>0&&t("stencil-icon-button",{icon:l("arrowUp"),tooltip:"Move Section Up",onClick:()=>{this.handleSectionMoveUp(s)}}),s<this.formSections.length-1&&t("stencil-icon-button",{icon:l("arrowDown"),tooltip:"Move Section Down",onClick:()=>{this.handleSectionMoveDown(s)}}),t("stencil-icon-button",{icon:l("edit"),tooltip:`Edit Section Fields`,onClick:()=>this.handleSectionEditClick(s)}),t("stencil-icon-button",{icon:l("trashCan"),tooltip:"Delete Section",onClick:i=>{i.stopPropagation();this.dialogMessage="Are you sure you want to delete this section?";this.dialogAction=()=>{this.handleSectionDelete(s);this.isDialogOpen=false};this.isDialogOpen=true}}))),t("div",{class:"form-section-questions-container"},(this.isNewForm||this.isMostRecentFormVersion)&&this.showMenuAtIndex&&this.showMenuAtIndex.sIndex===s&&this.showMenuAtIndex.qIndex===0&&t("udp-forms-builder-menu",{isVisible:true,questionsTemplate:n,onAddSection:()=>{const i=this.formSections.length;const t=r(this.formSections);t.push(Object.assign(Object.assign({},a),{order:i,title:`Section ${i+1}`}));this.formSections=t;this.showMenuAtIndex={sIndex:i,qIndex:0}},onAddQuestion:i=>{const t=this.showMenuAtIndex?this.addQuestionOfType(i.detail,this.showMenuAtIndex.sIndex,this.showMenuAtIndex.qIndex):this.addQuestionOfType(i.detail);this.editingQuestion=Object.assign({},t);this.isQuestionEditorOpen=true},onCancelClick:()=>this.showMenuAtIndex=null}),t("div",{class:"form-section-questions-draggable-container",id:`section-${s}`},o.formQuestions.map(((o,e)=>t("udp-forms-builder-question-item",{key:o.id,iconName:o.icon,primaryText:`${o.questionText}`,secondaryText:o.helperText?o.helperText:null,avatarBackgroundColor:this.validateQuestionItem(s,e)?"info":"warning"},t("stencil-chip",{slot:"status-chip",text:"Required",showDelete:false,clickable:false,hidden:!o.required}),i&&t("div",{slot:"drag-and-drop"},t("div",{class:"form-question-drag-handle"},t("div",{class:"drag-wrapper"},t("stencil-icon-button",{icon:l("draggable"),tooltip:"Move Question",noBackground:true})))),t("div",{slot:"actions"},i?t("fragment",null,t("stencil-icon-button",{icon:l("edit"),tooltip:"Edit Question Details",onClick:i=>{i.stopPropagation();this.handleQuestionClick(s,e)},noBackground:true}),t("stencil-icon-button",{icon:l("copy"),tooltip:"Duplicate Question",onClick:i=>{i.stopPropagation();this.handleQuestionCopy(s,e)},noBackground:true}),t("stencil-icon-button",{icon:l("trashCan"),tooltip:"Delete Question",onClick:i=>{i.stopPropagation();this.dialogMessage="Are you sure you want to delete this question?";this.dialogAction=()=>{this.handleQuestionDelete(s,e);this.isDialogOpen=false};this.isDialogOpen=true},noBackground:true})):t("stencil-icon-button",{icon:l("view"),tooltip:"View Question Details",onClick:i=>{i.stopPropagation();this.handleQuestionClick(s,e)},noBackground:true})))))),i&&!this.showMenuAtIndex&&t("div",{class:"add-question-to-section-button-container"},t("udp-button",{variant:"text",onClick:()=>{this.showMenuAtIndex={sIndex:s,qIndex:o.formQuestions.length}},startIcon:t("udp-icon",{iconName:"add",color:"inherit"})},"Add a Question")),i&&((e=this.showMenuAtIndex)===null||e===void 0?void 0:e.sIndex)===s&&((c=this.showMenuAtIndex)===null||c===void 0?void 0:c.qIndex)===o.formQuestions.length&&o.formQuestions.length>0&&t("udp-forms-builder-menu",{isVisible:true,questionsTemplate:n,onAddSection:()=>{const i=r(this.formSections);i.splice(s+1,0,[]);this.formSections=i;this.showMenuAtIndex=null},onAddQuestion:i=>{if(this.showMenuAtIndex){const t=this.addQuestionOfType(i.detail,this.showMenuAtIndex.sIndex,this.showMenuAtIndex.qIndex);this.editingQuestion=Object.assign({},t);this.isQuestionEditorOpen=true}},onCancelClick:()=>this.showMenuAtIndex=null})))})))))}get hostEl(){return o(this)}static get watchers(){return{formId:["onFormIdOrVersionChange"],version:["onFormIdOrVersionChange"]}}};v.style=b;export{v as udp_forms_builder};
|
|
1
|
+
import{r as i,h as t,a as o}from"./index-CaZq3YdB.js";import{m as s}from"./makeApiCall-B-daVutk.js";import{f as e,q as n,d as r,a,s as c}from"./udp-forms-builder-question-template-D6ADNZEG.js";import{g as l}from"./iconUtils-DcPvHO4A.js";import{g as h}from"./tenantUtils-Basdb1b1.js";import d from"sortablejs";import{v4 as u}from"uuid";import{U as p,a as m}from"./enums-DHT5wSnX.js";import{C as f}from"./configService-BqLfkVKh.js";import"axios";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const b=":host{display:block;--udp-form-primary-color:#007bff;--udp-form-spacing-unit:16px}.udp-forms-page{display:flex;flex-direction:column;gap:var(--spacing-06, 32px);padding:var(--spacing-06, 32px);padding-bottom:var(--spacing-12)}.form-section-questions-container{display:flex;flex-direction:column}.form-details-container{display:flex;flex-direction:column;padding:var(--spacing-05, 24px);background-color:var(--card-background-color, white)}.form-details-version-container{margin-bottom:var(--spacing-05)}.udp-form-builder-field-container,.udp-forms-builder-item-generic-configs,.udp-forms-builder-item-specific-configs{display:flex;flex-direction:column;gap:var(--spacing-04, 16px)}.form-section{}.form-section-header{display:flex;flex-direction:row;justify-content:space-between;background-color:var(--primary-color-dark, #000);color:var(--primary-contrast-text, #FFF);padding:var(--spacing-04, 16px) var(--spacing-05, 24px);align-items:center}.add-question-button-container{display:flex;justify-content:center;align-items:center}.question-editor-container{padding:var(--spacing-05, 24px);display:flex;flex-direction:column;gap:var(--spacing-05, 24px)}.add-question-to-section-button-container{padding:var(--spacing-02, 8px) 0;margin:auto}.sortable-ghost{opacity:0.5;transform:scale(0.98);background:#f4f4f4;border:1px dashed #ccc}.sortable-chosen{background:#eef6ff;box-shadow:0 0 4px 2px rgba(51, 153, 255, 0.3)}.form-question-drag-handle{transform:rotate(90deg);cursor:grab}.form-question-drag-handle:active{cursor:grabbing}.form-question-drag-handle .drag-wrapper{cursor:inherit}.form-question-drag-handle stencil-icon-button{pointer-events:none;}";var g=undefined&&undefined.__rest||function(i,t){var o={};for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)&&t.indexOf(s)<0)o[s]=i[s];if(i!=null&&typeof Object.getOwnPropertySymbols==="function")for(var e=0,s=Object.getOwnPropertySymbols(i);e<s.length;e++){if(t.indexOf(s[e])<0&&Object.prototype.propertyIsEnumerable.call(i,s[e]))o[s[e]]=i[s[e]]}return o};const v=class{constructor(t){i(this,t);this.isFollowUpFormConfigOn=false;this.isPublicFormConfigOn=false;this.isCommentingConfigOn=true;this.formsBuilderUrlPath="";this.formMetadata=e;this.formSections=[];this.formSectionsDraft=[];this.isNewForm=true;this.isMostRecentFormVersion=false;this.isError=false;this.isLoading=false;this.isShowStyleOverrides=false;this.isStyleSheetOpen=false;this.isDialogOpen=false;this.showMenuAtIndex=null;this.editingQuestion=null;this.editingSection=null;this.isQuestionEditorOpen=false;this.isSectionEditorOpen=false;this.lookupOptionsDataProcessed=[];this.dialogAction=null;this.dialogMessage="Are you sure you want to delete this?";this.sortableInstances=[];this.formsBuilderPageId=p.FormBuilderPageId;this.formTypeOptions=Object.keys(m).filter((i=>isNaN(Number(i)))).map((i=>({value:String(m[i]),label:i})));this.toggleStyleSheet=()=>{this.isStyleSheetOpen=!this.isStyleSheetOpen};this.getQuestionTypeName=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.questionTypeName:"Unknown"};this.getIsContainsOptionItems=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.isContainsOptionItems||false:false};this.getIconForQuestion=i=>{const t=n.find((t=>t.fieldTypeId===i));return t?t.icon:null};this.handleQuestionDelete=(i,t)=>{const o=r(this.formSections);o[i].formQuestions.splice(t,1);this.formSections=o};this.handleQuestionCopy=(i,t)=>{const o=r(this.formSections);const s=this.formSections[i].formQuestions[t];const e=Object.assign(Object.assign({},s),{questionText:(s.questionText||"")+" (Copy)",id:u()});o[i].formQuestions.splice(t+1,0,e);this.formSections=o};this.handleQuestionClick=(i,t)=>{this.editingQuestion={sIndex:i,qIndex:t};this.isQuestionEditorOpen=true;this.formSectionsDraft=r(this.formSections)};this.closeQuestionEditor=()=>{this.isQuestionEditorOpen=false;this.editingQuestion=null;this.formSectionsDraft=null};this.addQuestionOfType=(i,t,o)=>{const s={questionTypeName:i.questionTypeName,fieldTypeId:i.fieldTypeId,fieldProperties:i.defaultFieldProperties,helperText:"",questionText:"",section:t!==undefined?t+1:this.formSections.length>0?this.formSections[this.formSections.length-1].formQuestions[0].section:1,isContainsOptionItems:i.isContainsOptionItems,icon:i.icon,required:false,form:null,isPrivate:true,id:u()};const e=r(this.formSections);let n=t;let c=o;if(t!==undefined&&o!==undefined){if(e[t].formQuestions){e[t].formQuestions.splice(o,0,s)}else{const i=e.length-1;e[i].formQuestions.push(s);n=i;c=e[i].formQuestions.length-1}}else{const i=e.length-1;if(i<0||e[i].formQuestions.length===0){e.push(Object.assign(Object.assign({},a),{formQuestions:[s]}));n=e.length-1;c=0}else{e[i].formQuestions.push(s);n=i;c=e[i].formQuestions.length-1}}this.formSectionsDraft=e;if(this.showMenuAtIndex)this.showMenuAtIndex=null;return{sIndex:n,qIndex:c}};this.handleSectionMoveDown=i=>{if(i>=this.formSections.length-1)return;const t=[...this.formSections];[t[i],t[i+1]]=[t[i+1],t[i]];this.formSections=t};this.handleSectionMoveUp=i=>{if(i<=0)return;const t=[...this.formSections];[t[i],t[i-1]]=[t[i-1],t[i]];this.formSections=t};this.handleSectionDelete=i=>{const t=[...this.formSections];t.splice(i,1);this.formSections=t};this.updateFormSectionsWithDraft=()=>{this.formSections=this.formSectionsDraft;this.formSectionsDraft=null};this.hasUnsavedFormSectionsChanges=()=>JSON.stringify(this.formSections)!==JSON.stringify(this.formSectionsDraft);this.handleSectionEditClick=i=>{this.editingSection={sIndex:i};this.isSectionEditorOpen=true;this.formSectionsDraft=r(this.formSections)};this.closeSectionEditor=()=>{this.isSectionEditorOpen=false;this.editingSection=null;this.formSectionsDraft=null}}async initializeForm(){this.formMetadata.isPrivate=e.isPrivate;this.formMetadata.tenantId=h();this.formMetadata.type=e.type;this.formMetadata.version=e.version;this.formMetadata.name=e.name;this.formMetadata.description=e.description;this.formMetadata.styleOverrides=c;try{this.isLoading=true;const i=await s("GET",f.productV1ApiUrl+"/UdpLookup");if(!i){throw new Error(`Error fetching lookup data`)}this.lookupOptionsDataProcessed=i.map((i=>Object.assign(Object.assign({},i),{value:i.id,label:i.name})));if(this.formId&&this.version){const i=await s("GET",`${f.productV1ApiUrl}/UdpForm/${this.formId}/${this.version}/describe`);const t=await s("GET",`${f.productV1ApiUrl}/UdpForm/${this.formId}/describe`);this.isNewForm=false;if(!i||!t||!i.id||!t){throw new Error(`Error fetching form data`)}if(i.id==t.id&&i.version==t.version){this.isMostRecentFormVersion=true}const o=structuredClone(i.udpFormUdpFormSection).map((i=>Object.assign(Object.assign({},i),{formQuestions:[]})));o.forEach((i=>{if(!i.sectionProperties){i.sectionProperties={}}else{i.sectionProperties=JSON.parse(i.sectionProperties)}}));i.formQuestions.forEach((i=>{const t=o.find((t=>t.id===i.formSectionId));if(t){const o=Object.assign({},i.fieldProperties);if("lookupId"in o&&"items"in o){delete o.items}t.formQuestions.push(Object.assign(Object.assign({},i),{fieldProperties:o,questionTypeName:this.getQuestionTypeName(i.fieldTypeId),isContainsOptionItems:this.getIsContainsOptionItems(i.fieldTypeId),icon:this.getIconForQuestion(i.fieldTypeId)}))}}));o.forEach((i=>{i.formQuestions.sort(((i,t)=>i.questionOrder-t.questionOrder))}));o.sort(((i,t)=>i.order-t.order));const e=g(i,[]);e.styleOverrides=this.deepMerge(c,JSON.parse(e.styleOverrides)||{});this.formMetadata=e;this.formSections=o;this.isLoading=false}}catch(i){this.isError=true;this.enqueueSnackbar("Error loading form data",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isLoading=false}}async submitForm(){if(!this.isValidForm()){return}this.isLoading=true;try{const i={name:this.formMetadata.name,description:this.formMetadata.description,tenantId:this.formMetadata.tenantId,isPrivate:this.formMetadata.isPrivate,type:this.formMetadata.type,styleOverrides:JSON.stringify(this.formMetadata.styleOverrides),id:this.formMetadata.id,version:this.formMetadata.version};const t=`${f.productV1ApiUrl}/UdpForm${this.isMostRecentFormVersion?"/versions":""}`;const o=await s("POST",t,i);const e=o.id;const n=o.version;if(!o||!o.id||!o.version){throw new Error(`Invalid form response: ${JSON.stringify(o)}`)}let r=0;let a=0;const c=[];for(const[i,t]of this.formSections.entries()){r+=1;const o=Object.assign(Object.assign({},t),{formId:e,formVersion:n,order:r,sectionProperties:JSON.stringify(t.sectionProperties),name:`section${r}`});const l=await s("POST",`${f.productV1ApiUrl}/UdpFormSection`,o);if(!l||!l.id){throw new Error(`Invalid section response: ${JSON.stringify(l)}`)}const h=l.id;for(const o of t.formQuestions){a+=1;const t=Object.assign(Object.assign({},o),{formId:e,formVersion:n,section:i+1,questionOrder:a,formSectionId:h,name:`question${a}`});const r=s("POST",`${f.productV1ApiUrl}/UdpFormQuestion`,t);c.push(r)}}await Promise.all(c);this.enqueueSnackbar("Success",{variant:"success",anchorOrigin:{vertical:"top",horizontal:"center"}});if(this.formsBuilderUrlPath){this.history.push(`${this.formsBuilderUrlPath}&udpf_formId=${e}&udpf_version=${n}`);return}this.history.push(`/page/${this.formsBuilderPageId}?udpf_formId=${e}&udpf_version=${n}`)}catch(i){console.error("Form submission error:",i);this.enqueueSnackbar("Error saving form",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}})}finally{this.isLoading=false}}componentDidLoad(){this.initializeSortable()}componentDidUpdate(){this.initializeSortable()}componentWillLoad(){this.initializeForm()}onFormIdOrVersionChange(){this.initializeForm()}initializeSortable(){if(!(this.isNewForm||this.isMostRecentFormVersion)){return}this.sortableInstances.forEach((i=>i.destroy()));this.sortableInstances=[];this.formSections.forEach(((i,t)=>{const o=this.hostEl.shadowRoot.querySelector(`#section-${t}`);if(o){const i=new d(o,{animation:200,easing:"cubic-bezier(0.25, 1, 0.5, 1)",draggable:"udp-forms-builder-question-item",handle:".form-question-drag-handle",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",direction:"vertical",forceFallback:false,dragoverBubble:false,swapThreshold:.6,onEnd:i=>this.handleDragEnd(i,t)});this.sortableInstances.push(i)}}))}handleDragEnd(i,t){const o=i.oldIndex;const s=i.newIndex;if(o===s||o==null||s==null)return;const e=structuredClone(this.formSections[t]);const[n]=e.formQuestions.splice(o,1);e.formQuestions.splice(s,0,n);const a=r(this.formSections);a[t]=e;this.formSections=a}deepMerge(i,t){const o=Object.assign({},i);for(const s in t){if(t[s]&&typeof t[s]==="object"&&!Array.isArray(t[s])){o[s]=this.deepMerge(i[s]||{},t[s])}else{o[s]=t[s]}}return o}isValidForm(){return this.validateFormMetadata()&&this.validateFormSections()&&this.validateAllQuestions()}validateFormMetadata(){var i;if(!((i=this.formMetadata.name)===null||i===void 0?void 0:i.trim())){this.enqueueSnackbar("Please enter a form name.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}return true}validateFormSections(){if(this.formSections.length<1){this.enqueueSnackbar("Please add at least one section to the form.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}for(let i=0;i<this.formSections.length;i++){const t=this.formSections[i];const o=(t===null||t===void 0?void 0:t.formQuestions)||[];if(o.length<1){const o=(t===null||t===void 0?void 0:t.title)?`"${t.title}"`:`#${i+1}`;this.enqueueSnackbar(`Section ${o} must contain at least one question.`,{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}}return true}validateAllQuestions(){for(let i=0;i<this.formSections.length;i++){const t=this.formSections[i];const o=(t===null||t===void 0?void 0:t.formQuestions)||[];for(let t=0;t<o.length;t++){const o=this.validateQuestionItem(i,t);if(!o){this.enqueueSnackbar("Please validate all questions.",{variant:"error",anchorOrigin:{vertical:"top",horizontal:"center"}});return false}}}return true}validateQuestionItem(i,t){const o=this.formSections[i].formQuestions[t];const s=n.find((i=>i.fieldTypeId===o.fieldTypeId));const e=!(s&&s.questionTextOptional);if(e&&!o.questionText){return false}if(o.isContainsOptionItems){const i=o.fieldProperties;if(!(i===null||i===void 0?void 0:i.lookupId)){if(!Array.isArray(i===null||i===void 0?void 0:i.items)||i.items.length===0){return false}const t=i.items.some((i=>!i.display||!i.value));if(t){return false}}}return true}render(){if(this.isError){return t("div",null," There is an Error With the Form Builder")}const i=this.isNewForm||this.isMostRecentFormVersion;return t("div",null,t("primary-action-header",{title:"UDP Form Builder",actionButtonLabel:i?this.isMostRecentFormVersion?`Create New Version (v.${this.version+1})`:"Create New Form":"",primaryActionClick:i?()=>this.submitForm():null,defaultActionButtons:i?[{label:"Style Overrides",clickHandler:this.toggleStyleSheet,tooltip:"Style Overrides",visible:false,icon:l("settings")}]:[],tabs:false}),t("udp-side-sheet",{open:this.isQuestionEditorOpen,onUdpSideSheetClose:()=>this.closeQuestionEditor(),onUdpPrimaryButtonClick:()=>{if(!this.hasUnsavedFormSectionsChanges()){return}this.updateFormSectionsWithDraft();this.closeQuestionEditor()},primaryButtonDisabled:!this.hasUnsavedFormSectionsChanges(),title:"Edit Question",position:"right",width:"md",primaryButtonLabel:"Update"},this.isQuestionEditorOpen&&t("div",{class:"question-editor-container"},t("question-configs-renderer",{formSectionsDraft:this.formSectionsDraft,sIndex:this.editingQuestion.sIndex,qIndex:this.editingQuestion.qIndex,isViewOnly:!i,onFormSectionsDraftChange:i=>this.formSectionsDraft=i,lookupOptions:this.lookupOptionsDataProcessed,formType:this.formMetadata.type,isFollowUpFormConfigOn:this.isFollowUpFormConfigOn,isCommentingConfigOn:this.isCommentingConfigOn}))),t("udp-side-sheet",{open:this.isSectionEditorOpen,onUdpSideSheetClose:()=>this.closeSectionEditor(),title:"Edit Section Fields",position:"right",width:"md",primaryButtonDisabled:!this.hasUnsavedFormSectionsChanges(),primaryButtonLabel:"Update",onUdpPrimaryButtonClick:()=>{if(!this.hasUnsavedFormSectionsChanges()){return}this.updateFormSectionsWithDraft();this.closeSectionEditor()}},this.isSectionEditorOpen&&t("div",{class:"section-editor-container"},t("section-configs-renderer",{formSectionsDraft:this.formSectionsDraft,sIndex:this.editingSection.sIndex,isViewOnly:!i,onFormSectionsDraftChange:i=>this.formSectionsDraft=i}))),t("fluent-dialog",{open:this.isDialogOpen,message:this.dialogMessage,labelOne:"Confirm",labelTwo:"Cancel",actionOne:()=>{if(typeof this.dialogAction==="function"){this.dialogAction()}},actionTwo:()=>this.isDialogOpen=false}),this.isLoading&&t("udp-linear-loader",null),!this.isLoading&&t("udp-container",{maxWidth:"lg"},t("div",{class:"udp-forms-page"},t("div",{class:"form-details-container"},t("div",{class:"form-details-name-container"},i?t("div",{class:"form-details-name-input"},t("text-field",{label:"Form Name",value:this.formMetadata.name,placeholder:"Form Name",disabled:!i,required:true,margin:"none",maxCharacter:128,onInput:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{name:i.target.value})}})):t("div",{class:"form-details-name-display"},t("unity-typography",{variant:"h2"},this.formMetadata.name+" (View Only)"))),t("div",{class:"form-details-description-container"},i?t("div",{class:"form-details-details-input"},t("text-area",{label:"Form Description",value:this.formMetadata.description,placeholder:"Form Description",disabled:!i,required:false,margin:"none",maxCharacter:256,onInput:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{description:i.target.value})}})):t("div",{class:"form-details-description-display"},t("unity-typography",null,this.formMetadata.description))),this.isFollowUpFormConfigOn&&(this.isNewForm?t("udp-selector",{label:"Form Type",key:"udo-form-type-selector",initialValue:this.formMetadata.type,options:this.formTypeOptions,disabled:!i||!this.isNewForm,required:true,onChange:i=>{this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{type:i.detail})}}):t("div",{class:"form-details-version-container"},t("unity-typography",null,"Form Type: ",m[this.formMetadata.type]))),t("div",{class:"form-details-version-container"},t("unity-typography",null,"Version: ",this.formMetadata.version)),this.isPublicFormConfigOn&&t("div",{class:"form-details-private-container"},t("div",{class:"toggle-container"},t("stencil-toggle",{label:"Private Form",margin:"none",disabled:!i,checked:this.formMetadata.isPrivate===true,labelPosition:"right",onToggledChange:()=>{let i=!this.formMetadata.isPrivate;this.formMetadata=Object.assign(Object.assign({},this.formMetadata),{isPrivate:i})}})))),i&&t("div",{class:"add-question-button-container"},t("udp-button",{startIcon:t("udp-icon",{iconName:"add",color:"inherit"}),onClick:()=>{const i=this.formSections.length;const t=r(this.formSections);t.push(Object.assign(Object.assign({},a),{order:i+1,title:`Section ${i+1}`}));this.formSections=t}},"Add a Section")),this.formSections.map(((o,s)=>{var e,c;return t("div",{key:s,class:"form-section"},t("div",{class:"form-section-header"},t("div",{class:"form-section-header-title"},t("unity-typography",{variant:"h6",color:"inherit"},o.title)),i&&t("div",{class:"form-section-header-actions"},s>0&&t("stencil-icon-button",{icon:l("arrowUp"),tooltip:"Move Section Up",onClick:()=>{this.handleSectionMoveUp(s)}}),s<this.formSections.length-1&&t("stencil-icon-button",{icon:l("arrowDown"),tooltip:"Move Section Down",onClick:()=>{this.handleSectionMoveDown(s)}}),t("stencil-icon-button",{icon:l("edit"),tooltip:`Edit Section Fields`,onClick:()=>this.handleSectionEditClick(s)}),t("stencil-icon-button",{icon:l("trashCan"),tooltip:"Delete Section",onClick:i=>{i.stopPropagation();this.dialogMessage="Are you sure you want to delete this section?";this.dialogAction=()=>{this.handleSectionDelete(s);this.isDialogOpen=false};this.isDialogOpen=true}}))),t("div",{class:"form-section-questions-container"},(this.isNewForm||this.isMostRecentFormVersion)&&this.showMenuAtIndex&&this.showMenuAtIndex.sIndex===s&&this.showMenuAtIndex.qIndex===0&&t("udp-forms-builder-menu",{isVisible:true,questionsTemplate:n,onAddSection:()=>{const i=this.formSections.length;const t=r(this.formSections);t.push(Object.assign(Object.assign({},a),{order:i,title:`Section ${i+1}`}));this.formSections=t;this.showMenuAtIndex={sIndex:i,qIndex:0}},onAddQuestion:i=>{const t=this.showMenuAtIndex?this.addQuestionOfType(i.detail,this.showMenuAtIndex.sIndex,this.showMenuAtIndex.qIndex):this.addQuestionOfType(i.detail);this.editingQuestion=Object.assign({},t);this.isQuestionEditorOpen=true},onCancelClick:()=>this.showMenuAtIndex=null}),t("div",{class:"form-section-questions-draggable-container",id:`section-${s}`},o.formQuestions.map(((o,e)=>t("udp-forms-builder-question-item",{key:o.id,iconName:o.icon,primaryText:`${o.questionText}`,secondaryText:o.helperText?o.helperText:null,avatarBackgroundColor:this.validateQuestionItem(s,e)?"info":"warning"},t("stencil-chip",{slot:"status-chip",text:"Required",showDelete:false,clickable:false,hidden:!o.required}),i&&t("div",{slot:"drag-and-drop"},t("div",{class:"form-question-drag-handle"},t("div",{class:"drag-wrapper"},t("stencil-icon-button",{icon:l("draggable"),tooltip:"Move Question",noBackground:true})))),t("div",{slot:"actions"},i?t("fragment",null,t("stencil-icon-button",{icon:l("edit"),tooltip:"Edit Question Details",onClick:i=>{i.stopPropagation();this.handleQuestionClick(s,e)},noBackground:true}),t("stencil-icon-button",{icon:l("copy"),tooltip:"Duplicate Question",onClick:i=>{i.stopPropagation();this.handleQuestionCopy(s,e)},noBackground:true}),t("stencil-icon-button",{icon:l("trashCan"),tooltip:"Delete Question",onClick:i=>{i.stopPropagation();this.dialogMessage="Are you sure you want to delete this question?";this.dialogAction=()=>{this.handleQuestionDelete(s,e);this.isDialogOpen=false};this.isDialogOpen=true},noBackground:true})):t("stencil-icon-button",{icon:l("view"),tooltip:"View Question Details",onClick:i=>{i.stopPropagation();this.handleQuestionClick(s,e)},noBackground:true})))))),i&&!this.showMenuAtIndex&&t("div",{class:"add-question-to-section-button-container"},t("udp-button",{variant:"text",onClick:()=>{this.showMenuAtIndex={sIndex:s,qIndex:o.formQuestions.length}},startIcon:t("udp-icon",{iconName:"add",color:"inherit"})},"Add a Question")),i&&((e=this.showMenuAtIndex)===null||e===void 0?void 0:e.sIndex)===s&&((c=this.showMenuAtIndex)===null||c===void 0?void 0:c.qIndex)===o.formQuestions.length&&o.formQuestions.length>0&&t("udp-forms-builder-menu",{isVisible:true,questionsTemplate:n,onAddSection:()=>{const i=r(this.formSections);i.splice(s+1,0,[]);this.formSections=i;this.showMenuAtIndex=null},onAddQuestion:i=>{if(this.showMenuAtIndex){const t=this.addQuestionOfType(i.detail,this.showMenuAtIndex.sIndex,this.showMenuAtIndex.qIndex);this.editingQuestion=Object.assign({},t);this.isQuestionEditorOpen=true}},onCancelClick:()=>this.showMenuAtIndex=null})))})))))}get hostEl(){return o(this)}static get watchers(){return{formId:["onFormIdOrVersionChange"],version:["onFormIdOrVersionChange"]}}};v.style=b;export{v as udp_forms_builder};
|
|
2
2
|
//# sourceMappingURL=udp-forms-builder.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-forms-follow-up-list-card.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.tsx"],"sourcesContent":["import { Component, h, Prop, Fragment } from '@stencil/core';\nimport { UdpFormsTypeEnum } from '../../utils/enums';\n\n@Component({\n tag: 'udp-forms-follow-up-list-card',\n shadow: true,\n})\nexport class UdpFormsFollowUpListCard {\n @Prop() listItemData: any;\n @Prop() isSideSheetList: boolean;\n @Prop() handleLaunchFollowUpForm: Function;\n\n render() {\n const contentJsx = (\n <Fragment>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Version: {this.listItemData.version}\n </unity-typography>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Form Type: {UdpFormsTypeEnum[this.listItemData.type]}\n </unity-typography>\n </Fragment>\n );\n\n return (\n <udp-card\n cardTitle={this.listItemData.name}\n subheader={this.listItemData.description}\n onTitleClick={() => this.handleLaunchFollowUpForm()}\n disableContentPadding={true}\n adornmentStatus={'info'}\n >\n {contentJsx}\n </udp-card>\n );\n }\n}\n"],"names":[],"mappings":";;;MAOa,wBAAwB,GAAA,MAAA;;;;IAKnC,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,IACd,CAAA,CAAC,QAAQ,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACP,CAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAkB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,eAAe,EAAA,eAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAClB,EACnB,CAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAkB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,eAAe,EAAA,iBACzC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CACV,CACZ;QAED,QACE,CACE,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EACjC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EACxC,YAAY,EAAE,MAAM,IAAI,CAAC,wBAAwB,EAAE,EACnD,qBAAqB,EAAE,IAAI,EAC3B,eAAe,EAAE,MAAM,IAEtB,UAAU,CACF;;;;;;"}
|
|
1
|
+
{"version":3,"file":"udp-forms-follow-up-list-card.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.tsx"],"sourcesContent":["import { Component, h, Prop, Fragment } from '@stencil/core';\nimport { UdpFormsTypeEnum } from '../../udp-forms-utils/enums';\n\n@Component({\n tag: 'udp-forms-follow-up-list-card',\n shadow: true,\n})\nexport class UdpFormsFollowUpListCard {\n @Prop() listItemData: any;\n @Prop() isSideSheetList: boolean;\n @Prop() handleLaunchFollowUpForm: Function;\n\n render() {\n const contentJsx = (\n <Fragment>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Version: {this.listItemData.version}\n </unity-typography>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Form Type: {UdpFormsTypeEnum[this.listItemData.type]}\n </unity-typography>\n </Fragment>\n );\n\n return (\n <udp-card\n cardTitle={this.listItemData.name}\n subheader={this.listItemData.description}\n onTitleClick={() => this.handleLaunchFollowUpForm()}\n disableContentPadding={true}\n adornmentStatus={'info'}\n >\n {contentJsx}\n </udp-card>\n );\n }\n}\n"],"names":[],"mappings":";;;MAOa,wBAAwB,GAAA,MAAA;;;;IAKnC,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,IACd,CAAA,CAAC,QAAQ,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACP,CAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAkB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,eAAe,EAAA,eAC3C,IAAI,CAAC,YAAY,CAAC,OAAO,CAClB,EACnB,CAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAkB,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,eAAe,EAAA,iBACzC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CACnC,CACV,CACZ;QAED,QACE,CACE,CAAA,UAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EACjC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EACxC,YAAY,EAAE,MAAM,IAAI,CAAC,wBAAwB,EAAE,EACnD,qBAAqB,EAAE,IAAI,EAC3B,eAAe,EAAE,MAAM,IAEtB,UAAU,CACF;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as
|
|
1
|
+
import{r as t,h as e,F as a}from"./index-CaZq3YdB.js";import{a as d}from"./enums-DHT5wSnX.js";const r=class{constructor(e){t(this,e)}render(){const t=e(a,{key:"0148fa047cd997bc9cff28cd98833074e8dc8f64"},e("unity-typography",{key:"e6d1704c0d97d94253cfda377818114234bd46c9",variant:"body1",color:"textSecondary"},"Version: ",this.listItemData.version),e("unity-typography",{key:"f6e98358257ddf8596abfdb100f5a633c063752a",variant:"body1",color:"textSecondary"},"Form Type: ",d[this.listItemData.type]));return e("udp-card",{key:"6a5285ec5d718bb09965e61621544e81b900e9eb",cardTitle:this.listItemData.name,subheader:this.listItemData.description,onTitleClick:()=>this.handleLaunchFollowUpForm(),disableContentPadding:true,adornmentStatus:"info"},t)}};export{r as udp_forms_follow_up_list_card};
|
|
2
2
|
//# sourceMappingURL=udp-forms-follow-up-list-card.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"udp-forms-list-card.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.tsx"],"sourcesContent":["import { Component, h, Prop, Fragment, Event, EventEmitter} from '@stencil/core';\nimport { UdpFormsPageIdEnum } from '../../utils/enums';\nimport { UdpFormsTypeEnum } from '../../utils/enums';\nimport { dateFormatter } from '../../utils/utils';\nimport ChevronRight24 from '@carbon/icons/es/chevron--right/16';\nimport Edit from '@carbon/icons/es/edit/16';\nimport DocumentAdd from '@carbon/icons/es/document--add/16';\n\n@Component({\n tag: 'udp-forms-list-card',\n shadow: true,\n})\nexport class UdpFormsListCard {\n /**\n * Router/history object used for navigation (expects a push(url:string) function).\n */\n @Prop() history: any;\n\n /**\n * Data for the form template item shown in the card (id, version, name, dates, etc).\n */\n @Prop() data: any;\n\n /**\n * Optional callback to open the side sheet (version history) when the chevron action is clicked.\n */\n @Prop() openSideSheet: any;\n\n /**\n * If true, the card is being rendered in a side-sheet list context (affects which dates/actions show).\n */\n @Prop() isSideSheetList: boolean;\n\n /**\n * Optional override path to use for the form builder navigation instead of the default page route.\n */\n @Prop() formsBuilderUrlPath: string | undefined;\n\n /**\n * Optional override path to use for the form renderer navigation instead of the default page route.\n */\n @Prop() formsRendererUrlPath: string | undefined;\n\n /**\n * When true, show the follow-up form config (Form Type) line in the card content.\n */\n @Prop() isFollowUpFormConfigOn: boolean = false;\n\n /**\n * When true, show a View Form action that redirects to the renderer.\n */\n @Prop() isRendererRedirectConfigOn: boolean = false;\n\n /**\n * Emit an event a user action to edit form is clicked to close the sidesheet\n */\n @Event() closeSidesheet: EventEmitter<void>;\n\n\n\n /**\n * Build the URL used to open the form builder.\n *\n * Uses the provided formsBuilderUrlPath override when present, otherwise\n * builds the default in-app page route. Keeps the same query params as before.\n */\n private getFormBuilderUrl = (): string => {\n if (this.formsBuilderUrlPath) {\n return `${this.formsBuilderUrlPath}&udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n }\n return `/page/${UdpFormsPageIdEnum.FormBuilderPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n };\n\n /**\n * Build the URL used to open the form renderer.\n *\n * Uses the provided formsRendererUrlPath override when present, otherwise\n * builds the default in-app page route. Query param shape is unchanged.\n */\n private getFormRendererUrl = (): string => {\n if (this.formsRendererUrlPath) {\n return `${this.formsRendererUrlPath}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n }\n return `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n };\n\n /**\n * Navigate to the form builder for the current card's form.\n *\n * Computes the target URL using getFormBuilderUrl (which prefers an optional\n * formsBuilderUrlPath override). Performs navigation by calling history.push(url).\n *\n * Side effects: mutates navigation state via history.push. No return value.\n */\n private formBuilderHandler = () => {\n this.history.push(this.getFormBuilderUrl());\n };\n\n /**\n * Navigate to the form renderer (view) for the current card's form.\n *\n * Computes the target URL using getFormRendererUrl (which prefers an optional\n * formsRendererUrlPath override). Performs navigation by calling history.push(url).\n *\n * Side effects: mutates navigation state via history.push. No return value.\n */\n private formRendererHandler = () => {\n this.history.push(this.getFormRendererUrl());\n };\n\n /**\n * Click handler for the card title or card edit icon.\n *\n * Prevents default link behavior, closes sidesheet, then routes to the form builder.\n */\n private handleEditOrTitleClick = (e: CustomEvent) => {\n e.preventDefault();\n this.closeSidesheet.emit();\n this.formBuilderHandler();\n };\n\n render() {\n const contentJsx = (\n <Fragment>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Version: {this.data.version}\n </unity-typography>\n {!this.isSideSheetList && (\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Last Modified: {dateFormatter(this.data.lastModifiedOn)}\n </unity-typography>\n )}\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Created On: {this.isSideSheetList ? dateFormatter(this.data.createdOn) : dateFormatter(this.data.initialCreatedOn)}\n </unity-typography>\n {this.isFollowUpFormConfigOn && (\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Form Type: {UdpFormsTypeEnum[this.data.type]}\n </unity-typography>\n )}\n </Fragment>\n );\n\n const actionsJsx = (\n <Fragment>\n <stencil-icon-button\n icon={Edit}\n tooltip=\"Edit Form Template\"\n onClick={(e) => this.handleEditOrTitleClick(e)}\n />\n {!this.isSideSheetList && this.isRendererRedirectConfigOn && (\n <stencil-icon-button\n icon={DocumentAdd}\n tooltip=\"View Form\"\n onClick={e => {\n e.stopPropagation();\n this.formRendererHandler();\n }}\n />\n )}\n {!this.isSideSheetList && (\n <stencil-icon-button\n icon={ChevronRight24}\n tooltip=\"See Form Version History\"\n onClick={e => {\n e.stopPropagation();\n this.openSideSheet?.();\n }}\n />\n )}\n </Fragment>\n );\n\n return (\n <udp-card\n cardTitle={this.data.name}\n subheader={this.data.description}\n actions={actionsJsx}\n onTitleClick={this.handleEditOrTitleClick}\n disableContentPadding={true}\n adornmentStatus={'info'}\n >\n {contentJsx}\n </udp-card>\n );\n }\n}\n"],"names":["Edit","DocumentAdd"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"udp-forms-list-card.entry.esm.js","sources":["src/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.tsx"],"sourcesContent":["import { Component, h, Prop, Fragment, Event, EventEmitter} from '@stencil/core';\nimport { UdpFormsPageIdEnum } from '../../udp-forms-utils/enums';\nimport { UdpFormsTypeEnum } from '../../udp-forms-utils/enums';\nimport { dateFormatter } from '../../udp-forms-utils/utils';\nimport ChevronRight24 from '@carbon/icons/es/chevron--right/16';\nimport Edit from '@carbon/icons/es/edit/16';\nimport DocumentAdd from '@carbon/icons/es/document--add/16';\n\n@Component({\n tag: 'udp-forms-list-card',\n shadow: true,\n})\nexport class UdpFormsListCard {\n /**\n * Router/history object used for navigation (expects a push(url:string) function).\n */\n @Prop() history: any;\n\n /**\n * Data for the form template item shown in the card (id, version, name, dates, etc).\n */\n @Prop() data: any;\n\n /**\n * Optional callback to open the side sheet (version history) when the chevron action is clicked.\n */\n @Prop() openSideSheet: any;\n\n /**\n * If true, the card is being rendered in a side-sheet list context (affects which dates/actions show).\n */\n @Prop() isSideSheetList: boolean;\n\n /**\n * Optional override path to use for the form builder navigation instead of the default page route.\n */\n @Prop() formsBuilderUrlPath: string | undefined;\n\n /**\n * Optional override path to use for the form renderer navigation instead of the default page route.\n */\n @Prop() formsRendererUrlPath: string | undefined;\n\n /**\n * When true, show the follow-up form config (Form Type) line in the card content.\n */\n @Prop() isFollowUpFormConfigOn: boolean = false;\n\n /**\n * When true, show a View Form action that redirects to the renderer.\n */\n @Prop() isRendererRedirectConfigOn: boolean = false;\n\n /**\n * Emit an event a user action to edit form is clicked to close the sidesheet\n */\n @Event() closeSidesheet: EventEmitter<void>;\n\n\n\n /**\n * Build the URL used to open the form builder.\n *\n * Uses the provided formsBuilderUrlPath override when present, otherwise\n * builds the default in-app page route. Keeps the same query params as before.\n */\n private getFormBuilderUrl = (): string => {\n if (this.formsBuilderUrlPath) {\n return `${this.formsBuilderUrlPath}&udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n }\n return `/page/${UdpFormsPageIdEnum.FormBuilderPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n };\n\n /**\n * Build the URL used to open the form renderer.\n *\n * Uses the provided formsRendererUrlPath override when present, otherwise\n * builds the default in-app page route. Query param shape is unchanged.\n */\n private getFormRendererUrl = (): string => {\n if (this.formsRendererUrlPath) {\n return `${this.formsRendererUrlPath}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n }\n return `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_formId=${this.data.id}&udpf_version=${this.data.version}`;\n };\n\n /**\n * Navigate to the form builder for the current card's form.\n *\n * Computes the target URL using getFormBuilderUrl (which prefers an optional\n * formsBuilderUrlPath override). Performs navigation by calling history.push(url).\n *\n * Side effects: mutates navigation state via history.push. No return value.\n */\n private formBuilderHandler = () => {\n this.history.push(this.getFormBuilderUrl());\n };\n\n /**\n * Navigate to the form renderer (view) for the current card's form.\n *\n * Computes the target URL using getFormRendererUrl (which prefers an optional\n * formsRendererUrlPath override). Performs navigation by calling history.push(url).\n *\n * Side effects: mutates navigation state via history.push. No return value.\n */\n private formRendererHandler = () => {\n this.history.push(this.getFormRendererUrl());\n };\n\n /**\n * Click handler for the card title or card edit icon.\n *\n * Prevents default link behavior, closes sidesheet, then routes to the form builder.\n */\n private handleEditOrTitleClick = (e: CustomEvent) => {\n e.preventDefault();\n this.closeSidesheet.emit();\n this.formBuilderHandler();\n };\n\n render() {\n const contentJsx = (\n <Fragment>\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Version: {this.data.version}\n </unity-typography>\n {!this.isSideSheetList && (\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Last Modified: {dateFormatter(this.data.lastModifiedOn)}\n </unity-typography>\n )}\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Created On: {this.isSideSheetList ? dateFormatter(this.data.createdOn) : dateFormatter(this.data.initialCreatedOn)}\n </unity-typography>\n {this.isFollowUpFormConfigOn && (\n <unity-typography variant=\"body1\" color=\"textSecondary\">\n Form Type: {UdpFormsTypeEnum[this.data.type]}\n </unity-typography>\n )}\n </Fragment>\n );\n\n const actionsJsx = (\n <Fragment>\n <stencil-icon-button\n icon={Edit}\n tooltip=\"Edit Form Template\"\n onClick={(e) => this.handleEditOrTitleClick(e)}\n />\n {!this.isSideSheetList && this.isRendererRedirectConfigOn && (\n <stencil-icon-button\n icon={DocumentAdd}\n tooltip=\"View Form\"\n onClick={e => {\n e.stopPropagation();\n this.formRendererHandler();\n }}\n />\n )}\n {!this.isSideSheetList && (\n <stencil-icon-button\n icon={ChevronRight24}\n tooltip=\"See Form Version History\"\n onClick={e => {\n e.stopPropagation();\n this.openSideSheet?.();\n }}\n />\n )}\n </Fragment>\n );\n\n return (\n <udp-card\n cardTitle={this.data.name}\n subheader={this.data.description}\n actions={actionsJsx}\n onTitleClick={this.handleEditOrTitleClick}\n disableContentPadding={true}\n adornmentStatus={'info'}\n >\n {contentJsx}\n </udp-card>\n );\n }\n}\n"],"names":["Edit","DocumentAdd"],"mappings":"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"}
|