udp-stencil-component-library 25.18.2-beta.4 → 25.18.2-beta.6
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/add-map-feature-popup_4.cjs.entry.js +12 -12
- package/dist/cjs/advanced-search_12.cjs.entry.js +1 -1
- package/dist/cjs/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.cjs.js.map +1 -1
- package/dist/cjs/ag-grid-base_6.cjs.entry.js +27 -11
- package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
- package/dist/cjs/app-bar.cjs.entry.js +1 -1
- package/dist/cjs/check-box.cjs.entry.js +2 -2
- package/dist/cjs/chip-section.cjs.entry.js +2 -2
- package/dist/cjs/client-side-grid_2.cjs.entry.js +3 -3
- 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/entity-maintenance-grid.cjs.entry.js +1 -1
- package/dist/cjs/{enums-DVbZnzL8.js → enums-CgcTuQjC.js} +8 -2
- package/dist/cjs/enums-CgcTuQjC.js.map +1 -0
- package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
- package/dist/cjs/filter-conditions_7.cjs.entry.js +2 -2
- 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 +15 -15
- package/dist/cjs/index-CGCOXUJE.js +10 -10
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/map-component_2.cjs.entry.js +2 -2
- package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
- package/dist/cjs/primary-action-header.udp-tabs.entry.cjs.js.map +1 -0
- package/dist/cjs/{primary-action-header_3.cjs.entry.js → primary-action-header_2.cjs.entry.js} +4 -266
- 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/resource-timeline-calendar.cjs.entry.js +1 -1
- package/dist/cjs/search-method-grid.cjs.entry.js +2 -1
- package/dist/cjs/search-method-grid.entry.cjs.js.map +1 -1
- package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
- package/dist/cjs/side-sheet-container.cjs.entry.js +1 -1
- package/dist/cjs/stencil-library.cjs.js +1 -1
- package/dist/cjs/stencil-toggle.cjs.entry.js +4 -4
- package/dist/cjs/text-field_2.cjs.entry.js +7 -7
- package/dist/cjs/udp-chip_3.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
- package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
- package/dist/cjs/udp-container.cjs.entry.js +35 -0
- package/dist/cjs/udp-container.entry.cjs.js.map +1 -0
- package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
- package/dist/cjs/udp-dynamic-container-with-menu.cjs.entry.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/udp-linear-loader.udp-side-sheet.entry.cjs.js.map +1 -0
- package/dist/cjs/udp-linear-loader_2.cjs.entry.js +289 -0
- package/dist/cjs/udp-map.cjs.entry.js +3 -3
- package/dist/cjs/udp-menu-item.udp-pop-over.entry.cjs.js.map +1 -0
- package/dist/cjs/{udp-pop-over.cjs.entry.js → udp-menu-item_2.cjs.entry.js} +23 -1
- package/dist/cjs/udp-page.cjs.entry.js +1 -1
- package/dist/cjs/udp-skeleton-loading.cjs.entry.js +1 -1
- package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
- package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
- package/dist/cjs/udp-tab-panel.cjs.entry.js +2 -2
- package/dist/cjs/udp-tab.cjs.entry.js +1 -1
- package/dist/cjs/udp-timeline-connector.cjs.entry.js +1 -1
- package/dist/cjs/udp-timeline-dot.cjs.entry.js +1 -1
- package/dist/cjs/udp-timeline-item.cjs.entry.js +2 -2
- package/dist/cjs/udp-timeline-separator.cjs.entry.js +1 -1
- package/dist/cjs/udp-timeline.cjs.entry.js +1 -1
- package/dist/cjs/udp-vertical-spacer.cjs.entry.js +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/grid/new-grid/ag-grid-base.js +2 -1
- package/dist/collection/components/grid/new-grid/ag-grid-base.js.map +1 -1
- package/dist/collection/components/grid/new-grid/api-method-instance-grid.js +1 -1
- package/dist/collection/components/grid/new-grid/client-side-grid.js +1 -1
- package/dist/collection/components/grid/new-grid/datasources/searchMethodDatasource.js +1 -0
- package/dist/collection/components/grid/new-grid/datasources/searchMethodDatasource.js.map +1 -1
- package/dist/collection/components/grid/new-grid/entity-maintenance-grid.js +1 -1
- package/dist/collection/components/grid/new-grid/gridFunctions/bulkActions.js +24 -9
- package/dist/collection/components/grid/new-grid/gridFunctions/bulkActions.js.map +1 -1
- package/dist/collection/components/grid/new-grid/interfaces/grid.js.map +1 -1
- package/dist/collection/components/grid/new-grid/search-method-grid.js +1 -1
- package/dist/collection/components/grid/new-grid/server-side-grid.js +1 -1
- package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
- package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
- package/dist/collection/components/inputs/checkbox/check-box.js +2 -2
- package/dist/collection/components/inputs/date-range-selector/udp-date-range-selector.js +1 -1
- package/dist/collection/components/inputs/date-selector/udp-date-selector.js +3 -3
- package/dist/collection/components/inputs/date-time-selector/udp-datetime-selector.js +3 -3
- 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/collection/components/inputs/image-upload/image-upload.js +1 -1
- package/dist/collection/components/inputs/numeric-field/numeric-field.js +3 -3
- package/dist/collection/components/inputs/signature-input/signature-input.js +2 -2
- package/dist/collection/components/inputs/tally/tally.js +2 -2
- package/dist/collection/components/inputs/text-area/text-area.js +3 -3
- package/dist/collection/components/inputs/text-field/text-field.js +3 -3
- package/dist/collection/components/inputs/time-selector/udp-time-selector.js +3 -3
- package/dist/collection/components/inputs/toggle/stencil-toggle.js +4 -4
- package/dist/collection/components/inputs/udp-selector/udp-selector.js +4 -4
- package/dist/collection/components/layout/udp-container/udp-container.js +2 -2
- package/dist/collection/components/layout/udp-container-query/udp-container-query.js +2 -2
- package/dist/collection/components/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
- package/dist/collection/components/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
- package/dist/collection/components/layout/udp-page/udp-page.js +1 -1
- package/dist/collection/components/layout/udp-split-screen/udp-split-screen.js +1 -1
- package/dist/collection/components/layout/udp-vertical-spacer.js +1 -1
- package/dist/collection/components/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
- package/dist/collection/components/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
- package/dist/collection/components/loaders/udp-skeleton-loading.js +1 -1
- package/dist/collection/components/map/udp-map/map-component.js +1 -1
- package/dist/collection/components/map/udp-map/popups/add-map-feature-popup.js +3 -3
- package/dist/collection/components/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
- package/dist/collection/components/map/udp-map/popups/feature-details-popup.js +1 -1
- package/dist/collection/components/map/udp-map/popups/select-layer-popup.js +2 -2
- package/dist/collection/components/map/udp-map/popups/split-line-popup.js +1 -1
- package/dist/collection/components/map/udp-map/toolbar/map-toolbar.js +6 -6
- package/dist/collection/components/map/udp-map/udp-map-toolbar.js +1 -1
- package/dist/collection/components/map/udp-map/udp-map.js +3 -3
- package/dist/collection/components/menu/menu-item/udp-menu-item.js +1 -1
- package/dist/collection/components/menu/udp-menu.js +1 -1
- package/dist/collection/components/stepper/udp-stepper-demo.js +1 -1
- package/dist/collection/components/tabs/tab/tabs/udp-tabs.js +2 -2
- package/dist/collection/components/tabs/tab/udp-tab.js +1 -1
- package/dist/collection/components/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
- package/dist/collection/components/timeline/udp-timeline-connector.js +1 -1
- package/dist/collection/components/timeline/udp-timeline-dot.js +1 -1
- package/dist/collection/components/timeline/udp-timeline-item.js +2 -2
- package/dist/collection/components/timeline/udp-timeline-separator.js +1 -1
- package/dist/collection/components/timeline/udp-timeline.js +1 -1
- package/dist/collection/components/toolbars/app-bar/app-bar.js +1 -1
- package/dist/collection/components/util/ghost-render/ghost-render.js +1 -1
- package/dist/collection/deprecated/components/side-sheet/side-sheet-container.js +1 -1
- package/dist/collection/deprecated/components/side-sheet/side-sheet.js +1 -1
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
- package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
- package/dist/components/add-map-feature-popup2.js +3 -3
- package/dist/components/ag-grid-base2.js +78 -38
- package/dist/components/ag-grid-base2.js.map +1 -1
- package/dist/components/api-method-instance-grid.js +59 -35
- package/dist/components/api-method-instance-grid.js.map +1 -1
- package/dist/components/app-bar.js +1 -1
- package/dist/components/check-box.js +2 -2
- package/dist/components/chip-section.js +2 -2
- package/dist/components/client-side-grid2.js +55 -31
- package/dist/components/client-side-grid2.js.map +1 -1
- package/dist/components/date-time-renderer2.js.map +1 -1
- package/dist/components/entity-maintenance-grid.js +1 -1
- package/dist/components/enums.js +7 -1
- package/dist/components/enums.js.map +1 -1
- package/dist/components/feature-details-card2.js +4 -4
- package/dist/components/feature-details-popup2.js +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/ghost-render2.js +1 -1
- package/dist/components/image-upload2.js +1 -1
- package/dist/components/list-options-renderer2.js +3 -3
- package/dist/components/list-options-renderer2.js.map +1 -1
- package/dist/components/map-component2.js +1 -1
- package/dist/components/map-toolbar2.js +6 -6
- package/dist/components/numeric-field2.js +3 -3
- 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/resource-timeline-calendar.js +59 -35
- package/dist/components/resource-timeline-calendar.js.map +1 -1
- package/dist/components/resource-timeline-primary-bar2.js +2 -2
- package/dist/components/search-method-grid2.js +58 -33
- package/dist/components/search-method-grid2.js.map +1 -1
- package/dist/components/select-layer-popup2.js +2 -2
- package/dist/components/server-side-grid2.js +55 -31
- package/dist/components/server-side-grid2.js.map +1 -1
- package/dist/components/side-sheet-container2.js +1 -1
- package/dist/components/side-sheet2.js +1 -1
- package/dist/components/signature-input2.js +2 -2
- package/dist/components/signature-renderer2.js +1 -1
- package/dist/components/signature-renderer2.js.map +1 -1
- package/dist/components/split-line-popup2.js +1 -1
- package/dist/components/stencil-toggle2.js +4 -4
- package/dist/components/tally.js +2 -2
- package/dist/components/text-area2.js +3 -3
- package/dist/components/text-field2.js +3 -3
- package/dist/components/text-input-renderer2.js +2 -2
- package/dist/components/text-input-renderer2.js.map +1 -1
- package/dist/components/udp-container-query-grid-item.js +1 -1
- package/dist/components/udp-container-query-grid.js +1 -1
- package/dist/components/udp-container-query2.js +2 -2
- package/dist/components/udp-container2.js +2 -2
- package/dist/components/udp-date-range-selector.js +1 -1
- package/dist/components/udp-date-selector2.js +3 -3
- package/dist/components/udp-datetime-selector2.js +3 -3
- package/dist/components/udp-dynamic-container-with-menu2.js +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-grid-loader2.js +2 -2
- package/dist/components/udp-linear-loader2.js +1 -1
- package/dist/components/udp-map-toolbar2.js +1 -1
- package/dist/components/udp-map.js +3 -3
- package/dist/components/udp-menu-item2.js +1 -1
- package/dist/components/udp-menu2.js +1 -1
- package/dist/components/udp-page.js +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/udp-selector2.js +4 -4
- package/dist/components/udp-skeleton-loading2.js +1 -1
- package/dist/components/udp-split-screen.js +1 -1
- package/dist/components/udp-stepper-demo.js +1 -1
- package/dist/components/udp-tab-panel.js +2 -2
- package/dist/components/udp-tab.js +1 -1
- package/dist/components/udp-tabs2.js +2 -2
- package/dist/components/udp-time-selector2.js +3 -3
- package/dist/components/udp-timeline-connector.js +1 -1
- package/dist/components/udp-timeline-dot.js +1 -1
- package/dist/components/udp-timeline-item.js +2 -2
- package/dist/components/udp-timeline-separator.js +1 -1
- package/dist/components/udp-timeline.js +1 -1
- package/dist/components/udp-vertical-spacer.js +1 -1
- package/dist/components/utils.js +6 -6
- package/dist/components/utils.js.map +1 -1
- package/dist/docs.json +258 -205
- package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
- package/dist/esm/advanced-search_12.entry.js +1 -1
- package/dist/esm/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.js.map +1 -1
- package/dist/esm/ag-grid-base_6.entry.js +27 -11
- package/dist/esm/api-method-instance-grid.entry.js +1 -1
- package/dist/esm/app-bar.entry.js +1 -1
- package/dist/esm/check-box.entry.js +2 -2
- package/dist/esm/chip-section.entry.js +2 -2
- package/dist/esm/client-side-grid_2.entry.js +3 -3
- 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/entity-maintenance-grid.entry.js +1 -1
- package/dist/esm/{enums-CHxgVY-B.js → enums-DHT5wSnX.js} +9 -3
- package/dist/esm/enums-DHT5wSnX.js.map +1 -0
- package/dist/esm/feature-details-card_2.entry.js +5 -5
- package/dist/esm/filter-conditions_7.entry.js +2 -2
- 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 +15 -15
- package/dist/esm/index-CaZq3YdB.js +10 -10
- package/dist/esm/loader.js +1 -1
- package/dist/esm/map-component_2.entry.js +2 -2
- package/dist/esm/numeric-field_5.entry.js +15 -15
- package/dist/esm/primary-action-header.udp-tabs.entry.js.map +1 -0
- package/dist/esm/{primary-action-header_3.entry.js → primary-action-header_2.entry.js} +5 -262
- 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/resource-timeline-calendar.entry.js +1 -1
- package/dist/esm/search-method-grid.entry.js +2 -1
- package/dist/esm/search-method-grid.entry.js.map +1 -1
- package/dist/esm/server-side-grid.entry.js +1 -1
- package/dist/esm/side-sheet-container.entry.js +1 -1
- package/dist/esm/stencil-library.js +1 -1
- package/dist/esm/stencil-toggle.entry.js +4 -4
- package/dist/esm/text-field_2.entry.js +7 -7
- package/dist/esm/udp-chip_3.entry.js +1 -1
- package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
- package/dist/esm/udp-container-query-grid.entry.js +1 -1
- package/dist/esm/udp-container-query.entry.js +2 -2
- package/dist/esm/udp-container.entry.js +33 -0
- package/dist/esm/udp-container.entry.js.map +1 -0
- package/dist/esm/udp-date-range-selector.entry.js +1 -1
- package/dist/esm/udp-dynamic-container-with-menu.entry.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/udp-linear-loader.udp-side-sheet.entry.js.map +1 -0
- package/dist/esm/udp-linear-loader_2.entry.js +282 -0
- package/dist/esm/udp-map.entry.js +3 -3
- package/dist/esm/udp-menu-item.udp-pop-over.entry.js.map +1 -0
- package/dist/esm/{udp-pop-over.entry.js → udp-menu-item_2.entry.js} +24 -3
- package/dist/esm/udp-page.entry.js +1 -1
- package/dist/esm/udp-skeleton-loading.entry.js +1 -1
- package/dist/esm/udp-split-screen.entry.js +1 -1
- package/dist/esm/udp-stepper-demo.entry.js +1 -1
- package/dist/esm/udp-tab-panel.entry.js +2 -2
- package/dist/esm/udp-tab.entry.js +1 -1
- package/dist/esm/udp-timeline-connector.entry.js +1 -1
- package/dist/esm/udp-timeline-dot.entry.js +1 -1
- package/dist/esm/udp-timeline-item.entry.js +2 -2
- package/dist/esm/udp-timeline-separator.entry.js +1 -1
- package/dist/esm/udp-timeline.entry.js +1 -1
- package/dist/esm/udp-vertical-spacer.entry.js +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/add-map-feature-popup_4.entry.js +1 -1
- package/dist/stencil-library/advanced-search_12.entry.js +1 -1
- package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.esm.js.map +1 -1
- package/dist/stencil-library/ag-grid-base_6.entry.js +1 -1
- package/dist/stencil-library/ag-grid-base_6.entry.js.map +1 -1
- package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
- package/dist/stencil-library/app-bar.entry.js +1 -1
- package/dist/stencil-library/check-box.entry.js +1 -1
- package/dist/stencil-library/chip-section.entry.js +1 -1
- package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
- 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/entity-maintenance-grid.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/feature-details-card_2.entry.js +1 -1
- package/dist/stencil-library/filter-conditions_7.entry.js +1 -1
- 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/map-component_2.entry.js +1 -1
- package/dist/stencil-library/numeric-field_5.entry.js +1 -1
- package/dist/stencil-library/primary-action-header.udp-tabs.entry.esm.js.map +1 -0
- package/dist/stencil-library/primary-action-header_2.entry.js +2 -0
- package/dist/stencil-library/primary-action-header_2.entry.js.map +1 -0
- 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/resource-timeline-calendar.entry.js +1 -1
- package/dist/stencil-library/search-method-grid.entry.esm.js.map +1 -1
- package/dist/stencil-library/search-method-grid.entry.js +1 -1
- package/dist/stencil-library/search-method-grid.entry.js.map +1 -1
- package/dist/stencil-library/server-side-grid.entry.js +1 -1
- package/dist/stencil-library/side-sheet-container.entry.js +1 -1
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/stencil-library/stencil-toggle.entry.js +1 -1
- package/dist/stencil-library/text-field_2.entry.js +1 -1
- package/dist/stencil-library/udp-chip_3.entry.js +1 -1
- package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
- package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
- package/dist/stencil-library/udp-container-query.entry.js +1 -1
- package/dist/stencil-library/udp-container.entry.esm.js.map +1 -0
- package/dist/stencil-library/udp-container.entry.js +2 -0
- package/dist/stencil-library/udp-container.entry.js.map +1 -0
- package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
- package/dist/stencil-library/udp-dynamic-container-with-menu.entry.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/udp-linear-loader.udp-side-sheet.entry.esm.js.map +1 -0
- package/dist/stencil-library/udp-linear-loader_2.entry.js +2 -0
- package/dist/stencil-library/udp-linear-loader_2.entry.js.map +1 -0
- package/dist/stencil-library/udp-map.entry.js +1 -1
- package/dist/stencil-library/udp-menu-item.udp-pop-over.entry.esm.js.map +1 -0
- package/dist/stencil-library/udp-menu-item_2.entry.js +2 -0
- package/dist/stencil-library/udp-menu-item_2.entry.js.map +1 -0
- package/dist/stencil-library/udp-page.entry.js +1 -1
- package/dist/stencil-library/udp-skeleton-loading.entry.js +1 -1
- package/dist/stencil-library/udp-split-screen.entry.js +1 -1
- package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
- package/dist/stencil-library/udp-tab-panel.entry.js +1 -1
- package/dist/stencil-library/udp-tab.entry.js +1 -1
- package/dist/stencil-library/udp-timeline-connector.entry.js +1 -1
- package/dist/stencil-library/udp-timeline-dot.entry.js +1 -1
- package/dist/stencil-library/udp-timeline-item.entry.js +1 -1
- package/dist/stencil-library/udp-timeline-item.entry.js.map +1 -1
- package/dist/stencil-library/udp-timeline-separator.entry.js +1 -1
- package/dist/stencil-library/udp-timeline.entry.js +1 -1
- package/dist/stencil-library/udp-vertical-spacer.entry.js +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/grid/new-grid/gridFunctions/bulkActions.d.ts +4 -2
- package/dist/types/components/grid/new-grid/interfaces/grid.d.ts +1 -0
- 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/primary-action-header.udp-side-sheet.udp-tabs.entry.cjs.js.map +0 -1
- package/dist/cjs/udp-container.udp-linear-loader.entry.cjs.js.map +0 -1
- package/dist/cjs/udp-container_2.cjs.entry.js +0 -56
- package/dist/cjs/udp-forms-builder-question-template-CNONS2l5.js.map +0 -1
- package/dist/cjs/udp-menu-item.cjs.entry.js +0 -27
- package/dist/cjs/udp-menu-item.entry.cjs.js.map +0 -1
- package/dist/cjs/udp-pop-over.entry.cjs.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/primary-action-header.udp-side-sheet.udp-tabs.entry.js.map +0 -1
- package/dist/esm/udp-container.udp-linear-loader.entry.js.map +0 -1
- package/dist/esm/udp-container_2.entry.js +0 -53
- package/dist/esm/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
- package/dist/esm/udp-menu-item.entry.js +0 -25
- package/dist/esm/udp-menu-item.entry.js.map +0 -1
- package/dist/esm/udp-pop-over.entry.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/primary-action-header.udp-side-sheet.udp-tabs.entry.esm.js.map +0 -1
- package/dist/stencil-library/primary-action-header_3.entry.js +0 -2
- package/dist/stencil-library/primary-action-header_3.entry.js.map +0 -1
- package/dist/stencil-library/udp-container.udp-linear-loader.entry.esm.js.map +0 -1
- package/dist/stencil-library/udp-container_2.entry.js +0 -2
- package/dist/stencil-library/udp-container_2.entry.js.map +0 -1
- package/dist/stencil-library/udp-forms-builder-question-template-DQJb7f4Y.js.map +0 -1
- package/dist/stencil-library/udp-menu-item.entry.esm.js.map +0 -1
- package/dist/stencil-library/udp-menu-item.entry.js +0 -2
- package/dist/stencil-library/udp-menu-item.entry.js.map +0 -1
- package/dist/stencil-library/udp-pop-over.entry.esm.js.map +0 -1
- package/dist/stencil-library/udp-pop-over.entry.js +0 -2
- package/dist/stencil-library/udp-pop-over.entry.js.map +0 -1
- package/dist/stencil-library/utils-CiUp9KGZ.js.map +0 -1
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.js +0 -0
- /package/dist/collection/components/forms/udp-forms/{utils → udp-forms-utils}/types.js +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/classes/UdpForm.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/IFormHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-handler/UdpFormHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/FormSubmissionHandlerFactory.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/IFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PrivateFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/PublicFormSubmissionHandler.d.ts +0 -0
- /package/dist/types/components/forms/udp-forms/{utils → udp-forms-utils}/form-submission-handler/formUtils.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-forms-builder.js","mappings":"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","names":["UdpFormsBuilder","__stencil_proxyCustomElement","HTMLElement","uuidv4"],"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"],"version":3}
|
|
1
|
+
{"file":"udp-forms-builder.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,kBAAkB,GAAG,qnDAAqnD;;;;;;;;;;;;;;MCmBnoDA,iBAAe,iBAAAC,kBAAA,CAAA,MAAA,eAAA,SAAAC,CAAA,CAAA;AAL5B,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAaU,QAAA,IAAA,CAAA,sBAAsB,GAAY,KAAK,CAAC;AACxC,QAAA,IAAA,CAAA,oBAAoB,GAAY,KAAK,CAAC;AACtC,QAAA,IAAA,CAAA,oBAAoB,GAAY,IAAI,CAAC;AACrC,QAAA,IAAA,CAAA,mBAAmB,GAAW,EAAE,CAAC;AAGhC,QAAA,IAAY,CAAA,YAAA,GAAoB,mBAAsC;AACtE,QAAA,IAAY,CAAA,YAAA,GAAU,EAAE;AACxB,QAAA,IAAiB,CAAA,iBAAA,GAAU,EAAE;AAC7B,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI;AACzB,QAAA,IAAuB,CAAA,uBAAA,GAAY,KAAK;AAExC,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK;AACxB,QAAA,IAAS,CAAA,SAAA,GAAY,KAAK;AAE1B,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK;AACrC,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK;AACjC,QAAA,IAAY,CAAA,YAAA,GAAY,KAAK;AAC7B,QAAA,IAAe,CAAA,eAAA,GAA8C,IAAI;AACjE,QAAA,IAAe,CAAA,eAAA,GAA8C,IAAI;AACjE,QAAA,IAAc,CAAA,cAAA,GAA8B,IAAI;AAChD,QAAA,IAAoB,CAAA,oBAAA,GAAY,KAAK;AACrC,QAAA,IAAmB,CAAA,mBAAA,GAAY,KAAK;AACpC,QAAA,IAA0B,CAAA,0BAAA,GAAU,EAAE;AAGtC,QAAA,IAAY,CAAA,YAAA,GAAyB,IAAI;AACzC,QAAA,IAAa,CAAA,aAAA,GAAW,uCAAuC;AAIhE,QAAA,IAAiB,CAAA,iBAAA,GAAe,EAAE;AAClC,QAAA,IAAA,CAAA,kBAAkB,GAAG,kBAAkB,CAAC,iBAAiB;QACzD,IAAA,CAAA,eAAe,GAAuC,MAAM,CAAC,IAAI,CAAC,gBAAgB;AACvF,aAAA,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,aAAA,GAAG,CAAC,GAAG,KAAK;YACX,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,GAAoC,CAAC,CAAC;AACrE,YAAA,KAAK,EAAE,GAAG;AACX,SAAA,CAAC,CAAC;;AAiSG,QAAA,IAAgB,CAAA,gBAAA,GAAG,MAAK;AAC9B,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;AAChD,SAAC;;AAGO,QAAA,IAAmB,CAAA,mBAAA,GAAG,WAAW,IAAG;AAC1C,YAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC;YAC3E,OAAO,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,GAAG,SAAS;AACzD,SAAC;AAEO,QAAA,IAAwB,CAAA,wBAAA,GAAG,WAAW,IAAG;AAC/C,YAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC;AAC3E,YAAA,OAAO,QAAQ,GAAG,QAAQ,CAAC,qBAAqB,IAAI,KAAK,GAAG,KAAK;AACnE,SAAC;AAEO,QAAA,IAAkB,CAAA,kBAAA,GAAG,WAAW,IAAG;AACzC,YAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC;YAC3E,OAAO,QAAQ,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI;AACxC,SAAC;QAEO,IAAA,CAAA,oBAAoB,GAAG,CAAC,MAAc,EAAE,MAAc,KAAI;YAChE,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7D,YAAA,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,SAAC;QAEO,IAAA,CAAA,kBAAkB,GAAG,CAAC,MAAc,EAAE,MAAc,KAAI;YAC9D,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AAC7D,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;AAEtE,YAAA,MAAM,WAAW,mCACZ,cAAc,CAAA,EAAA,EACjB,YAAY,EAAE,CAAC,cAAc,CAAC,YAAY,IAAI,EAAE,IAAI,SAAS,EAC7D,EAAE,EAAEC,EAAM,EAAE,EAAA,CACb;AAED,YAAA,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;AACrE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,SAAC;QAEO,IAAA,CAAA,mBAAmB,GAAG,CAAC,MAAc,EAAE,MAAc,KAAI;YAC/D,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;AACzC,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;YAChC,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACnE,SAAC;AAEO,QAAA,IAAmB,CAAA,mBAAA,GAAG,MAAK;AACjC,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC/B,SAAC;QAEO,IAAiB,CAAA,iBAAA,GAAG,CAAC,kBAAkB,EAAE,MAAe,EAAE,MAAe,KAAwC;AACvH,YAAA,MAAM,WAAW,GAAG;gBAClB,gBAAgB,EAAE,kBAAkB,CAAC,gBAAgB;gBACrD,WAAW,EAAE,kBAAkB,CAAC,WAAW;gBAC3C,eAAe,EAAE,kBAAkB,CAAC,sBAAsB;AAC1D,gBAAA,UAAU,EAAE,EAAE;AACd,gBAAA,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,MAAM,KAAK,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC;gBACxJ,qBAAqB,EAAE,kBAAkB,CAAC,qBAAqB;gBAC/D,IAAI,EAAE,kBAAkB,CAAC,IAAI;AAC7B,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,SAAS,EAAE,IAAI;gBACf,EAAE,EAAEA,EAAM,EAAE;aACb;YAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjE,IAAI,YAAY,GAAG,MAAM;YACzB,IAAI,YAAY,GAAG,MAAM;YAEzB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;;AAEhD,gBAAA,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE;AACzC,oBAAA,eAAe,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,CAAC;;qBAC/D;;AAEL,oBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;oBACjD,eAAe,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC/D,YAAY,GAAG,cAAc;oBAC7B,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;;iBAEpE;;AAEL,gBAAA,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;AACjD,gBAAA,IAAI,cAAc,GAAG,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpF,eAAe,CAAC,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,kBAAkB,CAAA,EAAA,EAAE,aAAa,EAAE,CAAC,WAAW,CAAC,EAAA,CAAA,CAAG;AAC7E,oBAAA,YAAY,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;oBACzC,YAAY,GAAG,CAAC;;qBACX;oBACL,eAAe,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC/D,YAAY,GAAG,cAAc;oBAC7B,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;;;;AAK3E,YAAA,IAAI,CAAC,iBAAiB,GAAG,eAAe;YACxC,IAAI,IAAI,CAAC,eAAe;AAAE,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAErD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE;AACvD,SAAC;;AAgBO,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAC,MAAc,KAAI;YACjD,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE;YAE5C,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACnG,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,SAAC;AAEO,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,MAAc,KAAI;YAC/C,IAAI,MAAM,IAAI,CAAC;gBAAE;YAEjB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YAC3C,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;AACnG,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAClC,SAAC;AAEO,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,MAAc,KAAI;YAC/C,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9C,YAAA,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACrC,SAAC;AAEO,QAAA,IAA2B,CAAA,2BAAA,GAAG,MAAK;AACzC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB;AAC1C,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC/B,SAAC;AAEO,QAAA,IAA6B,CAAA,6BAAA,GAAG,MAAc;;AAEpD,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtF,SAAC;AAEO,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,MAAc,KAAI;AAClD,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;YAC/B,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACnE,SAAC;AAEO,QAAA,IAAkB,CAAA,kBAAA,GAAG,MAAK;AAChC,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC/B,SAAC;AA6fF;;AA37BC,IAAA,MAAM,cAAc,GAAA;;QAElB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS;AAC3D,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,kBAAkB,EAAE;QACjD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI;QACjD,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,mBAAmB,CAAC,OAAO;QACvD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI;QACjD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,mBAAmB,CAAC,WAAW;AAC/D,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,oBAAoB;AAEvD,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;;AAGrB,YAAA,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,GAAG,YAAY,CAAC;YAE7F,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,CAA4B,CAAC;;YAI/C,IAAI,CAAC,0BAA0B,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,IAAG;gBAC/D,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAY,SAAS,CAAA,EAAA,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAG,CAAA;AACtE,aAAC,CAAC;;YAGF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC/B,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,aAAa,CAAC,eAAe,CAAY,SAAA,EAAA,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,CAAC;AACrI,gBAAA,MAAM,yBAAyB,GAAG,MAAM,WAAW,CAAC,KAAK,EAAE,CAAA,EAAG,aAAa,CAAC,eAAe,CAAY,SAAA,EAAA,IAAI,CAAC,MAAM,CAAA,SAAA,CAAW,CAAC;AAE9H,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AAEtB,gBAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,yBAAyB,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE;AACzG,oBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wBAAA,CAA0B,CAAC;;;AAI7C,gBAAA,IAAI,gBAAgB,CAAC,EAAE,IAAI,yBAAyB,CAAC,EAAE,IAAI,gBAAgB,CAAC,OAAO,IAAI,yBAAyB,CAAC,OAAO,EAAE;AACxH,oBAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;;;AAIrC,gBAAA,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,OAAO,KAAI,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAO,CAAA,EAAA,EAAE,aAAa,EAAE,EAAE,EAAG,CAAA,CAAA,CAAC;AAChI,gBAAA,YAAY,CAAC,OAAO,CAAC,OAAO,IAAG;AAC5B,oBAAA,IAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE;AAC5B,wBAAA,OAAO,CAAC,iBAAiB,GAAG,EAAE;;yBACzB;wBACL,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC;;AAEvE,iBAAC,CAAC;;AAIF,gBAAA,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,IAAG;AAChD,oBAAA,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,aAAa,CAAC;oBACvE,IAAI,OAAO,EAAE;AACX,wBAAA,MAAM,UAAU,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CAAC,eAAe,CAAE;;wBAGlD,IAAI,UAAU,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,EAAE;4BACrD,OAAO,UAAU,CAAC,KAAK;;wBAGzB,OAAO,CAAC,aAAa,CAAC,IAAI,iCACrB,QAAQ,CAAA,EAAA,EACX,eAAe,EAAE,UAAU,EAC3B,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAChE,qBAAqB,EAAE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC1E,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,IACnD;;AAIN,iBAAC,CAAC;;AAGF,gBAAA,YAAY,CAAC,OAAO,CAAC,OAAO,IAAG;oBAC7B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC;AACzE,iBAAC,CAAC;;AAGF,gBAAA,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;gBAG9C,MAAW,QAAQ,GAAK,MAAA,CAAA,gBAAgB,EAAlC,EAAe,CAAmB;;gBAGxC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;;AAGzG,gBAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;AAC5B,gBAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;;QAExB,OAAO,CAAC,EAAE;AACV,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,YAAA,IAAI,CAAC,eAAe,CAAC,yBAAyB,EAAE;AAC9C,gBAAA,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,aAAA,CAAC;;gBACM;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;;AAI1B,IAAA,MAAM,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB;;AAGF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,QAAA,IAAI;;AAEF,YAAA,MAAM,qBAAqB,GAAG;AAC5B,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;AAC5B,gBAAA,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;AAC1C,gBAAA,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;AACpC,gBAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS;AACtC,gBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;gBAC5B,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;AAChE,gBAAA,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;aACnC;AAGD,YAAA,MAAM,OAAO,GAAG,CAAA,EAAG,aAAa,CAAC,eAAe,WAAW,IAAI,CAAC,uBAAuB,GAAG,WAAW,GAAG,EAAE,EAAE;YAC5G,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC;AAE9E,YAAA,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE;AAC9B,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO;AAExC,YAAA,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC9D,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAE,CAAA,CAAC;;;YAI3E,IAAI,YAAY,GAAG,CAAC;YACpB,IAAI,aAAa,GAAG,CAAC;YACrB,MAAM,gBAAgB,GAAmB,EAAE;AAE3C,YAAA,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;gBAC3D,YAAY,IAAI,CAAC;AAEjB,gBAAA,MAAM,oBAAoB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACrB,OAAO,CAAA,EAAA,EACV,MAAM;oBACN,WAAW,EACX,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAC5D,IAAI,EAAE,UAAU,YAAY,CAAA,CAAE,EAAA,CAC/B;AAED,gBAAA,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAG,EAAA,aAAa,CAAC,eAAe,CAAA,eAAA,CAAiB,EAAE,oBAAoB,CAAC;gBAE1H,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE;AAC3C,oBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAE,CAAA,CAAC;;AAGjF,gBAAA,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE;AAEpC,gBAAA,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE;oBAC5C,aAAa,IAAI,CAAC;AAElB,oBAAA,MAAM,qBAAqB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACtB,QAAQ,CAAA,EAAA,EACX,MAAM;wBACN,WAAW,EACX,OAAO,EAAE,MAAM,GAAG,CAAC,EACnB,aAAa,EACb,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,CAAA,QAAA,EAAW,aAAa,CAAE,CAAA,GACjC;AAED,oBAAA,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,EAAE,CAAA,EAAG,aAAa,CAAC,eAAe,CAAA,gBAAA,CAAkB,EAAE,qBAAqB,CAAC;AACtH,oBAAA,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;;;;AAK1C,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAEnC,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;AAC9B,gBAAA,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,aAAA,CAAC;AAEF,YAAA,IAAG,IAAI,CAAC,mBAAmB,EAAE;AAC3B,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAG,EAAA,IAAI,CAAC,mBAAmB,gBAAgB,MAAM,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAE,CAAC;gBAClG;;AAGF,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAS,MAAA,EAAA,IAAI,CAAC,kBAAkB,gBAAgB,MAAM,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAE,CAAC;;QACvG,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE;AACxC,gBAAA,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,aAAA,CAAC;;gBACM;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;;;IAM1B,gBAAgB,GAAA;QACd,IAAI,CAAC,kBAAkB,EAAE;;IAG3B,kBAAkB,GAAA;QAChB,IAAI,CAAC,kBAAkB,EAAE;;IAG3B,iBAAiB,GAAA;QACf,IAAI,CAAC,cAAc,EAAE;;;;;;;;;;IAevB,uBAAuB,GAAA;QACrB,IAAI,CAAC,cAAc,EAAE;;;IAKf,kBAAkB,GAAA;;QAExB,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB,CAAC,EAAE;YACrD;;AAGF,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;QAE3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,KAAI;AACtC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA,SAAA,EAAY,MAAM,CAAA,CAAE,CAAC;YACrE,IAAI,EAAE,EAAE;AACN,gBAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE;AAChC,oBAAA,SAAS,EAAE,GAAG;AACd,oBAAA,MAAM,EAAE,+BAA+B;AACvC,oBAAA,SAAS,EAAE,iCAAiC;AAC5C,oBAAA,MAAM,EAAE,4BAA4B;AACpC,oBAAA,UAAU,EAAE,gBAAgB;AAC5B,oBAAA,WAAW,EAAE,iBAAiB;AAC9B,oBAAA,SAAS,EAAE,UAAU;AACrB,oBAAA,aAAa,EAAE,KAAK;AACpB,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,aAAa,EAAE,GAAG;AAClB,oBAAA,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC;AAC9C,iBAAA,CAAC;AACF,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAEzC,SAAC,CAAC;;IAGI,aAAa,CAAC,GAA2B,EAAE,MAAc,EAAA;AAC/D,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAC7B,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ;QAC7B,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI;YAAE;QAEnE,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9D,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC;;QAGpD,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AAChE,QAAA,eAAe,CAAC,MAAM,CAAC,GAAG,WAAW;AAErC,QAAA,IAAI,CAAC,YAAY,GAAG,eAAe;;IA8G7B,SAAS,CAAC,MAAW,EAAE,MAAW,EAAA;QACxC,MAAM,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,MAAM,CAAE;AAC5B,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACxB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBACjF,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;iBACvD;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;;;AAG7B,QAAA,OAAO,MAAM;;;IAmDP,WAAW,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE;;IAG1F,oBAAoB,GAAA;;AAC3B,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAI,EAAE,CAAA,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE;AAChD,gBAAA,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,aAAA,CAAC;AACD,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,IAAI;;IAGL,oBAAoB,GAAA;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,8CAA8C,EAAE;AACnE,gBAAA,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,aAAA,CAAC;AAEF,YAAA,OAAO,KAAK;;AAGd,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,MAAM,SAAS,GAAG,CAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,aAAa,KAAI,EAAE;AAElD,YAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,gBAAA,MAAM,YAAY,GAAG,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAA,MAAA,GAAA,MAAA,GAAX,WAAW,CAAE,KAAK,IAAG,CAAA,CAAA,EAAI,WAAW,CAAC,KAAK,CAAG,CAAA,CAAA,GAAG,CAAA,CAAA,EAAI,MAAM,GAAG,CAAC,EAAE;AACrF,gBAAA,IAAI,CAAC,eAAe,CAAC,CAAW,QAAA,EAAA,YAAY,sCAAsC,EAAE;AAClF,oBAAA,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,iBAAA,CAAC;AACF,gBAAA,OAAO,KAAK;;;AAIhB,QAAA,OAAO,IAAI;;IAGL,oBAAoB,GAAA;AAC1B,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,MAAM,SAAS,GAAG,CAAA,WAAW,KAAX,IAAA,IAAA,WAAW,KAAX,MAAA,GAAA,MAAA,GAAA,WAAW,CAAE,aAAa,KAAI,EAAE;AAClD,YAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;gBACzD,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,eAAe,CAAC,gCAAgC,EAAE;AACrD,wBAAA,OAAO,EAAE,OAAO;wBAChB,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxD,qBAAA,CAAC;AACF,oBAAA,OAAO,KAAK;;;;AAIlB,QAAA,OAAO,IAAI;;IAGL,oBAAoB,CAAC,MAAc,EAAE,MAAc,EAAA;AACzD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;;AAEpE,QAAA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,CAAC;QACxF,MAAM,oBAAoB,GAAG,EAAE,QAAQ,IAAK,QAAgB,CAAC,oBAAoB,CAAC;AAClF,QAAA,IAAI,oBAAoB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AACtD,YAAA,OAAO,KAAK;;AAGd,QAAA,IAAI,YAAY,CAAC,qBAAqB,EAAE;AACtC,YAAA,MAAM,UAAU,GAAG,YAAY,CAAC,eAAe;;YAG/C,IAAI,EAAC,UAAU,KAAV,IAAA,IAAA,UAAU,KAAV,MAAA,GAAA,MAAA,GAAA,UAAU,CAAE,QAAQ,CAAA,EAAE;;AAEzB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtE,oBAAA,OAAO,KAAK;;;gBAId,MAAM,iBAAiB,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAErF,IAAI,iBAAiB,EAAE;AACrB,oBAAA,OAAO,KAAK;;;;AAKlB,QAAA,OAAO,IAAI;;IAIb,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,0DAAmD;;QAG5D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB;AAEjE,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,IAAA,EAEE,CACE,CAAA,uBAAA,EAAA,EAAA,KAAK,EAAE,kBAAkB,EACzB,iBAAiB,EAAE,UAAU,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAyB,sBAAA,EAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAG,CAAA,CAAA,GAAG,iBAAiB,IAAI,EAAE,EACtI,kBAAkB,EAAE,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI;;AAE/D,YAAA,oBAAoB,EAClB,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,EAEtK,IAAI,EAAE,KAAK,EACX,CAAA,EAKF,CAAA,CAAA,gBAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAC/B,mBAAmB,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE,EACrD,uBAAuB,EAAE,MAAK;;;AAG5B,gBAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE;oBACzC;;gBAEF,IAAI,CAAC,2BAA2B,EAAE;gBAClC,IAAI,CAAC,mBAAmB,EAAE;AAC5B,aAAC,EACD,qBAAqB,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAC5D,KAAK,EAAC,eAAe,EACrB,QAAQ,EAAC,OAAO,EAChB,KAAK,EAAC,IAAI,EACV,kBAAkB,EAAC,QAAQ,EAAA,EAE1B,IAAI,CAAC,oBAAoB,KACxB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAA,CAAA,2BAAA,EAAA,EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EACnC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EACnC,UAAU,EAAE,CAAC,UAAU,EACvB,yBAAyB,EAAE,OAAO,KAAK,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,EACxE,aAAa,EAAE,IAAI,CAAC,0BAA0B,EAC9C,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAChC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,EACnD,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,CAAA,CACE,CACP,CACc,EAEjB,CAAA,CAAA,gBAAA,EAAA,EACE,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAC9B,mBAAmB,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,EACpD,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAC,OAAO,EAChB,KAAK,EAAC,IAAI,EACV,qBAAqB,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAC5D,kBAAkB,EAAC,QAAQ,EAC3B,uBAAuB,EAAE,MAAK;;;AAG5B,gBAAA,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE;oBACzC;;gBAEF,IAAI,CAAC,2BAA2B,EAAE;gBAClC,IAAI,CAAC,kBAAkB,EAAE;AAC3B,aAAC,EAAA,EAEA,IAAI,CAAC,mBAAmB,KACvB,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,0BAA0B,EAAA,EACnC,CAAA,CAAA,0BAAA,EAAA,EACE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAClC,UAAU,EAAE,CAAC,UAAU,EACvB,yBAAyB,EAAE,OAAO,KAAK,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,EACxE,CAAA,CACE,CACP,CACc,EACjB,CACE,CAAA,eAAA,EAAA,EAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EACvB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAK;AACd,gBAAA,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE;oBAC3C,IAAI,CAAC,YAAY,EAAE;;AAEvB,aAAC,EACD,SAAS,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,EAC5C,CAAA,EAED,IAAI,CAAC,SAAS,IAAI,CAAqB,CAAA,mBAAA,EAAA,IAAA,CAAA,EACvC,CAAC,IAAI,CAAC,SAAS,KACd,CAAe,CAAA,eAAA,EAAA,EAAA,QAAQ,EAAC,IAAI,EAAA,EAC1B,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gBAAgB,EAAA,EACzB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EACjC,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,6BAA6B,EAAA,EACrC,UAAU,IACT,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,yBAAyB,EAAA,EAClC,CAAA,CAAA,YAAA,EAAA,EACE,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAC7B,WAAW,EAAC,WAAW,EACvB,QAAQ,EAAE,CAAC,UAAU,EACrB,QAAQ,EAAE,IAAI,EACd,MAAM,EAAC,MAAM,EACb,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC,YAAY,GACZ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,EACpB,IAAI,EAAG,CAAC,CAAC,MAA2B,CAAC,KAAK,GAC3C;aACF,EAAA,CACW,CACV,KAEN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAA,CAAA,kBAAA,EAAA,EAAkB,OAAO,EAAE,IAAI,EAAA,EAAG,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,cAAc,CAAoB,CACzF,CACP,CACG,EAEN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,oCAAoC,EAAA,EAC5C,UAAU,IACT,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAA,CAAA,WAAA,EAAA,EACE,KAAK,EAAC,kBAAkB,EACxB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EACpC,WAAW,EAAC,kBAAkB,EAC9B,QAAQ,EAAE,CAAC,UAAU,EACrB,QAAQ,EAAE,KAAK,EACf,MAAM,EAAC,MAAM,EACb,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,CAAC,IAAG;AACX,gBAAA,IAAI,CAAC,YAAY,GACZ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,YAAY,CAAA,EAAA,EACpB,WAAW,EAAG,CAAC,CAAC,MAA2B,CAAC,KAAK,GAClD;AACH,aAAC,EAAA,CACU,CACT,KAEN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,kCAAkC,EAAA,EAC3C,CAAmB,CAAA,kBAAA,EAAA,IAAA,EAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAoB,CAChE,CACP,CACG,EACL,IAAI,CAAC,sBAAsB,KACxB,IAAI,CAAC,SAAS;YACZ,CAAA,CAAA,cAAA,EAAA,EACA,KAAK,EAAC,WAAW,EACnB,GAAG,EAAC,wBAAwB,EAC5B,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EACpC,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,QAAQ,EAAE,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,EACxC,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,CAAC,CAAc,KAAI;oBAC3B,IAAI,CAAC,YAAY,GACZ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,YAAY,CACpB,EAAA,EAAA,IAAI,EAAE,CAAC,CAAC,MAAM,GACf;iBACF,EAAA,CACC;YACF,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gCAAgC,EAAA,EACzC,CAAA,CAAA,kBAAA,EAAA,IAAA,iBAA8B,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAoB,CACtF,CACT,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gCAAgC,EAAA,EACzC,CAAA,CAAA,kBAAA,EAAA,IAAA,eAA4B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAoB,CACrE,EACL,IAAI,CAAC,oBAAoB,KACxB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,gCAAgC,EAAA,EAC3C,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAA,CAAA,gBAAA,EAAA,EACE,KAAK,EAAC,cAAc,EACpB,MAAM,EAAC,MAAM,EACb,QAAQ,EAAE,CAAC,UAAU,EACrB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,KAAK,IAAI,EAC7C,aAAa,EAAC,OAAO,EACrB,eAAe,EAAE,MAAK;gBACpB,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS;gBAC/C,IAAI,CAAC,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACZ,IAAI,CAAC,YAAY,CAAA,EAAA,EACpB,SAAS,EAAE,YAAY,EAAA,CACxB;aACF,EACiB,CAAA,CAChB,CACF,CACL,CACG,EAEL,UAAU,KACT,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,+BAA+B,EAAA,EACxC,CAAA,CAAA,YAAA,EAAA,EACE,SAAS,EAAE,CAAU,CAAA,UAAA,EAAA,EAAA,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAI,CAAA,EAC1D,OAAO,EAAE,MAAK;AACZ,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;gBAChD,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AAChE,gBAAA,eAAe,CAAC,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,kBAAkB,CAAE,EAAA,EAAA,KAAK,EAAE,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,CAAW,QAAA,EAAA,eAAe,GAAG,CAAC,CAAA,CAAE,IAAG;AACpH,gBAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACrC,aAAC,EAAA,EAAA,eAAA,CAGU,CACT,CACP,EAEA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;YACzC,QACE,WAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAC,cAAc,EAAA,EACpC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAA,CAAA,kBAAA,EAAA,EAAkB,OAAO,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,EAAA,EAC3C,OAAO,CAAC,KAAK,CACG,CACf,EAEL,UAAU,KACT,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACrC,MAAM,GAAG,CAAC,KACT,CACE,CAAA,qBAAA,EAAA,EAAA,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,EAChC,OAAO,EAAC,iBAAiB,EACzB,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAClC,iBAAC,GACD,CACH,EACA,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,KACpC,CACE,CAAA,qBAAA,EAAA,EAAA,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAClC,OAAO,EAAC,mBAAmB,EAC3B,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;iBACnC,GACD,CACH,EACD,CAAqB,CAAA,qBAAA,EAAA,EAAA,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA,mBAAA,CAAqB,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAI,CAAA,EAC1I,CAAA,CAAA,qBAAA,EAAA,EACE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EACjC,OAAO,EAAC,gBAAgB,EACxB,OAAO,EAAE,CAAC,IAAG;oBACX,CAAC,CAAC,eAAe,EAAE;AACnB,oBAAA,IAAI,CAAC,aAAa,GAAG,+CAA+C;AACpE,oBAAA,IAAI,CAAC,YAAY,GAAG,MAAK;AACvB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAChC,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3B,qBAAC;AAED,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC1B,iBAAC,EAAA,CACD,CACE,CACP,CACG,EAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,kCAAkC,EAAA,EAC1C,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,uBAAuB,KAAK,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,KACtJ,CACE,CAAA,wBAAA,EAAA,EAAA,SAAS,EAAE,IAAI,EACf,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,MAAK;AACjB,oBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;oBAChD,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AAChE,oBAAA,eAAe,CAAC,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,kBAAkB,CAAA,EAAA,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAA,QAAA,EAAW,eAAe,GAAG,CAAC,CAAA,CAAE,IAAG;AAChH,oBAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACnC,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,EAAE;AAC/D,iBAAC,EACD,aAAa,EAAE,CAAC,IAAG;AACjB,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC;0BACjB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;0BACzF,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEpC,IAAI,CAAC,eAAe,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAE;AACrC,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;iBACjC,EACD,aAAa,EAAE,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAClD,CACH,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4CAA4C,EAAC,EAAE,EAAE,WAAW,MAAM,CAAA,CAAE,EAAA,EAC5E,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,KAAI;gBAClD,QACE,CACE,CAAA,iCAAA,EAAA,EAAA,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,QAAQ,EAAE,YAAY,CAAC,IAAI,EAC3B,WAAW,EAAE,CAAG,EAAA,YAAY,CAAC,YAAY,CAAA,CAAE,EAC3C,aAAa,EAAE,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,GAAG,IAAI,EACvE,qBAAqB,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,EAAA,EAErF,CAAc,CAAA,cAAA,EAAA,EAAA,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAI,CAAA,EACvH,UAAU,KACT,CAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,eAAe,EAAA,EACvB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,2BAA2B,EAAA,EACpC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAA,EACvB,CAAA,CAAA,qBAAA,EAAA,EAAqB,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,EAAC,eAAe,EAAC,YAAY,EAAE,IAAI,GAAI,CACnG,CACF,CACF,CACP,EAED,CAAK,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,SAAS,EAAA,EAChB,UAAU,IACT,CAAA,CAAA,UAAA,EAAA,IAAA,EACE,CAAA,CAAA,qBAAA,EAAA,EACE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAE,CAAC,IAAG;wBACX,CAAC,CAAC,eAAe,EAAE;AACnB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;qBACzC,EACD,YAAY,EAAE,IAAI,EAClB,CAAA,EACF,CAAA,CAAA,qBAAA,EAAA,EACE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAC,oBAAoB,EAC5B,OAAO,EAAE,CAAC,IAAG;wBACX,CAAC,CAAC,eAAe,EAAE;AACnB,wBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC;qBACxC,EACD,YAAY,EAAE,IAAI,EAClB,CAAA,EACF,CAAA,CAAA,qBAAA,EAAA,EACE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EACjC,OAAO,EAAC,iBAAiB,EACzB,OAAO,EAAE,CAAC,IAAG;wBACX,CAAC,CAAC,eAAe,EAAE;AACnB,wBAAA,IAAI,CAAC,aAAa,GAAG,gDAAgD;AACrE,wBAAA,IAAI,CAAC,YAAY,GAAG,MAAK;AACvB,4BAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;AACzC,4BAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3B,yBAAC;AACD,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC1B,qBAAC,EACD,YAAY,EAAE,IAAI,EAAA,CAClB,CACO,KAEX,CACE,CAAA,qBAAA,EAAA,EAAA,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAC,uBAAuB,EAC/B,OAAO,EAAE,CAAC,IAAG;wBACX,CAAC,CAAC,eAAe,EAAE;AACnB,wBAAA,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;qBACzC,EACD,YAAY,EAAE,IAAI,GAClB,CACH,CACG,CAC0B;aAErC,CAAC,CACE,EAEL,UAAU;AACT,gBAAA,CAAC,IAAI,CAAC,eAAe;YACnB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,0CAA0C,EAAA,EACnD,CAAA,CAAA,YAAA,EAAA,EACE,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,eAAe,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;iBAChF,EACD,SAAS,EAAE,CAAA,CAAA,UAAA,EAAA,EAAU,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAI,CAAA,EAAA,EAAA,gBAAA,CAG/C,CACT,CACP,EAEF,UAAU;gBACT,CAAA,MAAA,IAAI,CAAC,eAAe,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,MAAK,MAAM;AACvC,gBAAA,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAK,OAAO,CAAC,aAAa,CAAC,MAAM;gBAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,KAC9B,CACE,CAAA,wBAAA,EAAA,EAAA,SAAS,EAAE,IAAI,EACf,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,MAAK;oBACjB,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;oBAChE,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACzC,oBAAA,IAAI,CAAC,YAAY,GAAG,eAAe;AACnC,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC7B,iBAAC,EACD,aAAa,EAAE,CAAC,IAAG;AACjB,oBAAA,IAAI,IAAI,CAAC,eAAe,EAAE;wBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;wBAC1G,IAAI,CAAC,eAAe,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAE;AACrC,wBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;;AAEpC,iBAAC,EACD,aAAa,EAAE,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAA,CAClD,CACH,CACC,CACF;AAEV,SAAC,CAAC,CACE,CACQ,CACjB,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["UdpFormsBuilder","__stencil_proxyCustomElement","HTMLElement","uuidv4"],"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"],"version":3}
|
|
@@ -18,8 +18,8 @@ const UdpFormsFollowUpListCard$1 = /*@__PURE__*/ proxyCustomElement(class UdpFor
|
|
|
18
18
|
this.__attachShadow();
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
const contentJsx = (h(Fragment, { key: '
|
|
22
|
-
return (h("udp-card", { key: '
|
|
21
|
+
const contentJsx = (h(Fragment, { key: '0148fa047cd997bc9cff28cd98833074e8dc8f64' }, h("unity-typography", { key: 'e6d1704c0d97d94253cfda377818114234bd46c9', variant: "body1", color: "textSecondary" }, "Version: ", this.listItemData.version), h("unity-typography", { key: 'f6e98358257ddf8596abfdb100f5a633c063752a', variant: "body1", color: "textSecondary" }, "Form Type: ", UdpFormsTypeEnum[this.listItemData.type])));
|
|
22
|
+
return (h("udp-card", { key: '6a5285ec5d718bb09965e61621544e81b900e9eb', cardTitle: this.listItemData.name, subheader: this.listItemData.description, onTitleClick: () => this.handleLaunchFollowUpForm(), disableContentPadding: true, adornmentStatus: 'info' }, contentJsx));
|
|
23
23
|
}
|
|
24
24
|
}, [257, "udp-forms-follow-up-list-card", {
|
|
25
25
|
"listItemData": [8, "list-item-data"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-forms-follow-up-list-card.js","mappings":";;;;;;;;;;;MAOaA,0BAAwB,iBAAAC,kBAAA,CAAA,MAAA,wBAAA,SAAAC,CAAA,CAAA;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["UdpFormsFollowUpListCard","__stencil_proxyCustomElement","HTMLElement"],"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"],"version":3}
|
|
1
|
+
{"file":"udp-forms-follow-up-list-card.js","mappings":";;;;;;;;;;;MAOaA,0BAAwB,iBAAAC,kBAAA,CAAA,MAAA,wBAAA,SAAAC,CAAA,CAAA;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["UdpFormsFollowUpListCard","__stencil_proxyCustomElement","HTMLElement"],"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"],"version":3}
|
|
@@ -90,16 +90,16 @@ const UdpFormsListCard = /*@__PURE__*/ proxyCustomElement(class UdpFormsListCard
|
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
render() {
|
|
93
|
-
const contentJsx = (h(Fragment, { key: '
|
|
94
|
-
const actionsJsx = (h(Fragment, { key: '
|
|
93
|
+
const contentJsx = (h(Fragment, { key: '3166b3f05f873b49f68e8ba3589bea738609a96d' }, h("unity-typography", { key: '037d7678981cadedb7d0f93fac64beb1c7916494', variant: "body1", color: "textSecondary" }, "Version: ", this.data.version), !this.isSideSheetList && (h("unity-typography", { key: '5a23010323d0a47fce7631ed80fd93d501a3225a', variant: "body1", color: "textSecondary" }, "Last Modified: ", dateFormatter(this.data.lastModifiedOn))), h("unity-typography", { key: '21557df926c9f21ae828c33266599ef646602c9b', variant: "body1", color: "textSecondary" }, "Created On: ", this.isSideSheetList ? dateFormatter(this.data.createdOn) : dateFormatter(this.data.initialCreatedOn)), this.isFollowUpFormConfigOn && (h("unity-typography", { key: '985f213e727138071649f58d50e79ff0fb8eee62', variant: "body1", color: "textSecondary" }, "Form Type: ", UdpFormsTypeEnum[this.data.type]))));
|
|
94
|
+
const actionsJsx = (h(Fragment, { key: '8707b318aa94dd0da14dae0ee74ac7c2a7dfeb94' }, h("stencil-icon-button", { key: '9bd8e2612509a1edb47174079b7b10ebfdc99592', icon: Edit16, tooltip: "Edit Form Template", onClick: (e) => this.handleEditOrTitleClick(e) }), !this.isSideSheetList && this.isRendererRedirectConfigOn && (h("stencil-icon-button", { key: '55e61c2569e0ed68aab3f1b06574ca97ee3db383', icon: DocumentAdd16, tooltip: "View Form", onClick: e => {
|
|
95
95
|
e.stopPropagation();
|
|
96
96
|
this.formRendererHandler();
|
|
97
|
-
} })), !this.isSideSheetList && (h("stencil-icon-button", { key: '
|
|
97
|
+
} })), !this.isSideSheetList && (h("stencil-icon-button", { key: 'f0f7c2274b0b808f37bc0d4951282e548eb20670', icon: ChevronRight24, tooltip: "See Form Version History", onClick: e => {
|
|
98
98
|
var _a;
|
|
99
99
|
e.stopPropagation();
|
|
100
100
|
(_a = this.openSideSheet) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
101
101
|
} }))));
|
|
102
|
-
return (h("udp-card", { key: '
|
|
102
|
+
return (h("udp-card", { key: '669b56c71cebf72528a33d5994e2496ad10da12d', cardTitle: this.data.name, subheader: this.data.description, actions: actionsJsx, onTitleClick: this.handleEditOrTitleClick, disableContentPadding: true, adornmentStatus: 'info' }, contentJsx));
|
|
103
103
|
}
|
|
104
104
|
}, [257, "udp-forms-list-card", {
|
|
105
105
|
"history": [8],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"udp-forms-list-card2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","Edit","DocumentAdd"],"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"],"version":3}
|
|
1
|
+
{"file":"udp-forms-list-card2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","Edit","DocumentAdd"],"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"],"version":3}
|
|
@@ -248,7 +248,7 @@ const UdpFormsList$1 = /*@__PURE__*/ proxyCustomElement(class UdpFormsList exten
|
|
|
248
248
|
return this.errorMessage ? (h("div", { class: "error-banner" }, h("unity-typography", { variant: "body2" }, this.errorMessage))) : null;
|
|
249
249
|
}
|
|
250
250
|
render() {
|
|
251
|
-
return (h("div", { key: '
|
|
251
|
+
return (h("div", { key: '521f65ec8356fbd1cc33ca101ae454acd65047ec', class: "udp-forms-list-container" }, this.isCreateNewFormHeaderActionConfigOn ? (h("primary-action-header", { title: "UDP Forms", primaryActionClick: () => this.handleHeaderPrimaryActionClick(), actionButtonLabel: "Create New Form", tabs: false })) : (h("primary-action-header", { title: "UDP Forms", tabs: false })), this.isLoading && h("udp-linear-loader", { key: '6a080e748bd474223c77805ee51a94baaba7698f' }), this.renderSideSheet(), h("udp-container", { key: '682a613ced5e4d9c8b0aec6ce4b4450efd4b3967', maxWidth: "lg" }, this.renderErrorMessage(), this.renderFilters(), h("udp-list-renderer", { key: '8e49e0bdef5d4ee15ec56c2358e68b38c4b69080', itemComponent: "udp-forms-list-card", data: this.mainFormsList, pagination: true, isServerSide: true, isLoading: this.isLoading, itemsPerPage: this.MAIN_PAGE_SIZE, currentPage: this.mainListPageNumber, totalItems: this.mainTotalItems, onPageChange: e => this.handleMainPageChange(e.detail), componentDataMap: this.componentMap, spacing: "md" })), h("udp-forms-list-card", { key: '5386a41357733fc99e6b8540596bd64a758af33a', style: { display: 'none' } }), h("div", { key: '675cf300948e4f506f7470366f643451d9be5096', style: { height: '60px' } })));
|
|
252
252
|
}
|
|
253
253
|
get el() { return this; }
|
|
254
254
|
static get watchers() { return {
|