udp-stencil-component-library 26.5.0-beta.2 → 26.5.0-beta.21

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.
Files changed (1210) hide show
  1. package/dist/cjs/{SearchBuilder-ClIYV_dJ.js → SearchBuilder-CCtWubLX.js} +1 -1
  2. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
  3. package/dist/cjs/address-search_6.cjs.entry.js +18 -18
  4. package/dist/cjs/advanced-search_12.cjs.entry.js +18 -18
  5. package/dist/cjs/ag-grid-base_65.cjs.entry.js +512 -174
  6. package/dist/cjs/ambient-template-grid.cjs.entry.js +16 -16
  7. package/dist/cjs/api-method-instance-grid.cjs.entry.js +4 -4
  8. package/dist/cjs/app-bar.cjs.entry.js +1 -1
  9. package/dist/cjs/{base-map_3.cjs.entry.js → base-map_4.cjs.entry.js} +59 -0
  10. package/dist/cjs/chart-container_3.cjs.entry.js +2 -2
  11. package/dist/cjs/check-box.cjs.entry.js +2 -2
  12. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  13. package/dist/cjs/codecs-Z6GTnUYS.js +2424 -0
  14. package/dist/cjs/createAzureMapsProviders-b1fKbjhG.js +80 -0
  15. package/dist/cjs/custom-button.cjs.entry.js +1 -1
  16. package/dist/cjs/date-time-renderer_9.cjs.entry.js +21 -21
  17. package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
  18. package/dist/cjs/file-upload_2.cjs.entry.js +5 -5
  19. package/dist/cjs/filter-conditions_7.cjs.entry.js +7 -7
  20. package/dist/cjs/{form-metadata-display_10.cjs.entry.js → form-metadata-display_9.cjs.entry.js} +6 -65
  21. package/dist/cjs/icon-grid.cjs.entry.js +1 -1
  22. package/dist/cjs/index-G1ccGqOs.js +30 -26
  23. package/dist/cjs/index.cjs.js +4 -80
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/logical-search-indicator.cjs.entry.js +1 -1
  26. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  27. package/dist/cjs/primary-action-header_2.cjs.entry.js +4 -4
  28. package/dist/cjs/question-configs-renderer_4.cjs.entry.js +15 -15
  29. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  30. package/dist/cjs/resource-timeline-primary-bar.cjs.entry.js +3 -3
  31. package/dist/cjs/search-method-grid.cjs.entry.js +4 -3
  32. package/dist/cjs/{searchObject-DeDFFGcx.js → searchObject-mbqgqdRh.js} +1 -0
  33. package/dist/cjs/{searchObjectHelper-a5QztNDL.js → searchObjectHelper-DYpPEIzz.js} +1 -1
  34. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  35. package/dist/cjs/side-sheet-container.cjs.entry.js +1 -1
  36. package/dist/cjs/simple-card.cjs.entry.js +1 -1
  37. package/dist/cjs/status-chip_2.cjs.entry.js +2 -2
  38. package/dist/cjs/stencil-chip.cjs.entry.js +2 -2
  39. package/dist/cjs/stencil-library.cjs.js +1 -1
  40. package/dist/cjs/stencil-toggle.cjs.entry.js +4 -4
  41. package/dist/cjs/text-field_2.cjs.entry.js +7 -7
  42. package/dist/cjs/types-mjOM5U2F.js +49 -0
  43. package/dist/cjs/udp-adornment.cjs.entry.js +1 -1
  44. package/dist/cjs/udp-advanced-search-builder.cjs.entry.js +2 -2
  45. package/dist/cjs/udp-advanced-search-filter-group.cjs.entry.js +2 -2
  46. package/dist/cjs/udp-ag-area-chart.cjs.entry.js +2 -2
  47. package/dist/cjs/udp-ag-bar-chart_4.cjs.entry.js +5 -5
  48. package/dist/cjs/udp-ag-bubble-chart.cjs.entry.js +2 -2
  49. package/dist/cjs/udp-ag-combo-chart.cjs.entry.js +2 -2
  50. package/dist/cjs/udp-ag-donut-chart.cjs.entry.js +2 -2
  51. package/dist/cjs/udp-ag-line-chart.cjs.entry.js +2 -2
  52. package/dist/cjs/udp-ag-pie-chart.cjs.entry.js +2 -2
  53. package/dist/cjs/udp-ag-scatter-chart.cjs.entry.js +2 -2
  54. package/dist/cjs/udp-attachment-item_2.cjs.entry.js +1 -1
  55. package/dist/cjs/udp-attachment-list.cjs.entry.js +1 -1
  56. package/dist/cjs/udp-bar-chart.cjs.entry.js +1 -1
  57. package/dist/cjs/udp-calendar-base.cjs.entry.js +1 -1
  58. package/dist/cjs/udp-calendar-day.cjs.entry.js +1 -1
  59. package/dist/cjs/udp-calendar-month.cjs.entry.js +1 -1
  60. package/dist/cjs/udp-calendar-week.cjs.entry.js +1 -1
  61. package/dist/cjs/udp-calendar-year.cjs.entry.js +1 -1
  62. package/dist/cjs/udp-card-action-area.cjs.entry.js +1 -1
  63. package/dist/cjs/udp-card_6.cjs.entry.js +7 -7
  64. package/dist/cjs/udp-charts-example.cjs.entry.js +1 -1
  65. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  66. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  67. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  68. package/dist/cjs/udp-container.cjs.entry.js +2 -2
  69. package/dist/cjs/udp-dynamic-container-with-menu.cjs.entry.js +1 -1
  70. package/dist/cjs/udp-dynamic-form.cjs.entry.js +1 -1
  71. package/dist/cjs/udp-fluent-file-input.cjs.entry.js +4 -4
  72. package/dist/cjs/udp-fluent-image.cjs.entry.js +1 -1
  73. package/dist/cjs/udp-fluent-inline-edit_6.cjs.entry.js +4498 -0
  74. package/dist/cjs/udp-fluent-link.cjs.entry.js +1 -1
  75. package/dist/cjs/udp-fluent-list-input.cjs.entry.js +46 -0
  76. package/dist/cjs/udp-fluent-list-item_2.cjs.entry.js +322 -0
  77. package/dist/cjs/udp-fluent-location-input.cjs.entry.js +3 -3
  78. package/dist/cjs/udp-fluent-number-input.cjs.entry.js +1 -1
  79. package/dist/cjs/udp-fluent-signature-input.cjs.entry.js +5 -5
  80. package/dist/cjs/udp-fluent-table-input.cjs.entry.js +347 -0
  81. package/dist/cjs/udp-forms-builder-style-override.cjs.entry.js +1 -1
  82. package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +2 -2
  83. package/dist/cjs/udp-forms-list-card.cjs.entry.js +4 -4
  84. package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
  85. package/dist/cjs/udp-forms-renderer.cjs.entry.js +3 -3
  86. package/dist/cjs/udp-kpi-card.cjs.entry.js +1 -1
  87. package/dist/cjs/udp-kpi-cards.cjs.entry.js +2 -2
  88. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  89. package/dist/cjs/udp-menu.cjs.entry.js +1 -1
  90. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  91. package/dist/cjs/udp-question-form-builder.cjs.entry.js +2376 -0
  92. package/dist/cjs/udp-question-tally-adapter.cjs.entry.js +138 -0
  93. package/dist/cjs/udp-sankey-chart.cjs.entry.js +1 -1
  94. package/dist/cjs/udp-skeleton-loading.cjs.entry.js +1 -1
  95. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  96. package/dist/cjs/udp-stepper-actions.cjs.entry.js +1 -1
  97. package/dist/cjs/udp-stepper-content.cjs.entry.js +2 -2
  98. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  99. package/dist/cjs/udp-stepper-nav.cjs.entry.js +1 -1
  100. package/dist/cjs/udp-tab.cjs.entry.js +1 -1
  101. package/dist/cjs/udp-timeline-connector.cjs.entry.js +1 -1
  102. package/dist/cjs/udp-timeline-dot.cjs.entry.js +1 -1
  103. package/dist/cjs/udp-timeline-item.cjs.entry.js +2 -2
  104. package/dist/cjs/udp-timeline-separator.cjs.entry.js +1 -1
  105. package/dist/cjs/udp-timeline.cjs.entry.js +1 -1
  106. package/dist/cjs/udp-xy-chart.cjs.entry.js +1 -1
  107. package/dist/cjs/udp-xy-multi-series-chart.cjs.entry.js +1 -1
  108. package/dist/cjs/{udpOperatorHelper-MusjN9iI.js → udpOperatorHelper-r6cQBK8k.js} +1 -1
  109. package/dist/collection/__mocks__/jest-setup.js +10 -0
  110. package/dist/collection/collection-manifest.json +10 -3
  111. package/dist/collection/components/advanced-search/advanced-search-grouped.js +2 -2
  112. package/dist/collection/components/advanced-search/advanced-search.js +2 -2
  113. package/dist/collection/components/advanced-search/filter-conditions/filter-conditions.js +5 -1
  114. package/dist/collection/components/advanced-search/ui/logical-search-indicator/logical-search-indicator.js +5 -1
  115. package/dist/collection/components/attachment-list/udp-attachment-item.js +4 -0
  116. package/dist/collection/components/attachment-list/udp-attachment-list.js +5 -1
  117. package/dist/collection/components/buttons/icon-button/function-button/udp-function-button.js +1 -1
  118. package/dist/collection/components/buttons/icon-button/primary-button/custom-button.js +1 -1
  119. package/dist/collection/components/buttons/icon-button/radio-button/udp-radio-button.js +5 -1
  120. package/dist/collection/components/buttons/icon-button/stencil-icon-button-grid-action-header.js +4 -0
  121. package/dist/collection/components/buttons/udp-button/udp-button.js +4 -1
  122. package/dist/collection/components/calendar/udp-calendar-base.js +1 -1
  123. package/dist/collection/components/calendar/udp-calendar-day.js +1 -1
  124. package/dist/collection/components/calendar/udp-calendar-month.js +1 -1
  125. package/dist/collection/components/calendar/udp-calendar-week.js +1 -1
  126. package/dist/collection/components/calendar/udp-calendar-year.js +1 -1
  127. package/dist/collection/components/charts/chart-kpi/chart-kpi.js +1 -1
  128. package/dist/collection/components/charts/udp-ag-area-chart/udp-ag-area-chart.js +2 -2
  129. package/dist/collection/components/charts/udp-ag-bar-chart/udp-ag-bar-chart.js +2 -2
  130. package/dist/collection/components/charts/udp-ag-bubble-chart/udp-ag-bubble-chart.js +2 -2
  131. package/dist/collection/components/charts/udp-ag-combo-chart/udp-ag-combo-chart.js +2 -2
  132. package/dist/collection/components/charts/udp-ag-donut-chart/udp-ag-donut-chart.js +2 -2
  133. package/dist/collection/components/charts/udp-ag-line-chart/udp-ag-line-chart.js +2 -2
  134. package/dist/collection/components/charts/udp-ag-pie-chart/udp-ag-pie-chart.js +2 -2
  135. package/dist/collection/components/charts/udp-ag-scatter-chart/udp-ag-scatter-chart.js +2 -2
  136. package/dist/collection/components/charts/udp-bar-chart/udp-bar-chart.js +1 -1
  137. package/dist/collection/components/charts/udp-charts-example.js +4 -1
  138. package/dist/collection/components/charts/udp-distribution-chart/udp-distribution-chart.js +1 -1
  139. package/dist/collection/components/charts/udp-donut-chart/udp-donut-chart.js +1 -1
  140. package/dist/collection/components/charts/udp-line-chart/udp-line-chart.js +1 -1
  141. package/dist/collection/components/charts/udp-sankey-chart/udp-sankey-chart.js +1 -1
  142. package/dist/collection/components/charts/udp-xy-chart/udp-xy-chart.js +1 -1
  143. package/dist/collection/components/charts/udp-xy-multi-series-chart/udp-xy-multi-series-chart.js +1 -1
  144. package/dist/collection/components/data-display/adornment/udp-adornment/udp-adornment.js +5 -1
  145. package/dist/collection/components/data-display/badge/udp-badge.js +5 -1
  146. package/dist/collection/components/data-display/cards/udp-ambient-card/udp-ambient-card.js +5 -1
  147. package/dist/collection/components/data-display/cards/udp-card/udp-card-action-area/udp-card-action-area.js +5 -1
  148. package/dist/collection/components/data-display/cards/udp-card/udp-card-actions/udp-card-actions.js +5 -1
  149. package/dist/collection/components/data-display/cards/udp-card/udp-card-content/udp-card-content.js +5 -1
  150. package/dist/collection/components/data-display/cards/udp-card/udp-card-header/udp-card-header.js +5 -1
  151. package/dist/collection/components/data-display/cards/udp-card/udp-card-media/udp-card-media.js +5 -1
  152. package/dist/collection/components/data-display/cards/udp-card/udp-card.js +7 -3
  153. package/dist/collection/components/data-display/chips/stencil-chip/status-chip/status-chip.js +1 -1
  154. package/dist/collection/components/data-display/chips/stencil-chip/stencil-chip.js +2 -2
  155. package/dist/collection/components/data-display/chips/udp-chip.js +4 -1
  156. package/dist/collection/components/data-display/divider/udp-divider.js +5 -1
  157. package/dist/collection/components/data-display/empty-state-display/udp-empty-state-display.js +5 -1
  158. package/dist/collection/components/data-display/headers/udp-column-header.js +5 -1
  159. package/dist/collection/components/data-display/headers/udp-page-header/udp-page-header.js +5 -1
  160. package/dist/collection/components/data-display/hint-panel/hint-panel.js +5 -1
  161. package/dist/collection/components/data-display/kpi/kpi-list.js +1 -1
  162. package/dist/collection/components/data-display/kpi/udp-kpi-card.js +1 -1
  163. package/dist/collection/components/data-display/kpi/udp-kpi-cards.js +2 -2
  164. package/dist/collection/components/data-display/list-item/list-item.js +2 -2
  165. package/dist/collection/components/data-display/list-renderer/udp-list-renderer.js +4 -0
  166. package/dist/collection/components/data-display/pop-over/udp-pop-over.js +5 -1
  167. package/dist/collection/components/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.js +5 -1
  168. package/dist/collection/components/data-display/primary-action-header/primary-action-header.js +6 -2
  169. package/dist/collection/components/data-display/simple-card/simple-card.js +5 -1
  170. package/dist/collection/components/data-display/tool-tip/udp-ambient-tool-tip.js +6 -2
  171. package/dist/collection/components/data-display/tree/tree-list-item/search-item/search-list-item.js +5 -1
  172. package/dist/collection/components/data-display/tree/tree-list-item/tree-list-item.js +4 -0
  173. package/dist/collection/components/data-display/udp-avatar/udp-avatar.js +5 -1
  174. package/dist/collection/components/dialogs/udp-dialog.js +5 -1
  175. package/dist/collection/components/drawers/udp-side-sheet/udp-side-sheet.js +12 -9
  176. package/dist/collection/components/feedback/udp-notification/alerts/upd-alert-banner.js +5 -1
  177. package/dist/collection/components/feedback/udp-notification/udp-notification.js +6 -2
  178. package/dist/collection/components/fluent-ui/accordion/udp-accordion.css +42 -0
  179. package/dist/collection/components/fluent-ui/accordion/udp-accordion.js +34 -2
  180. package/dist/collection/components/fluent-ui/autocomplete/udp-autocomplete.js +8 -8
  181. package/dist/collection/components/fluent-ui/avatar/udp-fluent-avatar.js +7 -2
  182. package/dist/collection/components/fluent-ui/badge/udp-fluent-badge.js +1 -1
  183. package/dist/collection/components/fluent-ui/button/udp-fluent-button.js +1 -1
  184. package/dist/collection/components/fluent-ui/card/udp-fluent-card.js +3 -3
  185. package/dist/collection/components/fluent-ui/checkbox/udp-fluent-checkbox.js +3 -1
  186. package/dist/collection/components/fluent-ui/compound-button/udp-compound-button.js +1 -1
  187. package/dist/collection/components/fluent-ui/counter-badge/udp-fluent-counter-badge.js +1 -1
  188. package/dist/collection/components/fluent-ui/date-time-input/udp-date-time-input.js +1 -1
  189. package/dist/collection/components/fluent-ui/dialog/udp-fluent-dialog.js +3 -1
  190. package/dist/collection/components/fluent-ui/divider/udp-fluent-divider.js +1 -1
  191. package/dist/collection/components/fluent-ui/drawer/udp-fluent-drawer.js +14 -1
  192. package/dist/collection/components/fluent-ui/dropdown/udp-fluent-dropdown.js +8 -8
  193. package/dist/collection/components/fluent-ui/empty-state/udp-empty-state.js +1 -1
  194. package/dist/collection/components/fluent-ui/file-input/udp-fluent-file-input.js +4 -4
  195. package/dist/collection/components/fluent-ui/icon/icon-grid/icon-grid.js +1 -1
  196. package/dist/collection/components/fluent-ui/icon/udp-fluent-icon.js +3 -1
  197. package/dist/collection/components/fluent-ui/icon-button/udp-fluent-icon-button.js +3 -1
  198. package/dist/collection/components/fluent-ui/image/udp-fluent-image.js +6 -1
  199. package/dist/collection/components/fluent-ui/inline-edit/udp-fluent-inline-edit.js +1 -1
  200. package/dist/collection/components/fluent-ui/link/udp-fluent-link.js +1 -1
  201. package/dist/collection/components/fluent-ui/list/udp-list.js +1 -1
  202. package/dist/collection/components/fluent-ui/list-input/udp-fluent-list-input.css +29 -0
  203. package/dist/collection/components/fluent-ui/list-input/udp-fluent-list-input.js +295 -0
  204. package/dist/collection/components/fluent-ui/list-item/udp-list-item.js +2 -2
  205. package/dist/collection/components/fluent-ui/location-input/udp-fluent-location-input.js +3 -3
  206. package/dist/collection/components/fluent-ui/message-bar/udp-message-bar.css +11 -0
  207. package/dist/collection/components/fluent-ui/message-bar/udp-message-bar.js +11 -1
  208. package/dist/collection/components/fluent-ui/number-input/udp-fluent-number-input.js +1 -1
  209. package/dist/collection/components/fluent-ui/popover/udp-popover.js +4 -4
  210. package/dist/collection/components/fluent-ui/progress-bar/udp-progress-bar.js +1 -1
  211. package/dist/collection/components/fluent-ui/radio-group/udp-fluent-radio-group.js +1 -1
  212. package/dist/collection/components/fluent-ui/search-input/udp-search-input.js +3 -3
  213. package/dist/collection/components/fluent-ui/signature-input/udp-fluent-signature-input.css +12 -0
  214. package/dist/collection/components/fluent-ui/signature-input/udp-fluent-signature-input.js +4 -4
  215. package/dist/collection/components/fluent-ui/slider/udp-slider.js +1 -1
  216. package/dist/collection/components/fluent-ui/spinner/udp-spinner.js +1 -1
  217. package/dist/collection/components/fluent-ui/swatch-picker/udp-swatch-picker.js +1 -1
  218. package/dist/collection/components/fluent-ui/switch/udp-fluent-switch.js +3 -1
  219. package/dist/collection/components/fluent-ui/table-input/udp-fluent-table-input.css +43 -0
  220. package/dist/collection/components/fluent-ui/table-input/udp-fluent-table-input.js +599 -0
  221. package/dist/collection/components/fluent-ui/table-input/udp-fluent-table-input.types.js +1 -0
  222. package/dist/collection/components/fluent-ui/text/udp-text.js +1 -1
  223. package/dist/collection/components/fluent-ui/text-input/udp-fluent-text-input.js +2 -2
  224. package/dist/collection/components/fluent-ui/textarea/udp-textarea.js +2 -2
  225. package/dist/collection/components/fluent-ui/time-input/udp-time-input.js +1 -1
  226. package/dist/collection/components/fluent-ui/toggle-button/udp-fluent-toggle-button.js +1 -1
  227. package/dist/collection/components/fluent-ui/tooltip/udp-tooltip.js +4 -2
  228. package/dist/collection/components/fluent-ui/tree/udp-tree.js +1 -1
  229. package/dist/collection/components/forms/dynamic-form/udp-dynamic-form.js +1 -1
  230. package/dist/collection/components/forms/edit-view-form/edit-view-form.js +2 -2
  231. package/dist/collection/components/forms/form/stencil-form.js +1 -1
  232. package/dist/collection/components/forms/save-view-form/save-view-form.js +2 -2
  233. package/dist/collection/components/forms/udp-forms/udp-forms-builder/forms-question-item/udp-forms-builder-question-item.js +2 -2
  234. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +4 -4
  235. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/form-metadata-display-renderer/form-metadata-display-renderer.js +3 -3
  236. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +3 -3
  237. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/location-renderer/location-renderer.js +6 -6
  238. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +7 -7
  239. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/section-configs-renderer/section-configs-renderer.js +4 -4
  240. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
  241. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/table-columns-renderer/table-columns-renderer.js +2 -2
  242. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +2 -2
  243. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
  244. package/dist/collection/components/forms/udp-forms/udp-forms-builder/udp-forms-builder-style-override/udp-forms-builder-style-override.js +1 -1
  245. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +4 -4
  246. package/dist/collection/components/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
  247. 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
  248. package/dist/collection/components/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +1 -1
  249. package/dist/collection/components/forms/udp-forms/udp-question/table-input/table-input.js +1 -1
  250. package/dist/collection/components/forms/udp-question-form/__forms-harness__/assert.js +31 -0
  251. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixture.types.js +1 -0
  252. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/checkbox.fixtures.js +189 -0
  253. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/date-selector.fixtures.js +173 -0
  254. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/date-time-selector.fixtures.js +155 -0
  255. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/dropdown-multiple-select.fixtures.js +180 -0
  256. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/dropdown-single-select.fixtures.js +136 -0
  257. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/file-upload.fixtures.js +184 -0
  258. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/form-metadata-display.fixtures.js +104 -0
  259. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/hidden.fixtures.js +133 -0
  260. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/image-upload.fixtures.js +122 -0
  261. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/list-multi-select.fixtures.js +137 -0
  262. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/location-additional.fixtures.js +119 -0
  263. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/location-default-location.fixture.js +164 -0
  264. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/location-required.fixture.js +84 -0
  265. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/multi-line-text.fixtures.js +148 -0
  266. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/number.fixtures.js +173 -0
  267. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/paragraph.fixtures.js +93 -0
  268. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/radio-button.fixtures.js +141 -0
  269. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/signature.fixtures.js +168 -0
  270. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/single-line-text.fixtures.js +153 -0
  271. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/table.fixtures.js +97 -0
  272. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/tally.fixtures.js +125 -0
  273. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/time-selector.fixtures.js +175 -0
  274. package/dist/collection/components/forms/udp-question-form/__forms-harness__/fixtures/yes-no.fixtures.js +190 -0
  275. package/dist/collection/components/forms/udp-question-form/__forms-harness__/harness-dom.js +158 -0
  276. package/dist/collection/components/forms/udp-question-form/__forms-harness__/harness.js +55 -0
  277. package/dist/collection/components/forms/udp-question-form/builder/components/add-question-drawer-content.js +12 -0
  278. package/dist/collection/components/forms/udp-question-form/builder/components/configure-question-drawer.js +33 -0
  279. package/dist/collection/components/forms/udp-question-form/builder/components/form-structure-sidebar.js +87 -0
  280. package/dist/collection/components/forms/udp-question-form/builder/components/preview-pane.js +15 -0
  281. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/GenericQuestionConfig.js +76 -0
  282. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/ValidationRulesSection.js +75 -0
  283. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/index.js +3 -0
  284. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/FileUploadConfig.js +4 -0
  285. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/FormMetadataDisplayConfig.js +4 -0
  286. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/ListOptionsConfig.js +124 -0
  287. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/LocationConfig.js +21 -0
  288. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/ParagraphConfig.js +4 -0
  289. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/SignatureConfig.js +4 -0
  290. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/TableConfig.js +153 -0
  291. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/TallyConfig.js +59 -0
  292. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/index.js +45 -0
  293. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/types.js +1 -0
  294. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/udp-question-config-fluent.css +140 -0
  295. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/udp-question-config-fluent.js +299 -0
  296. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/utils/configValues.js +28 -0
  297. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/utils/dateTimeFormat.js +26 -0
  298. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/utils/index.js +3 -0
  299. package/dist/collection/components/forms/udp-question-form/builder/components/questionConfig/utils/sortableRef.js +41 -0
  300. package/dist/collection/components/forms/udp-question-form/builder/components/section-card.js +19 -0
  301. package/dist/collection/components/forms/udp-question-form/builder/components/section-edit-drawer-content.js +36 -0
  302. package/dist/collection/components/forms/udp-question-form/builder/components/section-question-item.js +43 -0
  303. package/dist/collection/components/forms/udp-question-form/builder/config/constants.js +15 -0
  304. package/dist/collection/components/forms/udp-question-form/builder/config/index.js +1 -0
  305. package/dist/collection/components/forms/udp-question-form/builder/form-item-types/index.js +2 -0
  306. package/dist/collection/components/forms/udp-question-form/builder/form-item-types/registry.js +13 -0
  307. package/dist/collection/components/forms/udp-question-form/builder/form-item-types/templates.js +315 -0
  308. package/dist/collection/components/forms/udp-question-form/builder/form-item-types/types.js +1 -0
  309. package/dist/collection/components/forms/udp-question-form/builder/form-item-types/validation.js +127 -0
  310. package/dist/collection/components/forms/udp-question-form/builder/udp-question-form-builder.css +361 -0
  311. package/dist/collection/components/forms/udp-question-form/builder/udp-question-form-builder.js +1382 -0
  312. package/dist/collection/components/forms/udp-question-form/builder/utils/builder-api.js +119 -0
  313. package/dist/collection/components/forms/udp-question-form/builder/utils/form-versions.js +20 -0
  314. package/dist/collection/components/forms/udp-question-form/builder/utils/question-template.js +63 -0
  315. package/dist/collection/components/forms/udp-question-form/core/choice-options.js +17 -0
  316. package/dist/collection/components/forms/udp-question-form/core/defaults.js +63 -0
  317. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/common-keys.js +15 -0
  318. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/engine.js +179 -0
  319. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/index.js +2 -0
  320. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/checkbox.js +24 -0
  321. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/date-selector.js +27 -0
  322. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/date-time-selector.js +35 -0
  323. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/dropdown-multiple-select.js +24 -0
  324. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/dropdown-single-select.js +22 -0
  325. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/file-upload.js +12 -0
  326. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/form-metadata-display.js +11 -0
  327. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/hidden.js +10 -0
  328. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/image-upload.js +10 -0
  329. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/list-multi-select.js +24 -0
  330. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/location.js +30 -0
  331. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/multi-line-text.js +9 -0
  332. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/number.js +17 -0
  333. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/paragraph.js +11 -0
  334. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/radio-button.js +22 -0
  335. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/signature.js +9 -0
  336. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/single-line-text.js +13 -0
  337. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/table.js +20 -0
  338. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/tally.js +19 -0
  339. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/time-selector.js +25 -0
  340. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/per-type/yes-no.js +14 -0
  341. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/registry.js +64 -0
  342. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/toggles.js +20 -0
  343. package/dist/collection/components/forms/udp-question-form/core/field-properties-schemas/types.js +1 -0
  344. package/dist/collection/components/forms/udp-question-form/core/field-properties.js +1 -0
  345. package/dist/collection/components/forms/udp-question-form/core/index.js +8 -0
  346. package/dist/collection/components/forms/udp-question-form/core/parse.js +154 -0
  347. package/dist/collection/components/forms/udp-question-form/core/serialize.js +66 -0
  348. package/dist/collection/components/forms/udp-question-form/core/slot-index.js +40 -0
  349. package/dist/collection/components/forms/udp-question-form/core/types.js +45 -0
  350. package/dist/collection/components/forms/udp-question-form/core/validation/consistency.js +63 -0
  351. package/dist/collection/components/forms/udp-question-form/core/validation/emptiness.js +33 -0
  352. package/dist/collection/components/forms/udp-question-form/core/validation/engine.js +94 -0
  353. package/dist/collection/components/forms/udp-question-form/core/validation/index.js +15 -0
  354. package/dist/collection/components/forms/udp-question-form/core/validation/intrinsic.js +81 -0
  355. package/dist/collection/components/forms/udp-question-form/core/validation/registry.js +81 -0
  356. package/dist/collection/components/forms/udp-question-form/core/validation/rules/age.js +16 -0
  357. package/dist/collection/components/forms/udp-question-form/core/validation/rules/index.js +55 -0
  358. package/dist/collection/components/forms/udp-question-form/core/validation/rules/integer-only.js +26 -0
  359. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-age.js +52 -0
  360. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-date-time.js +34 -0
  361. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-date.js +24 -0
  362. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-decimal-places.js +67 -0
  363. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-length.js +38 -0
  364. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-rows.js +53 -0
  365. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-selections.js +50 -0
  366. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-time.js +29 -0
  367. package/dist/collection/components/forms/udp-question-form/core/validation/rules/max-value.js +34 -0
  368. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-age.js +54 -0
  369. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-date-time.js +34 -0
  370. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-date.js +24 -0
  371. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-length.js +40 -0
  372. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-rows.js +58 -0
  373. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-selections.js +55 -0
  374. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-time.js +31 -0
  375. package/dist/collection/components/forms/udp-question-form/core/validation/rules/min-value.js +36 -0
  376. package/dist/collection/components/forms/udp-question-form/core/validation/rules/must-be-yes.js +23 -0
  377. package/dist/collection/components/forms/udp-question-form/core/validation/rules/no-future-date-time.js +32 -0
  378. package/dist/collection/components/forms/udp-question-form/core/validation/rules/no-future-date.js +31 -0
  379. package/dist/collection/components/forms/udp-question-form/core/validation/rules/no-past-date-time.js +26 -0
  380. package/dist/collection/components/forms/udp-question-form/core/validation/rules/no-past-date.js +27 -0
  381. package/dist/collection/components/forms/udp-question-form/core/validation/rules/pattern.js +65 -0
  382. package/dist/collection/components/forms/udp-question-form/core/validation/rules/required.js +44 -0
  383. package/dist/collection/components/forms/udp-question-form/core/validation/rules/step.js +47 -0
  384. package/dist/collection/components/forms/udp-question-form/core/validation/types.js +1 -0
  385. package/dist/collection/components/forms/udp-question-form/follow-up-forms-api.js +74 -0
  386. package/dist/collection/components/forms/udp-question-form/renderer/runtime/codecs.js +456 -0
  387. package/dist/collection/components/forms/udp-question-form/renderer/runtime/comments-api.js +36 -0
  388. package/dist/collection/components/forms/udp-question-form/renderer/runtime/comments-state.js +184 -0
  389. package/dist/collection/components/forms/udp-question-form/renderer/runtime/dynamic-sections.js +198 -0
  390. package/dist/collection/components/forms/udp-question-form/renderer/runtime/follow-up-forms.js +176 -0
  391. package/dist/collection/components/forms/udp-question-form/renderer/runtime/index.js +13 -0
  392. package/dist/collection/components/forms/udp-question-form/renderer/runtime/initial-values.js +68 -0
  393. package/dist/collection/components/forms/udp-question-form/renderer/runtime/parse.js +103 -0
  394. package/dist/collection/components/forms/udp-question-form/renderer/runtime/progress.js +44 -0
  395. package/dist/collection/components/forms/udp-question-form/renderer/runtime/serialize-submission.js +107 -0
  396. package/dist/collection/components/forms/udp-question-form/renderer/runtime/submit.js +82 -0
  397. package/dist/collection/components/forms/udp-question-form/renderer/runtime/types.js +13 -0
  398. package/dist/collection/components/forms/udp-question-form/renderer/runtime/url-seed.js +90 -0
  399. package/dist/collection/components/forms/udp-question-form/renderer/runtime/validate-submission.js +50 -0
  400. package/dist/collection/components/forms/udp-question-form/renderer/runtime/wire-adapter.js +37 -0
  401. package/dist/collection/components/forms/udp-question-form/renderer/udp-question-form-renderer.css +488 -0
  402. package/dist/collection/components/forms/udp-question-form/renderer/udp-question-form-renderer.js +1801 -0
  403. package/dist/collection/components/forms/udp-question-form/renderer/ui/adapters/udp-question-tally-adapter.js +306 -0
  404. package/dist/collection/components/forms/udp-question-form/renderer/ui/avatar.js +26 -0
  405. package/dist/collection/components/forms/udp-question-form/renderer/ui/comment-item.js +28 -0
  406. package/dist/collection/components/forms/udp-question-form/renderer/ui/comment-thread.js +30 -0
  407. package/dist/collection/components/forms/udp-question-form/renderer/ui/follow-up-picker-dialog.js +32 -0
  408. package/dist/collection/components/forms/udp-question-form/renderer/ui/form-shell.js +154 -0
  409. package/dist/collection/components/forms/udp-question-form/renderer/ui/index.js +6 -0
  410. package/dist/collection/components/forms/udp-question-form/renderer/ui/question-renderer.js +352 -0
  411. package/dist/collection/components/forms/udp-question-form/renderer/ui/question-view-renderer.js +306 -0
  412. package/dist/collection/components/forms/udp-question-form/renderer/ui/section-card.js +39 -0
  413. package/dist/collection/components/forms/udp-question-form/renderer/url.js +51 -0
  414. package/dist/collection/components/forms/udp-question-form/version-drawer/udp-form-version-drawer.js +136 -0
  415. package/dist/collection/components/grid/ag-table/ag-table.js +5 -1
  416. package/dist/collection/components/grid/ambient-template-grid/ambient-template-grid.js +16 -16
  417. package/dist/collection/components/grid/grid-primary-bar/grid-primary-bar.js +6 -2
  418. package/dist/collection/components/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +5 -1
  419. package/dist/collection/components/grid/new-grid/ag-grid-base.js +2 -1
  420. package/dist/collection/components/grid/new-grid/api-method-instance-grid.js +2 -2
  421. package/dist/collection/components/grid/new-grid/client-side-grid.js +1 -1
  422. package/dist/collection/components/grid/new-grid/grid-header.css +18 -0
  423. package/dist/collection/components/grid/new-grid/grid-header.js +8 -1
  424. package/dist/collection/components/grid/new-grid/gridFunctionRegistry.js +2 -0
  425. package/dist/collection/components/grid/new-grid/gridFunctions/columnSelector.js +145 -0
  426. package/dist/collection/components/grid/new-grid/helperFunctions/buildSearchObject.js +1 -0
  427. package/dist/collection/components/grid/new-grid/search-method-grid.js +1 -1
  428. package/dist/collection/components/grid/new-grid/server-side-grid.js +1 -1
  429. package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  430. package/dist/collection/components/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +3 -3
  431. package/dist/collection/components/inputs/address-search/address-search.js +7 -3
  432. package/dist/collection/components/inputs/checkbox/check-box.js +5 -2
  433. package/dist/collection/components/inputs/date-range-selector/udp-date-range-selector.js +2 -2
  434. package/dist/collection/components/inputs/date-selector/udp-date-selector.js +6 -3
  435. package/dist/collection/components/inputs/date-time-selector/udp-datetime-selector.js +6 -3
  436. package/dist/collection/components/inputs/file-upload/file-upload.js +7 -4
  437. package/dist/collection/components/inputs/form metadata display/form-metadata-display.js +4 -1
  438. package/dist/collection/components/inputs/image-upload/image-upload.js +4 -1
  439. package/dist/collection/components/inputs/location-input/location-input.js +4 -0
  440. package/dist/collection/components/inputs/numeric-field/numeric-field.js +6 -3
  441. package/dist/collection/components/inputs/selectable-list/selectable-list.js +3 -0
  442. package/dist/collection/components/inputs/signature-input/signature-input.js +6 -2
  443. package/dist/collection/components/inputs/tally/tally.js +5 -2
  444. package/dist/collection/components/inputs/text-area/text-area.js +6 -3
  445. package/dist/collection/components/inputs/text-field/text-field.js +6 -3
  446. package/dist/collection/components/inputs/time-selector/udp-time-selector.js +6 -3
  447. package/dist/collection/components/inputs/toggle/stencil-toggle.js +4 -4
  448. package/dist/collection/components/inputs/udp-selector/udp-selector.js +7 -4
  449. package/dist/collection/components/layout/primary-action-header/udp-primary-action-header.css +1 -1
  450. package/dist/collection/components/layout/primary-action-header/udp-primary-action-header.js +3 -3
  451. package/dist/collection/components/layout/udp-container/udp-container.js +2 -2
  452. package/dist/collection/components/layout/udp-container-query/udp-container-query.js +2 -2
  453. package/dist/collection/components/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  454. package/dist/collection/components/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  455. package/dist/collection/components/layout/udp-page/udp-page.js +1 -1
  456. package/dist/collection/components/layout/udp-sidebar-layout/udp-sidebar-layout.js +2 -2
  457. package/dist/collection/components/layout/udp-split-screen/udp-split-screen.js +1 -1
  458. package/dist/collection/components/layout/udp-vertical-spacer.js +1 -1
  459. package/dist/collection/components/loaders/udp-grid-loader/udp-grid-loader.js +6 -2
  460. package/dist/collection/components/loaders/udp-linear-loader/udp-linear-loader.js +5 -1
  461. package/dist/collection/components/loaders/udp-skeleton-loading.js +5 -1
  462. package/dist/collection/components/map/udp-map/map-component.js +1 -1
  463. package/dist/collection/components/map/udp-map/popups/add-map-feature-popup.js +3 -3
  464. package/dist/collection/components/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  465. package/dist/collection/components/map/udp-map/popups/feature-details-popup.js +1 -1
  466. package/dist/collection/components/map/udp-map/popups/select-layer-popup.js +2 -2
  467. package/dist/collection/components/map/udp-map/popups/split-line-popup.js +1 -1
  468. package/dist/collection/components/map/udp-map/toolbar/map-toolbar.js +6 -6
  469. package/dist/collection/components/map/udp-map/udp-map-toolbar.js +1 -1
  470. package/dist/collection/components/map/udp-map/udp-map.js +3 -3
  471. package/dist/collection/components/menu/menu-item/udp-menu-item.js +1 -1
  472. package/dist/collection/components/menu/udp-menu.js +5 -1
  473. package/dist/collection/components/navigation/pagination/udp-pagination.js +4 -0
  474. package/dist/collection/components/navigation/udp-link/udp-link.js +4 -0
  475. package/dist/collection/components/new-form/field/udp-field.js +81 -27
  476. package/dist/collection/components/new-form/form/udp-form-component.js +322 -27
  477. package/dist/collection/components/new-form/validators.js +13 -5
  478. package/dist/collection/components/stepper/udp-stepper-actions/udp-stepper-actions.js +1 -1
  479. package/dist/collection/components/stepper/udp-stepper-content/udp-stepper-content.js +2 -2
  480. package/dist/collection/components/stepper/udp-stepper-demo.js +5 -1
  481. package/dist/collection/components/stepper/udp-stepper-nav/udp-stepper-nav.js +1 -1
  482. package/dist/collection/components/tabs/tab/tabs/udp-tabs.js +6 -2
  483. package/dist/collection/components/tabs/tab/udp-tab.js +5 -1
  484. package/dist/collection/components/tabs/udp-tab-panel/udp-tab-panel.js +1 -1
  485. package/dist/collection/components/timeline/udp-timeline-connector.js +1 -1
  486. package/dist/collection/components/timeline/udp-timeline-dot.js +1 -1
  487. package/dist/collection/components/timeline/udp-timeline-item.js +2 -2
  488. package/dist/collection/components/timeline/udp-timeline-separator.js +1 -1
  489. package/dist/collection/components/timeline/udp-timeline.js +1 -1
  490. package/dist/collection/components/toolbars/app-bar/app-bar.js +5 -1
  491. package/dist/collection/components/unity-typography/unity-typography.js +4 -0
  492. package/dist/collection/components/util/ghost-render/ghost-render.js +1 -1
  493. package/dist/collection/components/util/lazy-loader/udp-lazy-loader.js +1 -1
  494. package/dist/collection/deprecated/components/side-sheet/side-sheet-container.js +1 -1
  495. package/dist/collection/deprecated/components/side-sheet/side-sheet.js +1 -1
  496. package/dist/collection/test-pages/test-components-page.js +28 -28
  497. package/dist/collection/test-pages/test-form.js +4 -4
  498. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  499. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  500. package/dist/collection/udp-utilities/location/getCachedAzureMapsProviders.js +18 -0
  501. package/dist/collection/udp-utilities/search/searchObject.js +1 -0
  502. package/dist/components/add-map-feature-popup2.js +1 -1
  503. package/dist/components/address-search2.js +1 -1
  504. package/dist/components/advanced-search-grouped2.js +1 -1
  505. package/dist/components/advanced-search2.js +1 -1
  506. package/dist/components/ag-grid-base2.js +1 -1
  507. package/dist/components/ag-table2.js +1 -1
  508. package/dist/components/ambient-template-grid.js +1 -1
  509. package/dist/components/api-method-instance-grid.js +1 -1
  510. package/dist/components/app-bar.js +1 -1
  511. package/dist/components/chart-kpi2.js +1 -1
  512. package/dist/components/check-box.js +1 -1
  513. package/dist/components/chip-section.js +1 -1
  514. package/dist/components/client-side-grid2.js +1 -1
  515. package/dist/components/createAzureMapsProviders.js +1 -0
  516. package/dist/components/custom-button2.js +1 -1
  517. package/dist/components/edit-view-form.js +1 -1
  518. package/dist/components/feature-details-card2.js +1 -1
  519. package/dist/components/feature-details-popup2.js +1 -1
  520. package/dist/components/file-upload-renderer2.js +1 -1
  521. package/dist/components/file-upload2.js +1 -1
  522. package/dist/components/filter-conditions2.js +1 -1
  523. package/dist/components/form-metadata-display-renderer2.js +1 -1
  524. package/dist/components/form-metadata-display2.js +1 -1
  525. package/dist/components/getCachedAzureMapsProviders.js +1 -0
  526. package/dist/components/ghost-render2.js +1 -1
  527. package/dist/components/grid-header2.js +1 -1
  528. package/dist/components/grid-primary-bar2.js +1 -1
  529. package/dist/components/hint-panel2.js +1 -1
  530. package/dist/components/icon-grid.js +1 -1
  531. package/dist/components/image-upload2.js +1 -1
  532. package/dist/components/index.js +1 -1
  533. package/dist/components/kpi-list2.js +1 -1
  534. package/dist/components/list-item.js +1 -1
  535. package/dist/components/list-options-renderer2.js +1 -1
  536. package/dist/components/location-renderer2.js +1 -1
  537. package/dist/components/logical-search-indicator.js +1 -1
  538. package/dist/components/map-component2.js +1 -1
  539. package/dist/components/map-toolbar2.js +1 -1
  540. package/dist/components/numeric-field2.js +1 -1
  541. package/dist/components/primary-action-header2.js +1 -1
  542. package/dist/components/question-configs-renderer2.js +1 -1
  543. package/dist/components/resource-timeline-calendar.js +1 -1
  544. package/dist/components/resource-timeline-primary-bar2.js +1 -1
  545. package/dist/components/save-view-form.js +1 -1
  546. package/dist/components/search-list-item2.js +1 -1
  547. package/dist/components/search-method-grid2.js +1 -1
  548. package/dist/components/searchObject.js +1 -1
  549. package/dist/components/section-configs-renderer2.js +1 -1
  550. package/dist/components/select-layer-popup2.js +1 -1
  551. package/dist/components/server-side-grid2.js +1 -1
  552. package/dist/components/side-sheet-container2.js +1 -1
  553. package/dist/components/side-sheet2.js +1 -1
  554. package/dist/components/signature-input2.js +1 -1
  555. package/dist/components/signature-renderer2.js +1 -1
  556. package/dist/components/simple-card.js +1 -1
  557. package/dist/components/split-line-popup2.js +1 -1
  558. package/dist/components/status-chip2.js +1 -1
  559. package/dist/components/stencil-chip2.js +1 -1
  560. package/dist/components/stencil-form2.js +1 -1
  561. package/dist/components/stencil-toggle2.js +1 -1
  562. package/dist/components/table-columns-renderer2.js +1 -1
  563. package/dist/components/table-input2.js +1 -1
  564. package/dist/components/tally.js +1 -1
  565. package/dist/components/test-components-page.js +1 -1
  566. package/dist/components/test-form2.js +1 -1
  567. package/dist/components/text-area2.js +1 -1
  568. package/dist/components/text-field2.js +1 -1
  569. package/dist/components/text-input-renderer2.js +1 -1
  570. package/dist/components/types.js +1 -0
  571. package/dist/components/udp-accordion2.js +1 -1
  572. package/dist/components/udp-adornment2.js +1 -1
  573. package/dist/components/udp-ag-area-chart.js +1 -1
  574. package/dist/components/udp-ag-bar-chart2.js +1 -1
  575. package/dist/components/udp-ag-bubble-chart.js +1 -1
  576. package/dist/components/udp-ag-combo-chart.js +1 -1
  577. package/dist/components/udp-ag-donut-chart.js +1 -1
  578. package/dist/components/udp-ag-line-chart.js +1 -1
  579. package/dist/components/udp-ag-pie-chart.js +1 -1
  580. package/dist/components/udp-ag-scatter-chart.js +1 -1
  581. package/dist/components/udp-ambient-card2.js +1 -1
  582. package/dist/components/udp-ambient-tool-tip2.js +1 -1
  583. package/dist/components/udp-attachment-list.js +1 -1
  584. package/dist/components/udp-autocomplete2.js +1 -1
  585. package/dist/components/udp-avatar2.js +1 -1
  586. package/dist/components/udp-badge2.js +1 -1
  587. package/dist/components/udp-bar-chart.js +1 -1
  588. package/dist/components/udp-button2.js +1 -1
  589. package/dist/components/udp-calendar-base2.js +1 -1
  590. package/dist/components/udp-calendar-day.js +1 -1
  591. package/dist/components/udp-calendar-month.js +1 -1
  592. package/dist/components/udp-calendar-week.js +1 -1
  593. package/dist/components/udp-calendar-year.js +1 -1
  594. package/dist/components/udp-card-action-area.js +1 -1
  595. package/dist/components/udp-card-actions2.js +1 -1
  596. package/dist/components/udp-card-content2.js +1 -1
  597. package/dist/components/udp-card-header2.js +1 -1
  598. package/dist/components/udp-card-media2.js +1 -1
  599. package/dist/components/udp-card2.js +1 -1
  600. package/dist/components/udp-charts-example.js +1 -1
  601. package/dist/components/udp-chip2.js +1 -1
  602. package/dist/components/udp-column-header2.js +1 -1
  603. package/dist/components/udp-compound-button2.js +1 -1
  604. package/dist/components/udp-container-query-grid-item.js +1 -1
  605. package/dist/components/udp-container-query-grid.js +1 -1
  606. package/dist/components/udp-container-query2.js +1 -1
  607. package/dist/components/udp-container2.js +1 -1
  608. package/dist/components/udp-date-range-selector2.js +1 -1
  609. package/dist/components/udp-date-selector2.js +1 -1
  610. package/dist/components/udp-date-time-input2.js +1 -1
  611. package/dist/components/udp-datetime-selector2.js +1 -1
  612. package/dist/components/udp-dialog2.js +1 -1
  613. package/dist/components/udp-distribution-chart2.js +1 -1
  614. package/dist/components/udp-divider2.js +1 -1
  615. package/dist/components/udp-donut-chart2.js +1 -1
  616. package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
  617. package/dist/components/udp-dynamic-form.js +1 -1
  618. package/dist/components/udp-empty-state-display2.js +1 -1
  619. package/dist/components/udp-empty-state2.js +1 -1
  620. package/dist/components/udp-field2.js +1 -1
  621. package/dist/components/udp-fluent-avatar2.js +1 -1
  622. package/dist/components/udp-fluent-badge2.js +1 -1
  623. package/dist/components/udp-fluent-button2.js +1 -1
  624. package/dist/components/udp-fluent-card2.js +1 -1
  625. package/dist/components/udp-fluent-checkbox2.js +1 -1
  626. package/dist/components/udp-fluent-counter-badge2.js +1 -1
  627. package/dist/components/udp-fluent-dialog2.js +1 -1
  628. package/dist/components/udp-fluent-divider2.js +1 -1
  629. package/dist/components/udp-fluent-drawer2.js +1 -1
  630. package/dist/components/udp-fluent-dropdown2.js +1 -1
  631. package/dist/components/udp-fluent-file-input.js +1 -1
  632. package/dist/components/udp-fluent-icon-button2.js +1 -1
  633. package/dist/components/udp-fluent-icon2.js +1 -1
  634. package/dist/components/udp-fluent-image.js +1 -1
  635. package/dist/components/udp-fluent-inline-edit.js +1 -1
  636. package/dist/components/udp-fluent-inline-edit2.js +1 -0
  637. package/dist/components/udp-fluent-link.js +1 -1
  638. package/dist/components/udp-fluent-list-input.d.ts +11 -0
  639. package/dist/components/udp-fluent-list-input.js +2 -0
  640. package/dist/components/udp-fluent-list-item.js +1 -1
  641. package/dist/components/udp-fluent-location-input.js +1 -1
  642. package/dist/components/udp-fluent-number-input.js +1 -1
  643. package/dist/components/udp-fluent-radio-group2.js +1 -1
  644. package/dist/components/udp-fluent-signature-input.js +1 -1
  645. package/dist/components/udp-fluent-switch2.js +1 -1
  646. package/dist/components/udp-fluent-table-input.d.ts +11 -0
  647. package/dist/components/udp-fluent-table-input.js +2 -0
  648. package/dist/components/udp-fluent-text-input2.js +1 -1
  649. package/dist/components/udp-fluent-toggle-button2.js +1 -1
  650. package/dist/components/udp-form-component2.js +1 -1
  651. package/dist/components/udp-form-version-drawer.d.ts +11 -0
  652. package/dist/components/udp-form-version-drawer.js +2 -0
  653. package/dist/components/udp-form-version-drawer2.js +1 -0
  654. package/dist/components/udp-forms-builder-menu2.js +1 -1
  655. package/dist/components/udp-forms-builder-question-item2.js +1 -1
  656. package/dist/components/udp-forms-builder-style-override.js +1 -1
  657. package/dist/components/udp-forms-follow-up-list-card.js +1 -1
  658. package/dist/components/udp-forms-list-card2.js +1 -1
  659. package/dist/components/udp-forms-list.js +1 -1
  660. package/dist/components/udp-forms-renderer.js +1 -1
  661. package/dist/components/udp-function-button2.js +1 -1
  662. package/dist/components/udp-grid-loader2.js +1 -1
  663. package/dist/components/udp-hotlist-form2.js +1 -1
  664. package/dist/components/udp-kpi-card2.js +1 -1
  665. package/dist/components/udp-kpi-cards.js +1 -1
  666. package/dist/components/udp-lazy-loader2.js +1 -1
  667. package/dist/components/udp-line-chart2.js +1 -1
  668. package/dist/components/udp-linear-loader2.js +1 -1
  669. package/dist/components/udp-list-item2.js +1 -0
  670. package/dist/components/udp-list.js +1 -1
  671. package/dist/components/udp-list2.js +1 -0
  672. package/dist/components/udp-map-toolbar2.js +1 -1
  673. package/dist/components/udp-map.js +1 -1
  674. package/dist/components/udp-menu-item2.js +1 -1
  675. package/dist/components/udp-menu.js +1 -1
  676. package/dist/components/udp-message-bar2.js +1 -1
  677. package/dist/components/udp-notification2.js +1 -1
  678. package/dist/components/udp-page-header2.js +1 -1
  679. package/dist/components/udp-page.js +1 -1
  680. package/dist/components/udp-pop-over-grid-action-header2.js +1 -1
  681. package/dist/components/udp-pop-over2.js +1 -1
  682. package/dist/components/udp-popover2.js +1 -1
  683. package/dist/components/udp-primary-action-header2.js +1 -1
  684. package/dist/components/udp-progress-bar2.js +1 -1
  685. package/dist/components/udp-question-config-fluent.d.ts +11 -0
  686. package/dist/components/udp-question-config-fluent.js +2 -0
  687. package/dist/components/udp-question-config-fluent2.js +1 -0
  688. package/dist/components/udp-question-form-builder.d.ts +11 -0
  689. package/dist/components/udp-question-form-builder.js +2 -0
  690. package/dist/components/udp-question-form-renderer.d.ts +11 -0
  691. package/dist/components/udp-question-form-renderer.js +2 -0
  692. package/dist/components/udp-question-form-renderer2.js +1 -0
  693. package/dist/components/udp-question-tally-adapter.d.ts +11 -0
  694. package/dist/components/udp-question-tally-adapter.js +2 -0
  695. package/dist/components/udp-radio-button2.js +1 -1
  696. package/dist/components/udp-sankey-chart.js +1 -1
  697. package/dist/components/udp-search-input2.js +1 -1
  698. package/dist/components/udp-selector2.js +1 -1
  699. package/dist/components/udp-side-sheet2.js +1 -1
  700. package/dist/components/udp-sidebar-layout.js +1 -1
  701. package/dist/components/udp-sidebar-layout2.js +1 -0
  702. package/dist/components/udp-skeleton-loading2.js +1 -1
  703. package/dist/components/udp-slider2.js +1 -1
  704. package/dist/components/udp-spinner2.js +1 -1
  705. package/dist/components/udp-split-screen.js +1 -1
  706. package/dist/components/udp-stepper-actions.js +1 -1
  707. package/dist/components/udp-stepper-content.js +1 -1
  708. package/dist/components/udp-stepper-demo.js +1 -1
  709. package/dist/components/udp-stepper-nav.js +1 -1
  710. package/dist/components/udp-swatch-picker2.js +1 -1
  711. package/dist/components/udp-tab-panel2.js +1 -1
  712. package/dist/components/udp-tab.js +1 -1
  713. package/dist/components/udp-tabs2.js +1 -1
  714. package/dist/components/udp-text2.js +1 -1
  715. package/dist/components/udp-textarea2.js +1 -1
  716. package/dist/components/udp-time-input2.js +1 -1
  717. package/dist/components/udp-time-selector2.js +1 -1
  718. package/dist/components/udp-timeline-connector.js +1 -1
  719. package/dist/components/udp-timeline-dot.js +1 -1
  720. package/dist/components/udp-timeline-item.js +1 -1
  721. package/dist/components/udp-timeline-separator.js +1 -1
  722. package/dist/components/udp-timeline.js +1 -1
  723. package/dist/components/udp-tooltip2.js +1 -1
  724. package/dist/components/udp-tree2.js +1 -1
  725. package/dist/components/udp-vertical-spacer.js +1 -1
  726. package/dist/components/udp-vertical-spacer2.js +1 -0
  727. package/dist/components/udp-xy-chart2.js +1 -1
  728. package/dist/components/udp-xy-multi-series-chart.js +1 -1
  729. package/dist/components/upd-alert-banner2.js +1 -1
  730. package/dist/docs.json +4046 -371
  731. package/dist/esm/{SearchBuilder-DDfrKm8m.js → SearchBuilder-CPsWhOXB.js} +1 -1
  732. package/dist/esm/add-map-feature-popup_4.entry.js +12 -12
  733. package/dist/esm/address-search_6.entry.js +18 -18
  734. package/dist/esm/advanced-search_12.entry.js +18 -18
  735. package/dist/esm/ag-grid-base_65.entry.js +512 -174
  736. package/dist/esm/ambient-template-grid.entry.js +16 -16
  737. package/dist/esm/api-method-instance-grid.entry.js +4 -4
  738. package/dist/esm/app-bar.entry.js +1 -1
  739. package/dist/esm/{base-map_3.entry.js → base-map_4.entry.js} +59 -1
  740. package/dist/esm/chart-container_3.entry.js +2 -2
  741. package/dist/esm/check-box.entry.js +2 -2
  742. package/dist/esm/chip-section.entry.js +2 -2
  743. package/dist/esm/codecs-0Y96Q95P.js +2401 -0
  744. package/dist/esm/createAzureMapsProviders-CLLCmr8f.js +78 -0
  745. package/dist/esm/custom-button.entry.js +1 -1
  746. package/dist/esm/date-time-renderer_9.entry.js +21 -21
  747. package/dist/esm/feature-details-card_2.entry.js +5 -5
  748. package/dist/esm/file-upload_2.entry.js +5 -5
  749. package/dist/esm/filter-conditions_7.entry.js +7 -7
  750. package/dist/esm/{form-metadata-display_10.entry.js → form-metadata-display_9.entry.js} +7 -65
  751. package/dist/esm/icon-grid.entry.js +1 -1
  752. package/dist/esm/index-Cgpvu-iV.js +30 -26
  753. package/dist/esm/index.js +4 -80
  754. package/dist/esm/loader.js +1 -1
  755. package/dist/esm/logical-search-indicator.entry.js +1 -1
  756. package/dist/esm/map-component_2.entry.js +2 -2
  757. package/dist/esm/primary-action-header_2.entry.js +4 -4
  758. package/dist/esm/question-configs-renderer_4.entry.js +15 -15
  759. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  760. package/dist/esm/resource-timeline-primary-bar.entry.js +3 -3
  761. package/dist/esm/search-method-grid.entry.js +4 -3
  762. package/dist/esm/{searchObject-CDJVsMG_.js → searchObject-DpUZkcYC.js} +1 -0
  763. package/dist/esm/{searchObjectHelper-CVNJDbDx.js → searchObjectHelper-BjA6OHxg.js} +1 -1
  764. package/dist/esm/server-side-grid.entry.js +1 -1
  765. package/dist/esm/side-sheet-container.entry.js +1 -1
  766. package/dist/esm/simple-card.entry.js +1 -1
  767. package/dist/esm/status-chip_2.entry.js +2 -2
  768. package/dist/esm/stencil-chip.entry.js +2 -2
  769. package/dist/esm/stencil-library.js +1 -1
  770. package/dist/esm/stencil-toggle.entry.js +4 -4
  771. package/dist/esm/text-field_2.entry.js +7 -7
  772. package/dist/esm/types-C9Z-dgvN.js +47 -0
  773. package/dist/esm/udp-adornment.entry.js +1 -1
  774. package/dist/esm/udp-advanced-search-builder.entry.js +2 -2
  775. package/dist/esm/udp-advanced-search-filter-group.entry.js +2 -2
  776. package/dist/esm/udp-ag-area-chart.entry.js +2 -2
  777. package/dist/esm/udp-ag-bar-chart_4.entry.js +5 -5
  778. package/dist/esm/udp-ag-bubble-chart.entry.js +2 -2
  779. package/dist/esm/udp-ag-combo-chart.entry.js +2 -2
  780. package/dist/esm/udp-ag-donut-chart.entry.js +2 -2
  781. package/dist/esm/udp-ag-line-chart.entry.js +2 -2
  782. package/dist/esm/udp-ag-pie-chart.entry.js +2 -2
  783. package/dist/esm/udp-ag-scatter-chart.entry.js +2 -2
  784. package/dist/esm/udp-attachment-item_2.entry.js +1 -1
  785. package/dist/esm/udp-attachment-list.entry.js +1 -1
  786. package/dist/esm/udp-bar-chart.entry.js +1 -1
  787. package/dist/esm/udp-calendar-base.entry.js +1 -1
  788. package/dist/esm/udp-calendar-day.entry.js +1 -1
  789. package/dist/esm/udp-calendar-month.entry.js +1 -1
  790. package/dist/esm/udp-calendar-week.entry.js +1 -1
  791. package/dist/esm/udp-calendar-year.entry.js +1 -1
  792. package/dist/esm/udp-card-action-area.entry.js +1 -1
  793. package/dist/esm/udp-card_6.entry.js +7 -7
  794. package/dist/esm/udp-charts-example.entry.js +1 -1
  795. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  796. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  797. package/dist/esm/udp-container-query.entry.js +2 -2
  798. package/dist/esm/udp-container.entry.js +2 -2
  799. package/dist/esm/udp-dynamic-container-with-menu.entry.js +1 -1
  800. package/dist/esm/udp-dynamic-form.entry.js +1 -1
  801. package/dist/esm/udp-fluent-file-input.entry.js +4 -4
  802. package/dist/esm/udp-fluent-image.entry.js +1 -1
  803. package/dist/esm/udp-fluent-inline-edit_6.entry.js +4487 -0
  804. package/dist/esm/udp-fluent-link.entry.js +1 -1
  805. package/dist/esm/udp-fluent-list-input.entry.js +44 -0
  806. package/dist/esm/udp-fluent-list-item_2.entry.js +319 -0
  807. package/dist/esm/udp-fluent-location-input.entry.js +3 -3
  808. package/dist/esm/udp-fluent-number-input.entry.js +1 -1
  809. package/dist/esm/udp-fluent-signature-input.entry.js +5 -5
  810. package/dist/esm/udp-fluent-table-input.entry.js +345 -0
  811. package/dist/esm/udp-forms-builder-style-override.entry.js +1 -1
  812. package/dist/esm/udp-forms-follow-up-list-card.entry.js +2 -2
  813. package/dist/esm/udp-forms-list-card.entry.js +4 -4
  814. package/dist/esm/udp-forms-list.entry.js +1 -1
  815. package/dist/esm/udp-forms-renderer.entry.js +3 -3
  816. package/dist/esm/udp-kpi-card.entry.js +1 -1
  817. package/dist/esm/udp-kpi-cards.entry.js +2 -2
  818. package/dist/esm/udp-map.entry.js +3 -3
  819. package/dist/esm/udp-menu.entry.js +1 -1
  820. package/dist/esm/udp-page.entry.js +1 -1
  821. package/dist/esm/udp-question-form-builder.entry.js +2370 -0
  822. package/dist/esm/udp-question-tally-adapter.entry.js +136 -0
  823. package/dist/esm/udp-sankey-chart.entry.js +1 -1
  824. package/dist/esm/udp-skeleton-loading.entry.js +1 -1
  825. package/dist/esm/udp-split-screen.entry.js +1 -1
  826. package/dist/esm/udp-stepper-actions.entry.js +1 -1
  827. package/dist/esm/udp-stepper-content.entry.js +2 -2
  828. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  829. package/dist/esm/udp-stepper-nav.entry.js +1 -1
  830. package/dist/esm/udp-tab.entry.js +1 -1
  831. package/dist/esm/udp-timeline-connector.entry.js +1 -1
  832. package/dist/esm/udp-timeline-dot.entry.js +1 -1
  833. package/dist/esm/udp-timeline-item.entry.js +2 -2
  834. package/dist/esm/udp-timeline-separator.entry.js +1 -1
  835. package/dist/esm/udp-timeline.entry.js +1 -1
  836. package/dist/esm/udp-xy-chart.entry.js +1 -1
  837. package/dist/esm/udp-xy-multi-series-chart.entry.js +1 -1
  838. package/dist/esm/{udpOperatorHelper-Tmn9i7-P.js → udpOperatorHelper-CBSPgsN-.js} +1 -1
  839. package/dist/stencil-library/{SearchBuilder-DDfrKm8m.js → SearchBuilder-CPsWhOXB.js} +1 -1
  840. package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
  841. package/dist/stencil-library/address-search_6.entry.js +1 -1
  842. package/dist/stencil-library/advanced-search_12.entry.js +1 -1
  843. package/dist/stencil-library/ag-grid-base_65.entry.js +1 -1
  844. package/dist/stencil-library/ambient-template-grid.entry.js +1 -1
  845. package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
  846. package/dist/stencil-library/app-bar.entry.js +1 -1
  847. package/dist/stencil-library/{base-map_3.entry.js → base-map_4.entry.js} +1 -1
  848. package/dist/stencil-library/chart-container_3.entry.js +1 -1
  849. package/dist/stencil-library/check-box.entry.js +1 -1
  850. package/dist/stencil-library/chip-section.entry.js +1 -1
  851. package/dist/stencil-library/codecs-0Y96Q95P.js +1 -0
  852. package/dist/stencil-library/createAzureMapsProviders-CLLCmr8f.js +1 -0
  853. package/dist/stencil-library/custom-button.entry.js +1 -1
  854. package/dist/stencil-library/date-time-renderer_9.entry.js +1 -1
  855. package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
  856. package/dist/stencil-library/file-upload_2.entry.js +1 -1
  857. package/dist/stencil-library/filter-conditions_7.entry.js +1 -1
  858. package/dist/stencil-library/{form-metadata-display_10.entry.js → form-metadata-display_9.entry.js} +1 -1
  859. package/dist/stencil-library/icon-grid.entry.js +1 -1
  860. package/dist/stencil-library/index.esm.js +1 -1
  861. package/dist/stencil-library/logical-search-indicator.entry.js +1 -1
  862. package/dist/stencil-library/map-component_2.entry.js +1 -1
  863. package/dist/stencil-library/primary-action-header_2.entry.js +1 -1
  864. package/dist/stencil-library/question-configs-renderer_4.entry.js +1 -1
  865. package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
  866. package/dist/stencil-library/resource-timeline-primary-bar.entry.js +1 -1
  867. package/dist/stencil-library/search-method-grid.entry.js +1 -1
  868. package/dist/stencil-library/searchObject-DpUZkcYC.js +1 -0
  869. package/dist/stencil-library/{searchObjectHelper-CVNJDbDx.js → searchObjectHelper-BjA6OHxg.js} +1 -1
  870. package/dist/stencil-library/server-side-grid.entry.js +1 -1
  871. package/dist/stencil-library/side-sheet-container.entry.js +1 -1
  872. package/dist/stencil-library/simple-card.entry.js +1 -1
  873. package/dist/stencil-library/status-chip_2.entry.js +1 -1
  874. package/dist/stencil-library/stencil-chip.entry.js +1 -1
  875. package/dist/stencil-library/stencil-library.esm.js +1 -1
  876. package/dist/stencil-library/stencil-toggle.entry.js +1 -1
  877. package/dist/stencil-library/text-field_2.entry.js +1 -1
  878. package/dist/stencil-library/types-C9Z-dgvN.js +1 -0
  879. package/dist/stencil-library/udp-adornment.entry.js +1 -1
  880. package/dist/stencil-library/udp-advanced-search-builder.entry.js +1 -1
  881. package/dist/stencil-library/udp-advanced-search-filter-group.entry.js +1 -1
  882. package/dist/stencil-library/udp-ag-area-chart.entry.js +1 -1
  883. package/dist/stencil-library/udp-ag-bar-chart_4.entry.js +1 -1
  884. package/dist/stencil-library/udp-ag-bubble-chart.entry.js +1 -1
  885. package/dist/stencil-library/udp-ag-combo-chart.entry.js +1 -1
  886. package/dist/stencil-library/udp-ag-donut-chart.entry.js +1 -1
  887. package/dist/stencil-library/udp-ag-line-chart.entry.js +1 -1
  888. package/dist/stencil-library/udp-ag-pie-chart.entry.js +1 -1
  889. package/dist/stencil-library/udp-ag-scatter-chart.entry.js +1 -1
  890. package/dist/stencil-library/udp-attachment-item_2.entry.js +1 -1
  891. package/dist/stencil-library/udp-attachment-list.entry.js +1 -1
  892. package/dist/stencil-library/udp-bar-chart.entry.js +1 -1
  893. package/dist/stencil-library/udp-calendar-base.entry.js +1 -1
  894. package/dist/stencil-library/udp-calendar-day.entry.js +1 -1
  895. package/dist/stencil-library/udp-calendar-month.entry.js +1 -1
  896. package/dist/stencil-library/udp-calendar-week.entry.js +1 -1
  897. package/dist/stencil-library/udp-calendar-year.entry.js +1 -1
  898. package/dist/stencil-library/udp-card-action-area.entry.js +1 -1
  899. package/dist/stencil-library/udp-card_6.entry.js +1 -1
  900. package/dist/stencil-library/udp-charts-example.entry.js +1 -1
  901. package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
  902. package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
  903. package/dist/stencil-library/udp-container-query.entry.js +1 -1
  904. package/dist/stencil-library/udp-container.entry.js +1 -1
  905. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js +1 -1
  906. package/dist/stencil-library/udp-dynamic-form.entry.js +1 -1
  907. package/dist/stencil-library/udp-fluent-file-input.entry.js +1 -1
  908. package/dist/stencil-library/udp-fluent-image.entry.js +1 -1
  909. package/dist/stencil-library/udp-fluent-inline-edit_6.entry.js +1 -0
  910. package/dist/stencil-library/udp-fluent-link.entry.js +1 -1
  911. package/dist/stencil-library/udp-fluent-list-input.entry.js +1 -0
  912. package/dist/stencil-library/udp-fluent-list-item_2.entry.js +1 -0
  913. package/dist/stencil-library/udp-fluent-location-input.entry.js +1 -1
  914. package/dist/stencil-library/udp-fluent-number-input.entry.js +1 -1
  915. package/dist/stencil-library/udp-fluent-signature-input.entry.js +1 -1
  916. package/dist/stencil-library/udp-fluent-table-input.entry.js +1 -0
  917. package/dist/stencil-library/udp-forms-builder-style-override.entry.js +1 -1
  918. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
  919. package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
  920. package/dist/stencil-library/udp-forms-list.entry.js +1 -1
  921. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  922. package/dist/stencil-library/udp-kpi-card.entry.js +1 -1
  923. package/dist/stencil-library/udp-kpi-cards.entry.js +1 -1
  924. package/dist/stencil-library/udp-map.entry.js +1 -1
  925. package/dist/stencil-library/udp-menu.entry.js +1 -1
  926. package/dist/stencil-library/udp-page.entry.js +1 -1
  927. package/dist/stencil-library/udp-question-form-builder.entry.js +1 -0
  928. package/dist/stencil-library/udp-question-tally-adapter.entry.js +1 -0
  929. package/dist/stencil-library/udp-sankey-chart.entry.js +1 -1
  930. package/dist/stencil-library/udp-skeleton-loading.entry.js +1 -1
  931. package/dist/stencil-library/udp-split-screen.entry.js +1 -1
  932. package/dist/stencil-library/udp-stepper-actions.entry.js +1 -1
  933. package/dist/stencil-library/udp-stepper-content.entry.js +1 -1
  934. package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
  935. package/dist/stencil-library/udp-stepper-nav.entry.js +1 -1
  936. package/dist/stencil-library/udp-tab.entry.js +1 -1
  937. package/dist/stencil-library/udp-timeline-connector.entry.js +1 -1
  938. package/dist/stencil-library/udp-timeline-dot.entry.js +1 -1
  939. package/dist/stencil-library/udp-timeline-item.entry.js +1 -1
  940. package/dist/stencil-library/udp-timeline-separator.entry.js +1 -1
  941. package/dist/stencil-library/udp-timeline.entry.js +1 -1
  942. package/dist/stencil-library/udp-xy-chart.entry.js +1 -1
  943. package/dist/stencil-library/udp-xy-multi-series-chart.entry.js +1 -1
  944. package/dist/stencil-library/{udpOperatorHelper-Tmn9i7-P.js → udpOperatorHelper-CBSPgsN-.js} +1 -1
  945. package/dist/types/components/advanced-search/filter-conditions/filter-conditions.d.ts +4 -0
  946. package/dist/types/components/advanced-search/ui/logical-search-indicator/logical-search-indicator.d.ts +4 -0
  947. package/dist/types/components/attachment-list/udp-attachment-item.d.ts +4 -0
  948. package/dist/types/components/attachment-list/udp-attachment-list.d.ts +4 -0
  949. package/dist/types/components/buttons/icon-button/radio-button/udp-radio-button.d.ts +4 -0
  950. package/dist/types/components/buttons/icon-button/stencil-icon-button-grid-action-header.d.ts +4 -0
  951. package/dist/types/components/buttons/udp-button/udp-button.d.ts +3 -0
  952. package/dist/types/components/charts/udp-charts-example.d.ts +3 -0
  953. package/dist/types/components/data-display/adornment/udp-adornment/udp-adornment.d.ts +4 -0
  954. package/dist/types/components/data-display/badge/udp-badge.d.ts +4 -0
  955. package/dist/types/components/data-display/cards/udp-ambient-card/udp-ambient-card.d.ts +4 -0
  956. package/dist/types/components/data-display/cards/udp-card/udp-card-action-area/udp-card-action-area.d.ts +4 -0
  957. package/dist/types/components/data-display/cards/udp-card/udp-card-actions/udp-card-actions.d.ts +4 -0
  958. package/dist/types/components/data-display/cards/udp-card/udp-card-content/udp-card-content.d.ts +4 -0
  959. package/dist/types/components/data-display/cards/udp-card/udp-card-header/udp-card-header.d.ts +4 -0
  960. package/dist/types/components/data-display/cards/udp-card/udp-card-media/udp-card-media.d.ts +4 -0
  961. package/dist/types/components/data-display/cards/udp-card/udp-card.d.ts +4 -0
  962. package/dist/types/components/data-display/chips/udp-chip.d.ts +3 -0
  963. package/dist/types/components/data-display/divider/udp-divider.d.ts +4 -0
  964. package/dist/types/components/data-display/empty-state-display/udp-empty-state-display.d.ts +4 -0
  965. package/dist/types/components/data-display/headers/udp-column-header.d.ts +4 -0
  966. package/dist/types/components/data-display/headers/udp-page-header/udp-page-header.d.ts +4 -0
  967. package/dist/types/components/data-display/hint-panel/hint-panel.d.ts +4 -0
  968. package/dist/types/components/data-display/list-renderer/udp-list-renderer.d.ts +4 -0
  969. package/dist/types/components/data-display/pop-over/udp-pop-over.d.ts +4 -0
  970. package/dist/types/components/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.d.ts +4 -0
  971. package/dist/types/components/data-display/primary-action-header/primary-action-header.d.ts +4 -0
  972. package/dist/types/components/data-display/simple-card/simple-card.d.ts +4 -0
  973. package/dist/types/components/data-display/tool-tip/udp-ambient-tool-tip.d.ts +4 -0
  974. package/dist/types/components/data-display/tree/tree-list-item/search-item/search-list-item.d.ts +4 -0
  975. package/dist/types/components/data-display/tree/tree-list-item/tree-list-item.d.ts +4 -0
  976. package/dist/types/components/data-display/udp-avatar/udp-avatar.d.ts +4 -0
  977. package/dist/types/components/dialogs/udp-dialog.d.ts +4 -0
  978. package/dist/types/components/drawers/udp-side-sheet/udp-side-sheet.d.ts +3 -0
  979. package/dist/types/components/feedback/udp-notification/alerts/upd-alert-banner.d.ts +4 -0
  980. package/dist/types/components/feedback/udp-notification/udp-notification.d.ts +4 -0
  981. package/dist/types/components/fluent-ui/accordion/udp-accordion.d.ts +7 -0
  982. package/dist/types/components/fluent-ui/avatar/udp-fluent-avatar.d.ts +6 -1
  983. package/dist/types/components/fluent-ui/checkbox/udp-fluent-checkbox.d.ts +2 -0
  984. package/dist/types/components/fluent-ui/dialog/udp-fluent-dialog.d.ts +2 -0
  985. package/dist/types/components/fluent-ui/drawer/udp-fluent-drawer.d.ts +7 -0
  986. package/dist/types/components/fluent-ui/icon/udp-fluent-icon.d.ts +2 -0
  987. package/dist/types/components/fluent-ui/icon-button/udp-fluent-icon-button.d.ts +2 -0
  988. package/dist/types/components/fluent-ui/image/udp-fluent-image.d.ts +5 -0
  989. package/dist/types/components/fluent-ui/list-input/udp-fluent-list-input.d.ts +40 -0
  990. package/dist/types/components/fluent-ui/switch/udp-fluent-switch.d.ts +2 -0
  991. package/dist/types/components/fluent-ui/table-input/udp-fluent-table-input.d.ts +61 -0
  992. package/dist/types/components/fluent-ui/table-input/udp-fluent-table-input.types.d.ts +22 -0
  993. package/dist/types/components/fluent-ui/tooltip/udp-tooltip.d.ts +2 -0
  994. package/dist/types/components/forms/udp-question-form/__forms-harness__/assert.d.ts +9 -0
  995. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixture.types.d.ts +83 -0
  996. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/checkbox.fixtures.d.ts +18 -0
  997. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/date-selector.fixtures.d.ts +29 -0
  998. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/date-time-selector.fixtures.d.ts +14 -0
  999. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/dropdown-multiple-select.fixtures.d.ts +16 -0
  1000. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/dropdown-single-select.fixtures.d.ts +12 -0
  1001. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/file-upload.fixtures.d.ts +21 -0
  1002. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/form-metadata-display.fixtures.d.ts +17 -0
  1003. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/hidden.fixtures.d.ts +15 -0
  1004. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/image-upload.fixtures.d.ts +13 -0
  1005. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/list-multi-select.fixtures.d.ts +13 -0
  1006. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/location-additional.fixtures.d.ts +18 -0
  1007. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/location-default-location.fixture.d.ts +12 -0
  1008. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/location-required.fixture.d.ts +10 -0
  1009. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/multi-line-text.fixtures.d.ts +13 -0
  1010. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/number.fixtures.d.ts +20 -0
  1011. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/paragraph.fixtures.d.ts +12 -0
  1012. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/radio-button.fixtures.d.ts +14 -0
  1013. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/signature.fixtures.d.ts +24 -0
  1014. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/single-line-text.fixtures.d.ts +18 -0
  1015. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/table.fixtures.d.ts +13 -0
  1016. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/tally.fixtures.d.ts +20 -0
  1017. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/time-selector.fixtures.d.ts +23 -0
  1018. package/dist/types/components/forms/udp-question-form/__forms-harness__/fixtures/yes-no.fixtures.d.ts +17 -0
  1019. package/dist/types/components/forms/udp-question-form/__forms-harness__/harness-dom.d.ts +30 -0
  1020. package/dist/types/components/forms/udp-question-form/__forms-harness__/harness.d.ts +49 -0
  1021. package/dist/types/components/forms/udp-question-form/builder/components/add-question-drawer-content.d.ts +14 -0
  1022. package/dist/types/components/forms/udp-question-form/builder/components/configure-question-drawer.d.ts +48 -0
  1023. package/dist/types/components/forms/udp-question-form/builder/components/form-structure-sidebar.d.ts +44 -0
  1024. package/dist/types/components/forms/udp-question-form/builder/components/preview-pane.d.ts +16 -0
  1025. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/GenericQuestionConfig.d.ts +29 -0
  1026. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/ValidationRulesSection.d.ts +20 -0
  1027. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/index.d.ts +5 -0
  1028. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/FileUploadConfig.d.ts +2 -0
  1029. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/FormMetadataDisplayConfig.d.ts +2 -0
  1030. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/ListOptionsConfig.d.ts +2 -0
  1031. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/LocationConfig.d.ts +2 -0
  1032. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/ParagraphConfig.d.ts +2 -0
  1033. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/SignatureConfig.d.ts +2 -0
  1034. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/TableConfig.d.ts +2 -0
  1035. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/TallyConfig.d.ts +2 -0
  1036. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/typeSpecific/index.d.ts +17 -0
  1037. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/types.d.ts +59 -0
  1038. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/udp-question-config-fluent.d.ts +45 -0
  1039. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/utils/configValues.d.ts +17 -0
  1040. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/utils/dateTimeFormat.d.ts +8 -0
  1041. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/utils/index.d.ts +3 -0
  1042. package/dist/types/components/forms/udp-question-form/builder/components/questionConfig/utils/sortableRef.d.ts +16 -0
  1043. package/dist/types/components/forms/udp-question-form/builder/components/section-card.d.ts +19 -0
  1044. package/dist/types/components/forms/udp-question-form/builder/components/section-edit-drawer-content.d.ts +23 -0
  1045. package/dist/types/components/forms/udp-question-form/builder/components/section-question-item.d.ts +16 -0
  1046. package/dist/types/components/forms/udp-question-form/builder/config/constants.d.ts +7 -0
  1047. package/dist/types/components/forms/udp-question-form/builder/config/index.d.ts +1 -0
  1048. package/dist/types/components/forms/udp-question-form/builder/form-item-types/index.d.ts +4 -0
  1049. package/dist/types/components/forms/udp-question-form/builder/form-item-types/registry.d.ts +5 -0
  1050. package/dist/types/components/forms/udp-question-form/builder/form-item-types/templates.d.ts +19 -0
  1051. package/dist/types/components/forms/udp-question-form/builder/form-item-types/types.d.ts +36 -0
  1052. package/dist/types/components/forms/udp-question-form/builder/form-item-types/validation.d.ts +50 -0
  1053. package/dist/types/components/forms/udp-question-form/builder/udp-question-form-builder.d.ts +335 -0
  1054. package/dist/types/components/forms/udp-question-form/builder/utils/builder-api.d.ts +66 -0
  1055. package/dist/types/components/forms/udp-question-form/builder/utils/form-versions.d.ts +7 -0
  1056. package/dist/types/components/forms/udp-question-form/builder/utils/question-template.d.ts +23 -0
  1057. package/dist/types/components/forms/udp-question-form/core/choice-options.d.ts +12 -0
  1058. package/dist/types/components/forms/udp-question-form/core/defaults.d.ts +24 -0
  1059. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/common-keys.d.ts +11 -0
  1060. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/engine.d.ts +21 -0
  1061. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/index.d.ts +3 -0
  1062. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/checkbox.d.ts +12 -0
  1063. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/date-selector.d.ts +12 -0
  1064. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/date-time-selector.d.ts +14 -0
  1065. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/dropdown-multiple-select.d.ts +12 -0
  1066. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/dropdown-single-select.d.ts +12 -0
  1067. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/file-upload.d.ts +10 -0
  1068. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/form-metadata-display.d.ts +9 -0
  1069. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/hidden.d.ts +8 -0
  1070. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/image-upload.d.ts +8 -0
  1071. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/list-multi-select.d.ts +12 -0
  1072. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/location.d.ts +16 -0
  1073. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/multi-line-text.d.ts +7 -0
  1074. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/number.d.ts +10 -0
  1075. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/paragraph.d.ts +9 -0
  1076. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/radio-button.d.ts +12 -0
  1077. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/signature.d.ts +7 -0
  1078. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/single-line-text.d.ts +11 -0
  1079. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/table.d.ts +16 -0
  1080. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/tally.d.ts +17 -0
  1081. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/time-selector.d.ts +12 -0
  1082. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/per-type/yes-no.d.ts +11 -0
  1083. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/registry.d.ts +5 -0
  1084. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/toggles.d.ts +13 -0
  1085. package/dist/types/components/forms/udp-question-form/core/field-properties-schemas/types.d.ts +108 -0
  1086. package/dist/types/components/forms/udp-question-form/core/field-properties.d.ts +155 -0
  1087. package/dist/types/components/forms/udp-question-form/core/index.d.ts +8 -0
  1088. package/dist/types/components/forms/udp-question-form/core/parse.d.ts +50 -0
  1089. package/dist/types/components/forms/udp-question-form/core/serialize.d.ts +82 -0
  1090. package/dist/types/components/forms/udp-question-form/core/slot-index.d.ts +31 -0
  1091. package/dist/types/components/forms/udp-question-form/core/types.d.ts +119 -0
  1092. package/dist/types/components/forms/udp-question-form/core/validation/consistency.d.ts +11 -0
  1093. package/dist/types/components/forms/udp-question-form/core/validation/emptiness.d.ts +7 -0
  1094. package/dist/types/components/forms/udp-question-form/core/validation/engine.d.ts +54 -0
  1095. package/dist/types/components/forms/udp-question-form/core/validation/index.d.ts +15 -0
  1096. package/dist/types/components/forms/udp-question-form/core/validation/intrinsic.d.ts +38 -0
  1097. package/dist/types/components/forms/udp-question-form/core/validation/registry.d.ts +31 -0
  1098. package/dist/types/components/forms/udp-question-form/core/validation/rules/age.d.ts +7 -0
  1099. package/dist/types/components/forms/udp-question-form/core/validation/rules/index.d.ts +42 -0
  1100. package/dist/types/components/forms/udp-question-form/core/validation/rules/integer-only.d.ts +6 -0
  1101. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-age.d.ts +6 -0
  1102. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-date-time.d.ts +2 -0
  1103. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-date.d.ts +2 -0
  1104. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-decimal-places.d.ts +7 -0
  1105. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-length.d.ts +2 -0
  1106. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-rows.d.ts +6 -0
  1107. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-selections.d.ts +7 -0
  1108. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-time.d.ts +2 -0
  1109. package/dist/types/components/forms/udp-question-form/core/validation/rules/max-value.d.ts +2 -0
  1110. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-age.d.ts +8 -0
  1111. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-date-time.d.ts +2 -0
  1112. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-date.d.ts +2 -0
  1113. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-length.d.ts +2 -0
  1114. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-rows.d.ts +8 -0
  1115. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-selections.d.ts +9 -0
  1116. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-time.d.ts +2 -0
  1117. package/dist/types/components/forms/udp-question-form/core/validation/rules/min-value.d.ts +2 -0
  1118. package/dist/types/components/forms/udp-question-form/core/validation/rules/must-be-yes.d.ts +7 -0
  1119. package/dist/types/components/forms/udp-question-form/core/validation/rules/no-future-date-time.d.ts +7 -0
  1120. package/dist/types/components/forms/udp-question-form/core/validation/rules/no-future-date.d.ts +9 -0
  1121. package/dist/types/components/forms/udp-question-form/core/validation/rules/no-past-date-time.d.ts +8 -0
  1122. package/dist/types/components/forms/udp-question-form/core/validation/rules/no-past-date.d.ts +9 -0
  1123. package/dist/types/components/forms/udp-question-form/core/validation/rules/pattern.d.ts +19 -0
  1124. package/dist/types/components/forms/udp-question-form/core/validation/rules/required.d.ts +7 -0
  1125. package/dist/types/components/forms/udp-question-form/core/validation/rules/step.d.ts +6 -0
  1126. package/dist/types/components/forms/udp-question-form/core/validation/types.d.ts +170 -0
  1127. package/dist/types/components/forms/udp-question-form/follow-up-forms-api.d.ts +14 -0
  1128. package/dist/types/components/forms/udp-question-form/renderer/runtime/codecs.d.ts +87 -0
  1129. package/dist/types/components/forms/udp-question-form/renderer/runtime/comments-api.d.ts +33 -0
  1130. package/dist/types/components/forms/udp-question-form/renderer/runtime/comments-state.d.ts +108 -0
  1131. package/dist/types/components/forms/udp-question-form/renderer/runtime/dynamic-sections.d.ts +135 -0
  1132. package/dist/types/components/forms/udp-question-form/renderer/runtime/follow-up-forms.d.ts +99 -0
  1133. package/dist/types/components/forms/udp-question-form/renderer/runtime/index.d.ts +13 -0
  1134. package/dist/types/components/forms/udp-question-form/renderer/runtime/initial-values.d.ts +53 -0
  1135. package/dist/types/components/forms/udp-question-form/renderer/runtime/parse.d.ts +86 -0
  1136. package/dist/types/components/forms/udp-question-form/renderer/runtime/progress.d.ts +28 -0
  1137. package/dist/types/components/forms/udp-question-form/renderer/runtime/serialize-submission.d.ts +82 -0
  1138. package/dist/types/components/forms/udp-question-form/renderer/runtime/submit.d.ts +43 -0
  1139. package/dist/types/components/forms/udp-question-form/renderer/runtime/types.d.ts +128 -0
  1140. package/dist/types/components/forms/udp-question-form/renderer/runtime/url-seed.d.ts +36 -0
  1141. package/dist/types/components/forms/udp-question-form/renderer/runtime/validate-submission.d.ts +48 -0
  1142. package/dist/types/components/forms/udp-question-form/renderer/runtime/wire-adapter.d.ts +17 -0
  1143. package/dist/types/components/forms/udp-question-form/renderer/udp-question-form-renderer.d.ts +418 -0
  1144. package/dist/types/components/forms/udp-question-form/renderer/ui/adapters/udp-question-tally-adapter.d.ts +58 -0
  1145. package/dist/types/components/forms/udp-question-form/renderer/ui/avatar.d.ts +2 -0
  1146. package/dist/types/components/forms/udp-question-form/renderer/ui/comment-item.d.ts +9 -0
  1147. package/dist/types/components/forms/udp-question-form/renderer/ui/comment-thread.d.ts +39 -0
  1148. package/dist/types/components/forms/udp-question-form/renderer/ui/follow-up-picker-dialog.d.ts +24 -0
  1149. package/dist/types/components/forms/udp-question-form/renderer/ui/form-shell.d.ts +108 -0
  1150. package/dist/types/components/forms/udp-question-form/renderer/ui/index.d.ts +6 -0
  1151. package/dist/types/components/forms/udp-question-form/renderer/ui/question-renderer.d.ts +99 -0
  1152. package/dist/types/components/forms/udp-question-form/renderer/ui/question-view-renderer.d.ts +33 -0
  1153. package/dist/types/components/forms/udp-question-form/renderer/ui/section-card.d.ts +36 -0
  1154. package/dist/types/components/forms/udp-question-form/renderer/url.d.ts +29 -0
  1155. package/dist/types/components/forms/udp-question-form/version-drawer/udp-form-version-drawer.d.ts +21 -0
  1156. package/dist/types/components/grid/ag-table/ag-table.d.ts +4 -0
  1157. package/dist/types/components/grid/grid-primary-bar/grid-primary-bar.d.ts +4 -0
  1158. package/dist/types/components/grid/hotlists/udp-hotlist-form/udp-hotlist-form.d.ts +4 -0
  1159. package/dist/types/components/grid/new-grid/gridFunctions/columnSelector.d.ts +44 -0
  1160. package/dist/types/components/grid/new-grid/interfaces/grid.d.ts +7 -1
  1161. package/dist/types/components/inputs/address-search/address-search.d.ts +4 -0
  1162. package/dist/types/components/inputs/checkbox/check-box.d.ts +3 -0
  1163. package/dist/types/components/inputs/date-selector/udp-date-selector.d.ts +3 -0
  1164. package/dist/types/components/inputs/date-time-selector/udp-datetime-selector.d.ts +3 -0
  1165. package/dist/types/components/inputs/file-upload/file-upload.d.ts +3 -0
  1166. package/dist/types/components/inputs/form metadata display/form-metadata-display.d.ts +3 -0
  1167. package/dist/types/components/inputs/image-upload/image-upload.d.ts +3 -0
  1168. package/dist/types/components/inputs/location-input/location-input.d.ts +4 -0
  1169. package/dist/types/components/inputs/numeric-field/numeric-field.d.ts +3 -0
  1170. package/dist/types/components/inputs/selectable-list/selectable-list.d.ts +3 -0
  1171. package/dist/types/components/inputs/signature-input/signature-input.d.ts +4 -0
  1172. package/dist/types/components/inputs/tally/tally.d.ts +3 -0
  1173. package/dist/types/components/inputs/text-area/text-area.d.ts +3 -0
  1174. package/dist/types/components/inputs/text-field/text-field.d.ts +3 -0
  1175. package/dist/types/components/inputs/time-selector/udp-time-selector.d.ts +3 -0
  1176. package/dist/types/components/inputs/udp-selector/udp-selector.d.ts +3 -0
  1177. package/dist/types/components/layout/primary-action-header/udp-primary-action-header.d.ts +9 -2
  1178. package/dist/types/components/loaders/udp-grid-loader/udp-grid-loader.d.ts +4 -0
  1179. package/dist/types/components/loaders/udp-linear-loader/udp-linear-loader.d.ts +4 -0
  1180. package/dist/types/components/loaders/udp-skeleton-loading.d.ts +4 -0
  1181. package/dist/types/components/menu/udp-menu.d.ts +4 -0
  1182. package/dist/types/components/navigation/pagination/udp-pagination.d.ts +4 -0
  1183. package/dist/types/components/navigation/udp-link/udp-link.d.ts +4 -0
  1184. package/dist/types/components/new-form/field/udp-field.d.ts +24 -1
  1185. package/dist/types/components/new-form/form/udp-form-component.d.ts +109 -8
  1186. package/dist/types/components/stepper/udp-stepper-demo.d.ts +4 -0
  1187. package/dist/types/components/tabs/tab/tabs/udp-tabs.d.ts +4 -0
  1188. package/dist/types/components/tabs/tab/udp-tab.d.ts +4 -0
  1189. package/dist/types/components/toolbars/app-bar/app-bar.d.ts +4 -0
  1190. package/dist/types/components/unity-typography/unity-typography.d.ts +4 -0
  1191. package/dist/types/components.d.ts +1793 -31
  1192. package/dist/types/udp-utilities/location/getCachedAzureMapsProviders.d.ts +2 -0
  1193. package/dist/types/udp-utilities/search/searchObject.d.ts +1 -0
  1194. package/package.json +7 -2
  1195. package/dist/cjs/udp-fluent-inline-edit.cjs.entry.js +0 -35
  1196. package/dist/cjs/udp-fluent-list-item.cjs.entry.js +0 -126
  1197. package/dist/cjs/udp-list.cjs.entry.js +0 -200
  1198. package/dist/cjs/udp-sidebar-layout.cjs.entry.js +0 -67
  1199. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +0 -28
  1200. package/dist/esm/udp-fluent-inline-edit.entry.js +0 -33
  1201. package/dist/esm/udp-fluent-list-item.entry.js +0 -124
  1202. package/dist/esm/udp-list.entry.js +0 -198
  1203. package/dist/esm/udp-sidebar-layout.entry.js +0 -65
  1204. package/dist/esm/udp-vertical-spacer.entry.js +0 -26
  1205. package/dist/stencil-library/searchObject-CDJVsMG_.js +0 -1
  1206. package/dist/stencil-library/udp-fluent-inline-edit.entry.js +0 -1
  1207. package/dist/stencil-library/udp-fluent-list-item.entry.js +0 -1
  1208. package/dist/stencil-library/udp-list.entry.js +0 -1
  1209. package/dist/stencil-library/udp-sidebar-layout.entry.js +0 -1
  1210. package/dist/stencil-library/udp-vertical-spacer.entry.js +0 -1
