udp-stencil-component-library 25.18.1 → 25.18.2-beta.2
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 +5 -5
- package/dist/cjs/ag-grid-base_6.cjs.entry.js +2 -2
- package/dist/cjs/ambient-template-grid.cjs.entry.js +16 -16
- 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 -0
- package/dist/cjs/{date-time-renderer_6.cjs.entry.js → date-time-renderer_7.cjs.entry.js} +43 -9
- package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
- package/dist/cjs/{enums-ibNZ4cZ4.js → enums-DVbZnzL8.js} +3 -2
- package/dist/cjs/enums-DVbZnzL8.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 -0
- package/dist/cjs/{image-upload_7.cjs.entry.js → form-metadata-display_8.cjs.entry.js} +70 -12
- package/dist/cjs/index-CGCOXUJE.js +4 -4
- 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_3.cjs.entry.js +2 -2
- package/dist/cjs/question-configs-renderer_4.cjs.entry.js +12 -12
- 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_2.cjs.entry.js +3 -3
- 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-BlgDh7P5.js → udp-forms-builder-question-template-CNONS2l5.js} +10 -3
- package/dist/cjs/{udp-forms-builder-question-template-BlgDh7P5.js.map → udp-forms-builder-question-template-CNONS2l5.js.map} +1 -1
- package/dist/cjs/udp-forms-builder-style-override.cjs.entry.js +1 -1
- package/dist/cjs/udp-forms-builder.cjs.entry.js +3 -3
- 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-list-card.cjs.entry.js +5 -5
- package/dist/cjs/udp-forms-list.cjs.entry.js +2 -2
- package/dist/cjs/udp-forms-renderer.cjs.entry.js +21 -18
- package/dist/cjs/udp-forms-renderer.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-forms-ui.cjs.entry.js +7 -4
- package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
- package/dist/cjs/udp-map.cjs.entry.js +3 -3
- package/dist/cjs/udp-menu-item.cjs.entry.js +1 -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/collection/collection-manifest.json +2 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.css +8 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.js +173 -0
- 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 -0
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +3 -3
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +5 -5
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-specific-configs-renderer/question-specific-configs-renderer.js +2 -0
- 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/section-configs-renderer/section-configs-renderer.js +3 -3
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +2 -2
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.js +7 -0
- 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-style-override/udp-forms-builder-style-override.js +1 -1
- package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder.js +2 -2
- 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 +4 -4
- package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js +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 +2 -2
- package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.js +12 -37
- 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.js +19 -17
- 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-question/udp-question.js +40 -26
- package/dist/collection/components/forms/udp-forms/udp-question/udp-question.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/utils/classes/UdpFormSubmission.js +1 -0
- package/dist/collection/components/forms/udp-forms/utils/classes/UdpFormSubmission.js.map +1 -1
- package/dist/collection/components/forms/udp-forms/utils/enums.js +1 -0
- package/dist/collection/components/forms/udp-forms/utils/enums.js.map +1 -1
- package/dist/collection/components/grid/ag-table/ag-table.js +1 -1
- package/dist/collection/components/grid/ambient-template-grid/ambient-template-grid.js +16 -16
- package/dist/collection/components/grid/grid-primary-bar/grid-primary-bar.js +2 -2
- package/dist/collection/components/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
- package/dist/collection/components/grid/new-grid/ag-grid-base.js +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/entity-maintenance-grid.js +1 -1
- package/dist/collection/components/grid/new-grid/search-method-grid.js +2 -1
- package/dist/collection/components/grid/new-grid/search-method-grid.js.map +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.css +37 -0
- package/dist/collection/components/inputs/form metadata display/form-metadata-display.js +191 -0
- package/dist/collection/components/inputs/form metadata display/form-metadata-display.js.map +1 -0
- 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 +1 -1
- package/dist/components/ag-table2.js +1 -1
- package/dist/components/ambient-template-grid.js +16 -16
- package/dist/components/api-method-instance-grid.js +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 +1 -1
- package/dist/components/entity-maintenance-grid.js +1 -1
- package/dist/components/enums.js +1 -0
- 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/form-metadata-display-renderer.d.ts +11 -0
- package/dist/components/form-metadata-display-renderer.js +9 -0
- package/dist/components/form-metadata-display-renderer.js.map +1 -0
- package/dist/components/form-metadata-display-renderer2.js +74 -0
- package/dist/components/form-metadata-display-renderer2.js.map +1 -0
- package/dist/components/form-metadata-display.d.ts +11 -0
- package/dist/components/form-metadata-display.js +9 -0
- package/dist/components/form-metadata-display.js.map +1 -0
- package/dist/components/form-metadata-display2.js +77 -0
- package/dist/components/form-metadata-display2.js.map +1 -0
- package/dist/components/ghost-render2.js +1 -1
- package/dist/components/grid-primary-bar2.js +2 -2
- package/dist/components/image-upload2.js +1 -1
- package/dist/components/list-options-renderer2.js +3 -3
- 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 +15 -9
- package/dist/components/question-configs-renderer2.js.map +1 -1
- package/dist/components/question-specific-configs-renderer2.js +19 -4
- package/dist/components/question-specific-configs-renderer2.js.map +1 -1
- package/dist/components/resource-timeline-calendar.js +1 -1
- package/dist/components/resource-timeline-primary-bar2.js +2 -2
- package/dist/components/search-method-grid2.js +2 -1
- package/dist/components/search-method-grid2.js.map +1 -1
- package/dist/components/section-configs-renderer2.js +3 -3
- package/dist/components/select-layer-popup2.js +2 -2
- package/dist/components/server-side-grid2.js +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/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/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-menu2.js +2 -2
- package/dist/components/udp-forms-builder-style-override.js +1 -1
- package/dist/components/udp-forms-builder.js +15 -9
- 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-list-card2.js +4 -4
- package/dist/components/udp-forms-list.js +1 -1
- package/dist/components/udp-forms-renderer.js +32 -23
- package/dist/components/udp-forms-renderer.js.map +1 -1
- package/dist/components/udp-forms-ui2.js +19 -11
- package/dist/components/udp-forms-ui2.js.map +1 -1
- package/dist/components/udp-grid-loader2.js +2 -2
- package/dist/components/udp-hotlist-form2.js +1 -1
- 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-question2.js +33 -10
- 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/docs.json +487 -103
- package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
- package/dist/esm/advanced-search_12.entry.js +5 -5
- package/dist/esm/ag-grid-base_6.entry.js +2 -2
- package/dist/esm/ambient-template-grid.entry.js +16 -16
- 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 -0
- package/dist/esm/{date-time-renderer_6.entry.js → date-time-renderer_7.entry.js} +43 -10
- package/dist/esm/entity-maintenance-grid.entry.js +1 -1
- package/dist/esm/{enums-BnKmfKJT.js → enums-CHxgVY-B.js} +3 -2
- package/dist/esm/enums-CHxgVY-B.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 -0
- package/dist/esm/{image-upload_7.entry.js → form-metadata-display_8.entry.js} +71 -14
- package/dist/esm/index-CaZq3YdB.js +4 -4
- 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_3.entry.js +2 -2
- package/dist/esm/question-configs-renderer_4.entry.js +12 -12
- 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_2.entry.js +3 -3
- 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-C60LMUS4.js → udp-forms-builder-question-template-DQJb7f4Y.js} +10 -3
- package/dist/{stencil-library/udp-forms-builder-question-template-C60LMUS4.js.map → esm/udp-forms-builder-question-template-DQJb7f4Y.js.map} +1 -1
- package/dist/esm/udp-forms-builder-style-override.entry.js +1 -1
- package/dist/esm/udp-forms-builder.entry.js +3 -3
- 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-list-card.entry.js +5 -5
- package/dist/esm/udp-forms-list.entry.js +2 -2
- package/dist/esm/udp-forms-renderer.entry.js +21 -18
- package/dist/esm/udp-forms-renderer.entry.js.map +1 -1
- package/dist/esm/udp-forms-ui.entry.js +7 -4
- package/dist/esm/udp-forms-ui.entry.js.map +1 -1
- package/dist/esm/udp-map.entry.js +3 -3
- package/dist/esm/udp-menu-item.entry.js +1 -1
- 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/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_6.entry.js +1 -1
- package/dist/stencil-library/ambient-template-grid.entry.js +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 -0
- package/dist/stencil-library/date-time-renderer_7.entry.js +2 -0
- package/dist/stencil-library/date-time-renderer_7.entry.js.map +1 -0
- package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
- package/dist/stencil-library/enums-CHxgVY-B.js +2 -0
- package/dist/stencil-library/enums-CHxgVY-B.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 -0
- package/dist/stencil-library/form-metadata-display_8.entry.js +2 -0
- package/dist/stencil-library/form-metadata-display_8.entry.js.map +1 -0
- 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_3.entry.js +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_2.entry.js +1 -1
- 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-C60LMUS4.js → udp-forms-builder-question-template-DQJb7f4Y.js} +2 -2
- package/dist/{esm/udp-forms-builder-question-template-C60LMUS4.js.map → stencil-library/udp-forms-builder-question-template-DQJb7f4Y.js.map} +1 -1
- package/dist/stencil-library/udp-forms-builder-style-override.entry.js +1 -1
- 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-builder.entry.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.js +1 -1
- package/dist/stencil-library/udp-forms-list-card.entry.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-map.entry.js +1 -1
- package/dist/stencil-library/udp-menu-item.entry.js +1 -1
- 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/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.d.ts +11 -0
- package/dist/types/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-question-template.d.ts +70 -0
- package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-ui/udp-forms-ui.d.ts +5 -2
- package/dist/types/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.d.ts +1 -3
- package/dist/types/components/forms/udp-forms/udp-question/udp-question.d.ts +8 -3
- package/dist/types/components/forms/udp-forms/utils/classes/UdpFormSubmission.d.ts +1 -0
- package/dist/types/components/forms/udp-forms/utils/enums.d.ts +2 -1
- package/dist/types/components/inputs/form metadata display/form-metadata-display.d.ts +62 -0
- package/dist/types/components.d.ts +178 -28
- package/package.json +2 -2
- package/dist/cjs/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.cjs.js.map +0 -1
- package/dist/cjs/enums-ibNZ4cZ4.js.map +0 -1
- package/dist/cjs/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.cjs.js.map +0 -1
- package/dist/esm/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.js.map +0 -1
- package/dist/esm/enums-BnKmfKJT.js.map +0 -1
- package/dist/esm/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.js.map +0 -1
- package/dist/stencil-library/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.esm.js.map +0 -1
- package/dist/stencil-library/date-time-renderer_6.entry.js +0 -2
- package/dist/stencil-library/date-time-renderer_6.entry.js.map +0 -1
- package/dist/stencil-library/enums-BnKmfKJT.js +0 -2
- package/dist/stencil-library/enums-BnKmfKJT.js.map +0 -1
- package/dist/stencil-library/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.esm.js.map +0 -1
- package/dist/stencil-library/image-upload_7.entry.js +0 -2
- package/dist/stencil-library/image-upload_7.entry.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.esm.js","sources":["src/components/inputs/image-upload/image-upload.css?tag=image-upload&encapsulation=shadow","src/components/inputs/image-upload/image-upload.tsx","src/components/inputs/signature-input/signature-input.css?tag=signature-input&encapsulation=shadow","src/components/inputs/signature-input/signature-input.tsx","src/components/forms/form/stencil-form.tsx","src/components/inputs/tally/tally.css?tag=tally-display&encapsulation=shadow","src/components/inputs/tally/tally.tsx","src/components/forms/form/useFormApi.ts","src/components/forms/udp-forms/udp-question/udp-question.css?tag=udp-question&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question.tsx","src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.css?tag=udp-question-comments&encapsulation=shadow","src/components/forms/udp-forms/udp-question/udp-question-comment/udp-question-comments.tsx","src/components/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.css?tag=udp-save-draft-button&encapsulation=shadow","src/components/forms/udp-forms/udp-forms-renderer/udp-save-draft-button/udp-save-draft-button.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h, Host, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpDriveFile } from '../../../global/types';\n\n/**\n * A specialized image upload component that wraps the file-upload component\n * with image-specific functionality including image preview, rendering, and validation.\n *\n * This component automatically restricts file types to common image formats\n * and provides image preview functionality.\n *\n * @example\n * ```tsx\n * // Basic image upload\n * <image-upload\n * allowMultiple={true}\n * onChange={(e) => console.log('Images:', e.detail.files)}\n * />\n *\n * // With existing images and preview\n * <image-upload\n * initialValue={existingImages}\n * renderImages={true}\n * onChange={handleImageChange}\n * />\n * ```\n */\n@Component({\n tag: 'image-upload',\n styleUrl: 'image-upload.css',\n shadow: true,\n})\nexport class ImageUpload {\n\n\n /**\n * Array of allowed image MIME types. Defaults to common image formats.\n * Overrides the default image MIME types if specified.\n * Example: ['image/jpeg', 'image/png', 'image/gif']\n */\n @Prop() allowedMimeTypes: Array<string> = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp'];\n\n /**\n * Whether the component should take the full width of its container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Whether image selection is required.\n */\n @Prop() required: boolean;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Message for the drag-and-drop area.\n */\n @Prop() dragAndDropMessage: string = 'Drag and drop your image here';\n\n /**\n * Text for the browse files button.\n */\n @Prop() browseFileMessage: string = 'Browse Image';\n\n /**\n * Whether to hide the drag-and-drop area.\n */\n @Prop() hideDragAndDrop: boolean = false;\n\n /**\n * Whether to hide the browse files button.\n */\n @Prop() hideButton: boolean = false;\n\n /**\n * Unique identifier for the component.\n */\n @Prop() id: string;\n\n /**\n * Name attribute for the component.\n */\n @Prop() name: string;\n\n /**\n * Label for the component.\n */\n @Prop() label: string;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is in a read-only state.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Initial value for the component (UdpDriveFile, File, or string).\n */\n @Prop() initialValue: UdpDriveFile | UdpDriveFile[] | File | File[] | string;\n\n /**\n * Emitted when the selected images change.\n */\n @Event() change: EventEmitter<{ value: string; files: File[] }>;\n\n private handleFileChange = (event: CustomEvent) => {\n // Prevent the event from bubbling up further, as we are re-emitting it.\n event.stopPropagation();\n this.change.emit(event.detail);\n };\n\n render() {\n return (\n <Host>\n <file-upload\n allowMultiple={false}\n allowedMimeTypes={this.allowedMimeTypes}\n fullWidth={this.fullWidth}\n required={this.required}\n error={this.error}\n dragAndDropMessage={this.dragAndDropMessage}\n browseFileMessage={this.browseFileMessage}\n hideDragAndDrop={this.hideDragAndDrop}\n hideButton={this.hideButton}\n id={this.id}\n name={this.name}\n label={this.label}\n disabled={this.disabled}\n readonly={this.readonly}\n initialValue={this.initialValue}\n renderImage={true}\n onChange={this.handleFileChange}\n ></file-upload>\n </Host>\n );\n }\n}\n","@import '../inputs.css';\n\n/* Size variants for canvas sizing */\n:host(.udp-input--size-small) .signature-canvas {\n height: 150px;\n}\n\n:host(.udp-input--size-normal) .signature-canvas {\n height: 200px;\n}\n\n:host(.udp-input--size-large) .signature-canvas {\n height: 250px;\n}\n\n/* Size variants for clear button */\n:host(.udp-input--size-small) .clear-button {\n padding: var(--spacing-01) var(--spacing-02);\n font-size: var(--caption-font-size, 0.875rem);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-normal) .clear-button {\n padding: var(--spacing-02) var(--spacing-03);\n font-size: var(--body-font-size);\n top: var(--spacing-02);\n right: var(--spacing-02);\n}\n\n:host(.udp-input--size-large) .clear-button {\n padding: var(--spacing-03) var(--spacing-04);\n font-size: var(--body-font-size);\n top: var(--spacing-03);\n right: var(--spacing-03);\n}\n\n.signature-pad-container {\n position: relative;\n border: 1px solid var(--udp-mid-gray-color);\n border-radius: 4px;\n background-color: var(--udp-light-gray-color);\n}\n\n.signature-canvas {\n display: block;\n width: 100%;\n height: 200px; /* Default height, overridden by density variants */\n}\n\n.signature-pad-container.readonly {\n background-color: var(--udp-disabled-gray-color);\n}\n\n.signature-canvas.readonly {\n cursor: not-allowed;\n}\n\n.clear-button {\n position: absolute;\n top: var(--spacing-02); /* Default, overridden by density variants */\n right: var(--spacing-02); /* Default, overridden by density variants */\n background-color: var(--udp-light-gray-color);\n border: 1px solid var(--udp-mid-gray-color);\n color: var(--udp-primary-color);\n cursor: pointer;\n border-radius: 4px;\n padding: var(--spacing-02) var(--spacing-03); /* Default, overridden by density variants */\n}\n\n.clear-button:hover {\n background-color: var(--udp-mid-gray-color);\n}\n\n.clear-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n","import { Component, Prop, h, State, Watch, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport type SignaturePad from 'signature_pad';\nimport { UdpDriveFile } from '../../../global/types';\nimport { InputSize, InputMargin } from '../input-types';\nimport {\n isUdpDriveFile,\n isFileReference,\n parseFileReference,\n downloadFileFromUdpDriveFile,\n createFileFromString,\n isFile,\n} from '../file-upload/udp-drive-utils';\n\n\n@Component({\n tag: 'signature-input',\n styleUrl: 'signature-input.css',\n shadow: true,\n})\nexport class SignatureInput {\n @Element() el: HTMLElement;\n\n /**\n * Label for the input field.\n */\n @Prop() label: string;\n\n /**\n * Unique identifier for the input.\n */\n @Prop() id: string;\n\n /**\n * Whether the field is required.\n */\n @Prop() required: boolean;\n\n /**\n * Whether to save location and timestamp data in the submission.\n */\n @Prop() includeLocation: boolean = false;\n\n /**\n * Whether the field is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the field is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the signature input.\n * - 'small': Compact signature area\n * - 'normal': Standard signature area (default)\n * - 'large': Generous signature area\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the input spacing.\n * - 'none': No margin\n * - 'dense': Minimal margin spacing\n * - 'normal': Standard margin spacing (default)\n */\n @Prop() margin: InputMargin = 'normal';\n\n /**\n * The current value of the signature, can be a File or UdpDriveFile.\n */\n @Prop({ mutable: true }) value: File | UdpDriveFile;\n\n /**\n * The initial value, used if `value` is not provided.\n */\n @Prop() initialValue: File | UdpDriveFile | string;\n\n /**\n * Emitted when the signature changes.\n */\n @Event() change: EventEmitter<File | null>;\n @Event() metadataEmit: EventEmitter<{ key: string; value: any } | null>;\n\n @State() private internalError: string;\n @State() private signaturePad: SignaturePad;\n @State() private cachedLocation: GeolocationPosition | null = null;\n \n private canvasEl: HTMLCanvasElement;\n private SignaturePadLib: typeof SignaturePad;\n \n private lastCanvasRect: DOMRect;\n private resizeTimeout: any;\n private isInternalChange = false;\n\n private async processAndLoadValue(incomingValue: any) {\n if (!incomingValue) {\n if (this.signaturePad) this.signaturePad.clear();\n return;\n }\n\n try {\n const rawValue = Array.isArray(incomingValue) ? incomingValue[0] : incomingValue;\n let loadedFile: File | null = null;\n\n // --- Parsing Logic ---\n if (typeof rawValue === 'string' && isFileReference(rawValue)) {\n const parsedFile = await parseFileReference(rawValue);\n if (parsedFile && (parsedFile as any).driveFileId) {\n loadedFile = await downloadFileFromUdpDriveFile({\n name: parsedFile.name,\n driveFileId: (parsedFile as any).driveFileId,\n extension: parsedFile.name.split('.').pop() || '',\n } as any);\n } else {\n loadedFile = parsedFile as File;\n }\n } \n else if (isUdpDriveFile(rawValue)) {\n loadedFile = await downloadFileFromUdpDriveFile(rawValue);\n } \n else if (typeof rawValue === 'string') {\n loadedFile = await createFileFromString(rawValue, 'signature.png');\n } \n else if (isFile(rawValue)) {\n loadedFile = rawValue;\n }\n\n // --- Application Logic ---\n if (loadedFile) {\n this.value = loadedFile; // Update internal prop\n if (this.signaturePad) {\n await this.loadSignature(loadedFile);\n } else {\n // If pad isn't ready yet, initializeSignaturePad will pick up this.value\n this.initializeSignaturePad();\n }\n }\n } catch (err) {\n console.error('Failed to process signature value:', err);\n }\n}\n\n\n @Watch('error')\n onErrorChange(newValue: string) {\n this.internalError = newValue;\n }\n\n\n @Watch('value')\n async handleValueUpdate(newValue: any) {\n // Guard against loops from our own 'endStroke'\n if (this.isInternalChange) {\n this.isInternalChange = false;\n return;\n }\n\n // If the value changed from outside, we need to re-parse/re-load\n if (this.canvasEl) {\n await this.processAndLoadValue(newValue);\n }\n }\n\n @Watch('initialValue')\n async handleInitialValueUpdate(newValue: any) {\n // Only react to initialValue changes if we have a canvas\n if (this.canvasEl) {\n await this.processAndLoadValue(newValue);\n }\n }\n\n async componentWillLoad() {\n this.internalError = this.error;\n await this.loadSignaturePad();\n\n // Prewarm location if enabled\n if (this.includeLocation) {\n navigator.geolocation.getCurrentPosition(\n (coords) => {\n this.cachedLocation = coords;\n },\n (err) => {\n console.warn(\"Prewarm geolocation error:\", err);\n this.cachedLocation = null;\n },\n { enableHighAccuracy: true, timeout: 30000, maximumAge: 0 }\n );\n }\n }\n\n async componentDidLoad() {\n // 1. Initialize the pad (this sets up the canvas and library)\n this.initializeSignaturePad();\n\n // 2. Load whatever we have (preferring value over initialValue)\n const starterValue = this.value || this.initialValue;\n if (starterValue) {\n await this.processAndLoadValue(starterValue);\n }\n\n this.lastCanvasRect = this.canvasEl.getBoundingClientRect();\n window.addEventListener('resize', this.handleResize);\n }\n\n \n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n }\n\n private handleResize = () => {\n if (this.resizeTimeout) clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n const rect = this.canvasEl.getBoundingClientRect();\n if (!this.lastCanvasRect || rect.width !== this.lastCanvasRect.width || rect.height !== this.lastCanvasRect.height) {\n // Save current signature as dataURL\n let dataURL = this.signaturePad && !this.signaturePad.isEmpty() ? this.signaturePad.toDataURL() : null;\n this.resizeCanvasForDPR();\n this.initializeSignaturePad();\n this.lastCanvasRect = rect;\n // Restore signature if it existed\n if (dataURL && this.signaturePad) {\n this.signaturePad.fromDataURL(dataURL);\n }\n }\n }, 200);\n }\n\n private resizeCanvasForDPR() {\n if (!this.canvasEl) return;\n const ratio = window.devicePixelRatio || 1;\n const rect = this.canvasEl.getBoundingClientRect();\n \n // Setting width/height automatically clears the canvas and resets the context\n this.canvasEl.width = rect.width * ratio;\n this.canvasEl.height = rect.height * ratio;\n \n const ctx = this.canvasEl.getContext('2d');\n // Just to be safe, reset transform before scaling\n ctx.setTransform(1, 0, 0, 1, 0, 0); \n ctx.scale(ratio, ratio);\n }\n\n private async loadSignaturePad() {\n if (!this.SignaturePadLib) {\n try {\n const module = await import('signature_pad');\n this.SignaturePadLib = module.default;\n } catch (e) {\n console.error('Failed to load signature_pad library', e);\n }\n }\n }\n\n private initializeSignaturePad() {\n if (this.SignaturePadLib && this.canvasEl) {\n // 1. Reset the canvas dimensions and scale first\n this.resizeCanvasForDPR();\n\n // 2. Destroy old instance if it exists\n if (this.signaturePad) {\n this.signaturePad.off();\n }\n \n // 3. Create new instance\n this.signaturePad = new this.SignaturePadLib(this.canvasEl);\n this.signaturePad.addEventListener(\"endStroke\", this.handleSignatureEnd);\n this.handleStateChange();\n \n // 4. Load value if exists\n if (this.value) {\n this.loadSignature(this.value);\n }\n }\n }\n\n @Watch('disabled')\n @Watch('readonly')\n handleStateChange() {\n if (this.signaturePad) {\n if (this.disabled || this.readonly) {\n this.signaturePad.off();\n } else {\n this.signaturePad.on();\n }\n }\n }\n\n\n private handleSignatureEnd = async () => {\n if (this.signaturePad.isEmpty()) {\n this.isInternalChange = true; \n this.value = null;\n this.change.emit(null);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n this.metadataEmit.emit({ key: 'signature.timestamp', value: null });\n } else {\n const dataURL = this.signaturePad.toDataURL();\n const signatureFile = await this.urlToFile(dataURL, 'signature.png');\n \n this.isInternalChange = true;\n this.value = signatureFile; \n this.change.emit(signatureFile);\n\n // Timestamp always emitted\n this.metadataEmit.emit({\n key: 'signature.timestamp',\n value: new Date().toISOString(),\n });\n\n // Location handling\n if (this.includeLocation) {\n try {\n let coords = this.cachedLocation;\n\n if (!coords) {\n // Fallback if prewarm failed\n coords = await new Promise<GeolocationPosition>((resolve, reject) => {\n navigator.geolocation.getCurrentPosition(resolve, reject, {\n enableHighAccuracy: true,\n timeout: 30000,\n maximumAge: 0,\n });\n });\n }\n\n if (coords) {\n this.metadataEmit.emit({ key: 'signature.latitude', value: coords.coords.latitude });\n this.metadataEmit.emit({ key: 'signature.longitude', value: coords.coords.longitude });\n } else {\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n\n } catch (err) {\n console.warn(\"Geolocation error:\", err);\n this.metadataEmit.emit({ key: 'signature.latitude', value: null });\n this.metadataEmit.emit({ key: 'signature.longitude', value: null });\n }\n }\n }\n };\n\n\n private async loadSignature(signatureValue: File | UdpDriveFile | string) {\n let imageUrl: string;\n if (typeof signatureValue === 'string') {\n imageUrl = signatureValue;\n } else if (isUdpDriveFile(signatureValue)) {\n try {\n const file = await downloadFileFromUdpDriveFile(signatureValue as UdpDriveFile);\n imageUrl = URL.createObjectURL(file);\n } catch (error) {\n console.error('Error loading signature image from UdpDriveFile:', error);\n return;\n }\n } else if (signatureValue instanceof File) {\n imageUrl = URL.createObjectURL(signatureValue);\n }\n\n if (imageUrl && this.signaturePad) {\n // 1. Clear the pad first to prevent double signatures\n this.signaturePad.clear(); \n \n // 2. Load the image\n this.signaturePad.fromDataURL(imageUrl, {\n ratio: window.devicePixelRatio || 1 // Explicitly tell it the ratio\n });\n }\n }\n\n private async urlToFile(url: string, filename: string): Promise<File> {\n const res = await fetch(url);\n const blob = await res.blob();\n return new File([blob], filename, { type: blob.type });\n }\n\n private clearSignature = () => {\n if (this.signaturePad) {\n this.signaturePad.clear();\n this.handleSignatureEnd(); // to emit the change\n }\n };\n\n render() {\n const isError = !!this.internalError;\n const containerClasses = {\n 'signature-pad-container': true,\n 'readonly': this.readonly,\n 'disabled': this.disabled,\n };\n\n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--required': this.required,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"bx--form-item\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"bx--label\">\n {this.label}\n {this.required && '*'}\n </label>\n </unity-typography>\n )}\n <div class={containerClasses}>\n <canvas\n ref={el => (this.canvasEl = el as HTMLCanvasElement)}\n class={{ 'signature-canvas': true, 'readonly': this.readonly || this.disabled }}\n id={this.id}\n ></canvas>\n {!this.readonly && !this.disabled && (\n <button\n type=\"button\"\n class=\"clear-button\"\n onClick={this.clearSignature}\n disabled={this.disabled}\n >\n Clear\n </button>\n )}\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">{this.internalError}</unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n\n","import { Component, h, Prop, Event as StencilEvent, EventEmitter, State, Element, Method } from '@stencil/core';\nimport { createForm, FormApi } from 'final-form';\nimport debounce from 'lodash.debounce';\n\n@Component({\n tag: 'stencil-form',\n shadow: true,\n})\nexport class StencilForm {\n @Element() el: HTMLElement;\n @Prop() handleSubmit: (values: Object) => void;\n @Prop() initialValues: Object;\n @Prop() handleValidate: (values: Object, errors: Object) => Object;\n @Prop() validateOnBlur: boolean = true;\n @Prop() handleChange: (values: Object) => void;\n @StencilEvent() stencilFormInvalidEvent: EventEmitter<Object>;\n @StencilEvent() dirtyChange: EventEmitter<boolean>;\n\n private observer: MutationObserver;\n\n @State() api: FormApi;\n @State() registeredFields: { [key: string]: { required: boolean, ignoreDirty?: boolean } } = {};\n @State() customErrors: { [key: string]: string } = {};\n\n constructor() {\n this.submitWithValidation = this.submitWithValidation.bind(this);\n this.defaultValidation = this.defaultValidation.bind(this);\n this.submit = this.submit.bind(this);\n this.onFormChange = this.onFormChange.bind(this);\n }\n\n private connectField(field: HTMLStencilFieldElement) {\n if ((field as any).__connectedToForm) return;\n\n field.setFormApi({\n api: this.api,\n registeredFields: this.registeredFields,\n customErrors: this.customErrors,\n });\n\n (field as any).__connectedToForm = true;\n }\n\n /**\n * Asynchronously and recursively traverses a node and all of its light DOM\n * and shadow DOM descendants, connecting any stencil-fields it finds.\n */\n private async processNodeRecursively(node: Node) {\n // 1. Skip anything that isn't an element\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // 2. If the element is a custom component, wait for it to be defined.\n // This ensures its shadowRoot is available if it has one.\n if (element.localName.includes('-')) {\n await customElements.whenDefined(element.localName);\n }\n\n // 3. Process the element itself\n if (element.matches('stencil-field')) {\n this.connectField(element as HTMLStencilFieldElement);\n }\n\n // 4. Connect submit buttons\n this.connectSubmitButtons(element);\n\n // 5. If the element has a shadowRoot, recursively process its children\n if (element.shadowRoot) {\n for (const child of Array.from(element.shadowRoot.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n // 6. Recursively process all light DOM children\n for (const child of Array.from(element.childNodes)) {\n await this.processNodeRecursively(child);\n }\n }\n\n /**\n * The event handler for slot changes. It kicks off the recursive processing.\n */\n private handleSlotChange = () => {\n const slot = this.el.shadowRoot.querySelector('slot');\n if (!slot) return;\n\n // Process every node assigned to the slot\n slot.assignedNodes().forEach(node => this.processNodeRecursively(node));\n };\n\n /**\n * Connect submit buttons in slotted content to this form\n */\n private connectSubmitButtons(node: Node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n const element = node as Element;\n\n // Check if the element itself is a submit button\n if (element.matches('input[type=\"submit\"], button[type=\"submit\"]')) {\n const htmlElement = element as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlElement.dataset.stencilFormConnected) {\n htmlElement.dataset.stencilFormConnected = 'true';\n element.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n }\n\n // Find submit buttons in descendants and connect them\n const submitButtons = element.querySelectorAll('input[type=\"submit\"], button[type=\"submit\"]');\n submitButtons.forEach((button: Element) => {\n const htmlButton = button as HTMLElement;\n // Avoid duplicate event listeners\n if (!htmlButton.dataset.stencilFormConnected) {\n htmlButton.dataset.stencilFormConnected = 'true';\n button.addEventListener('click', e => {\n e.preventDefault();\n this.submit(e);\n });\n }\n });\n }\n\n componentWillLoad() {\n this.api = createForm({\n onSubmit: this.submitWithValidation,\n initialValues: this.initialValues,\n validate: this.defaultValidation,\n validateOnBlur: this.validateOnBlur,\n });\n\n if (this.handleChange) {\n this.api.subscribe(this.onFormChange, { values: true });\n }\n\n // Subscription for the dirty state change event, but consider ignoreDirty flags and ignore any fields configured with ignoreDirty=true\n this.api.subscribe(\n formState => {\n const { dirtyFields } = formState;\n const registered = this.registeredFields;\n\n // Determine if any field that is *not ignored* is dirty\n const hasDirtyFields = Object.keys(dirtyFields || {}).some(\n name => dirtyFields[name] && !registered[name]?.ignoreDirty\n );\n\n this.dirtyChange.emit(hasDirtyFields);\n },\n { dirtyFields: true },\n );\n }\n\n componentDidLoad() {\n const slot = this.el.shadowRoot.querySelector('slot');\n\n // Create the observer first\n this.observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n mutation.addedNodes.forEach(node => {\n this.processNodeRecursively(node);\n });\n }\n });\n\n // Function to handle slot changes or initial processing\n const observeAssignedNodes = () => {\n const assignedNodes = slot?.assignedNodes({ flatten: true }) || [];\n\n assignedNodes.forEach(node => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.observer.observe(node, { childList: true, subtree: true });\n this.processNodeRecursively(node); // Process immediately in case nodes are already present\n }\n });\n };\n\n if (slot) {\n observeAssignedNodes(); // Initial\n slot.addEventListener('slotchange', observeAssignedNodes); // Handle dynamic slot content\n }\n\n // If you're also rendering some fields directly in this.el (not through slot), you can keep this:\n this.observer.observe(this.el, { childList: true, subtree: true });\n\n this.el.dispatchEvent(new CustomEvent('stencilFormReady', { bubbles: true, composed: true }));\n }\n\n disconnectedCallback() {\n this.api = null;\n this.registeredFields = {};\n\n const slot = this.el.shadowRoot?.querySelector('slot');\n if (slot) {\n slot.removeEventListener('slotchange', this.handleSlotChange);\n }\n }\n\n onFormChange(formState: any): void {\n if (this.handleChange && formState.values) {\n this.handleChange(formState.values);\n }\n }\n\n async submitWithValidation(values: { [key: string]: any }): Promise<void> {\n const errors = this.defaultValidation(values);\n if (Object.keys(errors).length === 0) {\n this.handleSubmit(values);\n } else {\n this.stencilFormInvalidEvent.emit(errors);\n }\n }\n\n defaultValidation(values: Object): Object {\n const { registeredFields, customErrors } = this;\n const errors = {};\n\n // Helper to get value from nested path (dot + bracket notation)\n const getByPath = (obj, path) =>\n path\n .replace(/\\[(\\d+)\\]/g, '.$1') // convert [0] to .0\n .split('.')\n .reduce((o, k) => (o != null ? o[k] : undefined), obj);\n\n // Check for required field validation\n Object.keys(registeredFields).forEach(field => {\n const meta = registeredFields[field];\n if (meta?.ignoreDirty) return; // skip ignored fields entirely\n\n const valRef = getByPath(values, field);\n\n // null or undefined, empty string, or false/'false' are considered \"empty\" values\n if (\n meta.required &&\n (valRef == null ||\n (typeof valRef === 'string' && valRef.trim() === '') ||\n valRef === false ||\n valRef === 'false')\n ) {\n errors[field] = 'This field is required';\n }\n });\n\n // Merge in any custom errors from stencil-field components\n if (customErrors) {\n Object.keys(customErrors).forEach(field => {\n if (customErrors[field]) {\n errors[field] = customErrors[field];\n }\n });\n }\n\n // Merge with user-provided custom validation\n if (this?.handleValidate) {\n const customErrorsFromHandler = this.handleValidate(values, errors);\n return { ...errors, ...customErrorsFromHandler };\n }\n\n return errors;\n }\n\n @Method()\n async getApi(): Promise<FormApi> {\n if (!this.api) {\n console.error('❌ Form API not initialized yet.');\n return null;\n }\n return this.api;\n }\n\n submit(e) {\n e?.preventDefault?.();\n const values = this.api.getState().values;\n const errors = this.defaultValidation(values);\n\n const submitFunction = () => {\n if (Object.keys(errors).length) {\n this.stencilFormInvalidEvent.emit(errors);\n return;\n }\n this.api?.submit();\n };\n debounce(submitFunction, 1000, { leading: true, trailing: false })();\n }\n\n render() {\n return (\n <form>\n <slot />\n </form>\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n}\n\n.tally-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-02, 8px);\n}\n\n.tally-label {\n font-weight: 600;\n margin-bottom: var(--spacing-02, 8px);\n}\n\n.tally-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-04, 16px);\n color: var(--text-secondary, #6b7280);\n}\n\n.tally-content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03, 12px);\n}\n\n.tally-stats {\n display: flex;\n gap: var(--spacing-04, 16px);\n flex-wrap: wrap;\n}\n\n.tally-item {\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: var(--spacing-03, 12px) var(--spacing-04, 16px);\n border-radius: var(--border-radius-01, 4px);\n border: 1px solid var(--border-subtle, #e5e7eb);\n background-color: var(--layer-01, #ffffff);\n min-width: 80px;\n flex: 1;\n max-width: 120px;\n}\n\n.tally-item.tally-yes {\n border-color: var(--support-success, #42be65);\n background-color: var(--support-success-hover, #f6f8ff);\n}\n\n.tally-item.tally-no {\n border-color: var(--support-error, #da1e28);\n background-color: var(--support-error-hover, #fff1f1);\n}\n\n.tally-item.tally-unanswered {\n border-color: var(--support-warning, #f1c21b);\n background-color: var(--support-warning-hover, #fcf4d6);\n}\n\n.tally-count {\n font-weight: 700;\n line-height: 1.2;\n margin-bottom: var(--spacing-01, 4px);\n}\n\n.tally-yes .tally-count {\n color: var(--support-success, #42be65);\n}\n\n.tally-no .tally-count {\n color: var(--support-error, #da1e28);\n}\n\n.tally-unanswered .tally-count {\n color: var(--support-warning, #f1c21b);\n}\n\n.tally-item .tally-label {\n margin: 0;\n font-weight: 500;\n text-transform: uppercase;\n font-size: 0.75rem;\n letter-spacing: 0.02em;\n}\n\n.tally-summary {\n padding: var(--spacing-02, 8px) 0;\n border-top: 1px solid var(--border-subtle, #e5e7eb);\n text-align: center;\n}\n\n.error-message {\n margin-top: var(--spacing-02, 8px);\n padding: var(--spacing-02, 8px);\n border-radius: var(--border-radius-01, 4px);\n background-color: var(--support-error-hover, #fff1f1);\n border: 1px solid var(--support-error, #da1e28);\n}\n\n/* Size variants */\n:host(.udp-input--size-small) .tally-item {\n padding: var(--spacing-02, 8px) var(--spacing-03, 12px);\n min-width: 60px;\n max-width: 90px;\n}\n\n:host(.udp-input--size-small) .tally-count {\n font-size: 1.25rem;\n}\n\n:host(.udp-input--size-large) .tally-item {\n padding: var(--spacing-04, 16px) var(--spacing-05, 20px);\n min-width: 100px;\n max-width: 150px;\n}\n\n:host(.udp-input--size-large) .tally-count {\n font-size: 2rem;\n}\n\n/* Margin variants */\n:host(.udp-input--margin-none) .tally-container {\n gap: 0;\n}\n\n:host(.udp-input--margin-dense) .tally-container {\n gap: var(--spacing-01, 4px);\n}\n\n:host(.udp-input--margin-comfortable) .tally-container {\n gap: var(--spacing-04, 16px);\n}\n\n/* Disabled state */\n:host(.udp-input--disabled) .tally-item {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* Read-only state */\n:host(.udp-input--readonly) .tally-item {\n background-color: var(--field-01, #f4f4f4);\n}\n\n/* Responsive design */\n@media (max-width: 480px) {\n .tally-stats {\n flex-direction: column;\n }\n \n .tally-item {\n max-width: none;\n flex: none;\n }\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\nimport { InputSize, InputMargin } from '../input-types';\n\n/**\n * A tally component that displays counts of Yes/No responses.\n * This is a pure display component that receives tally data as props.\n */\n@Component({\n tag: 'tally-display',\n styleUrl: 'tally.css',\n shadow: true,\n})\nexport class TallyDisplay {\n\n /**\n * Label for the tally display.\n */\n @Prop() label: string = 'Response Tally';\n\n /**\n * Unique identifier for the tally.\n */\n @Prop() id: string;\n\n /**\n * Number of Yes responses.\n */\n @Prop() yesCount: number = 0;\n\n /**\n * Number of No responses.\n */\n @Prop() noCount: number = 0;\n\n /**\n * Number of Not Applicable responses.\n */\n @Prop() naCount: number = 0;\n\n /**\n * Total number of fields being tallied.\n */\n @Prop() totalFields: number = 0;\n\n /**\n * Whether the component is disabled.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the component is read-only.\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Error message to display.\n */\n @Prop() error: string;\n\n /**\n * Size variant for the tally display.\n */\n @Prop() size: InputSize = 'normal';\n\n /**\n * Margin variant for the component spacing.\n */\n @Prop() margin: InputMargin = 'normal';\n\n render() {\n const isError = !!this.error;\n const answeredCount = this.yesCount + this.noCount + this.naCount;\n const unansweredCount = this.totalFields - answeredCount;\n \n return (\n <Host\n class={{\n 'udp-input': true,\n 'udp-input--error': isError,\n 'udp-input--disabled': this.disabled,\n 'udp-input--readonly': this.readonly,\n [`udp-input--size-${this.size}`]: true,\n [`udp-input--margin-${this.margin}`]: true,\n }}\n >\n <div class=\"tally-container\">\n {this.label && (\n <unity-typography variant=\"caption-text\">\n <label htmlFor={this.id} class=\"tally-label\">\n {this.label}\n </label>\n </unity-typography>\n )}\n <div class=\"tally-content\" id={this.id}>\n <div class=\"tally-stats\">\n <div class=\"tally-item tally-yes\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.yesCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Yes\n </unity-typography>\n </div>\n <div class=\"tally-item tally-no\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.noCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n No\n </unity-typography>\n </div>\n <div class=\"tally-item tally-na\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {this.naCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Not Applicable\n </unity-typography>\n </div>\n {unansweredCount > 0 && (\n <div class=\"tally-item tally-unanswered\">\n <unity-typography variant=\"h4\" class=\"tally-count\">\n {unansweredCount}\n </unity-typography>\n <unity-typography variant=\"caption-text\" class=\"tally-label\">\n Unanswered\n </unity-typography>\n </div>\n )}\n </div>\n <div class=\"tally-summary\">\n <unity-typography variant=\"caption-text\">\n Total Questions: {this.totalFields}\n </unity-typography>\n </div>\n </div>\n {isError && (\n <div class=\"error-message\">\n <unity-typography variant=\"caption-text\" color=\"error\">\n {this.error}\n </unity-typography>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n","/**\n * Finds the parent stencil-form and returns its Final Form API.\n * This function correctly traverses up through nested Shadow DOM boundaries.\n *\n * @param element The host element of the component calling this function.\n * @returns A promise that resolves with the FormApi instance, or null if not found.\n */\nexport async function useFormApi(element: HTMLElement): Promise<any | null> {\n let current: HTMLElement | null = element;\n let form: Element | null = null;\n\n // Walk up the DOM tree, escaping shadow roots as we go.\n while (current) {\n // Look for the form in the current scope\n const foundForm = current.closest('stencil-form');\n if (foundForm) {\n form = foundForm;\n break; // Found it!\n }\n\n // If not found, we might be in a shadow root.\n // Let's try to escape it.\n const root = current.getRootNode();\n if (root instanceof ShadowRoot) {\n current = root.host as HTMLElement;\n } else {\n // We're in the main document and didn't find it.\n break;\n }\n }\n\n if (!form) {\n return null;\n }\n\n // Check if getApi method exists\n if (typeof (form as any).getApi !== 'function') {\n return null;\n }\n\n const formApi = await (form as any).getApi();\n \n if (!formApi) {\n return null;\n }\n \n return formApi;\n}\n","\n.hidden {\n display: none;\n}\n\n.question-container {\n border-top: 1px solid rgba(0, 0, 0, 0.08); \n padding-top: 1rem; \n}\n\n.question-title-and-helper-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03)\n}\n\n.question-title-and-followup-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","import { Component, ComponentInterface, Element, h, Prop, State, Watch, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../utils/enums';\nimport { FontOverrides } from '../utils/types';\nimport { fontOverrideMapping, overrideFont } from '../utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../utils/enums';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n @Prop() isCommentAllowed: boolean = false;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n // const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.initialValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n <udp-question-comments\n question={this.question}\n initialValues={this.initialValues}\n userId={this.userId}\n />\n </div>\n );\n }\n}\n",".question-comment-display {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-03);\n margin: var(--spacing-05) 0;\n border: 1px solid var(--border-color, #ccc);\n border-radius: 6px;\n padding: var(--spacing-05) var(--spacing-04);\n /* Force long words to wrap to prevent box overflow */\n overflow-wrap: break-word; \n word-wrap: break-word;\n}\n\n/* Target the typography component that holds the comment body */\n.question-comment-display unity-typography:not(.question-comment-header) {\n display: block; /* Allows the element to respect width/wrapping */\n white-space: pre-wrap; /* Respects newlines (\\n) and auto-wraps text */\n word-break: break-word; /* Safety for very long strings of characters */\n}\n\n.question-comment-display > .question-comment-header {\n position: absolute;\n bottom: -0.6em; \n right: 1em;\n background: white; \n padding: 0 0.4em;\n font-size: 0.85em;\n white-space: nowrap; /* Keeps the \"Name on Date\" on one line */\n}\n\n.question-comment-add-comment-button {\n display: flex;\n justify-content: center;\n margin: var(--spacing-03) 0;\n}\n\n.question-comment-action-container {\n display: flex;\n justify-content: end;\n}","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\nimport { UdpFormQuestion, Guid } from '../../utils/types';\nimport { dateFormatter } from '../../utils/utils';\n\n@Component({\n tag: 'udp-question-comments',\n styleUrl: 'udp-question-comments.css',\n shadow: true,\n})\nexport class UdpQuestionComments {\n @Prop() question: UdpFormQuestion;\n @Prop() commentFieldProps: object = {};\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() userId: Guid | null = null;\n\n @Event({ bubbles: true, composed: true }) questionCommentAction: EventEmitter<{\n type: 'add' | 'save' | 'edit' | 'delete' | 'editClose';\n questionIdentifierKey: string;\n commentId: string;\n }>;\n\n private emitQuestionCommentAction(type: 'add' | 'save' | 'edit' | 'delete' | 'editClose', commentId) {\n this.questionCommentAction.emit({\n type,\n questionIdentifierKey: this.question.questionIdentifierKey,\n commentId,\n });\n }\n\n private handleCommentAdd() {\n this.emitQuestionCommentAction('add', null);\n }\n private handleCommentSave(commentId) {\n this.emitQuestionCommentAction('save', commentId);\n }\n private handleCommentEdit(commentId) {\n this.emitQuestionCommentAction('edit', commentId);\n }\n private handleCommentDelete(commentId) {\n this.emitQuestionCommentAction('delete', commentId);\n }\n private handleCommentEditClose(commentId) {\n this.emitQuestionCommentAction('editClose', commentId);\n }\n\n render() {\n const [sectionName, questionName] = this.question.questionIdentifierKey.split('.');\n const questionData = this.initialValues?.[sectionName]?.[questionName] || {\n comments: [],\n draftComments: [],\n };\n\n // normalize incoming shape (back-compat)\n const savedComments = Array.isArray(questionData.comments)\n ? questionData.comments\n : questionData.comments\n ? [questionData.comments]\n : [];\n const draftComments = Array.isArray(questionData.draftComments)\n ? questionData.draftComments\n : questionData.draftComments\n ? [questionData.draftComments]\n : [];\n\n // enforce single active action UX:\n // - Only one draft is shown/active at a time (pick first draft if present)\n\n // detect any draft anywhere in the form's initialValues\n const activeDraft = draftComments.length > 0 ? draftComments[0] : null;\n const isAnyQuestionContainsActiveDraft = Object.values(this.initialValues || {}).some((section: any) =>\n Object.values(section || {}).some((q: any) => {\n if (!q) return false;\n const drafts = q.draftComments;\n if (!drafts) return false;\n if ( Array.isArray(drafts) && drafts.length < 1) return false\n\n return true\n }),\n );\n\n return (\n <div>\n {/* Render saved comments — disable actions if a draft is active */}\n {savedComments.map((commentObj, idx) => {\n const commentsIdentifierValueKey = `${this.question.questionIdentifierKey}.comments[${idx}].value`;\n const isOwner = commentObj?.userId === this.userId;\n const showActions = !activeDraft && isOwner; // only show edit/delete when no active draft and owner\n \n\n // return the comment edit component if it's the active draft\n if (activeDraft && commentObj.commentId == activeDraft.commentId) {\n return (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentDelete(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Delete\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"close16\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n </div>\n </div>\n )\n }\n\n // return the comment display component \n return !commentObj?.isDeleted ? (\n <div class=\"question-comment-input-container\" key={commentObj.commentId || idx}>\n <stencil-field name={commentsIdentifierValueKey} style={{ display: 'none' }}>\n <text-area disabled={true} />\n </stencil-field>\n\n <div class=\"question-comment-display\">\n <unity-typography variant=\"h4\" color=\"inherit\" class=\"question-comment-header\">\n {`${commentObj?.userDisplayName} ${\n commentObj?.timestamp ? `on ${dateFormatter(commentObj.timestamp, 'short')}` : ''\n }`}\n </unity-typography>\n {commentObj?.value}\n </div>\n <div class=\"question-comment-action-container\">\n {showActions && !isAnyQuestionContainsActiveDraft && (\n <div>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEdit(commentObj.commentId)}\n startIcon={<udp-icon iconName=\"edit\" color=\"inherit\" />}\n >\n Edit\n </udp-button>\n </div>\n )}\n </div>\n </div>\n ) : (\n <div></div>\n );\n })}\n\n {/* New commend at the bottom of the comment thread */}\n {activeDraft && activeDraft.isTempComment && !savedComments.includes(c => c.commentId == activeDraft.commentId) && (\n <div class=\"question-comment-draft-container\" key={activeDraft.commentId || `draft-0`}>\n <stencil-field\n name={`${this.question.questionIdentifierKey}.draftComments[0].value`}\n required={true}\n ignoreDirty={true}\n >\n <text-area {...this.commentFieldProps} label=\"Comment:\" placeholder=\"Add a comment\" />\n </stencil-field>\n\n <div class=\"question-comment-action-container\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentEditClose(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"trashCan\" color=\"inherit\" />}\n >\n Cancel\n </udp-button>\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentSave(activeDraft.commentId)}\n startIcon={<udp-icon iconName=\"save\" color=\"inherit\" />}\n >\n Save\n </udp-button>\n </div>\n </div>\n )}\n\n {/* Add button only when there is no active draft */}\n {!activeDraft && !isAnyQuestionContainsActiveDraft &&(\n <div class=\"question-comment-add-comment-button\">\n <udp-button\n variant=\"text\"\n onClick={() => this.handleCommentAdd()}\n startIcon={<udp-icon iconName=\"add\" color=\"inherit\" />}\n >\n Add a Comment\n </udp-button>\n </div>\n )}\n </div>\n );\n }\n}\n","/* Single save button that moves between header and floating positions */\n\n/* Floating mode - positioned fixed in top-right, accounting for app bar */\n.floating-save-button {\n position: fixed;\n top: 5rem; /* Increased from 2rem to account for app bar height */\n right: 2rem;\n z-index: 1000;\n animation: slideInDown 0.3s ease-out;\n}\n\n/* Inline mode - positioned relative for header placement */\n.inline-save-button {\n position: relative;\n display: inline-flex;\n align-items: center;\n margin-left: auto; /* Push to right side of header */\n}\n\n/* Common styles for both modes */\n.floating-save-button.saving,\n.inline-save-button.saving {\n pointer-events: none;\n}\n\n/* Saving state styling */\n.saving-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(0, 0, 0, 0.8);\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n}\n\n/* Saved state styling */\n.saved-state {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(34, 139, 34, 0.9); /* Forest green background */\n color: white;\n border-radius: 8px;\n font-size: 0.9rem;\n animation: fadeIn 0.3s ease-out;\n}\n\n/* Inline saving state - more compact */\n.inline-save-button .saving-state {\n padding: 0.5rem 0.75rem;\n background: rgba(0, 0, 0, 0.6);\n font-size: 0.8rem;\n}\n\n/* Inline saved state - more compact */\n.inline-save-button .saved-state {\n padding: 0.5rem 0.75rem;\n background: rgba(34, 139, 34, 0.8);\n font-size: 0.8rem;\n}\n\n/* Error tooltip positioning - for floating button (top-right) */\n.save-error-tooltip {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 0.5rem;\n background: #dc3545;\n color: white;\n padding: 0.5rem 1rem;\n border-radius: 8px;\n font-size: 0.8rem;\n white-space: nowrap;\n box-shadow: 0 4px 12px rgba(220, 53, 69, 0.3);\n animation: fadeIn 0.3s ease-out;\n z-index: 1001;\n}\n\n.save-error-tooltip::after {\n content: '';\n position: absolute;\n bottom: 100%;\n right: 1rem;\n border: 6px solid transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Inline mode error tooltip - position differently */\n.inline-save-button .save-error-tooltip {\n top: 100%;\n bottom: auto;\n margin-top: 0.5rem;\n margin-bottom: 0;\n}\n\n.inline-save-button .save-error-tooltip::after {\n top: -6px;\n border-top-color: transparent;\n border-bottom-color: #dc3545;\n}\n\n/* Animations */\n@keyframes slideInDown {\n from {\n opacity: 0;\n transform: translateY(-20px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .floating-save-button {\n bottom: 1rem;\n right: 1rem;\n top: auto; /* Override fixed top position on small screens */\n }\n\n .saving-state {\n padding: 0.6rem 0.8rem;\n font-size: 0.8rem;\n }\n\n .inline-save-button .saving-state {\n padding: 0.4rem 0.6rem;\n font-size: 0.75rem;\n }\n}\n\n/* Override icon color to primary when button is inherit color */\n.primary-icon {\n --icon-color: var(--primary-color, #1976d2);\n}\n\n.primary-icon::part(icon) {\n fill: var(--icon-color) !important;\n}\n\n/* Alternative approach using deep selector */\n.primary-icon udp-icon-button::part(icon),\n.primary-icon .icon {\n fill: var(--primary-color, #1976d2) !important;\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .floating-save-button,\n .save-error-tooltip {\n animation: none;\n }\n}\n","import { Component, Prop, h, State, Element, Listen } from '@stencil/core';\nimport Save from '@carbon/icons/es/save/20';\nimport { useFormApi } from '../../../form/useFormApi';\n\n@Component({\n tag: 'udp-save-draft-button',\n styleUrl: 'udp-save-draft-button.css',\n shadow: true,\n})\nexport class UdpSaveDraftButton {\n @Element() el: HTMLElement;\n\n @Prop() isVisible: boolean = false;\n @Prop() isSaving: boolean = false;\n @Prop() saveErrorMessage: string | null = null;\n @Prop() showSavedMessage: boolean = false;\n @Prop() handleSave: (values?: any) => void;\n\n @State() shouldBeInline: boolean = false;\n @State() private formApi: any | null = null;\n\n private resizeObserver: ResizeObserver;\n private checkOverlapTimeoutId: any;\n\n async componentDidLoad() {\n this.formApi = await useFormApi(this.el);\n this.checkForOverlap();\n this.setupOverlapDetection();\n }\n\n disconnectedCallback() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n }\n\n @Listen('resize', { target: 'window' })\n handleWindowResize() {\n this.debouncedOverlapCheck();\n }\n\n private setupOverlapDetection() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.debouncedOverlapCheck();\n });\n const formContainer = this.el.closest('udp-forms-ui, .form-container, udp-container');\n if (formContainer) {\n this.resizeObserver.observe(formContainer);\n }\n const mainContent = document.querySelector('main, [role=\"main\"]') || document.body;\n if (mainContent) {\n this.resizeObserver.observe(mainContent);\n }\n }\n }\n\n private debouncedOverlapCheck() {\n if (this.checkOverlapTimeoutId) {\n clearTimeout(this.checkOverlapTimeoutId);\n }\n this.checkOverlapTimeoutId = setTimeout(() => {\n this.checkForOverlap();\n }, 100);\n }\n\n private checkForOverlap() {\n // This logic determines which style to apply.\n // Using 1024px as the breakpoint to switch between floating and inline.\n const minWidthNeeded = 1280;\n this.shouldBeInline = window.innerWidth < minWidthNeeded;\n }\n\n private handleSaveClick = async () => {\n if (!this.formApi || this.isSaving) {\n return;\n }\n if (typeof this.handleSave !== 'function') {\n return;\n }\n const values = this.formApi.getState().values;\n try {\n await this.handleSave(values);\n this.formApi.reset(values);\n } catch (error) {\n console.error('The onSave handler threw an error. The form will remain dirty.', error);\n }\n };\n\n render() {\n if (!this.isVisible && !this.showSavedMessage) {\n return null;\n }\n\n // Dynamically set the class based on screen size.\n // This will toggle between your .floating-save-button and .inline-save-button styles.\n const containerClass = this.shouldBeInline ? 'inline-save-button' : 'floating-save-button';\n const isInlineMode = this.shouldBeInline;\n\n return (\n <div class={`${containerClass} ${this.isSaving ? 'saving' : ''} ${this.showSavedMessage ? 'saved' : ''}`}>\n {this.isSaving ? (\n <div class=\"saving-state\">\n <unity-spinner size=\"small\" />\n {!isInlineMode && <span>Saving...</span>}\n </div>\n ) : this.isVisible ? (\n <udp-icon-button\n icon={Save}\n onClick={this.handleSaveClick}\n tooltip={'Save Changes'}\n variant=\"contained\"\n color={isInlineMode ? 'inherit' : 'primary'}\n iconColor={isInlineMode ? 'primary' : null}\n size={isInlineMode ? 'small' : 'medium'}\n >\n {isInlineMode ? '' : 'Save Changes'}\n </udp-icon-button>\n ) : (\n <div class=\"saved-state\">\n <span>Saved</span>\n </div>\n )}\n\n {this.saveErrorMessage && <div class=\"save-error-tooltip\">{this.saveErrorMessage}</div>}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,h as e,H as n,a as o}from"./index-CaZq3YdB.js";import{i as s,p as a,d as r,a as l,c,b as d}from"./udp-drive-utils-CIrjVGiJ.js";import{createForm as u}from"final-form";import p from"lodash.debounce";import{b as h,U as m}from"./enums-BnKmfKJT.js";import{f as b,o as f,d as v}from"./utils-CiUp9KGZ.js";import{g as y}from"./iconUtils-DcPvHO4A.js";import g from"@carbon/icons/es/save/20";import"axios";import"./configService-BqLfkVKh.js";import"./iconMapping-CPerGeNF.js";import"@carbon/icons/es/add/16";import"@carbon/icons/es/add/32";import"@carbon/icons/es/add--alt/16";import"@carbon/icons/es/add--filled/16";import"@carbon/icons/es/arrows--horizontal/16";import"@carbon/icons/es/attachment/16";import"@carbon/icons/es/batch-job/16";import"@carbon/icons/es/box/16";import"@carbon/icons/es/close/16";import"@carbon/icons/es/close/24";import"@carbon/icons/es/close/32";import"@carbon/icons/es/close--filled/16";import"@carbon/icons/es/close--outline/16";import"@carbon/icons/es/checkmark/16";import"@carbon/icons/es/checkmark/24";import"@carbon/icons/es/checkmark/32";import"@carbon/icons/es/chevron--left/16";import"@carbon/icons/es/chevron--right/16";import"@carbon/icons/es/chevron--down/16";import"@carbon/icons/es/data-enrichment/16";import"@carbon/icons/es/document/16";import"@carbon/icons/es/document--add/16";import"@carbon/icons/es/document--attachment/16";import"@carbon/icons/es/document--pdf/16";import"@carbon/icons/es/document--video/16";import"@carbon/icons/es/document--audio/16";import"@carbon/icons/es/draggable/16";import"@carbon/icons/es/edit/16";import"@carbon/icons/es/export/16";import"@carbon/icons/es/flag/16";import"@carbon/icons/es/information/16";import"@carbon/icons/es/information/32";import"@carbon/icons/es/link/16";import"@carbon/icons/es/overflow-menu--vertical/16";import"@carbon/icons/es/overflow-menu--vertical/32";import"@carbon/icons/es/return/16";import"@carbon/icons/es/save/16";import"@carbon/icons/es/settings/16";import"@carbon/icons/es/subtract/16";import"@carbon/icons/es/subtract--alt/16";import"@carbon/icons/es/subtract--filled/16";import"@carbon/icons/es/trash-can/16";import"@carbon/icons/es/user/16";import"@carbon/icons/es/view/16";import"@carbon/icons/es/warning/16";import"@carbon/icons/es/warning/32";import"@carbon/icons/es/warning--alt/16";import"@carbon/icons/es/warning--alt/32";import"@carbon/icons/es/product/16";import"@carbon/icons/es/workspace/16";import"@carbon/icons/es/arrow--up/16";import"@carbon/icons/es/arrow--down/16";import"@carbon/icons/es/arrow--right/16";import"@carbon/icons/es/arrow--left/16";import"@carbon/icons/es/copy/16";import"@carbon/icons/es/star/16";import"@carbon/icons/es/data-table/16";import"@carbon/icons/es/fit-to-width/16";import"@carbon/icons/es/search--advanced/16";import"@carbon/icons/es/reset/16";import"@carbon/icons/es/column/16";import"@carbon/icons/es/column--delete/16";import"@carbon/icons/es/watson-health/rotate--360/16";import"@carbon/icons/es/filter/16";import"@carbon/icons/es/app-connectivity/16";import"@carbon/icons/es/text--font/16";import"@carbon/icons/es/text--long-paragraph/16";import"@carbon/icons/es/character--whole-number/16";import"@carbon/icons/es/checkbox--checked/16";import"@carbon/icons/es/radio-button--checked/16";import"@carbon/icons/es/event--schedule/16";import"@carbon/icons/es/view--off/16";import"@carbon/icons/es/time/16";import"@carbon/icons/es/calendar/16";import"@carbon/icons/es/list--checked/16";import"@carbon/icons/es/list--bulleted/16";import"@carbon/icons/es/cloud--upload/16";import"@carbon/icons/es/locked/16";import"@carbon/icons/es/pause/16";import"@carbon/icons/es/unlocked/16";import"@carbon/icons/es/send/16";import"@carbon/icons/es/email/16";import"@carbon/icons/es/checkmark--outline/16";import"@carbon/icons/es/migrate--alt/16";import"@carbon/icons/es/checkbox--checked--filled/16";import"@carbon/icons/es/checkbox/16";import"@carbon/icons/es/ZIP/16";import"@carbon/icons/es/image/16";import"@carbon/icons/es/PPT/16";import"@carbon/icons/es/XLS/16";const x=":host{display:block}";const w=class{constructor(e){t(this,e);this.change=i(this,"change");this.allowedMimeTypes=["image/jpeg","image/png","image/gif","image/svg+xml","image/webp"];this.fullWidth=false;this.dragAndDropMessage="Drag and drop your image here";this.browseFileMessage="Browse Image";this.hideDragAndDrop=false;this.hideButton=false;this.disabled=false;this.readonly=false;this.handleFileChange=t=>{t.stopPropagation();this.change.emit(t.detail)}}render(){return e(n,{key:"dc13ff549cc50efd68074f9526fe833c2abf3680"},e("file-upload",{key:"9d16c297893f24a379951635b558436f4614fab6",allowMultiple:false,allowedMimeTypes:this.allowedMimeTypes,fullWidth:this.fullWidth,required:this.required,error:this.error,dragAndDropMessage:this.dragAndDropMessage,browseFileMessage:this.browseFileMessage,hideDragAndDrop:this.hideDragAndDrop,hideButton:this.hideButton,id:this.id,name:this.name,label:this.label,disabled:this.disabled,readonly:this.readonly,initialValue:this.initialValue,renderImage:true,onChange:this.handleFileChange}))}};w.style=x;const k=':host(.udp-input){display:block;box-sizing:border-box;position:relative}:host(.udp-input--full-width){width:100%}:host(.udp-input--error){--input-border-color:var(--input-underline-color-error)}:host(.udp-input--disabled){pointer-events:none;opacity:0.5;cursor:not-allowed}:host(.udp-input--required){position:relative}:host(.udp-input--readonly){--input-background:var(--gray-02)}:host(.udp-input--hidden){display:none}:host(.udp-input--checked){--input-accent-color:var(--primary-color)}:host(.udp-input--multi-select){--list-max-height:200px}:host(.udp-input) .bx--text-input:focus{outline:none;}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-05)}:host(.udp-input) .bx--label{display:block;margin-bottom:var(--spacing-03);color:var(--text-main);font-size:var(--caption-text-font-size);font-weight:var(--caption-text-font-weight);line-height:var(--caption-text-line-height)}@media (max-width: var(--breakpoint-xs-max)){:host(.udp-input){margin-bottom:var(--spacing-04)}:host(.udp-input) .bx--form-item{margin-bottom:var(--spacing-04)}}@media (min-width: var(--breakpoint-sm-min)){:host(.udp-input){min-height:2.5rem;}}:host(.udp-input--size-small) .bx--text-input,:host(.udp-input--size-small) textarea,:host(.udp-input--size-small) input[type="text"],:host(.udp-input--size-small) input[type="number"],:host(.udp-input--size-small) input[type="email"],:host(.udp-input--size-small) input[type="password"],:host(.udp-input--size-small) input[type="tel"],:host(.udp-input--size-small) input[type="url"],:host(.udp-input--size-small) input[type="search"]{padding:var(--spacing-02);padding-bottom:6px;font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--text-input,:host(.udp-input--size-normal) textarea,:host(.udp-input--size-normal) input[type="text"],:host(.udp-input--size-normal) input[type="number"],:host(.udp-input--size-normal) input[type="email"],:host(.udp-input--size-normal) input[type="password"],:host(.udp-input--size-normal) input[type="tel"],:host(.udp-input--size-normal) input[type="url"],:host(.udp-input--size-normal) input[type="search"]{padding:var(--spacing-03);padding-bottom:9px;font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--text-input,:host(.udp-input--size-large) textarea,:host(.udp-input--size-large) input[type="text"],:host(.udp-input--size-large) input[type="number"],:host(.udp-input--size-large) input[type="email"],:host(.udp-input--size-large) input[type="password"],:host(.udp-input--size-large) input[type="tel"],:host(.udp-input--size-large) input[type="url"],:host(.udp-input--size-large) input[type="search"]{padding:var(--spacing-04);padding-bottom:12px;font-size:var(--body-font-size)}:host(.udp-input--margin-none){margin:0}:host(.udp-input--margin-dense){margin:var(--spacing-02) 0}:host(.udp-input--margin-normal){margin:var(--spacing-03) 0}:host(.udp-input--margin-comfortable){margin:var(--spacing-04) 0}:host(.udp-input--size-small) .bx--label{margin-bottom:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--size-normal) .bx--label{margin-bottom:var(--spacing-03);font-size:var(--body-font-size)}:host(.udp-input--size-large) .bx--label{margin-bottom:var(--spacing-04);font-size:var(--body-font-size)}.bx--text-input,textarea,input[type="text"],input[type="number"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="search"]{display:inline-block;padding:var(--spacing-03);padding-bottom:9px;box-sizing:border-box;border:none;font-size:var(--body-font-size);background:var(--input-background);border-bottom:var(--underline-standard) solid var(--input-underline-color, var(--gray-08));width:100%;font-family:var(--font-family);transition:border-bottom-color 0.15s ease-in-out}.bx--text-input:focus,textarea:focus,input[type="text"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="tel"]:focus,input[type="url"]:focus,input[type="search"]:focus{border-bottom-color:var(--input-underline-color-focus, var(--primary-color));border-bottom-width:2px}.bx--text-input--error,.bx--text-input:user-invalid,:host(.udp-input--error) .bx--text-input,:host(.udp-input--error) textarea,:host(.udp-input--error) input[type="text"],:host(.udp-input--error) input[type="number"],:host(.udp-input--error) input[type="email"],:host(.udp-input--error) input[type="password"],:host(.udp-input--error) input[type="tel"],:host(.udp-input--error) input[type="url"],:host(.udp-input--error) input[type="search"],input[type="text"]:user-invalid,input[type="number"]:user-invalid,input[type="email"]:user-invalid,input[type="password"]:user-invalid,input[type="tel"]:user-invalid,input[type="url"]:user-invalid,input[type="search"]:user-invalid{border-bottom-color:var(--input-underline-color-error, var(--error-color-main)) !important}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input[type="text"],:host(.udp-input--disabled) input[type="number"],:host(.udp-input--disabled) input[type="email"],:host(.udp-input--disabled) input[type="password"],:host(.udp-input--disabled) input[type="tel"],:host(.udp-input--disabled) input[type="url"],:host(.udp-input--disabled) input[type="search"]{border-bottom-color:var(--input-underline-color-disabled, var(--gray-08))}textarea.bx--text-input{resize:vertical;min-height:var(--spacing-08)}.bx--text-input::placeholder,textarea::placeholder,input[type="text"]::placeholder,input[type="number"]::placeholder,input[type="email"]::placeholder,input[type="password"]::placeholder,input[type="tel"]::placeholder,input[type="url"]::placeholder,input[type="search"]::placeholder{color:var(--placeholder-color, #999);opacity:1}:host(.udp-input),:host{display:block;width:100%;box-sizing:border-box}.bx--form-item{margin-bottom:var(--spacing-05)}.bx--label{display:block;margin-bottom:var(--spacing-03)}.error-message,.bx--form-requirement,:host(.udp-input--error) .error-message,:host(.udp-input--error) .bx--form-requirement{color:var(--error-color-main, #d32f2f) !important;margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);--unity-typography-inherit-color:var(--error-color-main, #d32f2f)}.helper-text{color:var(--text-02, #525252);margin-top:var(--spacing-02);font-size:var(--caption-font-size, 0.875rem)}:host(.udp-input--disabled) .bx--text-input,:host(.udp-input--disabled) textarea,:host(.udp-input--disabled) input,:host(.udp-input--disabled){cursor:not-allowed;opacity:0.6}:host(.udp-input--readonly) .bx--text-input,:host(.udp-input--readonly) textarea,:host(.udp-input--readonly) input{background-color:var(--field-01, #f4f4f4);cursor:default}:host(.udp-input--size-small) .signature-canvas{height:150px}:host(.udp-input--size-normal) .signature-canvas{height:200px}:host(.udp-input--size-large) .signature-canvas{height:250px}:host(.udp-input--size-small) .clear-button{padding:var(--spacing-01) var(--spacing-02);font-size:var(--caption-font-size, 0.875rem);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-normal) .clear-button{padding:var(--spacing-02) var(--spacing-03);font-size:var(--body-font-size);top:var(--spacing-02);right:var(--spacing-02)}:host(.udp-input--size-large) .clear-button{padding:var(--spacing-03) var(--spacing-04);font-size:var(--body-font-size);top:var(--spacing-03);right:var(--spacing-03)}.signature-pad-container{position:relative;border:1px solid var(--udp-mid-gray-color);border-radius:4px;background-color:var(--udp-light-gray-color)}.signature-canvas{display:block;width:100%;height:200px;}.signature-pad-container.readonly{background-color:var(--udp-disabled-gray-color)}.signature-canvas.readonly{cursor:not-allowed}.clear-button{position:absolute;top:var(--spacing-02);right:var(--spacing-02);background-color:var(--udp-light-gray-color);border:1px solid var(--udp-mid-gray-color);color:var(--udp-primary-color);cursor:pointer;border-radius:4px;padding:var(--spacing-02) var(--spacing-03);}.clear-button:hover{background-color:var(--udp-mid-gray-color)}.clear-button:disabled{cursor:not-allowed;opacity:0.5}';const z=class{constructor(e){t(this,e);this.change=i(this,"change");this.metadataEmit=i(this,"metadataEmit");this.includeLocation=false;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal";this.cachedLocation=null;this.isInternalChange=false;this.handleResize=()=>{if(this.resizeTimeout)clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{const t=this.canvasEl.getBoundingClientRect();if(!this.lastCanvasRect||t.width!==this.lastCanvasRect.width||t.height!==this.lastCanvasRect.height){let i=this.signaturePad&&!this.signaturePad.isEmpty()?this.signaturePad.toDataURL():null;this.resizeCanvasForDPR();this.initializeSignaturePad();this.lastCanvasRect=t;if(i&&this.signaturePad){this.signaturePad.fromDataURL(i)}}}),200)};this.handleSignatureEnd=async()=>{if(this.signaturePad.isEmpty()){this.isInternalChange=true;this.value=null;this.change.emit(null);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null});this.metadataEmit.emit({key:"signature.timestamp",value:null})}else{const t=this.signaturePad.toDataURL();const i=await this.urlToFile(t,"signature.png");this.isInternalChange=true;this.value=i;this.change.emit(i);this.metadataEmit.emit({key:"signature.timestamp",value:(new Date).toISOString()});if(this.includeLocation){try{let t=this.cachedLocation;if(!t){t=await new Promise(((t,i)=>{navigator.geolocation.getCurrentPosition(t,i,{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}))}if(t){this.metadataEmit.emit({key:"signature.latitude",value:t.coords.latitude});this.metadataEmit.emit({key:"signature.longitude",value:t.coords.longitude})}else{this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}catch(t){console.warn("Geolocation error:",t);this.metadataEmit.emit({key:"signature.latitude",value:null});this.metadataEmit.emit({key:"signature.longitude",value:null})}}}};this.clearSignature=()=>{if(this.signaturePad){this.signaturePad.clear();this.handleSignatureEnd()}}}async processAndLoadValue(t){if(!t){if(this.signaturePad)this.signaturePad.clear();return}try{const i=Array.isArray(t)?t[0]:t;let e=null;if(typeof i==="string"&&s(i)){const t=await a(i);if(t&&t.driveFileId){e=await r({name:t.name,driveFileId:t.driveFileId,extension:t.name.split(".").pop()||""})}else{e=t}}else if(l(i)){e=await r(i)}else if(typeof i==="string"){e=await c(i,"signature.png")}else if(d(i)){e=i}if(e){this.value=e;if(this.signaturePad){await this.loadSignature(e)}else{this.initializeSignaturePad()}}}catch(t){console.error("Failed to process signature value:",t)}}onErrorChange(t){this.internalError=t}async handleValueUpdate(t){if(this.isInternalChange){this.isInternalChange=false;return}if(this.canvasEl){await this.processAndLoadValue(t)}}async handleInitialValueUpdate(t){if(this.canvasEl){await this.processAndLoadValue(t)}}async componentWillLoad(){this.internalError=this.error;await this.loadSignaturePad();if(this.includeLocation){navigator.geolocation.getCurrentPosition((t=>{this.cachedLocation=t}),(t=>{console.warn("Prewarm geolocation error:",t);this.cachedLocation=null}),{enableHighAccuracy:true,timeout:3e4,maximumAge:0})}}async componentDidLoad(){this.initializeSignaturePad();const t=this.value||this.initialValue;if(t){await this.processAndLoadValue(t)}this.lastCanvasRect=this.canvasEl.getBoundingClientRect();window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize);if(this.resizeTimeout)clearTimeout(this.resizeTimeout)}resizeCanvasForDPR(){if(!this.canvasEl)return;const t=window.devicePixelRatio||1;const i=this.canvasEl.getBoundingClientRect();this.canvasEl.width=i.width*t;this.canvasEl.height=i.height*t;const e=this.canvasEl.getContext("2d");e.setTransform(1,0,0,1,0,0);e.scale(t,t)}async loadSignaturePad(){if(!this.SignaturePadLib){try{const t=await import("signature_pad");this.SignaturePadLib=t.default}catch(t){console.error("Failed to load signature_pad library",t)}}}initializeSignaturePad(){if(this.SignaturePadLib&&this.canvasEl){this.resizeCanvasForDPR();if(this.signaturePad){this.signaturePad.off()}this.signaturePad=new this.SignaturePadLib(this.canvasEl);this.signaturePad.addEventListener("endStroke",this.handleSignatureEnd);this.handleStateChange();if(this.value){this.loadSignature(this.value)}}}handleStateChange(){if(this.signaturePad){if(this.disabled||this.readonly){this.signaturePad.off()}else{this.signaturePad.on()}}}async loadSignature(t){let i;if(typeof t==="string"){i=t}else if(l(t)){try{const e=await r(t);i=URL.createObjectURL(e)}catch(t){console.error("Error loading signature image from UdpDriveFile:",t);return}}else if(t instanceof File){i=URL.createObjectURL(t)}if(i&&this.signaturePad){this.signaturePad.clear();this.signaturePad.fromDataURL(i,{ratio:window.devicePixelRatio||1})}}async urlToFile(t,i){const e=await fetch(t);const n=await e.blob();return new File([n],i,{type:n.type})}render(){const t=!!this.internalError;const i={"signature-pad-container":true,readonly:this.readonly,disabled:this.disabled};return e(n,{key:"1e4b57c4ef87dcaa9df86d70aaf5e534c6cbd795",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--required":this.required,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"f58bbc002b69a2f0bf2dab6efc4086ac3a7eda90",class:"bx--form-item"},this.label&&e("unity-typography",{key:"e46b453a0a4ceeaf02ec88618f8f838b8f87d7ad",variant:"caption-text"},e("label",{key:"39ad7d1e01bf24f02b65ee35738cb51b244c0a95",htmlFor:this.id,class:"bx--label"},this.label,this.required&&"*")),e("div",{key:"969b1532dc16b135a98da1d2f2701ce4aa8badb4",class:i},e("canvas",{key:"0f473ddc3295fe30d79e1ea1e78f03847c9cb200",ref:t=>this.canvasEl=t,class:{"signature-canvas":true,readonly:this.readonly||this.disabled},id:this.id}),!this.readonly&&!this.disabled&&e("button",{key:"9b94d94d8dcc79c425861c2946120168113f7efb",type:"button",class:"clear-button",onClick:this.clearSignature,disabled:this.disabled},"Clear")),t&&e("div",{key:"895c33b449cb174bd51a0f3048a751f9f8f6ec3b",class:"error-message"},e("unity-typography",{key:"175c80cf2841b7345470fd696d05017029e832b6",variant:"caption-text",color:"error"},this.internalError))))}get el(){return o(this)}static get watchers(){return{error:["onErrorChange"],value:["handleValueUpdate"],initialValue:["handleInitialValueUpdate"],disabled:["handleStateChange"],readonly:["handleStateChange"]}}};z.style=k;const C=class{constructor(e){t(this,e);this.stencilFormInvalidEvent=i(this,"stencilFormInvalidEvent");this.dirtyChange=i(this,"dirtyChange");this.validateOnBlur=true;this.registeredFields={};this.customErrors={};this.handleSlotChange=()=>{const t=this.el.shadowRoot.querySelector("slot");if(!t)return;t.assignedNodes().forEach((t=>this.processNodeRecursively(t)))};this.submitWithValidation=this.submitWithValidation.bind(this);this.defaultValidation=this.defaultValidation.bind(this);this.submit=this.submit.bind(this);this.onFormChange=this.onFormChange.bind(this)}connectField(t){if(t.__connectedToForm)return;t.setFormApi({api:this.api,registeredFields:this.registeredFields,customErrors:this.customErrors});t.__connectedToForm=true}async processNodeRecursively(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.localName.includes("-")){await customElements.whenDefined(i.localName)}if(i.matches("stencil-field")){this.connectField(i)}this.connectSubmitButtons(i);if(i.shadowRoot){for(const t of Array.from(i.shadowRoot.childNodes)){await this.processNodeRecursively(t)}}for(const t of Array.from(i.childNodes)){await this.processNodeRecursively(t)}}connectSubmitButtons(t){if(t.nodeType!==Node.ELEMENT_NODE){return}const i=t;if(i.matches('input[type="submit"], button[type="submit"]')){const t=i;if(!t.dataset.stencilFormConnected){t.dataset.stencilFormConnected="true";i.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}const e=i.querySelectorAll('input[type="submit"], button[type="submit"]');e.forEach((t=>{const i=t;if(!i.dataset.stencilFormConnected){i.dataset.stencilFormConnected="true";t.addEventListener("click",(t=>{t.preventDefault();this.submit(t)}))}}))}componentWillLoad(){this.api=u({onSubmit:this.submitWithValidation,initialValues:this.initialValues,validate:this.defaultValidation,validateOnBlur:this.validateOnBlur});if(this.handleChange){this.api.subscribe(this.onFormChange,{values:true})}this.api.subscribe((t=>{const{dirtyFields:i}=t;const e=this.registeredFields;const n=Object.keys(i||{}).some((t=>{var n;return i[t]&&!((n=e[t])===null||n===void 0?void 0:n.ignoreDirty)}));this.dirtyChange.emit(n)}),{dirtyFields:true})}componentDidLoad(){const t=this.el.shadowRoot.querySelector("slot");this.observer=new MutationObserver((t=>{for(const i of t){i.addedNodes.forEach((t=>{this.processNodeRecursively(t)}))}}));const i=()=>{const i=(t===null||t===void 0?void 0:t.assignedNodes({flatten:true}))||[];i.forEach((t=>{if(t.nodeType===Node.ELEMENT_NODE){this.observer.observe(t,{childList:true,subtree:true});this.processNodeRecursively(t)}}))};if(t){i();t.addEventListener("slotchange",i)}this.observer.observe(this.el,{childList:true,subtree:true});this.el.dispatchEvent(new CustomEvent("stencilFormReady",{bubbles:true,composed:true}))}disconnectedCallback(){var t;this.api=null;this.registeredFields={};const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(i){i.removeEventListener("slotchange",this.handleSlotChange)}}onFormChange(t){if(this.handleChange&&t.values){this.handleChange(t.values)}}async submitWithValidation(t){const i=this.defaultValidation(t);if(Object.keys(i).length===0){this.handleSubmit(t)}else{this.stencilFormInvalidEvent.emit(i)}}defaultValidation(t){const{registeredFields:i,customErrors:e}=this;const n={};const o=(t,i)=>i.replace(/\[(\d+)\]/g,".$1").split(".").reduce(((t,i)=>t!=null?t[i]:undefined),t);Object.keys(i).forEach((e=>{const s=i[e];if(s===null||s===void 0?void 0:s.ignoreDirty)return;const a=o(t,e);if(s.required&&(a==null||typeof a==="string"&&a.trim()===""||a===false||a==="false")){n[e]="This field is required"}}));if(e){Object.keys(e).forEach((t=>{if(e[t]){n[t]=e[t]}}))}if(this===null||this===void 0?void 0:this.handleValidate){const i=this.handleValidate(t,n);return Object.assign(Object.assign({},n),i)}return n}async getApi(){if(!this.api){console.error("❌ Form API not initialized yet.");return null}return this.api}submit(t){var i;(i=t===null||t===void 0?void 0:t.preventDefault)===null||i===void 0?void 0:i.call(t);const e=this.api.getState().values;const n=this.defaultValidation(e);const o=()=>{var t;if(Object.keys(n).length){this.stencilFormInvalidEvent.emit(n);return}(t=this.api)===null||t===void 0?void 0:t.submit()};p(o,1e3,{leading:true,trailing:false})()}render(){return e("form",{key:"4ac60260d402ca51999311e2e9095643a548bf7b"},e("slot",{key:"f86bda6b8329db4a2e620ffa5cbe95ae5aded136"}))}get el(){return o(this)}};const j=":host{display:block;width:100%}.tally-container{display:flex;flex-direction:column;gap:var(--spacing-02, 8px)}.tally-label{font-weight:600;margin-bottom:var(--spacing-02, 8px)}.tally-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-04, 16px);color:var(--text-secondary, #6b7280)}.tally-content{display:flex;flex-direction:column;gap:var(--spacing-03, 12px)}.tally-stats{display:flex;gap:var(--spacing-04, 16px);flex-wrap:wrap}.tally-item{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-03, 12px) var(--spacing-04, 16px);border-radius:var(--border-radius-01, 4px);border:1px solid var(--border-subtle, #e5e7eb);background-color:var(--layer-01, #ffffff);min-width:80px;flex:1;max-width:120px}.tally-item.tally-yes{border-color:var(--support-success, #42be65);background-color:var(--support-success-hover, #f6f8ff)}.tally-item.tally-no{border-color:var(--support-error, #da1e28);background-color:var(--support-error-hover, #fff1f1)}.tally-item.tally-unanswered{border-color:var(--support-warning, #f1c21b);background-color:var(--support-warning-hover, #fcf4d6)}.tally-count{font-weight:700;line-height:1.2;margin-bottom:var(--spacing-01, 4px)}.tally-yes .tally-count{color:var(--support-success, #42be65)}.tally-no .tally-count{color:var(--support-error, #da1e28)}.tally-unanswered .tally-count{color:var(--support-warning, #f1c21b)}.tally-item .tally-label{margin:0;font-weight:500;text-transform:uppercase;font-size:0.75rem;letter-spacing:0.02em}.tally-summary{padding:var(--spacing-02, 8px) 0;border-top:1px solid var(--border-subtle, #e5e7eb);text-align:center}.error-message{margin-top:var(--spacing-02, 8px);padding:var(--spacing-02, 8px);border-radius:var(--border-radius-01, 4px);background-color:var(--support-error-hover, #fff1f1);border:1px solid var(--support-error, #da1e28)}:host(.udp-input--size-small) .tally-item{padding:var(--spacing-02, 8px) var(--spacing-03, 12px);min-width:60px;max-width:90px}:host(.udp-input--size-small) .tally-count{font-size:1.25rem}:host(.udp-input--size-large) .tally-item{padding:var(--spacing-04, 16px) var(--spacing-05, 20px);min-width:100px;max-width:150px}:host(.udp-input--size-large) .tally-count{font-size:2rem}:host(.udp-input--margin-none) .tally-container{gap:0}:host(.udp-input--margin-dense) .tally-container{gap:var(--spacing-01, 4px)}:host(.udp-input--margin-comfortable) .tally-container{gap:var(--spacing-04, 16px)}:host(.udp-input--disabled) .tally-item{opacity:0.5;pointer-events:none}:host(.udp-input--readonly) .tally-item{background-color:var(--field-01, #f4f4f4)}@media (max-width: 480px){.tally-stats{flex-direction:column}.tally-item{max-width:none;flex:none}}";const O=class{constructor(i){t(this,i);this.label="Response Tally";this.yesCount=0;this.noCount=0;this.naCount=0;this.totalFields=0;this.disabled=false;this.readonly=false;this.size="normal";this.margin="normal"}render(){const t=!!this.error;const i=this.yesCount+this.noCount+this.naCount;const o=this.totalFields-i;return e(n,{key:"fed22627bce1ac7be18a2425bece6686869564d7",class:{"udp-input":true,"udp-input--error":t,"udp-input--disabled":this.disabled,"udp-input--readonly":this.readonly,[`udp-input--size-${this.size}`]:true,[`udp-input--margin-${this.margin}`]:true}},e("div",{key:"971333eebb659bbb4eb934bb9950032a7909da18",class:"tally-container"},this.label&&e("unity-typography",{key:"8444c7bcbcbe333f9e66026a5222ee29335e4de6",variant:"caption-text"},e("label",{key:"98c8daa86aa2d29c2d1c5b4a5004ce6819d83349",htmlFor:this.id,class:"tally-label"},this.label)),e("div",{key:"7b6a501d4ce95a2b27d3884e8c695e1faf06b2e8",class:"tally-content",id:this.id},e("div",{key:"68454bc99bd9c1ce4680df8f983eaf5ae4e9767e",class:"tally-stats"},e("div",{key:"e0e1b18c29dccb79043e00475b5bc30adc987d4e",class:"tally-item tally-yes"},e("unity-typography",{key:"18cc8a94d43cf31f6306b8de3d2f48d1396304a2",variant:"h4",class:"tally-count"},this.yesCount),e("unity-typography",{key:"d88c15dbf4bda174343aaa5bab8717d1c8cc0624",variant:"caption-text",class:"tally-label"},"Yes")),e("div",{key:"3f5108ae238eb07f67e5c6de82eb396ade8224f8",class:"tally-item tally-no"},e("unity-typography",{key:"371e592c1c36ecbb6dd03764f395c21f1d4d0be5",variant:"h4",class:"tally-count"},this.noCount),e("unity-typography",{key:"b808bcc32aa9c582046b368d1d13747d8e757b77",variant:"caption-text",class:"tally-label"},"No")),e("div",{key:"78f58c21c1c20d6054c0ef0a31dd56de06fb0431",class:"tally-item tally-na"},e("unity-typography",{key:"bbf95119a828762d96ba783b24e6d33f4d21084c",variant:"h4",class:"tally-count"},this.naCount),e("unity-typography",{key:"c34245acdfe54eab110e4d21d3397a0902087ccd",variant:"caption-text",class:"tally-label"},"Not Applicable")),o>0&&e("div",{key:"7e56aeb2896950a6a8ba2b414250628bc15f73d0",class:"tally-item tally-unanswered"},e("unity-typography",{key:"947f18fb83d02cb7544fc245aaad81ae188d5a98",variant:"h4",class:"tally-count"},o),e("unity-typography",{key:"fb740e38f0086757ead6285834183fcc183dc07f",variant:"caption-text",class:"tally-label"},"Unanswered"))),e("div",{key:"2c877a0a184fe0b51b75ed26073085c057ae6a40",class:"tally-summary"},e("unity-typography",{key:"8479096b7addcedab23446a67ed9a0795dc5c8fe",variant:"caption-text"},"Total Questions: ",this.totalFields))),t&&e("div",{key:"b686351f4926cc8bfbec445bf426ec3634c861a9",class:"error-message"},e("unity-typography",{key:"4363a3cb9ffd25fd03b0ca1c74ea01281a451dbd",variant:"caption-text",color:"error"},this.error))))}};O.style=j;async function q(t){let i=t;let e=null;while(i){const t=i.closest("stencil-form");if(t){e=t;break}const n=i.getRootNode();if(n instanceof ShadowRoot){i=n.host}else{break}}if(!e){return null}if(typeof e.getApi!=="function"){return null}const n=await e.getApi();if(!n){return null}return n}const F=".hidden{display:none}.question-container{border-top:1px solid rgba(0, 0, 0, 0.08);padding-top:1rem}.question-title-and-helper-container{display:flex;flex-direction:column;gap:var(--spacing-03)}.question-title-and-followup-container{display:flex;justify-content:space-between;align-items:center}";const $=class{constructor(e){t(this,e);this.launchFollowUpFormSideSheet=i(this,"launchFollowUpFormSideSheet");this.disabled=false;this.readonly=false;this.initialValues={};this.userId=null;this.isCommentAllowed=false;this.tallyData={yesCount:0,noCount:0,naCount:0,totalFields:0};this.formApi=null}propChanged(){this.updateFieldComponent()}async componentWillLoad(){this.updateFieldComponent();if(this.question.fieldTypeId===h.Tally){await this.initializeFormApiForTally()}}async initializeFormApiForTally(){try{this.formApi=await q(this.el);if(this.formApi){const t=this.formApi.subscribe((()=>{this.calculateTally()}),{active:true,dirty:true,values:true});this.unsubscribeFormApi=t;this.calculateTally()}}catch(t){console.error("Failed to initialize form API for tally:",t)}}calculateTally(){if(!this.formApi||this.question.fieldTypeId!==h.Tally){return}try{const t=this.formApi.getState().values;const i=this.el.closest("stencil-form");if(!i){return}const e=i.querySelectorAll("udp-question");const n=[];e.forEach((t=>{if(t.question&&t.question.fieldTypeId===h.YesNo){const i=`${t.question.questionIdentifierKey}.value`;if(i){const t=this.shouldIncludeFieldInTally(i);if(t){n.push(i)}}}}));let o=0;let s=0;let a=0;n.forEach((i=>{const[e,n]=i.split(".");const r=t[e][n].value;if(r==="true"||r===true){o++}else if(r==="false"||r===false){s++}else if(r==="na"){a++}}));this.tallyData={yesCount:o,noCount:s,naCount:a,totalFields:n.length};this.updateFieldComponent()}catch(t){console.error("Error calculating tally:",t)}}shouldIncludeFieldInTally(t){const i=this.question.fieldProperties;if((i===null||i===void 0?void 0:i.includeFields)&&i.includeFields.length>0){return i.includeFields.includes(t)}if((i===null||i===void 0?void 0:i.excludeFields)&&i.excludeFields.length>0){return!i.excludeFields.includes(t)}return true}updateFieldComponent(){this._fieldComponent=this.getFieldComponent()}getFieldComponent(){var t,i,n,o;const s={name:`${this.question.questionIdentifierKey}.value`,required:this.question.required};const a=Object.assign(Object.assign({},this.question.fieldProperties),{id:this.questionNumber,disabled:this.disabled,readonly:this.readonly});switch(this.question.fieldTypeId){case h.SingleLineText:return e("stencil-field",Object.assign({},s),e("text-field",Object.assign({},a)));case h.MultiLineText:return e("stencil-field",Object.assign({},s),e("text-area",Object.assign({fullWidth:true},a)));case h.Checkbox:return e("stencil-field",Object.assign({},s),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true,useCheckbox:true},a)));case h.RadioButton:return e("stencil-field",Object.assign({},s),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true},a)));case h.DropdownSingleSelect:case h.DropdownMultipleSelect:let r=(i=(t=a===null||a===void 0?void 0:a.items)===null||t===void 0?void 0:t.map)===null||i===void 0?void 0:i.call(t,(t=>Object.assign({label:t.display,value:t.value},a)));return e("stencil-field",Object.assign({},s),e("udp-selector",Object.assign({options:r!==null&&r!==void 0?r:[],multiSelect:this.question.fieldTypeId===h.DropdownMultipleSelect},a)));case h.YesNo:return e("stencil-field",Object.assign({},s),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true,multiSelect:false,items:[{value:"true",display:"Yes"},{value:"false",display:"No"},{value:"na",display:"Not Applicable"}]},a)));case h.ListMultiSelect:return e("stencil-field",Object.assign({},s),e("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true},a)));case h.DateSelector:return e("stencil-field",Object.assign({},s),e("udp-date-selector",Object.assign({min:a===null||a===void 0?void 0:a.minDate,max:a===null||a===void 0?void 0:a.maxDate},a)));case h.TimeSelector:return e("stencil-field",Object.assign({},s),e("udp-time-selector",Object.assign({min:a===null||a===void 0?void 0:a.minTime,max:a===null||a===void 0?void 0:a.maxTime},a)));case h.DateTimeSelector:return e("stencil-field",Object.assign({},s),e("udp-datetime-selector",Object.assign({max:a===null||a===void 0?void 0:a.maxDateTime,min:a===null||a===void 0?void 0:a.minDateTime},a)));case h.FileUpload:return e("stencil-field",Object.assign({},s),e("file-upload",Object.assign({fullWidth:true,allowMultiple:false},a)));case h.ImageUpload:return e("stencil-field",Object.assign({},s),e("image-upload",Object.assign({fullWidth:true},a)));case h.Signature:return e("div",null,e("stencil-field",Object.assign({},s,{fieldIdentifierKey:`${this.question.questionIdentifierKey}`,registerMetadata:true,metadataFieldNames:["signature.latitude","signature.longitude","signature.timestamp"]}),e("signature-input",Object.assign({},a,{value:this.value}))),e("stencil-field",{required:this.question.required,name:`${this.question.questionIdentifierKey}.metadata.signature.fullName`},e("text-field",Object.assign({},a,{label:"Full Name"}))));case h.Paragraph:return e("stencil-field",{name:this.question.name,required:false},e("input",{type:"hidden",name:this.question.name,value:this.value||""}),this.value?e("unity-typography",{id:`paragraphText${this.question.name}`,variant:((o=(n=this.styleOverrides)===null||n===void 0?void 0:n.paragraphText)===null||o===void 0?void 0:o.variant)||"body"},this.value):e("div",null));case h.Number:return e("stencil-field",Object.assign({},s),e("numeric-field",Object.assign({},a)));case h.Tally:return e("tally-display",Object.assign({id:this.questionNumber,label:this.question.questionText||"Response Tally",yesCount:this.tallyData.yesCount,noCount:this.tallyData.noCount,naCount:this.tallyData.naCount,totalFields:this.tallyData.totalFields},a,{required:false}));case h.Hidden:default:return e("div",null)}}async componentDidLoad(){var t,i,e,n;if(this.question.fieldTypeId===h.Tally&&!this.formApi){await this.initializeFormApiForTally()}const o=[];for(const s in this.styleOverrides){o.push({id:s+this.question.name,fontOverride:(i=(t=this.styleOverrides)===null||t===void 0?void 0:t[s])===null||i===void 0?void 0:i.fontFamily,variant:(n=(e=this.styleOverrides)===null||e===void 0?void 0:e[s])===null||n===void 0?void 0:n.variant})}o.forEach((t=>{var i,e,n;if(!b[t===null||t===void 0?void 0:t.fontOverride]||!this.el||!this.el.shadowRoot)return;f((n=(e=(i=this.el)===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.getElementById)===null||n===void 0?void 0:n.call(e,t.id),b[t===null||t===void 0?void 0:t.fontOverride])}))}render(){var t,i,n,o;const s=this._fieldComponent;const a=`${this.question.fieldTypeId===h.Paragraph?"":`${this.questionNumber}.`} ${this.question.questionText} ${this.question.required&&this.question.fieldTypeId!==h.Paragraph?"*":""}`;const r=`${this.question.questionIdentifierKey}.value`;const[l,c]=r.split(".");if(!s)return null;return e("div",{class:{hidden:this.question.fieldTypeId===h.Hidden,"question-container":true}},e("div",{class:"question-title-and-helper-container"},e("div",{class:"question-title-and-followup-container"},this.question.questionText&&e("unity-typography",{id:`questionText${this.question.name}`,variant:((i=(t=this.styleOverrides)===null||t===void 0?void 0:t.questionText)===null||i===void 0?void 0:i.variant)||"h3"},a),e("div",null,this.question.fieldProperties.allowFollowUpForms&&(()=>{var t;const i=(t=this.initialValues[l][c])===null||t===void 0?void 0:t.metadata;const n=i===null||i===void 0?void 0:i.followUpFormSubmissionId;if(n){const t=`/page/${m.FormRendererPageId}?udpf_submissionId=${n}`;return e("stencil-icon-button",{icon:y("link"),tooltip:"Open Follow-Up Form",onClick:()=>window.open(t,"_blank")})}if(!this.readonly){return e("stencil-icon-button",{icon:y("document"),tooltip:"Create Follow-Up Form",onClick:()=>{console.log("clicked create follow up form");this.launchFollowUpFormSideSheet.emit({sectionKey:l,questionKey:c})}})}})())),this.question.helperText&&e("unity-typography",{id:`helperText${this.question.name}`,variant:((o=(n=this.styleOverrides)===null||n===void 0?void 0:n.helperText)===null||o===void 0?void 0:o.variant)||"caption-text"},this.question.helperText)),s,this.question.fieldProperties.allowFollowUpForms&&e("div",null,e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`},e("text-field",null)),e("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`},e("text-field",null))),e("udp-question-comments",{question:this.question,initialValues:this.initialValues,userId:this.userId}))}get el(){return o(this)}static get watchers(){return{question:["propChanged"],questionNumber:["propChanged"],value:["propChanged"],disabled:["propChanged"],readonly:["propChanged"],styleOverrides:["propChanged"]}}};$.style=F;const I=".question-comment-display{position:relative;display:flex;flex-direction:column;gap:var(--spacing-03);margin:var(--spacing-05) 0;border:1px solid var(--border-color, #ccc);border-radius:6px;padding:var(--spacing-05) var(--spacing-04);overflow-wrap:break-word;word-wrap:break-word}.question-comment-display unity-typography:not(.question-comment-header){display:block;white-space:pre-wrap;word-break:break-word;}.question-comment-display>.question-comment-header{position:absolute;bottom:-0.6em;right:1em;background:white;padding:0 0.4em;font-size:0.85em;white-space:nowrap;}.question-comment-add-comment-button{display:flex;justify-content:center;margin:var(--spacing-03) 0}.question-comment-action-container{display:flex;justify-content:end}";const S=class{constructor(e){t(this,e);this.questionCommentAction=i(this,"questionCommentAction");this.commentFieldProps={};this.initialValues={};this.userId=null}emitQuestionCommentAction(t,i){this.questionCommentAction.emit({type:t,questionIdentifierKey:this.question.questionIdentifierKey,commentId:i})}handleCommentAdd(){this.emitQuestionCommentAction("add",null)}handleCommentSave(t){this.emitQuestionCommentAction("save",t)}handleCommentEdit(t){this.emitQuestionCommentAction("edit",t)}handleCommentDelete(t){this.emitQuestionCommentAction("delete",t)}handleCommentEditClose(t){this.emitQuestionCommentAction("editClose",t)}render(){var t,i;const[n,o]=this.question.questionIdentifierKey.split(".");const s=((i=(t=this.initialValues)===null||t===void 0?void 0:t[n])===null||i===void 0?void 0:i[o])||{comments:[],draftComments:[]};const a=Array.isArray(s.comments)?s.comments:s.comments?[s.comments]:[];const r=Array.isArray(s.draftComments)?s.draftComments:s.draftComments?[s.draftComments]:[];const l=r.length>0?r[0]:null;const c=Object.values(this.initialValues||{}).some((t=>Object.values(t||{}).some((t=>{if(!t)return false;const i=t.draftComments;if(!i)return false;if(Array.isArray(i)&&i.length<1)return false;return true}))));return e("div",null,a.map(((t,i)=>{const n=`${this.question.questionIdentifierKey}.comments[${i}].value`;const o=(t===null||t===void 0?void 0:t.userId)===this.userId;const s=!l&&o;if(l&&t.commentId==l.commentId){return e("div",{class:"question-comment-draft-container",key:l.commentId||`draft-0`},e("stencil-field",{name:`${this.question.questionIdentifierKey}.draftComments[0].value`,required:true,ignoreDirty:true},e("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>this.handleCommentSave(l.commentId),startIcon:e("udp-icon",{iconName:"save",color:"inherit"})},"Save"),e("udp-button",{variant:"text",onClick:()=>this.handleCommentDelete(l.commentId),startIcon:e("udp-icon",{iconName:"trashCan",color:"inherit"})},"Delete"),e("udp-button",{variant:"text",onClick:()=>this.handleCommentEditClose(l.commentId),startIcon:e("udp-icon",{iconName:"close16",color:"inherit"})},"Cancel")))}return!(t===null||t===void 0?void 0:t.isDeleted)?e("div",{class:"question-comment-input-container",key:t.commentId||i},e("stencil-field",{name:n,style:{display:"none"}},e("text-area",{disabled:true})),e("div",{class:"question-comment-display"},e("unity-typography",{variant:"h4",color:"inherit",class:"question-comment-header"},`${t===null||t===void 0?void 0:t.userDisplayName} ${(t===null||t===void 0?void 0:t.timestamp)?`on ${v(t.timestamp,"short")}`:""}`),t===null||t===void 0?void 0:t.value),e("div",{class:"question-comment-action-container"},s&&!c&&e("div",null,e("udp-button",{variant:"text",onClick:()=>this.handleCommentEdit(t.commentId),startIcon:e("udp-icon",{iconName:"edit",color:"inherit"})},"Edit")))):e("div",null)})),l&&l.isTempComment&&!a.includes((t=>t.commentId==l.commentId))&&e("div",{class:"question-comment-draft-container",key:l.commentId||`draft-0`},e("stencil-field",{name:`${this.question.questionIdentifierKey}.draftComments[0].value`,required:true,ignoreDirty:true},e("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),e("div",{class:"question-comment-action-container"},e("udp-button",{variant:"text",onClick:()=>this.handleCommentEditClose(l.commentId),startIcon:e("udp-icon",{iconName:"trashCan",color:"inherit"})},"Cancel"),e("udp-button",{variant:"text",onClick:()=>this.handleCommentSave(l.commentId),startIcon:e("udp-icon",{iconName:"save",color:"inherit"})},"Save"))),!l&&!c&&e("div",{class:"question-comment-add-comment-button"},e("udp-button",{variant:"text",onClick:()=>this.handleCommentAdd(),startIcon:e("udp-icon",{iconName:"add",color:"inherit"})},"Add a Comment")))}};S.style=I;const A=".floating-save-button{position:fixed;top:5rem;right:2rem;z-index:1000;animation:slideInDown 0.3s ease-out}.inline-save-button{position:relative;display:inline-flex;align-items:center;margin-left:auto;}.floating-save-button.saving,.inline-save-button.saving{pointer-events:none}.saving-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(0, 0, 0, 0.8);color:white;border-radius:8px;font-size:0.9rem}.saved-state{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;background:rgba(34, 139, 34, 0.9);color:white;border-radius:8px;font-size:0.9rem;animation:fadeIn 0.3s ease-out}.inline-save-button .saving-state{padding:0.5rem 0.75rem;background:rgba(0, 0, 0, 0.6);font-size:0.8rem}.inline-save-button .saved-state{padding:0.5rem 0.75rem;background:rgba(34, 139, 34, 0.8);font-size:0.8rem}.save-error-tooltip{position:absolute;top:100%;right:0;margin-top:0.5rem;background:#dc3545;color:white;padding:0.5rem 1rem;border-radius:8px;font-size:0.8rem;white-space:nowrap;box-shadow:0 4px 12px rgba(220, 53, 69, 0.3);animation:fadeIn 0.3s ease-out;z-index:1001}.save-error-tooltip::after{content:'';position:absolute;bottom:100%;right:1rem;border:6px solid transparent;border-bottom-color:#dc3545}.inline-save-button .save-error-tooltip{top:100%;bottom:auto;margin-top:0.5rem;margin-bottom:0}.inline-save-button .save-error-tooltip::after{top:-6px;border-top-color:transparent;border-bottom-color:#dc3545}@keyframes slideInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@media (max-width: 768px){.floating-save-button{bottom:1rem;right:1rem;top:auto;}.saving-state{padding:0.6rem 0.8rem;font-size:0.8rem}.inline-save-button .saving-state{padding:0.4rem 0.6rem;font-size:0.75rem}}.primary-icon{--icon-color:var(--primary-color, #1976d2)}.primary-icon::part(icon){fill:var(--icon-color) !important}.primary-icon udp-icon-button::part(icon),.primary-icon .icon{fill:var(--primary-color, #1976d2) !important}@media (prefers-reduced-motion: reduce){.floating-save-button,.save-error-tooltip{animation:none}}";const T=class{constructor(i){t(this,i);this.isVisible=false;this.isSaving=false;this.saveErrorMessage=null;this.showSavedMessage=false;this.shouldBeInline=false;this.formApi=null;this.handleSaveClick=async()=>{if(!this.formApi||this.isSaving){return}if(typeof this.handleSave!=="function"){return}const t=this.formApi.getState().values;try{await this.handleSave(t);this.formApi.reset(t)}catch(t){console.error("The onSave handler threw an error. The form will remain dirty.",t)}}}async componentDidLoad(){this.formApi=await q(this.el);this.checkForOverlap();this.setupOverlapDetection()}disconnectedCallback(){if(this.resizeObserver){this.resizeObserver.disconnect()}if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}}handleWindowResize(){this.debouncedOverlapCheck()}setupOverlapDetection(){if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((()=>{this.debouncedOverlapCheck()}));const t=this.el.closest("udp-forms-ui, .form-container, udp-container");if(t){this.resizeObserver.observe(t)}const i=document.querySelector('main, [role="main"]')||document.body;if(i){this.resizeObserver.observe(i)}}}debouncedOverlapCheck(){if(this.checkOverlapTimeoutId){clearTimeout(this.checkOverlapTimeoutId)}this.checkOverlapTimeoutId=setTimeout((()=>{this.checkForOverlap()}),100)}checkForOverlap(){const t=1280;this.shouldBeInline=window.innerWidth<t}render(){if(!this.isVisible&&!this.showSavedMessage){return null}const t=this.shouldBeInline?"inline-save-button":"floating-save-button";const i=this.shouldBeInline;return e("div",{class:`${t} ${this.isSaving?"saving":""} ${this.showSavedMessage?"saved":""}`},this.isSaving?e("div",{class:"saving-state"},e("unity-spinner",{size:"small"}),!i&&e("span",null,"Saving...")):this.isVisible?e("udp-icon-button",{icon:g,onClick:this.handleSaveClick,tooltip:"Save Changes",variant:"contained",color:i?"inherit":"primary",iconColor:i?"primary":null,size:i?"small":"medium"},i?"":"Save Changes"):e("div",{class:"saved-state"},e("span",null,"Saved")),this.saveErrorMessage&&e("div",{class:"save-error-tooltip"},this.saveErrorMessage))}get el(){return o(this)}};T.style=A;export{w as image_upload,z as signature_input,C as stencil_form,O as tally_display,$ as udp_question,S as udp_question_comments,T as udp_save_draft_button};
|
|
2
|
-
//# sourceMappingURL=image-upload_7.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["registerInstance","createEvent","h","Host","getElement","isFileReference","parseFileReference","downloadFileFromUdpDriveFile","isUdpDriveFile","createFileFromString","isFile","createForm","debounce","UdpFormsFieldTypeEnum","UdpFormsPageIdEnum","fontOverrideMapping","overrideFont","dateFormatter","getIconFromName","Save","imageUploadCss","ImageUpload","constructor","hostRef","this","change","allowedMimeTypes","fullWidth","dragAndDropMessage","browseFileMessage","hideDragAndDrop","hideButton","disabled","readonly","handleFileChange","event","stopPropagation","emit","detail","render","key","allowMultiple","required","error","id","name","label","initialValue","renderImage","onChange","style","signatureInputCss","SignatureInput","metadataEmit","includeLocation","size","margin","cachedLocation","isInternalChange","handleResize","resizeTimeout","clearTimeout","setTimeout","rect","canvasEl","getBoundingClientRect","lastCanvasRect","width","height","dataURL","signaturePad","isEmpty","toDataURL","resizeCanvasForDPR","initializeSignaturePad","fromDataURL","handleSignatureEnd","async","value","signatureFile","urlToFile","Date","toISOString","coords","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","enableHighAccuracy","timeout","maximumAge","latitude","longitude","err","console","warn","clearSignature","clear","processAndLoadValue","incomingValue","rawValue","Array","isArray","loadedFile","parsedFile","driveFileId","extension","split","pop","loadSignature","onErrorChange","newValue","internalError","handleValueUpdate","handleInitialValueUpdate","componentWillLoad","loadSignaturePad","componentDidLoad","starterValue","window","addEventListener","disconnectedCallback","removeEventListener","ratio","devicePixelRatio","ctx","getContext","setTransform","scale","SignaturePadLib","module","import","default","e","off","handleStateChange","on","signatureValue","imageUrl","file","URL","createObjectURL","File","url","filename","res","fetch","blob","type","isError","containerClasses","class","variant","htmlFor","ref","el","onClick","color","watchers","StencilForm","stencilFormInvalidEvent","dirtyChange","validateOnBlur","registeredFields","customErrors","handleSlotChange","slot","shadowRoot","querySelector","assignedNodes","forEach","node","processNodeRecursively","submitWithValidation","bind","defaultValidation","submit","onFormChange","connectField","field","__connectedToForm","setFormApi","api","nodeType","Node","ELEMENT_NODE","element","localName","includes","customElements","whenDefined","matches","connectSubmitButtons","child","from","childNodes","htmlElement","dataset","stencilFormConnected","preventDefault","submitButtons","querySelectorAll","button","htmlButton","onSubmit","initialValues","validate","handleChange","subscribe","values","formState","dirtyFields","registered","hasDirtyFields","Object","keys","some","_a","ignoreDirty","observer","MutationObserver","mutations","mutation","addedNodes","observeAssignedNodes","flatten","observe","childList","subtree","dispatchEvent","CustomEvent","bubbles","composed","errors","length","handleSubmit","getByPath","obj","path","replace","reduce","o","k","undefined","meta","valRef","trim","handleValidate","customErrorsFromHandler","assign","getApi","call","getState","submitFunction","leading","trailing","tallyCss","TallyDisplay","yesCount","noCount","naCount","totalFields","answeredCount","unansweredCount","useFormApi","current","form","foundForm","closest","root","getRootNode","ShadowRoot","host","formApi","udpQuestionCss","UdpQuestion","launchFollowUpFormSideSheet","userId","isCommentAllowed","tallyData","propChanged","updateFieldComponent","question","fieldTypeId","Tally","initializeFormApiForTally","unsubscribe","calculateTally","active","dirty","unsubscribeFormApi","formValues","formElement","questionElements","yesNoFields","questionEl","YesNo","fieldName","questionIdentifierKey","shouldInclude","shouldIncludeFieldInTally","push","sectionKey","questionKey","fieldProps","fieldProperties","includeFields","excludeFields","_fieldComponent","getFieldComponent","_b","_c","_d","props","questionNumber","SingleLineText","MultiLineText","Checkbox","valueKey","displayKey","multiSelect","useCheckbox","RadioButton","DropdownSingleSelect","DropdownMultipleSelect","options","items","map","display","ListMultiSelect","DateSelector","min","minDate","max","maxDate","TimeSelector","minTime","maxTime","DateTimeSelector","maxDateTime","minDateTime","FileUpload","Signature","fieldIdentifierKey","registerMetadata","metadataFieldNames","Paragraph","styleOverrides","paragraphText","Number","questionText","Hidden","variantsAndOverrides","override","fontOverride","fontFamily","getElementById","component","titleText","hidden","allowFollowUpForms","metadata","followUpId","followUpFormSubmissionId","FormRendererPageId","icon","tooltip","open","log","helperText","udpQuestionCommentsCss","UdpQuestionComments","questionCommentAction","commentFieldProps","emitQuestionCommentAction","commentId","handleCommentAdd","handleCommentSave","handleCommentEdit","handleCommentDelete","handleCommentEditClose","sectionName","questionName","questionData","comments","draftComments","savedComments","activeDraft","isAnyQuestionContainsActiveDraft","section","q","drafts","commentObj","idx","commentsIdentifierValueKey","isOwner","showActions","placeholder","startIcon","iconName","isDeleted","userDisplayName","timestamp","isTempComment","c","udpSaveDraftButtonCss","UdpSaveDraftButton","isVisible","isSaving","saveErrorMessage","showSavedMessage","shouldBeInline","handleSaveClick","handleSave","reset","checkForOverlap","setupOverlapDetection","resizeObserver","disconnect","checkOverlapTimeoutId","handleWindowResize","debouncedOverlapCheck","ResizeObserver","formContainer","mainContent","document","body","minWidthNeeded","innerWidth","containerClass","isInlineMode","iconColor"],"sources":["0"],"mappings":"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","ignoreList":[]}
|