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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-metadata-display.image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comments.udp-save-draft-button.entry.esm.js","sources":["src/components/inputs/form metadata display/form-metadata-display.css?tag=form-metadata-display&encapsulation=shadow","src/components/inputs/form metadata display/form-metadata-display.tsx","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\n.container {\n display: grid;\n gap: 10px;\n padding: 12px 14px;\n background: var(--unity-color-surface, #fff);\n}\n\n.row {\n display: grid;\n grid-template-columns: 130px 1fr;\n align-items: baseline;\n column-gap: 12px;\n}\n\n.label {\n font-size: 12px;\n line-height: 1.2;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n color: var(--unity-color-text-secondary, rgba(0, 0, 0, 0.65));\n}\n\n.value {\n color: var(--unity-color-text, rgba(0, 0, 0, 0.9));\n overflow-wrap: anywhere;\n}\n\n@media (max-width: 420px) {\n .row {\n grid-template-columns: 1fr;\n row-gap: 4px;\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { dateFormatter } from 'src/components/forms/udp-forms/utils/utils';\n\n/**\n * A small display-only component for showing read-only form metadata.\n *\n * Intended usage:\n * - Rendered near the top or bottom of a form submission view\n * - Pure presentational output based on props (no internal state, no events)\n *\n * Layout:\n * - Uses a simple \"label + value\" row pattern for consistent alignment\n * - Hides rows when the corresponding value is missing or the display flag is false\n *\n * @example\n * ```tsx\n * <form-metadata-display\n * userDisplayName=\"Ada Lovelace\"\n * userEmail=\"ada@example.com\"\n * submittedOn={new Date()}\n * />\n * ```\n */\n@Component({\n tag: 'form-metadata-display',\n styleUrl: 'form-metadata-display.css',\n shadow: true,\n})\nexport class FormMetadataDisplay {\n /**\n * Full name (or display name) of the form owner/submitter.\n * Row is only rendered when `displayOwnerFullName` is true and this value is non-empty.\n */\n @Prop() userDisplayName: string;\n\n /**\n * Email of the form owner/submitter.\n * Row is only rendered when `displayOwnerEmail` is true and this value is non-empty.\n */\n @Prop() userEmail: string;\n\n /**\n * Submission timestamp.\n * Row is only rendered when `displaySubmissionDate` is true and this value is non-null.\n */\n @Prop() submittedOn: string | null;\n\n /**\n * Toggles rendering of the \"Name\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerFullName: boolean = true;\n\n /**\n * Toggles rendering of the \"Email\" row.\n * Defaults to true.\n */\n @Prop() displayOwnerEmail: boolean = true;\n\n /**\n * Toggles rendering of the \"Submitted on\" row.\n * Defaults to true.\n */\n @Prop() displaySubmissionDate: boolean = true;\n\n /**\n * Renders a single metadata row using a standard label/value layout.\n * @internal\n */\n renderRow(label: string, value: string) {\n return (\n <div class=\"row\">\n {/* Label is visually subtle; value uses standard typography for emphasis */}\n <span class=\"label\">{label}</span>\n <unity-typography class=\"value\" variant=\"h4\">{value}</unity-typography>\n </div>\n );\n }\n\n /**\n * Renders the metadata container. Rows are conditionally included based on flags + data presence.\n * @internal\n */\n render() {\n return (\n // role/aria-label provide a lightweight accessible grouping for screen readers\n <div class=\"container\" role=\"group\" aria-label=\"Form metadata\">\n {this.displayOwnerFullName && this.userDisplayName && this.renderRow('Name', this.userDisplayName)}\n {this.displayOwnerEmail && this.userEmail && this.renderRow('Email', this.userEmail)}\n {this.displaySubmissionDate && this.submittedOn && this.renderRow('Submitted on', dateFormatter(this.submittedOn, 'long'))}\n </div>\n );\n }\n}\n",":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 } from '../utils/types';\nimport { UdpFormsFieldTypeEnum } from '../utils/enums';\nimport { FontOverrides } from '../utils/types';\nimport { fontOverrideMapping, overrideFont } from '../utils/utils';\nimport { useFormApi } from '../../form/useFormApi';\nimport { getIconFromName } from '../../../data-display/icons/iconUtils';\nimport { UdpFormsPageIdEnum } from '../utils/enums';\nimport { UdpFormSubmission } from '../utils/classes/UdpFormSubmission';\n\n@Component({\n tag: 'udp-question',\n styleUrl: 'udp-question.css',\n shadow: true,\n})\nexport class UdpQuestion {\n @Prop() question: UdpFormQuestion;\n @Prop() questionNumber: number;\n @Prop({ mutable: true }) value: string; // only used for Paragraph type (UdpFormsFieldTypeEnum.Paragraph)\n @Prop() disabled: boolean = false;\n @Prop() readonly: boolean = false;\n @Prop() styleOverrides: {\n helperText: FontOverrides;\n questionText: FontOverrides;\n paragraphText: FontOverrides;\n };\n @Prop() initialValues: { [name: string]: any } = {};\n @Prop() clientUserInfo: { id: string | null; displayName: string | null; email: string | null } = {\n id: null,\n displayName: null,\n email: null,\n }\n @Prop() udpFormSubmission: UdpFormSubmission = null;\n\n @Event() launchFollowUpFormSideSheet: EventEmitter<any>;\n\n @State() private _fieldComponent: ComponentInterface;\n @State() private tallyData: {\n yesCount: number;\n noCount: number;\n naCount: number;\n totalFields: number;\n } = { yesCount: 0, noCount: 0, naCount: 0, totalFields: 0 };\n @State() private formApi: any = null;\n\n @Element() el: HTMLElement;\n\n @Watch('question')\n @Watch('questionNumber')\n @Watch('value')\n @Watch('disabled')\n @Watch('readonly')\n @Watch('styleOverrides')\n protected propChanged() {\n this.updateFieldComponent();\n }\n\n async componentWillLoad() {\n this.updateFieldComponent();\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally) {\n await this.initializeFormApiForTally();\n }\n }\n\n private async initializeFormApiForTally() {\n try {\n this.formApi = await useFormApi(this.el);\n\n if (this.formApi) {\n // Subscribe to form changes to update tally in real-time\n const unsubscribe = this.formApi.subscribe(\n () => {\n this.calculateTally();\n },\n { active: true, dirty: true, values: true },\n );\n\n // Store unsubscribe function for cleanup if needed\n (this as any).unsubscribeFormApi = unsubscribe;\n\n // Initial calculation\n this.calculateTally();\n }\n } catch (error) {\n console.error('Failed to initialize form API for tally:', error);\n }\n }\n\n private calculateTally() {\n if (!this.formApi || this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Tally) {\n return;\n }\n\n try {\n const formValues = this.formApi.getState().values;\n\n const formElement = this.el.closest('stencil-form');\n if (!formElement) {\n return;\n }\n\n // Get all udp-question elements in the form\n const questionElements = formElement.querySelectorAll('udp-question');\n const yesNoFields: string[] = [];\n\n // Identify YesNo field types\n questionElements.forEach((questionEl: any) => {\n if (questionEl.question && questionEl.question.fieldTypeId === UdpFormsFieldTypeEnum.YesNo) {\n const fieldName = `${questionEl.question.questionIdentifierKey}.value`;\n if (fieldName) {\n const shouldInclude = this.shouldIncludeFieldInTally(fieldName);\n if (shouldInclude) {\n yesNoFields.push(fieldName);\n }\n }\n }\n });\n\n // Count Yes/No/NA responses\n let yesCount = 0;\n let noCount = 0;\n let naCount = 0;\n\n yesNoFields.forEach(fieldName => {\n const [sectionKey, questionKey] = fieldName.split(\".\");\n const value = formValues[sectionKey][questionKey].value;\n\n if (value === 'true' || value === true) {\n yesCount++;\n } else if (value === 'false' || value === false) {\n noCount++;\n } else if (value === 'na') {\n naCount++;\n }\n });\n\n this.tallyData = {\n yesCount,\n noCount,\n naCount,\n totalFields: yesNoFields.length,\n };\n\n // Force a re-render to update the component\n this.updateFieldComponent();\n } catch (error) {\n console.error('Error calculating tally:', error);\n }\n }\n\n private shouldIncludeFieldInTally(fieldName: string): boolean {\n const fieldProps = this.question.fieldProperties;\n\n // If includeFields is specified, only include those fields\n if (fieldProps?.includeFields && fieldProps.includeFields.length > 0) {\n return fieldProps.includeFields.includes(fieldName);\n }\n\n // If excludeFields is specified, exclude those fields\n if (fieldProps?.excludeFields && fieldProps.excludeFields.length > 0) {\n return !fieldProps.excludeFields.includes(fieldName);\n }\n\n // Include all fields by default\n return true;\n }\n\n private updateFieldComponent() {\n this._fieldComponent = this.getFieldComponent();\n }\n\n private getFieldComponent(): ComponentInterface {\n const props = {\n name: `${this.question.questionIdentifierKey}.value`,\n required: this.question.required,\n };\n\n const fieldProps = { ...this.question.fieldProperties, id: this.questionNumber, disabled: this.disabled, readonly: this.readonly };\n switch (this.question.fieldTypeId) {\n case UdpFormsFieldTypeEnum.SingleLineText:\n return (\n <stencil-field {...props}>\n <text-field {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.MultiLineText:\n return (\n <stencil-field {...props}>\n <text-area fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Checkbox:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.RadioButton:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" useCheckbox={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DropdownSingleSelect:\n case UdpFormsFieldTypeEnum.DropdownMultipleSelect:\n let options: { label: string; value: string } = fieldProps?.items?.map?.(items => ({ label: items.display, value: items.value, ...fieldProps }));\n return (\n <stencil-field {...props}>\n <udp-selector options={options ?? []} multiSelect={this.question.fieldTypeId === UdpFormsFieldTypeEnum.DropdownMultipleSelect} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.YesNo:\n return (\n <stencil-field {...props}>\n <selectable-list\n valueKey=\"value\"\n displayKey=\"display\"\n useCheckbox={true} // Use radio buttons\n multiSelect={false}\n items={[\n { value: 'true', display: 'Yes' },\n { value: 'false', display: 'No' },\n { value: 'na', display: 'Not Applicable' },\n ]}\n {...fieldProps}\n />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ListMultiSelect:\n return (\n <stencil-field {...props}>\n <selectable-list valueKey=\"value\" displayKey=\"display\" multiSelect={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateSelector:\n return (\n <stencil-field {...props}>\n <udp-date-selector min={fieldProps?.minDate} max={fieldProps?.maxDate} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.TimeSelector:\n return (\n <stencil-field {...props}>\n <udp-time-selector min={fieldProps?.minTime} max={fieldProps?.maxTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.DateTimeSelector:\n return (\n <stencil-field {...props}>\n <udp-datetime-selector max={fieldProps?.maxDateTime} min={fieldProps?.minDateTime} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.FileUpload:\n return (\n <stencil-field {...props}>\n <file-upload fullWidth={true} allowMultiple={false} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.ImageUpload:\n return (\n <stencil-field {...props}>\n <image-upload fullWidth={true} {...fieldProps} />\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Signature:\n return (\n <div>\n <stencil-field {...props} fieldIdentifierKey={`${this.question.questionIdentifierKey}`} registerMetadata={true} metadataFieldNames={['signature.latitude', 'signature.longitude', 'signature.timestamp']}>\n <signature-input {...fieldProps} value={this.value} />\n </stencil-field>\n <stencil-field required={this.question.required} name={ `${this.question.questionIdentifierKey}.metadata.signature.fullName`}>\n <text-field {...fieldProps} label={'Full Name'}/>\n </stencil-field>\n </div>\n );\n case UdpFormsFieldTypeEnum.Paragraph:\n // Wrap in stencil-field and include a hidden input so the value is part of the form submission\n return (\n <stencil-field name={this.question.name} required={false}>\n <input type=\"hidden\" name={this.question.name} value={this.value || ''} />\n {this.value ? (\n <unity-typography id={`paragraphText${this.question.name}`} variant={this.styleOverrides?.paragraphText?.variant || 'body'}>\n {this.value}\n </unity-typography>\n ) : (\n <div />\n )}\n </stencil-field>\n );\n case UdpFormsFieldTypeEnum.Number:\n return (\n <stencil-field {...props}>\n <numeric-field {...fieldProps} />\n </stencil-field>\n );\n\n case UdpFormsFieldTypeEnum.Tally:\n return (\n <tally-display\n id={this.questionNumber}\n label={this.question.questionText || 'Response Tally'}\n yesCount={this.tallyData.yesCount}\n noCount={this.tallyData.noCount}\n naCount={this.tallyData.naCount}\n totalFields={this.tallyData.totalFields}\n {...fieldProps}\n required={false}\n />\n );\n case UdpFormsFieldTypeEnum.FormMetadataDisplay: {\n const isPersistedSubmission = !!this.udpFormSubmission?.id;\n\n // If persisted, do NOT fall back to client user (avoids showing Person A while viewing Person B's submission)\n const userDisplayName = isPersistedSubmission\n ? (this.udpFormSubmission?.userDisplayName ?? null)\n : (this.clientUserInfo?.displayName ?? null);\n\n const userEmail = isPersistedSubmission\n ? (this.udpFormSubmission?.userEmail ?? null)\n : (this.clientUserInfo?.email ?? null);\n\n const submittedOn = this.udpFormSubmission?.submittedOn ?? null;\n\n return (\n <form-metadata-display\n userDisplayName={userDisplayName}\n userEmail={userEmail}\n submittedOn={submittedOn}\n {...fieldProps}\n />\n );\n };\n case UdpFormsFieldTypeEnum.Hidden:\n default:\n return <div />;\n }\n }\n async componentDidLoad() {\n // If form API wasn't available during componentWillLoad, try again\n if (this.question.fieldTypeId === UdpFormsFieldTypeEnum.Tally && !this.formApi) {\n await this.initializeFormApiForTally();\n }\n\n // override the fonts based on style overrides\n const variantsAndOverrides = [];\n for (const override in this.styleOverrides) {\n variantsAndOverrides.push({\n id: override + this.question.name,\n fontOverride: this.styleOverrides?.[override]?.fontFamily,\n variant: this.styleOverrides?.[override]?.variant,\n });\n }\n variantsAndOverrides.forEach(override => {\n if (!fontOverrideMapping[override?.fontOverride] || !this.el || !this.el.shadowRoot) return;\n overrideFont(this.el?.shadowRoot?.getElementById?.(override.id), fontOverrideMapping[override?.fontOverride]);\n });\n }\n render() {\n const component = this._fieldComponent;\n const titleText = `${this.question.fieldTypeId === UdpFormsFieldTypeEnum.Paragraph ? '' : `${this.questionNumber}.`} ${this.question.questionText} ${\n this.question.required && this.question.fieldTypeId !== UdpFormsFieldTypeEnum.Paragraph ? '*' : ''\n }`;\n // const commentFieldProps = { disabled: this.disabled, readonly: this.readonly };\n const fieldName = `${this.question.questionIdentifierKey}.value`;\n const [sectionKey, questionKey] = fieldName.split(\".\");\n\n if (!component) return null;\n return (\n <div\n class={{\n 'hidden': this.question.fieldTypeId === UdpFormsFieldTypeEnum.Hidden,\n 'question-container': true,\n }}\n >\n <div class=\"question-title-and-helper-container\">\n <div class=\"question-title-and-followup-container\">\n {this.question.questionText && (\n <unity-typography\n id={`questionText${this.question.name}`}\n variant={this.styleOverrides?.questionText?.variant || 'h3'}\n >\n {titleText}\n </unity-typography>\n )}\n <div>\n {this.question.fieldProperties.allowFollowUpForms && (\n (() => {\n const metadata = this.initialValues[sectionKey][questionKey]?.metadata;\n const followUpId = metadata?.followUpFormSubmissionId;\n if (followUpId) {\n // Valid GUID → show arrow icon to open follow-up form\n const url = `/page/${UdpFormsPageIdEnum.FormRendererPageId}?udpf_submissionId=${followUpId}`;\n return (\n <stencil-icon-button\n icon={getIconFromName('link')}\n tooltip=\"Open Follow-Up Form\"\n onClick={() => window.open(url, '_blank')}\n />\n );\n }\n\n if (!this.readonly) {\n // No valid follow-up yet → show link icon to create one\n return (\n <stencil-icon-button\n icon={getIconFromName('document')}\n tooltip=\"Create Follow-Up Form\"\n onClick={() => {\n console.log('clicked create follow up form')\n this.launchFollowUpFormSideSheet.emit({ sectionKey, questionKey });\n }}\n />\n );\n }\n \n })()\n )}\n </div>\n </div>\n {this.question.helperText && (\n <unity-typography\n id={`helperText${this.question.name}`}\n variant={this.styleOverrides?.helperText?.variant || 'caption-text'}\n >\n {this.question.helperText}\n </unity-typography>\n )}\n </div>\n\n {component}\n\n {this.question.fieldProperties.allowFollowUpForms && (\n <div>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`}>\n <text-field />\n </stencil-field>\n <stencil-field hidden={true} name={`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`}>\n <text-field />\n </stencil-field>\n </div>\n )}\n {this.question.fieldProperties.allowComments && (\n <udp-question-comments\n question={this.question}\n initialValues={this.initialValues}\n userId={this.clientUserInfo.id}\n />\n )}\n </div>\n );\n }\n}\n",".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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,h as i,c as e,H as a,a as o}from"./index-CaZq3YdB.js";import{d as n,f as s,o as r}from"./utils-CiUp9KGZ.js";import{i as l,p as c,d,a as u,c as p,b as h}from"./udp-drive-utils-CIrjVGiJ.js";import{createForm as m}from"final-form";import b from"lodash.debounce";import{b as f,U as v}from"./enums-CHxgVY-B.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}.container{display:grid;gap:10px;padding:12px 14px;background:var(--unity-color-surface, #fff)}.row{display:grid;grid-template-columns:130px 1fr;align-items:baseline;column-gap:12px}.label{font-size:12px;line-height:1.2;letter-spacing:0.02em;text-transform:uppercase;color:var(--unity-color-text-secondary, rgba(0, 0, 0, 0.65))}.value{color:var(--unity-color-text, rgba(0, 0, 0, 0.9));overflow-wrap:anywhere}@media (max-width: 420px){.row{grid-template-columns:1fr;row-gap:4px}}";const w=class{constructor(i){t(this,i);this.displayOwnerFullName=true;this.displayOwnerEmail=true;this.displaySubmissionDate=true}renderRow(t,e){return i("div",{class:"row"},i("span",{class:"label"},t),i("unity-typography",{class:"value",variant:"h4"},e))}render(){return i("div",{key:"469db81d4d885bc6b582aa06fb4a8e84107294f0",class:"container",role:"group","aria-label":"Form metadata"},this.displayOwnerFullName&&this.userDisplayName&&this.renderRow("Name",this.userDisplayName),this.displayOwnerEmail&&this.userEmail&&this.renderRow("Email",this.userEmail),this.displaySubmissionDate&&this.submittedOn&&this.renderRow("Submitted on",n(this.submittedOn,"long")))}};w.style=x;const k=":host{display:block}";const z=class{constructor(i){t(this,i);this.change=e(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 i(a,{key:"8b95c4bb3a085aeeb0aab3a352c4bedd5d723f20"},i("file-upload",{key:"2fae3ef81fd7b5a2ea7c875954629deac44f53af",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}))}};z.style=k;const C=':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 j=class{constructor(i){t(this,i);this.change=e(this,"change");this.metadataEmit=e(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"&&l(i)){const t=await c(i);if(t&&t.driveFileId){e=await d({name:t.name,driveFileId:t.driveFileId,extension:t.name.split(".").pop()||""})}else{e=t}}else if(u(i)){e=await d(i)}else if(typeof i==="string"){e=await p(i,"signature.png")}else if(h(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(u(t)){try{const e=await d(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 a=await e.blob();return new File([a],i,{type:a.type})}render(){const t=!!this.internalError;const e={"signature-pad-container":true,readonly:this.readonly,disabled:this.disabled};return i(a,{key:"38f9e14ff8e51efa47278a79c030017f6fec05ec",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}},i("div",{key:"04dadb41b32891d9402e30f26ad09c2b910c220c",class:"bx--form-item"},this.label&&i("unity-typography",{key:"9b804b1e8f6847763e87e2f14eda16fdcc8b049e",variant:"caption-text"},i("label",{key:"a66659a0a9b956dea7dc860682bc53d18ab12e7c",htmlFor:this.id,class:"bx--label"},this.label,this.required&&"*")),i("div",{key:"6f53dd25f98d511f7852796ecb9770f6a96acd03",class:e},i("canvas",{key:"f0f30306a7392fc9329ad10988365b3d7d216636",ref:t=>this.canvasEl=t,class:{"signature-canvas":true,readonly:this.readonly||this.disabled},id:this.id}),!this.readonly&&!this.disabled&&i("button",{key:"a5241ba69f28932c41c32c9ad7e0001325cd419a",type:"button",class:"clear-button",onClick:this.clearSignature,disabled:this.disabled},"Clear")),t&&i("div",{key:"cb4d03f2c03942a382aeb6ea4b8728f86e54d66c",class:"error-message"},i("unity-typography",{key:"2a859511db8da92696a3aede41c14a529c0e2d42",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"]}}};j.style=C;const O=class{constructor(i){t(this,i);this.stencilFormInvalidEvent=e(this,"stencilFormInvalidEvent");this.dirtyChange=e(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=m({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 a=Object.keys(i||{}).some((t=>{var a;return i[t]&&!((a=e[t])===null||a===void 0?void 0:a.ignoreDirty)}));this.dirtyChange.emit(a)}),{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 a={};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 n=i[e];if(n===null||n===void 0?void 0:n.ignoreDirty)return;const s=o(t,e);if(n.required&&(s==null||typeof s==="string"&&s.trim()===""||s===false||s==="false")){a[e]="This field is required"}}));if(e){Object.keys(e).forEach((t=>{if(e[t]){a[t]=e[t]}}))}if(this===null||this===void 0?void 0:this.handleValidate){const i=this.handleValidate(t,a);return Object.assign(Object.assign({},a),i)}return a}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 a=this.defaultValidation(e);const o=()=>{var t;if(Object.keys(a).length){this.stencilFormInvalidEvent.emit(a);return}(t=this.api)===null||t===void 0?void 0:t.submit()};b(o,1e3,{leading:true,trailing:false})()}render(){return i("form",{key:"4ac60260d402ca51999311e2e9095643a548bf7b"},i("slot",{key:"f86bda6b8329db4a2e620ffa5cbe95ae5aded136"}))}get el(){return o(this)}};const q=":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 F=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 e=this.yesCount+this.noCount+this.naCount;const o=this.totalFields-e;return i(a,{key:"9de3aacae1f977ca6f71842e6cf110226623020d",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}},i("div",{key:"3d90baeaa376621f7befdd0d2aaf5162b640a92d",class:"tally-container"},this.label&&i("unity-typography",{key:"dbc30e26ace3de5a9c971b57a25f49a5f25a4d37",variant:"caption-text"},i("label",{key:"3c17434ee48556b3e7c05a15ba17682801a4ee79",htmlFor:this.id,class:"tally-label"},this.label)),i("div",{key:"eda4e1acb3866a4af9129088eff7bf378582c3c0",class:"tally-content",id:this.id},i("div",{key:"7169cd7335a3cc923a407f6bac36487e3c51e3a6",class:"tally-stats"},i("div",{key:"4ae7daed9b4ef5e9e658868b993225b2d6d230bc",class:"tally-item tally-yes"},i("unity-typography",{key:"fb2e662654f07041157b3111fd6493c7abf956fe",variant:"h4",class:"tally-count"},this.yesCount),i("unity-typography",{key:"a9f2628e63a4fd7e0e78ed692e812c8be7df162d",variant:"caption-text",class:"tally-label"},"Yes")),i("div",{key:"9a469360bdc4d019b8b9dfdd70e54e60ae44ea00",class:"tally-item tally-no"},i("unity-typography",{key:"c52e2e33623f50fd6ad777a82d193828cd9a8a68",variant:"h4",class:"tally-count"},this.noCount),i("unity-typography",{key:"9936996f607fcb5016ef32917cdd04228e9fb78b",variant:"caption-text",class:"tally-label"},"No")),i("div",{key:"6f6abc8c33d6ca4b516caa4a63b458e449806f71",class:"tally-item tally-na"},i("unity-typography",{key:"7ae33f8cfa8fe27c0c5d9a1a32b61ec55c237eab",variant:"h4",class:"tally-count"},this.naCount),i("unity-typography",{key:"bfd96fc54a803756484cd3e5c965f28e6e97fa0e",variant:"caption-text",class:"tally-label"},"Not Applicable")),o>0&&i("div",{key:"f56329ad0c4396846711955dc539413d453d3341",class:"tally-item tally-unanswered"},i("unity-typography",{key:"f81c44a5d86a43a5389d864783627130ebb41409",variant:"h4",class:"tally-count"},o),i("unity-typography",{key:"f51b115cbb8d6cd11050e861f10696e406c8ae95",variant:"caption-text",class:"tally-label"},"Unanswered"))),i("div",{key:"bd121ac3682f79b9b06c65d5af4a34b247d8b724",class:"tally-summary"},i("unity-typography",{key:"279e7a4eca040c52b83b4c6d15119034db44ff37",variant:"caption-text"},"Total Questions: ",this.totalFields))),t&&i("div",{key:"9853c7c215eeee120c3e09ab83a01c24d48fba44",class:"error-message"},i("unity-typography",{key:"3f25998a2b9f9901bce9fa5baad3b7de65fed0e2",variant:"caption-text",color:"error"},this.error))))}};F.style=q;async function $(t){let i=t;let e=null;while(i){const t=i.closest("stencil-form");if(t){e=t;break}const a=i.getRootNode();if(a instanceof ShadowRoot){i=a.host}else{break}}if(!e){return null}if(typeof e.getApi!=="function"){return null}const a=await e.getApi();if(!a){return null}return a}const I=".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 S=class{constructor(i){t(this,i);this.launchFollowUpFormSideSheet=e(this,"launchFollowUpFormSideSheet");this.disabled=false;this.readonly=false;this.initialValues={};this.clientUserInfo={id:null,displayName:null,email:null};this.udpFormSubmission=null;this.tallyData={yesCount:0,noCount:0,naCount:0,totalFields:0};this.formApi=null}propChanged(){this.updateFieldComponent()}async componentWillLoad(){this.updateFieldComponent();if(this.question.fieldTypeId===f.Tally){await this.initializeFormApiForTally()}}async initializeFormApiForTally(){try{this.formApi=await $(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!==f.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 a=[];e.forEach((t=>{if(t.question&&t.question.fieldTypeId===f.YesNo){const i=`${t.question.questionIdentifierKey}.value`;if(i){const t=this.shouldIncludeFieldInTally(i);if(t){a.push(i)}}}}));let o=0;let n=0;let s=0;a.forEach((i=>{const[e,a]=i.split(".");const r=t[e][a].value;if(r==="true"||r===true){o++}else if(r==="false"||r===false){n++}else if(r==="na"){s++}}));this.tallyData={yesCount:o,noCount:n,naCount:s,totalFields:a.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,e,a,o,n,s,r,l,c,d,u,p,h,m,b;const v={name:`${this.question.questionIdentifierKey}.value`,required:this.question.required};const y=Object.assign(Object.assign({},this.question.fieldProperties),{id:this.questionNumber,disabled:this.disabled,readonly:this.readonly});switch(this.question.fieldTypeId){case f.SingleLineText:return i("stencil-field",Object.assign({},v),i("text-field",Object.assign({},y)));case f.MultiLineText:return i("stencil-field",Object.assign({},v),i("text-area",Object.assign({fullWidth:true},y)));case f.Checkbox:return i("stencil-field",Object.assign({},v),i("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true,useCheckbox:true},y)));case f.RadioButton:return i("stencil-field",Object.assign({},v),i("selectable-list",Object.assign({valueKey:"value",displayKey:"display",useCheckbox:true},y)));case f.DropdownSingleSelect:case f.DropdownMultipleSelect:let g=(e=(t=y===null||y===void 0?void 0:y.items)===null||t===void 0?void 0:t.map)===null||e===void 0?void 0:e.call(t,(t=>Object.assign({label:t.display,value:t.value},y)));return i("stencil-field",Object.assign({},v),i("udp-selector",Object.assign({options:g!==null&&g!==void 0?g:[],multiSelect:this.question.fieldTypeId===f.DropdownMultipleSelect},y)));case f.YesNo:return i("stencil-field",Object.assign({},v),i("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"}]},y)));case f.ListMultiSelect:return i("stencil-field",Object.assign({},v),i("selectable-list",Object.assign({valueKey:"value",displayKey:"display",multiSelect:true},y)));case f.DateSelector:return i("stencil-field",Object.assign({},v),i("udp-date-selector",Object.assign({min:y===null||y===void 0?void 0:y.minDate,max:y===null||y===void 0?void 0:y.maxDate},y)));case f.TimeSelector:return i("stencil-field",Object.assign({},v),i("udp-time-selector",Object.assign({min:y===null||y===void 0?void 0:y.minTime,max:y===null||y===void 0?void 0:y.maxTime},y)));case f.DateTimeSelector:return i("stencil-field",Object.assign({},v),i("udp-datetime-selector",Object.assign({max:y===null||y===void 0?void 0:y.maxDateTime,min:y===null||y===void 0?void 0:y.minDateTime},y)));case f.FileUpload:return i("stencil-field",Object.assign({},v),i("file-upload",Object.assign({fullWidth:true,allowMultiple:false},y)));case f.ImageUpload:return i("stencil-field",Object.assign({},v),i("image-upload",Object.assign({fullWidth:true},y)));case f.Signature:return i("div",null,i("stencil-field",Object.assign({},v,{fieldIdentifierKey:`${this.question.questionIdentifierKey}`,registerMetadata:true,metadataFieldNames:["signature.latitude","signature.longitude","signature.timestamp"]}),i("signature-input",Object.assign({},y,{value:this.value}))),i("stencil-field",{required:this.question.required,name:`${this.question.questionIdentifierKey}.metadata.signature.fullName`},i("text-field",Object.assign({},y,{label:"Full Name"}))));case f.Paragraph:return i("stencil-field",{name:this.question.name,required:false},i("input",{type:"hidden",name:this.question.name,value:this.value||""}),this.value?i("unity-typography",{id:`paragraphText${this.question.name}`,variant:((o=(a=this.styleOverrides)===null||a===void 0?void 0:a.paragraphText)===null||o===void 0?void 0:o.variant)||"body"},this.value):i("div",null));case f.Number:return i("stencil-field",Object.assign({},v),i("numeric-field",Object.assign({},y)));case f.Tally:return i("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},y,{required:false}));case f.FormMetadataDisplay:{const t=!!((n=this.udpFormSubmission)===null||n===void 0?void 0:n.id);const e=t?(r=(s=this.udpFormSubmission)===null||s===void 0?void 0:s.userDisplayName)!==null&&r!==void 0?r:null:(c=(l=this.clientUserInfo)===null||l===void 0?void 0:l.displayName)!==null&&c!==void 0?c:null;const a=t?(u=(d=this.udpFormSubmission)===null||d===void 0?void 0:d.userEmail)!==null&&u!==void 0?u:null:(h=(p=this.clientUserInfo)===null||p===void 0?void 0:p.email)!==null&&h!==void 0?h:null;const o=(b=(m=this.udpFormSubmission)===null||m===void 0?void 0:m.submittedOn)!==null&&b!==void 0?b:null;return i("form-metadata-display",Object.assign({userDisplayName:e,userEmail:a,submittedOn:o},y))}case f.Hidden:default:return i("div",null)}}async componentDidLoad(){var t,i,e,a;if(this.question.fieldTypeId===f.Tally&&!this.formApi){await this.initializeFormApiForTally()}const o=[];for(const n in this.styleOverrides){o.push({id:n+this.question.name,fontOverride:(i=(t=this.styleOverrides)===null||t===void 0?void 0:t[n])===null||i===void 0?void 0:i.fontFamily,variant:(a=(e=this.styleOverrides)===null||e===void 0?void 0:e[n])===null||a===void 0?void 0:a.variant})}o.forEach((t=>{var i,e,a;if(!s[t===null||t===void 0?void 0:t.fontOverride]||!this.el||!this.el.shadowRoot)return;r((a=(e=(i=this.el)===null||i===void 0?void 0:i.shadowRoot)===null||e===void 0?void 0:e.getElementById)===null||a===void 0?void 0:a.call(e,t.id),s[t===null||t===void 0?void 0:t.fontOverride])}))}render(){var t,e,a,o;const n=this._fieldComponent;const s=`${this.question.fieldTypeId===f.Paragraph?"":`${this.questionNumber}.`} ${this.question.questionText} ${this.question.required&&this.question.fieldTypeId!==f.Paragraph?"*":""}`;const r=`${this.question.questionIdentifierKey}.value`;const[l,c]=r.split(".");if(!n)return null;return i("div",{class:{hidden:this.question.fieldTypeId===f.Hidden,"question-container":true}},i("div",{class:"question-title-and-helper-container"},i("div",{class:"question-title-and-followup-container"},this.question.questionText&&i("unity-typography",{id:`questionText${this.question.name}`,variant:((e=(t=this.styleOverrides)===null||t===void 0?void 0:t.questionText)===null||e===void 0?void 0:e.variant)||"h3"},s),i("div",null,this.question.fieldProperties.allowFollowUpForms&&(()=>{var t;const e=(t=this.initialValues[l][c])===null||t===void 0?void 0:t.metadata;const a=e===null||e===void 0?void 0:e.followUpFormSubmissionId;if(a){const t=`/page/${v.FormRendererPageId}?udpf_submissionId=${a}`;return i("stencil-icon-button",{icon:y("link"),tooltip:"Open Follow-Up Form",onClick:()=>window.open(t,"_blank")})}if(!this.readonly){return i("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&&i("unity-typography",{id:`helperText${this.question.name}`,variant:((o=(a=this.styleOverrides)===null||a===void 0?void 0:a.helperText)===null||o===void 0?void 0:o.variant)||"caption-text"},this.question.helperText)),n,this.question.fieldProperties.allowFollowUpForms&&i("div",null,i("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormId`},i("text-field",null)),i("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormVersion`},i("text-field",null)),i("stencil-field",{hidden:true,name:`${this.question.questionIdentifierKey}.metadata.followUpParentFormSubmissionId`},i("text-field",null))),this.question.fieldProperties.allowComments&&i("udp-question-comments",{question:this.question,initialValues:this.initialValues,userId:this.clientUserInfo.id}))}get el(){return o(this)}static get watchers(){return{question:["propChanged"],questionNumber:["propChanged"],value:["propChanged"],disabled:["propChanged"],readonly:["propChanged"],styleOverrides:["propChanged"]}}};S.style=I;const A=".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 N=class{constructor(i){t(this,i);this.questionCommentAction=e(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,e;const[a,o]=this.question.questionIdentifierKey.split(".");const s=((e=(t=this.initialValues)===null||t===void 0?void 0:t[a])===null||e===void 0?void 0:e[o])||{comments:[],draftComments:[]};const r=Array.isArray(s.comments)?s.comments:s.comments?[s.comments]:[];const l=Array.isArray(s.draftComments)?s.draftComments:s.draftComments?[s.draftComments]:[];const c=l.length>0?l[0]:null;const d=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 i("div",null,r.map(((t,e)=>{const a=`${this.question.questionIdentifierKey}.comments[${e}].value`;const o=(t===null||t===void 0?void 0:t.userId)===this.userId;const s=!c&&o;if(c&&t.commentId==c.commentId){return i("div",{class:"question-comment-draft-container",key:c.commentId||`draft-0`},i("stencil-field",{name:`${this.question.questionIdentifierKey}.draftComments[0].value`,required:true,ignoreDirty:true},i("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),i("div",{class:"question-comment-action-container"},i("udp-button",{variant:"text",onClick:()=>this.handleCommentSave(c.commentId),startIcon:i("udp-icon",{iconName:"save",color:"inherit"})},"Save"),i("udp-button",{variant:"text",onClick:()=>this.handleCommentDelete(c.commentId),startIcon:i("udp-icon",{iconName:"trashCan",color:"inherit"})},"Delete"),i("udp-button",{variant:"text",onClick:()=>this.handleCommentEditClose(c.commentId),startIcon:i("udp-icon",{iconName:"close16",color:"inherit"})},"Cancel")))}return!(t===null||t===void 0?void 0:t.isDeleted)?i("div",{class:"question-comment-input-container",key:t.commentId||e},i("stencil-field",{name:a,style:{display:"none"}},i("text-area",{disabled:true})),i("div",{class:"question-comment-display"},i("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 ${n(t.timestamp,"short")}`:""}`),t===null||t===void 0?void 0:t.value),i("div",{class:"question-comment-action-container"},s&&!d&&i("div",null,i("udp-button",{variant:"text",onClick:()=>this.handleCommentEdit(t.commentId),startIcon:i("udp-icon",{iconName:"edit",color:"inherit"})},"Edit")))):i("div",null)})),c&&c.isTempComment&&!r.includes((t=>t.commentId==c.commentId))&&i("div",{class:"question-comment-draft-container",key:c.commentId||`draft-0`},i("stencil-field",{name:`${this.question.questionIdentifierKey}.draftComments[0].value`,required:true,ignoreDirty:true},i("text-area",Object.assign({},this.commentFieldProps,{label:"Comment:",placeholder:"Add a comment"}))),i("div",{class:"question-comment-action-container"},i("udp-button",{variant:"text",onClick:()=>this.handleCommentEditClose(c.commentId),startIcon:i("udp-icon",{iconName:"trashCan",color:"inherit"})},"Cancel"),i("udp-button",{variant:"text",onClick:()=>this.handleCommentSave(c.commentId),startIcon:i("udp-icon",{iconName:"save",color:"inherit"})},"Save"))),!c&&!d&&i("div",{class:"question-comment-add-comment-button"},i("udp-button",{variant:"text",onClick:()=>this.handleCommentAdd(),startIcon:i("udp-icon",{iconName:"add",color:"inherit"})},"Add a Comment")))}};N.style=A;const T=".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 D=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 $(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 e=this.shouldBeInline;return i("div",{class:`${t} ${this.isSaving?"saving":""} ${this.showSavedMessage?"saved":""}`},this.isSaving?i("div",{class:"saving-state"},i("unity-spinner",{size:"small"}),!e&&i("span",null,"Saving...")):this.isVisible?i("udp-icon-button",{icon:g,onClick:this.handleSaveClick,tooltip:"Save Changes",variant:"contained",color:e?"inherit":"primary",iconColor:e?"primary":null,size:e?"small":"medium"},e?"":"Save Changes"):i("div",{class:"saved-state"},i("span",null,"Saved")),this.saveErrorMessage&&i("div",{class:"save-error-tooltip"},this.saveErrorMessage))}get el(){return o(this)}};D.style=T;export{w as form_metadata_display,z as image_upload,j as signature_input,O as stencil_form,F as tally_display,S as udp_question,N as udp_question_comments,D as udp_save_draft_button};
|
|
2
|
+
//# sourceMappingURL=form-metadata-display_8.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registerInstance","h","createEvent","Host","getElement","dateFormatter","fontOverrideMapping","overrideFont","isFileReference","parseFileReference","downloadFileFromUdpDriveFile","isUdpDriveFile","createFileFromString","isFile","createForm","debounce","UdpFormsFieldTypeEnum","UdpFormsPageIdEnum","getIconFromName","Save","formMetadataDisplayCss","FormMetadataDisplay","constructor","hostRef","this","displayOwnerFullName","displayOwnerEmail","displaySubmissionDate","renderRow","label","value","class","variant","render","key","role","userDisplayName","userEmail","submittedOn","style","imageUploadCss","ImageUpload","change","allowedMimeTypes","fullWidth","dragAndDropMessage","browseFileMessage","hideDragAndDrop","hideButton","disabled","readonly","handleFileChange","event","stopPropagation","emit","detail","allowMultiple","required","error","id","name","initialValue","renderImage","onChange","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","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","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","clientUserInfo","displayName","email","udpFormSubmission","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","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","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","isPersistedSubmission","Hidden","variantsAndOverrides","override","fontOverride","fontFamily","getElementById","component","titleText","hidden","allowFollowUpForms","metadata","followUpId","followUpFormSubmissionId","FormRendererPageId","icon","tooltip","open","log","helperText","allowComments","userId","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","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":[]}
|