@@ -0,0 +1,1382 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { getIn, setIn } from "final-form";
3
+ import Sortable from "sortablejs";
4
+ import { createNewLoadedForm, createNewQuestion, createNewSection, checkRangeConsistency, FormType, getAuthorRulesFor, } from "../core";
5
+ import { getType, validateForm, validateQuestionItem } from "./form-item-types";
6
+ import { getQuestionTemplatesGroupedByCategory } from "./utils/question-template";
7
+ import { formRegistry } from "../../../../utilities/global-form-registry/form-registry";
8
+ import { getCurrentTenantId } from "../../../../udp-utilities/tenant/tenantUtils";
9
+ import { FormNotFoundError, fetchFollowUpFormsList, fetchLookupOptions, loadFormData, saveForm, } from "./utils/builder-api";
10
+ import { getFormVersions } from "./utils/form-versions";
11
+ import { renderSectionCard } from "./components/section-card";
12
+ import { renderAddQuestionDrawerContent } from "./components/add-question-drawer-content";
13
+ import { renderSectionEditDrawer } from "./components/section-edit-drawer-content";
14
+ import { renderPreviewPane } from "./components/preview-pane";
15
+ import { renderFormStructureTree } from "./components/form-structure-sidebar";
16
+ import { renderConfigureQuestionDrawer } from "./components/configure-question-drawer";
17
+ import { toForm as fpToForm, fromForm as fpFromForm, } from "../core/field-properties-schemas";
18
+ /**
19
+ * Stable IDs used to register the drawer forms with `formRegistry`. The footer
20
+ * Update / Save buttons live outside the shadow root, so they reach back into
21
+ * each drawer's `<udp-form-component>` via `form="<id>" type="submit"` — the
22
+ * registry resolves the ID to the inner form element. Keep these in one place
23
+ * so register / unregister / `form=` references can't drift.
24
+ */
25
+ const FORM_IDS = {
26
+ QUESTION_CONFIG: 'question-config-form',
27
+ SECTION_EDIT: 'section-edit-form',
28
+ };
29
+ export class UdpQuestionFormBuilder {
30
+ constructor() {
31
+ // --- Feature toggles ---
32
+ this.isPublicFormConfigOn = false;
33
+ this.isCommentingConfigOn = false;
34
+ this.isFollowUpFormConfigOn = false;
35
+ this.loadedForm = createNewLoadedForm({ tenantId: '' });
36
+ /**
37
+ * Undo / redo stacks of past `loadedForm` snapshots. Pushed by `recordHistory`
38
+ * at "checkpoint" mutation moments: structural changes (add/delete/duplicate/
39
+ * reorder section or question) push synchronously; drawer edits collapse to
40
+ * one entry — the snapshot is taken on drawer open, pushed on drawer close
41
+ * only if the user actually changed something. Initial form load and
42
+ * post-save reload skip history (they aren't user gestures). Cap at
43
+ * `HISTORY_CAP` to bound memory.
44
+ */
45
+ this.undoStack = [];
46
+ this.redoStack = [];
47
+ this.loadedFormOnDrawerOpen = null;
48
+ /**
49
+ * Open-drawer state is encoded as a nullable index — not a boolean +
50
+ * separate index pair. `null` means closed; a number means "this drawer is
51
+ * open for that target". Eliminates the boolean/index-out-of-sync class of
52
+ * bug structurally.
53
+ */
54
+ this.activeSectionIndex = null;
55
+ this.editingQuestion = null;
56
+ /**
57
+ * Initial values handed to the Configure-drawer's `<udp-form-component>`.
58
+ * Snapshotted when the drawer opens so the object identity is stable across
59
+ * re-renders — Final Form re-runs `form.initialize` on every `initialValues`
60
+ * prop change (and would clobber pristine fields each render otherwise).
61
+ * Step-2 of the drawer→Final Form migration tracks only the generic-section
62
+ * fields here (`questionText`, `helperText`, `referenceCode`, `required`);
63
+ * the type-specific inputs continue to mutate `sectionsDraft` via the
64
+ * existing handler flow until later migration steps.
65
+ */
66
+ this.editDrawerInitialValues = {};
67
+ this.isSaving = false;
68
+ this.isNewForm = true;
69
+ this.isMostRecentFormVersion = false;
70
+ /**
71
+ * Structured load error: `'notFound'` when the backend returned no row
72
+ * for the requested formId (typically because the form was deleted, the
73
+ * tenant header doesn't match, or the URL points at a stale id);
74
+ * `'generic'` for everything else (network, parse, etc.). `null` when
75
+ * the load succeeded or is still in flight. Drives a friendly per-cause
76
+ * empty state in `render()`.
77
+ */
78
+ this.loadError = null;
79
+ this.isLoading = false;
80
+ /** Pending question to delete; when set, the delete-confirm dialog is open. */
81
+ this.deleteQuestionPending = null;
82
+ /** Pending section to delete; when set, the delete-section confirm dialog is open. */
83
+ this.deleteSectionPending = null;
84
+ /** Filter string for the Add Form Question drawer (name, category, or keywords). */
85
+ this.addQuestionFilter = '';
86
+ /** Section being edited (index into sections). When non-null, section edit drawer is open. */
87
+ this.editingSectionIndex = null;
88
+ /** When true, the version list drawer is open. */
89
+ this.isVersionDrawerOpen = false;
90
+ /** List of version numbers for the current form. */
91
+ this.versionList = [];
92
+ /** Lookup options for list-type questions; fetched from `/UdpLookup` on init. */
93
+ this.lookupOptions = [];
94
+ /**
95
+ * Forms in the tenant tagged `type: FollowUp`, surfaced in the per-question
96
+ * follow-up-allowlist picker. Fetched on builder init from
97
+ * `/UdpFormLatestVersionView/search`; empty if the fetch fails (non-blocking).
98
+ */
99
+ this.followUpFormOptions = [];
100
+ /**
101
+ * Which full-screen view is showing: the builder ('build') or the live
102
+ * renderer ('preview'). Tabs at the top swap between them; each is full
103
+ * width. Defaults to 'build'.
104
+ */
105
+ this.activeTab = 'build';
106
+ /**
107
+ * Debounced mirror of `loadedForm` fed to the preview pane. `loadedForm`
108
+ * changes on every keystroke in the Configure drawer / Add Question
109
+ * sidebar; pushing each one straight to the renderer means it re-runs
110
+ * `parseForm` / `buildInitialValuesFromSubmission` / `@Watch('loadedForm')`
111
+ * downstream on every character. The sync is paused entirely while the
112
+ * Build tab is active (no point re-rendering off-screen) and
113
+ * snapshot-immediately when the Preview tab is selected. `null` only before
114
+ * the Preview tab is first opened.
115
+ */
116
+ this.previewLoadedForm = null;
117
+ /** Save confirmation modal — used to surface Private/Public choice on save. */
118
+ this.isSaveModalOpen = false;
119
+ /** Private toggle value held inside the save modal until Confirm. */
120
+ this.saveModalPrivate = true;
121
+ /**
122
+ * Whether this form is being saved as a follow-up form template. Held in
123
+ * modal state until Confirm so cancelling a save doesn't mutate
124
+ * `form.type`. Gated by `isFollowUpFormConfigOn` — when the flag is off,
125
+ * the toggle isn't rendered and the existing `form.type` round-trips
126
+ * unchanged.
127
+ */
128
+ this.saveModalIsFollowUp = false;
129
+ this.sortableQuestionsMap = new Map();
130
+ /**
131
+ * Serialized snapshot of the last-saved `loadedForm`. Refreshed on initial
132
+ * load and after every successful save; `hasUnsavedChanges` compares the
133
+ * live form against it. Comparing serialized strings (rather than holding a
134
+ * boolean toggled at each mutation point) means undo / redo back to the
135
+ * saved state correctly reads as "no unsaved changes" with no per-mutation
136
+ * bookkeeping.
137
+ */
138
+ this.savedFormSnapshot = '';
139
+ /** Pending preview-sync timer. See `previewLoadedForm` for rationale. */
140
+ this.previewSyncTimer = null;
141
+ /**
142
+ * Publish the host's top edge (distance from the viewport top) as
143
+ * `--builder-top`, so the host can size itself to `100dvh − top` and fill the
144
+ * remaining viewport region exactly — sidebar and canvas then scroll inside it
145
+ * (full-height rail, no page-flow). Measured on load + resize; the top only
146
+ * shifts when chrome above the builder changes, which tracks viewport width.
147
+ */
148
+ this.measureBuilderTop = () => {
149
+ if (!this.hostEl)
150
+ return;
151
+ const top = Math.max(0, this.hostEl.getBoundingClientRect().top);
152
+ this.hostEl.style.setProperty('--builder-top', `${top}px`);
153
+ };
154
+ this.handleTabChange = (tab) => {
155
+ const next = tab === 'preview' ? 'preview' : 'build';
156
+ this.activeTab = next;
157
+ if (next === 'preview') {
158
+ // Snapshot synchronously so the renderer mounts with the live schema,
159
+ // not a stale (or null) one. The debounced sync takes over for
160
+ // subsequent edits while the Preview tab stays active.
161
+ this.previewLoadedForm = this.loadedForm;
162
+ }
163
+ else {
164
+ this.clearPreviewSyncTimer();
165
+ }
166
+ };
167
+ this.openSaveModal = () => {
168
+ var _a;
169
+ this.saveModalPrivate = (_a = this.loadedForm.form.isPrivate) !== null && _a !== void 0 ? _a : true;
170
+ this.saveModalIsFollowUp = this.loadedForm.form.type === FormType.FollowUp;
171
+ this.isSaveModalOpen = true;
172
+ };
173
+ this.cancelSaveModal = () => {
174
+ this.isSaveModalOpen = false;
175
+ };
176
+ this.confirmSaveModal = async () => {
177
+ this.updateForm({
178
+ isPrivate: this.saveModalPrivate,
179
+ type: this.saveModalIsFollowUp ? FormType.FollowUp : FormType.Standard,
180
+ });
181
+ this.isSaveModalOpen = false;
182
+ await this.handleSave();
183
+ };
184
+ /** Pop the most recent snapshot onto `loadedForm`; current state goes to redo. */
185
+ this.undo = () => {
186
+ if (this.undoStack.length === 0)
187
+ return;
188
+ const popped = this.undoStack[this.undoStack.length - 1];
189
+ this.undoStack = this.undoStack.slice(0, -1);
190
+ this.redoStack = [...this.redoStack, this.loadedForm];
191
+ this.loadedForm = popped;
192
+ };
193
+ /** Reverse of `undo`. */
194
+ this.redo = () => {
195
+ if (this.redoStack.length === 0)
196
+ return;
197
+ const popped = this.redoStack[this.redoStack.length - 1];
198
+ this.redoStack = this.redoStack.slice(0, -1);
199
+ this.undoStack = [...this.undoStack, this.loadedForm];
200
+ this.loadedForm = popped;
201
+ };
202
+ // ----- edit drawers -----
203
+ this.openEditDrawer = (sIndex, qIndex) => {
204
+ // Snapshot for one-history-entry-per-drawer-session. The configure
205
+ // drawer is live-edit — every keystroke writes to `loadedForm`. We
206
+ // collapse the whole drawer session to a single undo step by comparing
207
+ // the snapshot at open vs. loadedForm at close.
208
+ this.loadedFormOnDrawerOpen = this.loadedForm;
209
+ this.editingQuestion = { sIndex, qIndex };
210
+ this.editDrawerInitialValues = this.computeEditDrawerInitialValues(this.sections, sIndex, qIndex);
211
+ };
212
+ /**
213
+ * Subscribed to the Configure drawer's `<udp-form-component>` via
214
+ * `onFormStateUpdated`. Live-edit only: writes the current Final Form
215
+ * values back to `loadedForm.sections[s].questions[q]` on every value
216
+ * change. The drawer is a view onto the live data, not a transactional
217
+ * commit. Closing the drawer is a no-op; everything is already in
218
+ * `loadedForm`.
219
+ */
220
+ this.handleConfigFormStateUpdated = (e) => {
221
+ var _a;
222
+ const state = e.detail;
223
+ const values = (_a = state.values) !== null && _a !== void 0 ? _a : {};
224
+ if (this.editingQuestion) {
225
+ this.writeQuestionFromValues(values);
226
+ }
227
+ };
228
+ /** A rail row was clicked — open the matching section/question editor. */
229
+ this.handleStructureClick = (node) => {
230
+ if (node.kind === 'question' && node.qIndex !== undefined) {
231
+ this.openEditDrawer(node.sIndex, node.qIndex);
232
+ }
233
+ else if (node.kind === 'section') {
234
+ this.openSectionEditor(node.sIndex);
235
+ }
236
+ };
237
+ /**
238
+ * Close the Configure drawer. Edits are already in `loadedForm` (live-edit
239
+ * model) so there's no commit gesture — just dismiss the UI. Also closes
240
+ * the Add Question drawer if it was layered behind Configure (new-question
241
+ * flow), so picking a type → editing → close returns the user to the main
242
+ * builder cleanly.
243
+ */
244
+ this.closeEditDrawer = () => {
245
+ formRegistry.unregister(FORM_IDS.QUESTION_CONFIG);
246
+ // If the drawer session changed `loadedForm`, push the open-snapshot as
247
+ // one undo entry. The addQuestion-then-edit flow already pushed its own
248
+ // pre-add snapshot, so this checks the snapshot hasn't already been
249
+ // pushed (top of undo stack === snapshot).
250
+ if (this.loadedFormOnDrawerOpen !== null &&
251
+ this.loadedFormOnDrawerOpen !== this.loadedForm &&
252
+ this.undoStack[this.undoStack.length - 1] !== this.loadedFormOnDrawerOpen) {
253
+ this.recordHistory(this.loadedFormOnDrawerOpen);
254
+ }
255
+ this.loadedFormOnDrawerOpen = null;
256
+ this.editingQuestion = null;
257
+ };
258
+ /**
259
+ * Cancel the Configure drawer: discard every edit made during this drawer
260
+ * session by restoring the `loadedForm` snapshot taken when the drawer
261
+ * opened, then dismiss. Unlike `closeEditDrawer` (Done / X), which keeps the
262
+ * live edits, Cancel reverts them. For the add-question flow the snapshot is
263
+ * the pre-add state, so cancelling a brand-new question removes it.
264
+ */
265
+ this.cancelEditDrawer = () => {
266
+ formRegistry.unregister(FORM_IDS.QUESTION_CONFIG);
267
+ const snapshot = this.loadedFormOnDrawerOpen;
268
+ if (snapshot !== null && snapshot !== this.loadedForm) {
269
+ this.loadedForm = snapshot;
270
+ }
271
+ // If opening the drawer pushed a history entry (the add-question flow
272
+ // records the pre-add snapshot before appending), drop it — the action
273
+ // was cancelled, so it shouldn't linger on the undo stack.
274
+ if (snapshot !== null && this.undoStack[this.undoStack.length - 1] === snapshot) {
275
+ this.undoStack = this.undoStack.slice(0, -1);
276
+ }
277
+ this.loadedFormOnDrawerOpen = null;
278
+ this.editingQuestion = null;
279
+ };
280
+ /**
281
+ * Final Form's validate prop: returns an error map keyed by FF field path.
282
+ * Two concerns:
283
+ *
284
+ * 1. Question text required (unless the type opts out via
285
+ * `template.questionTextOptional`).
286
+ * 2. For every active validation rule on this question, run the rule's
287
+ * `validateParams` and surface its message at the first param's
288
+ * `formPath`. This catches misconfiguration (bad regex, min < 0, etc.)
289
+ * inline as the author edits — no need to wait for save.
290
+ *
291
+ * Final Form gates `submitHandler` on this map being empty.
292
+ */
293
+ this.validateDrawer = (values) => {
294
+ var _a, _b, _c;
295
+ // Errors are NESTED, not flat: Final Form resolves a field's error via
296
+ // `getIn(errors, fieldName)`, and the param inputs have dotted names
297
+ // (`fieldProperties.minSelections`). A flat `errors['fieldProperties.x']`
298
+ // key is never found — only top-level keys like `questionText` would
299
+ // surface. `setIn`/`getIn` keep the nesting correct (and merge siblings).
300
+ let errors = {};
301
+ const setError = (path, message) => {
302
+ if (getIn(errors, path) == null)
303
+ errors = setIn(errors, path, message);
304
+ };
305
+ if (!this.editingQuestion)
306
+ return errors;
307
+ const q = (_b = (_a = this.sections[this.editingQuestion.sIndex]) === null || _a === void 0 ? void 0 : _a.questions) === null || _b === void 0 ? void 0 : _b[this.editingQuestion.qIndex];
308
+ if (!q)
309
+ return errors;
310
+ const template = getType(q.fieldTypeId);
311
+ const isQuestionTextRequired = !(template === null || template === void 0 ? void 0 : template.questionTextOptional);
312
+ const questionText = typeof values.questionText === 'string' ? values.questionText : '';
313
+ if (isQuestionTextRequired && !questionText.trim()) {
314
+ setError('questionText', 'This field is required.');
315
+ }
316
+ // Live-values view of the editing question — rules read params off it.
317
+ const liveFieldProperties = values.fieldProperties && typeof values.fieldProperties === 'object'
318
+ ? values.fieldProperties
319
+ : q.fieldProperties;
320
+ const liveRequired = typeof values.required === 'boolean' ? values.required : q.required;
321
+ const synthetic = Object.assign(Object.assign({}, q), { required: liveRequired, fieldProperties: liveFieldProperties });
322
+ for (const rule of getAuthorRulesFor(q.fieldTypeId)) {
323
+ const params = rule.readParams(synthetic);
324
+ if (params === null)
325
+ continue;
326
+ const message = rule.validateParams(params);
327
+ if (!message)
328
+ continue;
329
+ // Attach the error to the first param's FF path. For multi-param rules
330
+ // we'd extend `validateParams` to return a `{ key, message }` shape;
331
+ // single-param rules (every current author rule) work uniformly.
332
+ const targetPath = (_c = rule.builder.params[0]) === null || _c === void 0 ? void 0 : _c.formPath;
333
+ if (targetPath)
334
+ setError(targetPath, message);
335
+ }
336
+ // Cross-rule consistency: a min/max pair where the minimum exceeds the
337
+ // maximum (e.g. minSelections 3 + maxSelections 1) is unsatisfiable. No
338
+ // single rule can see its sibling, so this check spans both and blocks
339
+ // the Update until the author fixes it.
340
+ for (const { formPath, message } of checkRangeConsistency(synthetic)) {
341
+ setError(formPath, message);
342
+ }
343
+ return errors;
344
+ };
345
+ this.openSectionEditor = (sIndex) => {
346
+ this.loadedFormOnDrawerOpen = this.loadedForm;
347
+ this.editingSectionIndex = sIndex;
348
+ };
349
+ this.updateSectionTitle = (sIndex, title) => {
350
+ const next = [...this.sections];
351
+ if (!next[sIndex])
352
+ return;
353
+ next[sIndex] = Object.assign(Object.assign({}, next[sIndex]), { title });
354
+ this.setSections(next);
355
+ };
356
+ this.closeSectionEditor = () => {
357
+ formRegistry.unregister(FORM_IDS.SECTION_EDIT);
358
+ if (this.loadedFormOnDrawerOpen !== null &&
359
+ this.loadedFormOnDrawerOpen !== this.loadedForm &&
360
+ this.undoStack[this.undoStack.length - 1] !== this.loadedFormOnDrawerOpen) {
361
+ this.recordHistory(this.loadedFormOnDrawerOpen);
362
+ }
363
+ this.loadedFormOnDrawerOpen = null;
364
+ this.editingSectionIndex = null;
365
+ };
366
+ /**
367
+ * Mutate the section currently being edited. The drawer's inputs call this
368
+ * on every change so edits go straight into `loadedForm` (live-edit model).
369
+ * Closing the drawer is a no-op; the data is already there.
370
+ */
371
+ this.patchEditingSection = (patch) => {
372
+ if (this.editingSectionIndex === null)
373
+ return;
374
+ const sIndex = this.editingSectionIndex;
375
+ const current = this.sections[sIndex];
376
+ if (!current)
377
+ return;
378
+ const next = this.sections.slice();
379
+ next[sIndex] = Object.assign(Object.assign({}, current), patch);
380
+ this.setSections(next);
381
+ };
382
+ // ----- add -----
383
+ this.addSection = () => {
384
+ this.recordHistory(this.loadedForm);
385
+ const order = this.sections.length + 1;
386
+ this.setSections([
387
+ ...this.sections,
388
+ createNewSection({ order, formId: this.formId, formVersion: this.version }),
389
+ ]);
390
+ };
391
+ this.openAddItemDrawer = (sectionIndex) => {
392
+ this.activeSectionIndex = sectionIndex;
393
+ };
394
+ this.closeAddItemDrawer = () => {
395
+ this.activeSectionIndex = null;
396
+ this.addQuestionFilter = '';
397
+ };
398
+ this.addQuestion = (template) => {
399
+ if (this.activeSectionIndex === null)
400
+ return;
401
+ // Snapshot the pre-add state so the Configure drawer's undo-collapse and
402
+ // Cancel both treat "add + configure" as one reversible session. Same
403
+ // reference is pushed to the undo stack below, so closeEditDrawer's
404
+ // double-push guard (top === snapshot) holds.
405
+ this.loadedFormOnDrawerOpen = this.loadedForm;
406
+ this.recordHistory(this.loadedForm);
407
+ const sIndex = this.activeSectionIndex;
408
+ const fieldTypeId = template.fieldTypeId;
409
+ const newQuestion = createNewQuestion({
410
+ fieldTypeId,
411
+ fieldProperties: Object.assign({}, template.defaultFieldProperties),
412
+ questionOrder: this.sections[sIndex].questions.length + 1,
413
+ formSectionId: this.sections[sIndex].id,
414
+ formId: this.formId,
415
+ formVersion: this.version,
416
+ });
417
+ // Append the new question to `loadedForm` directly (live-edit model).
418
+ // Closing the Configure drawer without editing leaves the new question
419
+ // in place — same UX as Notion / Linear / Figma where creating a block
420
+ // is committed; undoing is a separate gesture (the form-level Save is
421
+ // the real persistence boundary).
422
+ const currentSection = this.sections[sIndex];
423
+ const nextQuestions = [...currentSection.questions, newQuestion];
424
+ const nextSections = this.sections.slice();
425
+ nextSections[sIndex] = Object.assign(Object.assign({}, currentSection), { questions: nextQuestions });
426
+ this.setSections(nextSections);
427
+ const qIndex = nextQuestions.length - 1;
428
+ this.editingQuestion = { sIndex, qIndex };
429
+ this.editDrawerInitialValues = this.computeEditDrawerInitialValues(nextSections, sIndex, qIndex);
430
+ };
431
+ // ----- delete / duplicate -----
432
+ this.deleteSection = (index) => {
433
+ this.recordHistory(this.loadedForm);
434
+ const next = [...this.sections];
435
+ next.splice(index, 1);
436
+ this.setSections(next.map((s, i) => (Object.assign(Object.assign({}, s), { order: i + 1 }))));
437
+ };
438
+ this.requestDeleteSection = (sIndex) => {
439
+ this.deleteSectionPending = sIndex;
440
+ };
441
+ this.confirmDeleteSection = () => {
442
+ if (this.deleteSectionPending === null)
443
+ return;
444
+ const index = this.deleteSectionPending;
445
+ this.deleteSectionPending = null;
446
+ this.deleteSection(index);
447
+ };
448
+ this.closeDeleteSectionDialog = () => {
449
+ this.deleteSectionPending = null;
450
+ };
451
+ this.deleteQuestion = (sectionIndex, questionIndex) => {
452
+ var _a, _b;
453
+ this.recordHistory(this.loadedForm);
454
+ const next = structuredClone(this.sections);
455
+ next[sectionIndex].questions.splice(questionIndex, 1);
456
+ next[sectionIndex].questions.forEach((q, i) => (q.questionOrder = i + 1));
457
+ this.setSections(next);
458
+ if (((_a = this.editingQuestion) === null || _a === void 0 ? void 0 : _a.sIndex) === sectionIndex &&
459
+ ((_b = this.editingQuestion) === null || _b === void 0 ? void 0 : _b.qIndex) === questionIndex) {
460
+ this.closeEditDrawer();
461
+ }
462
+ };
463
+ this.copyQuestion = (sectionIndex, questionIndex) => {
464
+ this.recordHistory(this.loadedForm);
465
+ const next = structuredClone(this.sections);
466
+ const target = this.sections[sectionIndex].questions[questionIndex];
467
+ const copy = createNewQuestion({
468
+ fieldTypeId: target.fieldTypeId,
469
+ fieldProperties: structuredClone(target.fieldProperties),
470
+ questionOrder: questionIndex + 2,
471
+ formSectionId: target.formSectionId,
472
+ formId: this.formId,
473
+ formVersion: this.version,
474
+ });
475
+ copy.questionText = `${target.questionText || ''} (Copy)`;
476
+ copy.helperText = target.helperText;
477
+ copy.required = target.required;
478
+ copy.referenceCode = target.referenceCode;
479
+ next[sectionIndex].questions.splice(questionIndex + 1, 0, copy);
480
+ next[sectionIndex].questions.forEach((q, i) => (q.questionOrder = i + 1));
481
+ this.setSections(next);
482
+ };
483
+ this.confirmDeleteQuestion = () => {
484
+ if (!this.deleteQuestionPending)
485
+ return;
486
+ const { sIndex, qIndex } = this.deleteQuestionPending;
487
+ this.deleteQuestionPending = null;
488
+ this.deleteQuestion(sIndex, qIndex);
489
+ };
490
+ this.closeDeleteQuestionDialog = () => {
491
+ this.deleteQuestionPending = null;
492
+ };
493
+ // ----- versions drawer -----
494
+ this.openVersionDrawer = async () => {
495
+ var _a;
496
+ this.isVersionDrawerOpen = true;
497
+ if (!this.formId)
498
+ return;
499
+ try {
500
+ this.versionList = await getFormVersions(this.formId);
501
+ }
502
+ catch (_b) {
503
+ (_a = this.enqueueSnackbar) === null || _a === void 0 ? void 0 : _a.call(this, 'Error loading versions', {
504
+ variant: 'error',
505
+ anchorOrigin: { vertical: 'top', horizontal: 'center' },
506
+ });
507
+ this.versionList = [];
508
+ }
509
+ };
510
+ this.closeVersionDrawer = () => {
511
+ this.isVersionDrawerOpen = false;
512
+ };
513
+ this.handleVersionSelect = (version) => {
514
+ this.closeVersionDrawer();
515
+ if (!this.formId)
516
+ return;
517
+ // Picking the latest version drops `?v=` from the URL (the canonical
518
+ // "I'm on latest" shape); picking an older version pins `?v=N`.
519
+ const latestVersion = this.versionList.length
520
+ ? Math.max(...this.versionList)
521
+ : version;
522
+ const isLatest = version === latestVersion;
523
+ this.redirectToFormVersion(version, isLatest);
524
+ };
525
+ // ----- save -----
526
+ this.handleSave = async () => {
527
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
528
+ const validation = validateForm(this.loadedForm.form, this.sections, getType);
529
+ if (!validation.valid) {
530
+ (_a = this.enqueueSnackbar) === null || _a === void 0 ? void 0 : _a.call(this, (_b = validation.firstError) !== null && _b !== void 0 ? _b : 'Please fix form errors.', {
531
+ variant: 'error',
532
+ anchorOrigin: { vertical: 'top', horizontal: 'center' },
533
+ });
534
+ return;
535
+ }
536
+ // tenantId fallback (defense-in-depth: backend rejects empty tenantId)
537
+ if (!this.loadedForm.form.tenantId) {
538
+ this.updateForm({ tenantId: this.resolveTenantId() });
539
+ }
540
+ this.isSaving = true;
541
+ // Snapshot before we flip `isNewForm` to false below — we use this to
542
+ // decide whether the save was a fresh form (POST /UdpForm/full) or a new
543
+ // version of an existing form (PUT /UdpForm/{id}/full). Only the fresh-
544
+ // form case needs to escape the `/forms/new` pathname, which only the
545
+ // page wrapper / host knows how to construct.
546
+ const wasNew = this.isNewForm;
547
+ try {
548
+ const result = await saveForm(this.loadedForm, this.isMostRecentFormVersion);
549
+ // Response IS the describe-shape tree — adopt it as the new baseline.
550
+ // Existing-version saves don't push a URL change (the user was on
551
+ // latest, URL had no `?v=`, the new version is now latest — URL stays
552
+ // the same). New-form saves DO transition the URL via the host's
553
+ // `onFormCreated` callback; the @Watch on formId self-checks
554
+ // (`loadedForm.form.id === formId`) so the resulting prop change
555
+ // doesn't trigger a redundant `/describe` refetch.
556
+ this.loadedForm = result.loadedForm;
557
+ this.isNewForm = false;
558
+ this.isMostRecentFormVersion = true;
559
+ this.snapshotSavedForm();
560
+ this.undoStack = [];
561
+ this.redoStack = [];
562
+ (_c = this.enqueueSnackbar) === null || _c === void 0 ? void 0 : _c.call(this, 'Success', {
563
+ variant: 'success',
564
+ anchorOrigin: { vertical: 'top', horizontal: 'center' },
565
+ });
566
+ if (wasNew) {
567
+ // Host owns the path transition (e.g. `/forms/new` → `/forms/{id}/builder`).
568
+ // Page wrapper listens via `onFormCreated={(e) => history.replace(...)}`.
569
+ this.formCreated.emit({
570
+ formId: result.formId,
571
+ version: result.formVersion,
572
+ });
573
+ }
574
+ // Existing-form-new-version: nothing to do. The user was on the
575
+ // latest version (the only state where Save is enabled), the URL had
576
+ // no `?v=` (canonical "latest" shape), the new version is now the
577
+ // latest — so the URL stays the same. No internal URL manipulation
578
+ // on save.
579
+ }
580
+ catch (error) {
581
+ console.error('Form submission error:', error);
582
+ const err = error;
583
+ const message = (_m = (_l = (_h = (_g = (_f = (_e = (_d = err === null || err === void 0 ? void 0 : err.response) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.errors) === null || _f === void 0 ? void 0 : _f.tenantId) === null || _g === void 0 ? void 0 : _g[0]) !== null && _h !== void 0 ? _h : (_k = (_j = err === null || err === void 0 ? void 0 : err.response) === null || _j === void 0 ? void 0 : _j.data) === null || _k === void 0 ? void 0 : _k.title) !== null && _l !== void 0 ? _l : err === null || err === void 0 ? void 0 : err.message) !== null && _m !== void 0 ? _m : 'Error saving form';
584
+ (_o = this.enqueueSnackbar) === null || _o === void 0 ? void 0 : _o.call(this, message, {
585
+ variant: 'error',
586
+ anchorOrigin: { vertical: 'top', horizontal: 'center' },
587
+ });
588
+ }
589
+ finally {
590
+ this.isSaving = false;
591
+ }
592
+ };
593
+ }
594
+ componentWillLoad() {
595
+ this.initializeBuilder();
596
+ }
597
+ /**
598
+ * Read the builder's current draft form. Exposed for embedders that need to
599
+ * snapshot the in-progress schema without going through the Save flow — e.g.
600
+ * "save to local storage", "send to another component", or "feed into a
601
+ * test harness that drives the renderer with this exact shape."
602
+ */
603
+ // eslint-disable-next-line @typescript-eslint/require-await
604
+ async getLoadedForm() {
605
+ var _a;
606
+ return (_a = this.loadedForm) !== null && _a !== void 0 ? _a : null;
607
+ }
608
+ componentDidLoad() {
609
+ this.initSortable();
610
+ this.measureBuilderTop();
611
+ window.addEventListener('resize', this.measureBuilderTop);
612
+ }
613
+ componentDidUpdate() {
614
+ this.initSortable();
615
+ }
616
+ disconnectedCallback() {
617
+ this.clearPreviewSyncTimer();
618
+ window.removeEventListener('resize', this.measureBuilderTop);
619
+ }
620
+ clearPreviewSyncTimer() {
621
+ if (this.previewSyncTimer != null) {
622
+ clearTimeout(this.previewSyncTimer);
623
+ this.previewSyncTimer = null;
624
+ }
625
+ }
626
+ /**
627
+ * `loadedForm` changes during builder edits — schedule a debounced push into
628
+ * `previewLoadedForm` so the preview renderer doesn't re-init on every
629
+ * keystroke. Skipped entirely while the Build tab is active (no point
630
+ * spending cycles off-screen); `handleTabChange` snapshots immediately when
631
+ * the Preview tab is selected.
632
+ */
633
+ schedulePreviewSync() {
634
+ if (this.activeTab !== 'preview')
635
+ return;
636
+ this.clearPreviewSyncTimer();
637
+ this.previewSyncTimer = setTimeout(() => {
638
+ this.previewLoadedForm = this.loadedForm;
639
+ this.previewSyncTimer = null;
640
+ }, UdpQuestionFormBuilder.PREVIEW_SYNC_DELAY_MS);
641
+ }
642
+ handleIdOrVersionChange() {
643
+ var _a, _b;
644
+ // Save flow updates `loadedForm` locally + pushes the new URL; when the
645
+ // host reflects the URL back as fresh props, the form already matches —
646
+ // skip the refetch instead of round-tripping `/describe`.
647
+ if (((_a = this.loadedForm) === null || _a === void 0 ? void 0 : _a.form.id) === this.formId &&
648
+ ((_b = this.loadedForm) === null || _b === void 0 ? void 0 : _b.form.version) === Number(this.version)) {
649
+ return;
650
+ }
651
+ this.initializeBuilder();
652
+ }
653
+ // ----- helpers -----
654
+ get sections() {
655
+ return this.loadedForm.sections;
656
+ }
657
+ setSections(sections) {
658
+ this.loadedForm = Object.assign(Object.assign({}, this.loadedForm), { sections });
659
+ }
660
+ updateForm(patch) {
661
+ this.loadedForm = Object.assign(Object.assign({}, this.loadedForm), { form: Object.assign(Object.assign({}, this.loadedForm.form), patch) });
662
+ }
663
+ // ----- history (undo / redo) -----
664
+ /**
665
+ * Push `snapshot` onto the undo stack, capped at `HISTORY_CAP`. Clears the
666
+ * redo stack because a new mutation invalidates any "future" branches the
667
+ * user previously undid. Call this BEFORE applying a mutation, with the
668
+ * pre-mutation `loadedForm` as the argument.
669
+ */
670
+ recordHistory(snapshot) {
671
+ const next = this.undoStack.length >= UdpQuestionFormBuilder.HISTORY_CAP
672
+ ? this.undoStack.slice(this.undoStack.length - UdpQuestionFormBuilder.HISTORY_CAP + 1)
673
+ : this.undoStack.slice();
674
+ next.push(snapshot);
675
+ this.undoStack = next;
676
+ if (this.redoStack.length > 0)
677
+ this.redoStack = [];
678
+ }
679
+ /** Cmd/Ctrl+Z and Cmd/Ctrl+Shift+Z keyboard shortcuts. */
680
+ handleHistoryKeydown(e) {
681
+ var _a;
682
+ // Skip when the user is typing in any input — the input owns Cmd+Z for
683
+ // its own undo (text editing). Only fire when focus is on the builder
684
+ // chrome or a non-text-input control.
685
+ const target = e.target;
686
+ const tag = (_a = target === null || target === void 0 ? void 0 : target.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();
687
+ if (tag === 'input' || tag === 'textarea' || (target === null || target === void 0 ? void 0 : target.isContentEditable))
688
+ return;
689
+ if (!(e.metaKey || e.ctrlKey))
690
+ return;
691
+ if (e.key !== 'z' && e.key !== 'Z')
692
+ return;
693
+ e.preventDefault();
694
+ if (e.shiftKey) {
695
+ this.redo();
696
+ }
697
+ else {
698
+ this.undo();
699
+ }
700
+ }
701
+ resolveTenantId() {
702
+ var _a, _b, _c, _d;
703
+ return ((_d = (_c = (_b = (_a = this.getTenantCallback) === null || _a === void 0 ? void 0 : _a.call(this)) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : getCurrentTenantId()) !== null && _d !== void 0 ? _d : '');
704
+ }
705
+ /**
706
+ * Apply Final Form values for the editing question back to `loadedForm`.
707
+ * Runs on every Final Form state change (typical: every keystroke / toggle).
708
+ * `fpFromForm` is the engine round-trip — `fieldProperties` is fully
709
+ * regenerated from the engine's schema, so cross-key constraints (items /
710
+ * lookupId XOR) hold by construction.
711
+ */
712
+ writeQuestionFromValues(values) {
713
+ var _a;
714
+ if (!this.editingQuestion)
715
+ return;
716
+ const { sIndex, qIndex } = this.editingQuestion;
717
+ const currentSection = this.loadedForm.sections[sIndex];
718
+ const currentQuestion = (_a = currentSection === null || currentSection === void 0 ? void 0 : currentSection.questions) === null || _a === void 0 ? void 0 : _a[qIndex];
719
+ if (!currentSection || !currentQuestion)
720
+ return;
721
+ const trimmedRef = typeof values.referenceCode === 'string'
722
+ ? values.referenceCode.trim()
723
+ : null;
724
+ const fpValues = (values.fieldProperties && typeof values.fieldProperties === 'object')
725
+ ? values.fieldProperties
726
+ : {};
727
+ const nextQuestion = Object.assign(Object.assign({}, currentQuestion), { questionText: typeof values.questionText === 'string' ? values.questionText : '', helperText: typeof values.helperText === 'string' && values.helperText.length > 0
728
+ ? values.helperText
729
+ : null, referenceCode: trimmedRef && trimmedRef.length > 0 ? trimmedRef : null, required: values.required === true, fieldProperties: fpFromForm(currentQuestion.fieldTypeId, fpValues) });
730
+ const nextQuestions = currentSection.questions.slice();
731
+ nextQuestions[qIndex] = nextQuestion;
732
+ const nextSections = this.loadedForm.sections.slice();
733
+ nextSections[sIndex] = Object.assign(Object.assign({}, currentSection), { questions: nextQuestions });
734
+ this.loadedForm = Object.assign(Object.assign({}, this.loadedForm), { sections: nextSections });
735
+ }
736
+ /**
737
+ * Resolve the currently-editing question's GUID for the preview pane's highlight prop.
738
+ * Returns `null` when no drawer is open. Reads from the canonical `sections` array
739
+ * (not `sectionsDraft`) so the highlight stays stable across in-flight drawer edits.
740
+ */
741
+ getEditingQuestionId() {
742
+ var _a, _b, _c;
743
+ const editing = this.editingQuestion;
744
+ if (!editing)
745
+ return null;
746
+ const id = (_c = (_b = (_a = this.sections[editing.sIndex]) === null || _a === void 0 ? void 0 : _a.questions) === null || _b === void 0 ? void 0 : _b[editing.qIndex]) === null || _c === void 0 ? void 0 : _c.id;
747
+ return id !== null && id !== void 0 ? id : null;
748
+ }
749
+ // ----- Form Structure rail -----
750
+ /**
751
+ * Which row the Structure rail should highlight: the editing question, else
752
+ * the editing section, else nothing. Single source of truth for the rail's
753
+ * `selectedId` so the active drawer's target stays lit.
754
+ */
755
+ getStructureSelectedId() {
756
+ var _a, _b;
757
+ if (this.editingQuestion)
758
+ return this.getEditingQuestionId();
759
+ if (this.editingSectionIndex !== null) {
760
+ return (_b = (_a = this.sections[this.editingSectionIndex]) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : null;
761
+ }
762
+ return null;
763
+ }
764
+ /** Snapshot the question fields that flow through Final Form (vs. the handler-mutated draft). */
765
+ computeEditDrawerInitialValues(sections, sIndex, qIndex) {
766
+ var _a, _b, _c, _d, _e;
767
+ const q = (_b = (_a = sections[sIndex]) === null || _a === void 0 ? void 0 : _a.questions) === null || _b === void 0 ? void 0 : _b[qIndex];
768
+ if (!q)
769
+ return {};
770
+ return {
771
+ questionText: (_c = q.questionText) !== null && _c !== void 0 ? _c : '',
772
+ helperText: (_d = q.helperText) !== null && _d !== void 0 ? _d : '',
773
+ referenceCode: (_e = q.referenceCode) !== null && _e !== void 0 ? _e : '',
774
+ required: q.required === true,
775
+ fieldProperties: fpToForm(q.fieldTypeId, q.fieldProperties),
776
+ };
777
+ }
778
+ // ----- load -----
779
+ async initializeBuilder() {
780
+ var _a;
781
+ try {
782
+ this.isLoading = true;
783
+ this.loadError = null;
784
+ // History is scoped to the current form/version — a fresh load (initial
785
+ // mount or post-save version bump) wipes both stacks since they refer
786
+ // to a different baseline.
787
+ this.undoStack = [];
788
+ this.redoStack = [];
789
+ const result = await loadFormData(this.formId, this.version, this.getTenantCallback);
790
+ this.loadedForm = result.loadedForm;
791
+ this.isNewForm = result.isNewForm;
792
+ this.isMostRecentFormVersion = result.isMostRecentFormVersion;
793
+ // Fire both options fetches in parallel — neither blocks the other and
794
+ // both are non-blocking failures (the picker just shows empty).
795
+ this.lookupOptions = await fetchLookupOptions();
796
+ this.followUpFormOptions = this.isFollowUpFormConfigOn
797
+ ? await fetchFollowUpFormsList()
798
+ : [];
799
+ // tenantId fallback (defense-in-depth: backend rejects empty tenantId)
800
+ if (!this.loadedForm.form.tenantId) {
801
+ this.updateForm({ tenantId: this.resolveTenantId() });
802
+ }
803
+ this.snapshotSavedForm();
804
+ }
805
+ catch (err) {
806
+ if (err instanceof FormNotFoundError) {
807
+ // Empty render — no snackbar; the inline "not found" panel is the
808
+ // primary surface and snackbar noise on top would be redundant.
809
+ this.loadError = 'notFound';
810
+ }
811
+ else {
812
+ this.loadError = 'generic';
813
+ (_a = this.enqueueSnackbar) === null || _a === void 0 ? void 0 : _a.call(this, 'Error loading form data', {
814
+ variant: 'error',
815
+ anchorOrigin: { vertical: 'top', horizontal: 'center' },
816
+ });
817
+ }
818
+ }
819
+ finally {
820
+ this.isLoading = false;
821
+ }
822
+ }
823
+ // ----- sortable -----
824
+ get isEditable() {
825
+ return this.isNewForm || this.isMostRecentFormVersion;
826
+ }
827
+ /** Capture the current `loadedForm` as the saved baseline for dirty tracking. */
828
+ snapshotSavedForm() {
829
+ this.savedFormSnapshot = JSON.stringify(this.loadedForm);
830
+ }
831
+ /**
832
+ * True when the live form has diverged from the last-saved baseline. Drives
833
+ * the "Unsaved changes" badge. Read-only versions can't be edited, so they
834
+ * never report unsaved changes.
835
+ *
836
+ * Suppressed until the initial load finishes and a baseline exists: the
837
+ * header renders during the fetch window (only the body is gated on
838
+ * `isLoading`), and with an empty `savedFormSnapshot` any non-empty form
839
+ * would otherwise read as dirty.
840
+ */
841
+ get hasUnsavedChanges() {
842
+ if (this.isLoading || this.savedFormSnapshot === '')
843
+ return false;
844
+ return this.isEditable && JSON.stringify(this.loadedForm) !== this.savedFormSnapshot;
845
+ }
846
+ initSortable() {
847
+ if (!this.isEditable) {
848
+ if (this.sortableSections)
849
+ this.sortableSections.destroy();
850
+ this.sortableQuestionsMap.forEach(s => s.destroy());
851
+ this.sortableQuestionsMap.clear();
852
+ return;
853
+ }
854
+ const sectionsContainer = this.hostEl.shadowRoot.querySelector('.sections-container');
855
+ if (sectionsContainer) {
856
+ if (this.sortableSections)
857
+ this.sortableSections.destroy();
858
+ this.sortableSections = new Sortable(sectionsContainer, {
859
+ animation: 150,
860
+ handle: '.section-drag-handle',
861
+ ghostClass: 'sortable-ghost',
862
+ chosenClass: 'sortable-chosen',
863
+ dragClass: 'sortable-drag',
864
+ onEnd: evt => this.handleSectionDragEnd(evt),
865
+ });
866
+ }
867
+ this.sections.forEach((_, index) => {
868
+ var _a;
869
+ const questionsContainer = this.hostEl.shadowRoot.querySelector(`#questions-${index}`);
870
+ if (questionsContainer) {
871
+ (_a = this.sortableQuestionsMap.get(index)) === null || _a === void 0 ? void 0 : _a.destroy();
872
+ const sortable = new Sortable(questionsContainer, {
873
+ group: 'questions',
874
+ animation: 150,
875
+ handle: '.question-drag-handle',
876
+ ghostClass: 'sortable-ghost',
877
+ chosenClass: 'sortable-chosen',
878
+ dragClass: 'sortable-drag',
879
+ onEnd: evt => this.handleQuestionDragEnd(evt, index),
880
+ });
881
+ this.sortableQuestionsMap.set(index, sortable);
882
+ }
883
+ });
884
+ }
885
+ handleSectionDragEnd(evt) {
886
+ const { oldIndex, newIndex, item, to } = evt;
887
+ if (oldIndex === undefined || newIndex === undefined || oldIndex === newIndex)
888
+ return;
889
+ // Revert DOM change so Stencil VDOM can cleanly handle the state update.
890
+ const refNode = oldIndex < newIndex ? to.children[oldIndex] : to.children[oldIndex + 1];
891
+ to.insertBefore(item, refNode);
892
+ const next = [...this.sections];
893
+ const [moved] = next.splice(oldIndex, 1);
894
+ next.splice(newIndex, 0, moved);
895
+ this.setSections(next.map((s, i) => (Object.assign(Object.assign({}, s), { order: i + 1 }))));
896
+ }
897
+ handleQuestionDragEnd(evt, fromSectionIndex) {
898
+ const { oldIndex, newIndex, to, from, item } = evt;
899
+ if (oldIndex === undefined || newIndex === undefined)
900
+ return;
901
+ const toSectionAttr = to.getAttribute('data-section-index');
902
+ if (!toSectionAttr)
903
+ return;
904
+ const toSectionIndex = parseInt(toSectionAttr, 10);
905
+ if (oldIndex === newIndex && fromSectionIndex === toSectionIndex)
906
+ return;
907
+ // Revert DOM change so Stencil VDOM can cleanly handle the state update.
908
+ if (from === to) {
909
+ const refNode = oldIndex < newIndex ? from.children[oldIndex] : from.children[oldIndex + 1];
910
+ from.insertBefore(item, refNode);
911
+ }
912
+ else {
913
+ const refNode = from.children[oldIndex];
914
+ if (refNode) {
915
+ from.insertBefore(item, refNode);
916
+ }
917
+ else {
918
+ from.appendChild(item);
919
+ }
920
+ }
921
+ this.recordHistory(this.loadedForm);
922
+ const next = structuredClone(this.sections);
923
+ const [moved] = next[fromSectionIndex].questions.splice(oldIndex, 1);
924
+ next[toSectionIndex].questions.splice(newIndex, 0, moved);
925
+ next[fromSectionIndex].questions.forEach((q, i) => (q.questionOrder = i + 1));
926
+ if (fromSectionIndex !== toSectionIndex) {
927
+ next[toSectionIndex].questions.forEach((q, i) => (q.questionOrder = i + 1));
928
+ }
929
+ this.setSections(next);
930
+ }
931
+ /**
932
+ * Sync the URL's `?v=` param to a version transition.
933
+ *
934
+ * Convention: "no `?v=`" means "I'm on the latest, whatever that is" —
935
+ * so an older-version pick sets `?v=N`, and a latest pick strips it.
936
+ * Save-time URL writes are gone entirely (saving while on latest leaves
937
+ * URL unchanged); only explicit version-drawer picks call this.
938
+ *
939
+ * Always strips both legacy `udpf_formVersion` casings while we're
940
+ * here, so the URL doesn't carry duplicate version keys.
941
+ */
942
+ redirectToFormVersion(version, isLatest) {
943
+ if (typeof window === 'undefined')
944
+ return;
945
+ const search = new URLSearchParams(window.location.search);
946
+ search.delete('udpf_formversion');
947
+ search.delete('udpf_formVersion');
948
+ if (isLatest) {
949
+ search.delete('v');
950
+ }
951
+ else {
952
+ search.set('v', String(version));
953
+ }
954
+ const qs = search.toString();
955
+ const path = qs ? `${window.location.pathname}?${qs}` : window.location.pathname;
956
+ if (this.history) {
957
+ this.history.push(path);
958
+ }
959
+ else {
960
+ window.history.replaceState({}, '', path);
961
+ }
962
+ }
963
+ render() {
964
+ var _a, _b, _c, _d, _e, _f, _g;
965
+ if (this.loadError === 'notFound') {
966
+ return (h(Host, null, h("udp-primary-action-header", { title: "Form Builder" }), h("udp-flexbox", { direction: "column", align: "center", justify: "center", gap: "sm", class: "builder-empty-state" }, h("udp-text", { variant: "title3" }, "Form not found"), h("udp-text", { variant: "body1", color: "muted" }, "We couldn't find a form with this id for the current tenant. It may have been deleted, or the link may be out of date."))));
967
+ }
968
+ if (this.loadError === 'generic') {
969
+ return (h(Host, null, h("udp-primary-action-header", { title: "Form Builder" }), h("div", { class: "builder-error-message" }, h("udp-text", { variant: "body1" }, "There is an error with the Form Builder."))));
970
+ }
971
+ const form = this.loadedForm.form;
972
+ const showUnsavedBadge = this.hasUnsavedChanges;
973
+ return (h(Host, null, h("udp-primary-action-header", { primaryAction: this.isEditable
974
+ ? {
975
+ label: 'Save Form',
976
+ iconName: 'save',
977
+ loading: this.isSaving,
978
+ onClick: () => this.isPublicFormConfigOn || this.isFollowUpFormConfigOn
979
+ ? this.openSaveModal()
980
+ : this.handleSave(),
981
+ }
982
+ : undefined }, h("udp-text", { slot: "title", variant: "subtitle1", block: false }, h("udp-fluent-inline-edit", { class: "builder-title-input", value: (_a = form.name) !== null && _a !== void 0 ? _a : '', placeholder: "Untitled form", readonly: !this.isEditable, ariaLabel: "Form name", maxLength: 128, onValueChanged: (e) => this.updateForm({ name: e.detail }) })), h("udp-text", { slot: "subtitle", variant: "caption1" }, h("udp-fluent-inline-edit", { class: "builder-subtitle-input", value: (_b = form.description) !== null && _b !== void 0 ? _b : '', placeholder: "Add a description", readonly: !this.isEditable, ariaLabel: "Form description", maxLength: 256, onValueChanged: (e) => this.updateForm({ description: e.detail }) })), !this.isEditable && (h("div", { slot: "inline", class: "builder-header-meta" }, h("udp-fluent-badge", { appearance: "outline", color: "subtle", size: "medium" }, "View only"))), h("div", { slot: "actions", class: "builder-header-actions" }, showUnsavedBadge && (h("udp-fluent-badge", { appearance: "outline", color: "warning", size: "medium" }, "Unsaved changes")), h("udp-fluent-tablist", { class: "builder-view-tabs", appearance: "contained", size: "medium", overflowStrategy: "scroll", activeId: this.activeTab, tabList: [
983
+ { id: 'build', label: 'Build' },
984
+ { id: 'preview', label: 'Preview' },
985
+ ], onTabChange: (e) => this.handleTabChange(e.detail) }), this.formId && h("udp-tooltip", { content: "Form versions" }, h("udp-fluent-icon-button", { iconName: 'list', shape: "rounded", ariaLabel: 'Form versions', onClick: () => void this.openVersionDrawer() })))), h("div", { class: "builder-body" }, h("udp-sidebar-layout", { fill: true, sidebarTitle: "Form Structure", sidebarWidth: "264px" }, h("div", { slot: "sidebar" }, !this.isLoading &&
986
+ renderFormStructureTree({
987
+ loadedForm: this.loadedForm,
988
+ selectedId: this.getStructureSelectedId(),
989
+ isValid: question => validateQuestionItem(question, getType) === null,
990
+ onItemClick: this.handleStructureClick,
991
+ })), h("div", { class: {
992
+ 'preview-pane': true,
993
+ 'pane--hidden': this.activeTab !== 'preview',
994
+ } }, this.activeTab === 'preview' &&
995
+ renderPreviewPane({
996
+ loadedForm: (_c = this.previewLoadedForm) !== null && _c !== void 0 ? _c : this.loadedForm,
997
+ highlightedQuestionId: this.getEditingQuestionId(),
998
+ enqueueSnackbar: this.enqueueSnackbar,
999
+ })), h("div", { class: {
1000
+ 'builder-pane': true,
1001
+ 'pane--hidden': this.activeTab !== 'build',
1002
+ } }, !this.isLoading && (h("udp-container", { "max-width": "md" }, h("udp-flexbox", { class: "builder-container", display: "flex", direction: "column", gap: "lg" }, h("udp-flexbox", { class: "sections-container", display: "flex", direction: "column", gap: "lg" }, this.sections.map((section, sIndex) => renderSectionCard({
1003
+ section,
1004
+ sIndex,
1005
+ isEditable: this.isEditable,
1006
+ getQuestionValidity: question => validateQuestionItem(question, getType) === null,
1007
+ onEditSection: this.openSectionEditor,
1008
+ onSectionTitleChange: this.updateSectionTitle,
1009
+ onAddQuestion: this.openAddItemDrawer,
1010
+ onDeleteSection: this.requestDeleteSection,
1011
+ onEditQuestion: this.openEditDrawer,
1012
+ onDeleteQuestionClick: (sIdx, qIdx) => {
1013
+ this.deleteQuestionPending = { sIndex: sIdx, qIndex: qIdx };
1014
+ },
1015
+ onDuplicateQuestion: this.copyQuestion,
1016
+ }))), this.isEditable && (h("button", { type: "button", class: "add-section-btn", onClick: this.addSection }, h("udp-fluent-icon", { name: "add", size: "sm" }), h("span", null, "Add New Section")))))), h("udp-vertical-spacer", { unit: "xxl" }), h("udp-vertical-spacer", { unit: "xxl" }), h("udp-vertical-spacer", { unit: "xxl" })))), h("udp-fluent-drawer", { open: this.activeSectionIndex !== null, drawerTitle: "Add Question", onDrawerClose: this.closeAddItemDrawer, drawerWidth: "780px" }, (() => {
1017
+ const { groups, accordionItems } = getQuestionTemplatesGroupedByCategory(this.addQuestionFilter);
1018
+ return renderAddQuestionDrawerContent({
1019
+ filter: this.addQuestionFilter,
1020
+ onFilterChange: value => {
1021
+ this.addQuestionFilter = value;
1022
+ },
1023
+ groups,
1024
+ accordionItems,
1025
+ onSelectTemplate: this.addQuestion,
1026
+ });
1027
+ })()), renderConfigureQuestionDrawer({
1028
+ editingQuestion: this.editingQuestion,
1029
+ sections: this.sections,
1030
+ initialValues: this.editDrawerInitialValues,
1031
+ formId: FORM_IDS.QUESTION_CONFIG,
1032
+ validate: this.validateDrawer,
1033
+ onFormStateUpdated: this.handleConfigFormStateUpdated,
1034
+ isEditable: this.isEditable,
1035
+ lookupOptions: this.lookupOptions,
1036
+ followUpFormOptions: this.followUpFormOptions,
1037
+ formType: form.type,
1038
+ isFollowUpFormConfigOn: this.isFollowUpFormConfigOn,
1039
+ isCommentingConfigOn: this.isCommentingConfigOn,
1040
+ onClose: this.closeEditDrawer,
1041
+ onCancel: this.cancelEditDrawer,
1042
+ }), renderSectionEditDrawer({
1043
+ open: this.editingSectionIndex !== null,
1044
+ onClose: this.closeSectionEditor,
1045
+ section: this.editingSectionIndex !== null
1046
+ ? this.sections[this.editingSectionIndex]
1047
+ : null,
1048
+ onTitleChange: (value) => this.patchEditingSection({ title: value }),
1049
+ onSectionTextChange: (value) => this.patchEditingSection({ sectionText: value }),
1050
+ onRepeatableChange: (value) => {
1051
+ var _a;
1052
+ if (this.editingSectionIndex === null)
1053
+ return;
1054
+ const current = this.sections[this.editingSectionIndex];
1055
+ this.patchEditingSection({
1056
+ sectionProperties: Object.assign(Object.assign({}, ((_a = current.sectionProperties) !== null && _a !== void 0 ? _a : {})), { isRepeatable: value }),
1057
+ });
1058
+ },
1059
+ onReferenceCodeChange: (value) => this.patchEditingSection({ referenceCode: value }),
1060
+ }), h("udp-form-version-drawer", { open: this.isVersionDrawerOpen, versions: this.versionList,
1061
+ // Reflect the actually-loaded version — `version` prop may be
1062
+ // null when the URL has no `?v=` (the canonical "I'm on latest"
1063
+ // shape), so fall back to `loadedForm.form.version`.
1064
+ currentVersion: (_g = (_f = (_e = (_d = this.loadedForm) === null || _d === void 0 ? void 0 : _d.form) === null || _e === void 0 ? void 0 : _e.version) !== null && _f !== void 0 ? _f : this.version) !== null && _g !== void 0 ? _g : 1, onDrawerClose: this.closeVersionDrawer, onVersionSelect: this.handleVersionSelect }), h("udp-fluent-dialog", { open: this.deleteQuestionPending !== null, dialogTitle: "Delete question?", type: "modal", onDialogClose: this.closeDeleteQuestionDialog }, h("udp-text", { variant: "body1" }, "Are you sure you want to remove this question? This cannot be undone."), h("udp-fluent-button", { slot: "action", appearance: "subtle", onClick: this.closeDeleteQuestionDialog }, "Cancel"), h("udp-fluent-button", { slot: "action", appearance: "primary", onClick: this.confirmDeleteQuestion }, "Delete")), h("udp-fluent-dialog", { open: this.deleteSectionPending !== null, dialogTitle: "Delete section?", type: "modal", onDialogClose: this.closeDeleteSectionDialog }, this.deleteSectionPending !== null && this.sections[this.deleteSectionPending] != null && (h("udp-text", { variant: "body1" }, "There are ", this.sections[this.deleteSectionPending].questions.length, " question", this.sections[this.deleteSectionPending].questions.length !== 1 ? 's' : '', " in \"", this.sections[this.deleteSectionPending].title, "\". Are you sure you want to delete this section?")), this.deleteSectionPending !== null && this.sections[this.deleteSectionPending] == null && (h("udp-text", { variant: "body1" }, "Are you sure you want to delete this section?")), h("udp-fluent-button", { slot: "action", appearance: "subtle", onClick: this.closeDeleteSectionDialog }, "Cancel"), h("udp-fluent-button", { slot: "action", appearance: "primary", onClick: this.confirmDeleteSection }, "Delete")), h("udp-fluent-dialog", { open: this.isSaveModalOpen, dialogTitle: "Save form", onDialogClose: this.cancelSaveModal }, h("udp-flexbox", { display: "flex", direction: "column", gap: "md" }, h("udp-flexbox", { display: "flex", direction: "row", align: "center", gap: "sm" }, h("udp-fluent-badge", { appearance: "tint", color: "informative", size: "medium" }, "Version ", form.version)), h("udp-text", { variant: "body1" }, "Choose how this form is shared before saving."), this.isPublicFormConfigOn && (h("udp-fluent-switch", { label: "Private form (only signed-in tenant users can submit)", labelPosition: "after", checked: this.saveModalPrivate, includeErrorPadding: false, onValueChanged: (e) => (this.saveModalPrivate = e.detail) })), this.isFollowUpFormConfigOn && (h("udp-fluent-switch", { label: "Use as follow-up form template (selectable from other forms' follow-up questions)", labelPosition: "after", checked: this.saveModalIsFollowUp, includeErrorPadding: false, onValueChanged: (e) => (this.saveModalIsFollowUp = e.detail) }))), h("udp-fluent-button", { slot: "action", appearance: "subtle", onClick: this.cancelSaveModal }, "Cancel"), h("udp-fluent-button", { slot: "action", appearance: "primary", startIconName: "save", loading: this.isSaving, onClick: () => {
1065
+ void this.confirmSaveModal();
1066
+ } }, "Save Form"))));
1067
+ }
1068
+ static get is() { return "udp-question-form-builder"; }
1069
+ static get encapsulation() { return "shadow"; }
1070
+ static get originalStyleUrls() {
1071
+ return {
1072
+ "$": ["udp-question-form-builder.css"]
1073
+ };
1074
+ }
1075
+ static get styleUrls() {
1076
+ return {
1077
+ "$": ["udp-question-form-builder.css"]
1078
+ };
1079
+ }
1080
+ static get properties() {
1081
+ return {
1082
+ "formId": {
1083
+ "type": "unknown",
1084
+ "mutable": false,
1085
+ "complexType": {
1086
+ "original": "Guid",
1087
+ "resolved": "string & { readonly __brand: \"Guid\"; }",
1088
+ "references": {
1089
+ "Guid": {
1090
+ "location": "import",
1091
+ "path": "../core",
1092
+ "id": "src/components/forms/udp-question-form/core/index.ts::Guid",
1093
+ "referenceLocation": "Guid"
1094
+ }
1095
+ }
1096
+ },
1097
+ "required": false,
1098
+ "optional": false,
1099
+ "docs": {
1100
+ "tags": [],
1101
+ "text": ""
1102
+ },
1103
+ "getter": false,
1104
+ "setter": false
1105
+ },
1106
+ "version": {
1107
+ "type": "number",
1108
+ "mutable": false,
1109
+ "complexType": {
1110
+ "original": "number",
1111
+ "resolved": "number",
1112
+ "references": {}
1113
+ },
1114
+ "required": false,
1115
+ "optional": false,
1116
+ "docs": {
1117
+ "tags": [],
1118
+ "text": ""
1119
+ },
1120
+ "getter": false,
1121
+ "setter": false,
1122
+ "reflect": false,
1123
+ "attribute": "version"
1124
+ },
1125
+ "history": {
1126
+ "type": "unknown",
1127
+ "mutable": false,
1128
+ "complexType": {
1129
+ "original": "{ push: (path: string) => void }",
1130
+ "resolved": "{ push: (path: string) => void; }",
1131
+ "references": {}
1132
+ },
1133
+ "required": false,
1134
+ "optional": false,
1135
+ "docs": {
1136
+ "tags": [],
1137
+ "text": "Optional SPA router. When set, the builder calls `history.push(path)` for\nURL updates (e.g. after a save creates a new version). Without it, falls\nback to `window.history.replaceState` \u2014 works in any host."
1138
+ },
1139
+ "getter": false,
1140
+ "setter": false
1141
+ },
1142
+ "getUserCallback": {
1143
+ "type": "unknown",
1144
+ "mutable": false,
1145
+ "complexType": {
1146
+ "original": "() => unknown",
1147
+ "resolved": "() => unknown",
1148
+ "references": {}
1149
+ },
1150
+ "required": false,
1151
+ "optional": false,
1152
+ "docs": {
1153
+ "tags": [],
1154
+ "text": ""
1155
+ },
1156
+ "getter": false,
1157
+ "setter": false
1158
+ },
1159
+ "getTenantCallback": {
1160
+ "type": "unknown",
1161
+ "mutable": false,
1162
+ "complexType": {
1163
+ "original": "() => { id?: string }",
1164
+ "resolved": "() => { id?: string; }",
1165
+ "references": {}
1166
+ },
1167
+ "required": false,
1168
+ "optional": false,
1169
+ "docs": {
1170
+ "tags": [],
1171
+ "text": ""
1172
+ },
1173
+ "getter": false,
1174
+ "setter": false
1175
+ },
1176
+ "enqueueSnackbar": {
1177
+ "type": "unknown",
1178
+ "mutable": false,
1179
+ "complexType": {
1180
+ "original": "(message: string, options?: Record<string, unknown>) => void",
1181
+ "resolved": "(message: string, options?: Record<string, unknown>) => void",
1182
+ "references": {
1183
+ "Record": {
1184
+ "location": "global",
1185
+ "id": "global::Record"
1186
+ }
1187
+ }
1188
+ },
1189
+ "required": false,
1190
+ "optional": false,
1191
+ "docs": {
1192
+ "tags": [],
1193
+ "text": ""
1194
+ },
1195
+ "getter": false,
1196
+ "setter": false
1197
+ },
1198
+ "closeSnackbar": {
1199
+ "type": "unknown",
1200
+ "mutable": false,
1201
+ "complexType": {
1202
+ "original": "(key?: unknown) => void",
1203
+ "resolved": "(key?: unknown) => void",
1204
+ "references": {}
1205
+ },
1206
+ "required": false,
1207
+ "optional": false,
1208
+ "docs": {
1209
+ "tags": [],
1210
+ "text": ""
1211
+ },
1212
+ "getter": false,
1213
+ "setter": false
1214
+ },
1215
+ "isPublicFormConfigOn": {
1216
+ "type": "boolean",
1217
+ "mutable": false,
1218
+ "complexType": {
1219
+ "original": "boolean",
1220
+ "resolved": "boolean",
1221
+ "references": {}
1222
+ },
1223
+ "required": false,
1224
+ "optional": false,
1225
+ "docs": {
1226
+ "tags": [],
1227
+ "text": ""
1228
+ },
1229
+ "getter": false,
1230
+ "setter": false,
1231
+ "reflect": false,
1232
+ "attribute": "is-public-form-config-on",
1233
+ "defaultValue": "false"
1234
+ },
1235
+ "isCommentingConfigOn": {
1236
+ "type": "boolean",
1237
+ "mutable": false,
1238
+ "complexType": {
1239
+ "original": "boolean",
1240
+ "resolved": "boolean",
1241
+ "references": {}
1242
+ },
1243
+ "required": false,
1244
+ "optional": false,
1245
+ "docs": {
1246
+ "tags": [],
1247
+ "text": ""
1248
+ },
1249
+ "getter": false,
1250
+ "setter": false,
1251
+ "reflect": false,
1252
+ "attribute": "is-commenting-config-on",
1253
+ "defaultValue": "false"
1254
+ },
1255
+ "isFollowUpFormConfigOn": {
1256
+ "type": "boolean",
1257
+ "mutable": false,
1258
+ "complexType": {
1259
+ "original": "boolean",
1260
+ "resolved": "boolean",
1261
+ "references": {}
1262
+ },
1263
+ "required": false,
1264
+ "optional": false,
1265
+ "docs": {
1266
+ "tags": [],
1267
+ "text": ""
1268
+ },
1269
+ "getter": false,
1270
+ "setter": false,
1271
+ "reflect": false,
1272
+ "attribute": "is-follow-up-form-config-on",
1273
+ "defaultValue": "false"
1274
+ }
1275
+ };
1276
+ }
1277
+ static get states() {
1278
+ return {
1279
+ "loadedForm": {},
1280
+ "undoStack": {},
1281
+ "redoStack": {},
1282
+ "activeSectionIndex": {},
1283
+ "editingQuestion": {},
1284
+ "editDrawerInitialValues": {},
1285
+ "isSaving": {},
1286
+ "isNewForm": {},
1287
+ "isMostRecentFormVersion": {},
1288
+ "loadError": {},
1289
+ "isLoading": {},
1290
+ "deleteQuestionPending": {},
1291
+ "deleteSectionPending": {},
1292
+ "addQuestionFilter": {},
1293
+ "editingSectionIndex": {},
1294
+ "isVersionDrawerOpen": {},
1295
+ "versionList": {},
1296
+ "lookupOptions": {},
1297
+ "followUpFormOptions": {},
1298
+ "activeTab": {},
1299
+ "previewLoadedForm": {},
1300
+ "isSaveModalOpen": {},
1301
+ "saveModalPrivate": {},
1302
+ "saveModalIsFollowUp": {}
1303
+ };
1304
+ }
1305
+ static get events() {
1306
+ return [{
1307
+ "method": "formCreated",
1308
+ "name": "formCreated",
1309
+ "bubbles": true,
1310
+ "cancelable": true,
1311
+ "composed": true,
1312
+ "docs": {
1313
+ "tags": [],
1314
+ "text": "Emitted when a save creates a brand-new form (POST /UdpForm/full).\n`event.detail` is `{ formId, version }`.\n\nRouting concern \u2014 the builder doesn't know the consumer's URL pattern,\nso the page wrapper / host listens for this and runs its router\ntransition (e.g. `history.replace(\\`/forms/${id}/builder\\`)`).\n\nExisting-form-new-version saves do NOT emit this; the URL doesn't\nchange after such saves (no `?v=` to bump in the \"no v = latest\" model).\n\n`@Event()` (not a `@Prop()` callback) so React's auto-generated\nwrappers attach via `addEventListener` \u2014 avoids the function-prop\nbinding flakiness Stencil consumers sometimes hit."
1315
+ },
1316
+ "complexType": {
1317
+ "original": "{ formId: Guid; version: number }",
1318
+ "resolved": "{ formId: Guid; version: number; }",
1319
+ "references": {
1320
+ "Guid": {
1321
+ "location": "import",
1322
+ "path": "../core",
1323
+ "id": "src/components/forms/udp-question-form/core/index.ts::Guid",
1324
+ "referenceLocation": "Guid"
1325
+ }
1326
+ }
1327
+ }
1328
+ }];
1329
+ }
1330
+ static get methods() {
1331
+ return {
1332
+ "getLoadedForm": {
1333
+ "complexType": {
1334
+ "signature": "() => Promise<LoadedForm | null>",
1335
+ "parameters": [],
1336
+ "references": {
1337
+ "Promise": {
1338
+ "location": "global",
1339
+ "id": "global::Promise"
1340
+ },
1341
+ "LoadedForm": {
1342
+ "location": "import",
1343
+ "path": "../core",
1344
+ "id": "src/components/forms/udp-question-form/core/index.ts::LoadedForm",
1345
+ "referenceLocation": "LoadedForm"
1346
+ }
1347
+ },
1348
+ "return": "Promise<LoadedForm>"
1349
+ },
1350
+ "docs": {
1351
+ "text": "Read the builder's current draft form. Exposed for embedders that need to\nsnapshot the in-progress schema without going through the Save flow \u2014 e.g.\n\"save to local storage\", \"send to another component\", or \"feed into a\ntest harness that drives the renderer with this exact shape.\"",
1352
+ "tags": []
1353
+ }
1354
+ }
1355
+ };
1356
+ }
1357
+ static get elementRef() { return "hostEl"; }
1358
+ static get watchers() {
1359
+ return [{
1360
+ "propName": "loadedForm",
1361
+ "methodName": "schedulePreviewSync"
1362
+ }, {
1363
+ "propName": "formId",
1364
+ "methodName": "handleIdOrVersionChange"
1365
+ }, {
1366
+ "propName": "version",
1367
+ "methodName": "handleIdOrVersionChange"
1368
+ }];
1369
+ }
1370
+ static get listeners() {
1371
+ return [{
1372
+ "name": "keydown",
1373
+ "method": "handleHistoryKeydown",
1374
+ "target": "document",
1375
+ "capture": false,
1376
+ "passive": false
1377
+ }];
1378
+ }
1379
+ }
1380
+ UdpQuestionFormBuilder.HISTORY_CAP = 50;
1381
+ /** Debounce delay before pushing `loadedForm` edits into the preview renderer. */
1382
+ UdpQuestionFormBuilder.PREVIEW_SYNC_DELAY_MS = 300;