udp-stencil-component-library 25.1.1 → 25.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +11 -11
  2. package/dist/cjs/advanced-search-builder.cjs.entry.js +1 -1
  3. package/dist/cjs/advanced-search-builder.cjs.entry.js.map +1 -1
  4. package/dist/cjs/advanced-search-builder.entry.cjs.js.map +1 -1
  5. package/dist/cjs/advanced-search_50.cjs.entry.js +22 -22
  6. package/dist/cjs/advanced-search_50.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.cjs.js.map +1 -0
  8. package/dist/cjs/{ag-grid-base_2.cjs.entry.js → ag-grid-base_5.cjs.entry.js} +229 -16
  9. package/dist/cjs/ag-grid-base_5.cjs.entry.js.map +1 -0
  10. package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
  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/client-side-grid.cjs.entry.js +1 -1
  14. package/dist/cjs/color-preview.cjs.entry.js +1 -1
  15. package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
  16. package/dist/cjs/feature-details-card_2.cjs.entry.js +5 -5
  17. package/dist/cjs/filter-group.validation-chip.entry.cjs.js.map +1 -1
  18. package/dist/cjs/filter-group_2.cjs.entry.js +1 -1
  19. package/dist/cjs/filter-group_2.cjs.entry.js.map +1 -1
  20. package/dist/cjs/image-upload_7.cjs.entry.js +5 -5
  21. package/dist/cjs/index-VfDbl-91.js +2 -10
  22. package/dist/cjs/inputs-example.cjs.entry.js +2 -2
  23. package/dist/cjs/loader.cjs.js +1 -1
  24. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  25. package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
  26. package/dist/cjs/page-renderer.cjs.entry.js +1 -1
  27. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  28. package/dist/cjs/resource-timeline-primary-bar.cjs.entry.js +1 -1
  29. package/dist/cjs/search-method-grid.cjs.entry.js +1 -1
  30. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  31. package/dist/cjs/stencil-library.cjs.js +1 -1
  32. package/dist/cjs/udp-chip.udp-icon-button.udp-menu.entry.cjs.js.map +1 -1
  33. package/dist/cjs/udp-chip_3.cjs.entry.js +3 -3
  34. package/dist/cjs/udp-chip_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  36. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  37. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  38. package/dist/cjs/udp-container.cjs.entry.js +2 -2
  39. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  40. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  41. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  42. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  43. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  44. package/dist/collection/collection-manifest.json +1 -0
  45. package/dist/collection/components/my-component/UI/advanced-search-builder/advanced-search-builder.css +4 -4
  46. package/dist/collection/components/my-component/UI/advanced-search-builder/filter-group.css +23 -10
  47. package/dist/collection/components/my-component/UI/data-display/chips/udp-chip.css +4 -2
  48. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.css +39 -6
  49. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +9 -5
  50. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js.map +1 -1
  51. package/dist/collection/components/my-component/UI/grid/new-grid/api-method-instance-grid.js +1 -1
  52. package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
  53. package/dist/collection/components/my-component/UI/grid/new-grid/entity-maintenance-grid.js +1 -1
  54. package/dist/collection/components/my-component/UI/grid/new-grid/grid-header.css +6 -38
  55. package/dist/collection/components/my-component/UI/grid/new-grid/grid-header.js +3 -3
  56. package/dist/collection/components/my-component/UI/grid/new-grid/grid-header.js.map +1 -1
  57. package/dist/collection/components/my-component/UI/grid/new-grid/gridFunctions/bulkActions.js +3 -3
  58. package/dist/collection/components/my-component/UI/grid/new-grid/gridFunctions/bulkActions.js.map +1 -1
  59. package/dist/collection/components/my-component/UI/grid/new-grid/gridFunctions/savedViews.js +2 -1
  60. package/dist/collection/components/my-component/UI/grid/new-grid/gridFunctions/savedViews.js.map +1 -1
  61. package/dist/collection/components/my-component/UI/grid/new-grid/interfaces/grid.js.map +1 -1
  62. package/dist/collection/components/my-component/UI/grid/new-grid/search-method-grid.js +1 -1
  63. package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
  64. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  65. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +1 -1
  66. package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
  67. package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
  68. package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  69. package/dist/collection/components/my-component/UI/inputs/image-upload/image-upload.js +1 -1
  70. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +3 -3
  71. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +2 -2
  72. package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
  73. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +3 -3
  74. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +3 -3
  75. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +3 -3
  76. package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
  77. package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
  78. package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
  79. package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
  80. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  81. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  82. package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
  83. package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
  84. package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
  85. package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  86. package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  87. package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
  88. package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
  89. package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
  90. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  91. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
  92. package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +1 -1
  93. package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
  94. package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
  95. package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
  96. package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
  97. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +1 -1
  98. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js.map +1 -1
  99. package/dist/collection/components/my-component/UI/menu/udp-menu.css +1 -7
  100. package/dist/collection/components/my-component/UI/menu/udp-menu.js +1 -1
  101. package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
  102. package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +1 -1
  103. package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
  104. package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
  105. package/dist/collection/components/my-component/UI/unity-typography/unity-typography.css +1 -0
  106. package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js +79 -0
  107. package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js.map +1 -0
  108. package/dist/collection/components/my-component/demo/ambient-demo-container.js +1 -1
  109. package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
  110. package/dist/collection/components.stories.js +37 -0
  111. package/dist/collection/components.stories.js.map +1 -0
  112. package/dist/collection/page-renderer/page-renderer.js +1 -1
  113. package/dist/collection/theme/color-preview/color-preview.js +1 -1
  114. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  115. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  116. package/dist/components/add-map-feature-popup.js +1 -1
  117. package/dist/components/advanced-search-builder.js +1 -1
  118. package/dist/components/advanced-search-grouped.js +1 -1
  119. package/dist/components/advanced-search.js +1 -1
  120. package/dist/components/ag-grid-base.js +1 -1
  121. package/dist/components/ambient-demo-container.js +1 -1
  122. package/dist/components/ambient-template-grid.js +1 -1
  123. package/dist/components/api-method-instance-grid.js +48 -24
  124. package/dist/components/api-method-instance-grid.js.map +1 -1
  125. package/dist/components/app-bar.js +1 -1
  126. package/dist/components/chart-container.js +1 -1
  127. package/dist/components/chart-kpi.js +1 -1
  128. package/dist/components/check-box-group.js +1 -1
  129. package/dist/components/check-box.js +1 -1
  130. package/dist/components/chip-section.js +5 -5
  131. package/dist/components/client-side-grid.js +44 -20
  132. package/dist/components/client-side-grid.js.map +1 -1
  133. package/dist/components/color-preview.js +2 -2
  134. package/dist/components/date-time-renderer.js +1 -1
  135. package/dist/components/edit-view-form-dialog.js +1 -1
  136. package/dist/components/entity-maintenance-grid.js +1 -1
  137. package/dist/components/feature-details-card.js +1 -1
  138. package/dist/components/feature-details-popup.js +1 -1
  139. package/dist/components/file-upload-renderer.js +1 -1
  140. package/dist/components/file-upload.js +1 -1
  141. package/dist/components/filter-conditions.js +1 -1
  142. package/dist/components/filter-group.js +1 -1
  143. package/dist/components/fluent-dialog.js +1 -1
  144. package/dist/components/ghost-render.d.ts +11 -0
  145. package/dist/components/ghost-render.js +9 -0
  146. package/dist/components/ghost-render.js.map +1 -0
  147. package/dist/components/grid-header.js +1 -1
  148. package/dist/components/grid-primary-bar.js +1 -1
  149. package/dist/components/hint-panel.js +1 -1
  150. package/dist/components/image-upload.js +1 -1
  151. package/dist/components/inputs-example.js +16 -16
  152. package/dist/components/kpi-list.js +1 -1
  153. package/dist/components/list-options-renderer.js +1 -1
  154. package/dist/components/logical-search-indicator.js +1 -1
  155. package/dist/components/map-component.js +1 -1
  156. package/dist/components/map-toolbar.js +1 -1
  157. package/dist/components/my-component.js +40 -40
  158. package/dist/components/numeric-field.js +1 -1
  159. package/dist/components/{p-ZWc9Pvfg.js → p--pXRF5nX.js} +6 -6
  160. package/dist/components/{p-ZWc9Pvfg.js.map → p--pXRF5nX.js.map} +1 -1
  161. package/dist/components/{p-Bi8LQyRU.js → p-32upo3dA.js} +3 -3
  162. package/dist/components/{p-Bi8LQyRU.js.map → p-32upo3dA.js.map} +1 -1
  163. package/dist/components/{p-Co0WarJh.js → p-51yj5lGg.js} +24 -24
  164. package/dist/components/{p-Co0WarJh.js.map → p-51yj5lGg.js.map} +1 -1
  165. package/dist/components/{p-AHMv8xJD.js → p-8-rtLJnl.js} +3 -3
  166. package/dist/components/{p-AHMv8xJD.js.map → p-8-rtLJnl.js.map} +1 -1
  167. package/dist/components/{p-CcwNgcqS.js → p-AoP4mfzt.js} +12 -12
  168. package/dist/components/p-AoP4mfzt.js.map +1 -0
  169. package/dist/components/{p-q8wb_sjl.js → p-B2ow6-jI.js} +4 -4
  170. package/dist/components/{p-q8wb_sjl.js.map → p-B2ow6-jI.js.map} +1 -1
  171. package/dist/components/{p-BTNfY6DI.js → p-B3eFeGrP.js} +58 -29
  172. package/dist/components/p-B3eFeGrP.js.map +1 -0
  173. package/dist/components/{p-ChM-1TY9.js → p-B5B8sEPP.js} +3 -3
  174. package/dist/components/{p-ChM-1TY9.js.map → p-B5B8sEPP.js.map} +1 -1
  175. package/dist/components/{p-B_OX9Nsg.js → p-B8L2UWDC.js} +6 -6
  176. package/dist/components/{p-B_OX9Nsg.js.map → p-B8L2UWDC.js.map} +1 -1
  177. package/dist/components/{p-ehYCARuO.js → p-BGc8zl7B.js} +4 -4
  178. package/dist/components/{p-ehYCARuO.js.map → p-BGc8zl7B.js.map} +1 -1
  179. package/dist/components/{p-CNjuwstj.js → p-BKaskn5l.js} +6 -6
  180. package/dist/components/{p-CNjuwstj.js.map → p-BKaskn5l.js.map} +1 -1
  181. package/dist/components/{p-BEBxaA92.js → p-BPEAhmN2.js} +4 -4
  182. package/dist/components/{p-BEBxaA92.js.map → p-BPEAhmN2.js.map} +1 -1
  183. package/dist/components/{p-CTEFRXiy.js → p-BQeMdszF.js} +3 -3
  184. package/dist/components/p-BQeMdszF.js.map +1 -0
  185. package/dist/components/{p-CU6P4zcO.js → p-BS0Xk6LA.js} +8 -8
  186. package/dist/components/{p-CU6P4zcO.js.map → p-BS0Xk6LA.js.map} +1 -1
  187. package/dist/components/{p-5olRcylk.js → p-BVUyI0wY.js} +9 -9
  188. package/dist/components/{p-5olRcylk.js.map → p-BVUyI0wY.js.map} +1 -1
  189. package/dist/components/{p-BwLnwaOk.js → p-BZ_9CNz8.js} +4 -4
  190. package/dist/components/{p-BwLnwaOk.js.map → p-BZ_9CNz8.js.map} +1 -1
  191. package/dist/components/{p-BaopI6Ey.js → p-B_83C-Zs.js} +3 -3
  192. package/dist/components/{p-BaopI6Ey.js.map → p-B_83C-Zs.js.map} +1 -1
  193. package/dist/components/{p-DuupCv8x.js → p-BeU_1z6t.js} +8 -8
  194. package/dist/components/{p-DuupCv8x.js.map → p-BeU_1z6t.js.map} +1 -1
  195. package/dist/components/{p-CJMiE2XV.js → p-BjHfY_hd.js} +5 -5
  196. package/dist/components/{p-CJMiE2XV.js.map → p-BjHfY_hd.js.map} +1 -1
  197. package/dist/components/{p-KoD5x01f.js → p-BnPjz3wB.js} +4 -4
  198. package/dist/components/{p-KoD5x01f.js.map → p-BnPjz3wB.js.map} +1 -1
  199. package/dist/components/{p-BNNPE7nC.js → p-BykridKJ.js} +4 -4
  200. package/dist/components/p-BykridKJ.js.map +1 -0
  201. package/dist/components/{p-djM81sM3.js → p-C0HU7Odo.js} +10 -10
  202. package/dist/components/{p-djM81sM3.js.map → p-C0HU7Odo.js.map} +1 -1
  203. package/dist/components/{p-CYjr8RrW.js → p-C4fEkny_.js} +6 -6
  204. package/dist/components/{p-CYjr8RrW.js.map → p-C4fEkny_.js.map} +1 -1
  205. package/dist/components/{p-BdIGnkC_.js → p-C5CPV0b2.js} +3 -3
  206. package/dist/components/{p-BdIGnkC_.js.map → p-C5CPV0b2.js.map} +1 -1
  207. package/dist/components/{p-CpD7yt7s.js → p-C5zDDN1d.js} +8 -8
  208. package/dist/components/{p-CpD7yt7s.js.map → p-C5zDDN1d.js.map} +1 -1
  209. package/dist/components/{p-pmDELcMO.js → p-C6WoWdN-.js} +4 -4
  210. package/dist/components/{p-pmDELcMO.js.map → p-C6WoWdN-.js.map} +1 -1
  211. package/dist/components/{p-D22mQG0o.js → p-CAzqPZz3.js} +5 -5
  212. package/dist/components/{p-D22mQG0o.js.map → p-CAzqPZz3.js.map} +1 -1
  213. package/dist/components/{p-B4RF622F.js → p-CBeStUbw.js} +16 -16
  214. package/dist/components/{p-B4RF622F.js.map → p-CBeStUbw.js.map} +1 -1
  215. package/dist/components/{p-CdLV5Vjd.js → p-CH2RfQk5.js} +9 -9
  216. package/dist/components/{p-CdLV5Vjd.js.map → p-CH2RfQk5.js.map} +1 -1
  217. package/dist/components/{p-CqhnR6WD.js → p-CHqcXeZD.js} +6 -6
  218. package/dist/components/{p-CqhnR6WD.js.map → p-CHqcXeZD.js.map} +1 -1
  219. package/dist/components/{p-Cy2K22TE.js → p-CIqfqpqS.js} +4 -4
  220. package/dist/components/p-CIqfqpqS.js.map +1 -0
  221. package/dist/components/{p-C4QoDLlk.js → p-CM0P8Co0.js} +10 -10
  222. package/dist/components/{p-C4QoDLlk.js.map → p-CM0P8Co0.js.map} +1 -1
  223. package/dist/components/{p-B2_W_QAO.js → p-COLpeOrl.js} +12 -12
  224. package/dist/components/{p-B2_W_QAO.js.map → p-COLpeOrl.js.map} +1 -1
  225. package/dist/components/p-COxiCaGR.js +100 -0
  226. package/dist/components/p-COxiCaGR.js.map +1 -0
  227. package/dist/components/{p-HRGtIvUD.js → p-CQeRPIfc.js} +3 -3
  228. package/dist/components/{p-HRGtIvUD.js.map → p-CQeRPIfc.js.map} +1 -1
  229. package/dist/components/{p-BADXItO0.js → p-CSRoweYf.js} +16 -16
  230. package/dist/components/{p-BADXItO0.js.map → p-CSRoweYf.js.map} +1 -1
  231. package/dist/components/p-CTJZqUNi.js +122 -0
  232. package/dist/components/p-CTJZqUNi.js.map +1 -0
  233. package/dist/components/{p-2rgTGLFc.js → p-C_GkBZyn.js} +7 -7
  234. package/dist/components/{p-2rgTGLFc.js.map → p-C_GkBZyn.js.map} +1 -1
  235. package/dist/{esm/udp-dialog.entry.js → components/p-CbIVOYM6.js} +59 -10
  236. package/dist/components/p-CbIVOYM6.js.map +1 -0
  237. package/dist/components/{p-DChiltQy.js → p-CbU7J4ou.js} +3 -3
  238. package/dist/components/{p-DChiltQy.js.map → p-CbU7J4ou.js.map} +1 -1
  239. package/dist/components/{p-BWOIQmp1.js → p-CbvU__9Y.js} +3 -3
  240. package/dist/components/{p-BWOIQmp1.js.map → p-CbvU__9Y.js.map} +1 -1
  241. package/dist/components/{p-BjnhIFmo.js → p-Cc8qkMa6.js} +3 -3
  242. package/dist/components/{p-BjnhIFmo.js.map → p-Cc8qkMa6.js.map} +1 -1
  243. package/dist/components/{p-BuCUt5kj.js → p-Cl8QWNR9.js} +3 -3
  244. package/dist/components/{p-BuCUt5kj.js.map → p-Cl8QWNR9.js.map} +1 -1
  245. package/dist/components/{p-BPkANAAZ.js → p-Cm6CVcqD.js} +8 -8
  246. package/dist/components/{p-BPkANAAZ.js.map → p-Cm6CVcqD.js.map} +1 -1
  247. package/dist/components/{p-Dh0msYO-.js → p-CmtPjl3R.js} +4 -4
  248. package/dist/components/{p-Dh0msYO-.js.map → p-CmtPjl3R.js.map} +1 -1
  249. package/dist/components/{p-Dx4Ldqtp.js → p-CmxDP51u.js} +7 -7
  250. package/dist/components/{p-Dx4Ldqtp.js.map → p-CmxDP51u.js.map} +1 -1
  251. package/dist/components/{p-Bn99oyF2.js → p-Cpr9avJF.js} +3 -3
  252. package/dist/components/{p-Bn99oyF2.js.map → p-Cpr9avJF.js.map} +1 -1
  253. package/dist/components/{p-DQQvBO32.js → p-CqwF7ihh.js} +7 -7
  254. package/dist/components/{p-DQQvBO32.js.map → p-CqwF7ihh.js.map} +1 -1
  255. package/dist/components/{p-DheoylxO.js → p-CsBzIkay.js} +4 -4
  256. package/dist/components/{p-DheoylxO.js.map → p-CsBzIkay.js.map} +1 -1
  257. package/dist/components/{p-BnqMordV.js → p-CuIK8vRp.js} +4 -4
  258. package/dist/components/{p-BnqMordV.js.map → p-CuIK8vRp.js.map} +1 -1
  259. package/dist/components/{p-CLO6X2VV.js → p-CueYesT1.js} +3 -3
  260. package/dist/components/{p-CLO6X2VV.js.map → p-CueYesT1.js.map} +1 -1
  261. package/dist/components/{p-DcjyBnkq.js → p-CvEceoRK.js} +3 -3
  262. package/dist/components/{p-DcjyBnkq.js.map → p-CvEceoRK.js.map} +1 -1
  263. package/dist/components/{p-GzvEq7ol.js → p-Cvh6faT7.js} +6 -6
  264. package/dist/components/{p-GzvEq7ol.js.map → p-Cvh6faT7.js.map} +1 -1
  265. package/dist/components/{p-DI_D5ajd.js → p-CyV8zkHj.js} +5 -5
  266. package/dist/components/{p-DI_D5ajd.js.map → p-CyV8zkHj.js.map} +1 -1
  267. package/dist/components/{p-KyHnMmDR.js → p-Cz_YXLEA.js} +48 -24
  268. package/dist/components/p-Cz_YXLEA.js.map +1 -0
  269. package/dist/components/{p-BxjQvoyz.js → p-D4-IakSf.js} +6 -6
  270. package/dist/components/{p-BxjQvoyz.js.map → p-D4-IakSf.js.map} +1 -1
  271. package/dist/components/{p-CDgTLuTo.js → p-D48rRItU.js} +4 -4
  272. package/dist/components/{p-CDgTLuTo.js.map → p-D48rRItU.js.map} +1 -1
  273. package/dist/components/{p-CAtawY3O.js → p-D4PRKvKg.js} +10 -10
  274. package/dist/components/{p-CAtawY3O.js.map → p-D4PRKvKg.js.map} +1 -1
  275. package/dist/components/{p-BQWYWcMT.js → p-D4wXQWaj.js} +3 -3
  276. package/dist/components/p-D4wXQWaj.js.map +1 -0
  277. package/dist/components/{p-DD_vOtxh.js → p-D5XVgb0x.js} +18 -18
  278. package/dist/components/{p-DD_vOtxh.js.map → p-D5XVgb0x.js.map} +1 -1
  279. package/dist/components/{p-Dn_VZVzC.js → p-D6zVaEti.js} +5 -5
  280. package/dist/components/{p-Dn_VZVzC.js.map → p-D6zVaEti.js.map} +1 -1
  281. package/dist/components/{p-L07LZdJB.js → p-D7fAvwDt.js} +3 -3
  282. package/dist/components/{p-L07LZdJB.js.map → p-D7fAvwDt.js.map} +1 -1
  283. package/dist/components/{p-LAlBMmf0.js → p-DBMOb9co.js} +4 -4
  284. package/dist/components/{p-LAlBMmf0.js.map → p-DBMOb9co.js.map} +1 -1
  285. package/dist/components/{p-DrYyCmZU.js → p-DC2-9Iyw.js} +5 -5
  286. package/dist/components/{p-DrYyCmZU.js.map → p-DC2-9Iyw.js.map} +1 -1
  287. package/dist/components/{p-DVymemB2.js → p-DGtafnkB.js} +3 -3
  288. package/dist/components/{p-DVymemB2.js.map → p-DGtafnkB.js.map} +1 -1
  289. package/dist/components/{p-YzyHL25r.js → p-DI43FUGP.js} +9 -9
  290. package/dist/components/{p-YzyHL25r.js.map → p-DI43FUGP.js.map} +1 -1
  291. package/dist/components/{p-CeTeeZTP.js → p-DNj1Jox5.js} +3 -3
  292. package/dist/components/{p-CeTeeZTP.js.map → p-DNj1Jox5.js.map} +1 -1
  293. package/dist/components/{p-B7cpYtlW.js → p-DR5UhKKb.js} +3 -3
  294. package/dist/components/{p-B7cpYtlW.js.map → p-DR5UhKKb.js.map} +1 -1
  295. package/dist/components/{p-D8DRYBU8.js → p-DUYoaPTf.js} +3 -3
  296. package/dist/components/{p-D8DRYBU8.js.map → p-DUYoaPTf.js.map} +1 -1
  297. package/dist/components/{p-DowHHNY1.js → p-DZapx9DD.js} +3 -3
  298. package/dist/components/{p-DowHHNY1.js.map → p-DZapx9DD.js.map} +1 -1
  299. package/dist/components/{p-FDDurs2l.js → p-DaDnLAH8.js} +11 -11
  300. package/dist/components/{p-FDDurs2l.js.map → p-DaDnLAH8.js.map} +1 -1
  301. package/dist/components/{p-C_xWTW_4.js → p-DfUoanwG.js} +6 -6
  302. package/dist/components/{p-C_xWTW_4.js.map → p-DfUoanwG.js.map} +1 -1
  303. package/dist/components/{p-COc1W-v5.js → p-DfrlG746.js} +19 -19
  304. package/dist/components/{p-COc1W-v5.js.map → p-DfrlG746.js.map} +1 -1
  305. package/dist/components/{p-ClXBIUHa.js → p-DquhuB3V.js} +20 -20
  306. package/dist/components/{p-ClXBIUHa.js.map → p-DquhuB3V.js.map} +1 -1
  307. package/dist/components/{p-C_mbutv5.js → p-DsqDFk7V.js} +7 -7
  308. package/dist/components/{p-C_mbutv5.js.map → p-DsqDFk7V.js.map} +1 -1
  309. package/dist/components/{p-CIitLjH2.js → p-DukRzZ5A.js} +3 -3
  310. package/dist/components/{p-CIitLjH2.js.map → p-DukRzZ5A.js.map} +1 -1
  311. package/dist/components/{p-BDnh4O-u.js → p-DyJGTScX.js} +3 -3
  312. package/dist/components/{p-BDnh4O-u.js.map → p-DyJGTScX.js.map} +1 -1
  313. package/dist/components/{p-DxVu7scp.js → p-Er_sd0US.js} +7 -7
  314. package/dist/components/{p-DxVu7scp.js.map → p-Er_sd0US.js.map} +1 -1
  315. package/dist/components/{p-DgoSpIzv.js → p-Fq5Ksvd8.js} +6 -6
  316. package/dist/components/{p-DgoSpIzv.js.map → p-Fq5Ksvd8.js.map} +1 -1
  317. package/dist/components/{p-Dl1-82iI.js → p-GQanl298.js} +6 -6
  318. package/dist/components/{p-Dl1-82iI.js.map → p-GQanl298.js.map} +1 -1
  319. package/dist/components/{p-DgJWksxD.js → p-IF3gGAvE.js} +5 -5
  320. package/dist/components/{p-DgJWksxD.js.map → p-IF3gGAvE.js.map} +1 -1
  321. package/dist/components/{p-C7118AFu.js → p-IPHh_Ox-.js} +8 -8
  322. package/dist/components/{p-C7118AFu.js.map → p-IPHh_Ox-.js.map} +1 -1
  323. package/dist/{esm/udp-list-item.entry.js → components/p-J8A9x-8W.js} +56 -10
  324. package/dist/components/p-J8A9x-8W.js.map +1 -0
  325. package/dist/components/{p-DuuEKOxP.js → p-KkM-w1Ho.js} +10 -10
  326. package/dist/components/{p-DuuEKOxP.js.map → p-KkM-w1Ho.js.map} +1 -1
  327. package/dist/components/{p-CjkDF1W-.js → p-Lj2N22oW.js} +9 -9
  328. package/dist/components/{p-CjkDF1W-.js.map → p-Lj2N22oW.js.map} +1 -1
  329. package/dist/components/{p-BR9Fq61C.js → p-LwhJgO3I.js} +6 -6
  330. package/dist/components/{p-BR9Fq61C.js.map → p-LwhJgO3I.js.map} +1 -1
  331. package/dist/components/{p-Dw3MI35q.js → p-SI2Wn3ib.js} +6 -6
  332. package/dist/components/{p-Dw3MI35q.js.map → p-SI2Wn3ib.js.map} +1 -1
  333. package/dist/components/{p-ebIpCxiZ.js → p-Tgipm6De.js} +5 -5
  334. package/dist/components/{p-ebIpCxiZ.js.map → p-Tgipm6De.js.map} +1 -1
  335. package/dist/components/{p-DhVT9gTo.js → p-Y4YCkUdD.js} +8 -8
  336. package/dist/components/{p-DhVT9gTo.js.map → p-Y4YCkUdD.js.map} +1 -1
  337. package/dist/components/{p-CM4b_phZ.js → p-cSNP7C_8.js} +3 -3
  338. package/dist/components/{p-CM4b_phZ.js.map → p-cSNP7C_8.js.map} +1 -1
  339. package/dist/components/{p-B-cZDMw-.js → p-da-jI1M6.js} +5 -5
  340. package/dist/components/{p-B-cZDMw-.js.map → p-da-jI1M6.js.map} +1 -1
  341. package/dist/components/{p-B1RT7HGF.js → p-fTPtMCLt.js} +35 -35
  342. package/dist/components/{p-B1RT7HGF.js.map → p-fTPtMCLt.js.map} +1 -1
  343. package/dist/components/{p-Cleiayy6.js → p-fpVFqbOo.js} +10 -10
  344. package/dist/components/{p-Cleiayy6.js.map → p-fpVFqbOo.js.map} +1 -1
  345. package/dist/components/{p-Y0xyUonA.js → p-hwo2h7Z9.js} +5 -5
  346. package/dist/components/{p-Y0xyUonA.js.map → p-hwo2h7Z9.js.map} +1 -1
  347. package/dist/components/{p-D8ANNMFQ.js → p-lN1ee8PF.js} +6 -6
  348. package/dist/components/{p-D8ANNMFQ.js.map → p-lN1ee8PF.js.map} +1 -1
  349. package/dist/components/{p-C4GQL77I.js → p-o8ikNcj0.js} +6 -6
  350. package/dist/components/{p-C4GQL77I.js.map → p-o8ikNcj0.js.map} +1 -1
  351. package/dist/components/{p-DOfPSxw3.js → p-oEWm3yJu.js} +7 -7
  352. package/dist/components/{p-DOfPSxw3.js.map → p-oEWm3yJu.js.map} +1 -1
  353. package/dist/components/{p-B1j3K3sc.js → p-q1ZE2woi.js} +9 -9
  354. package/dist/components/{p-B1j3K3sc.js.map → p-q1ZE2woi.js.map} +1 -1
  355. package/dist/components/{p-CvGSC_-s.js → p-q7POHITb.js} +19 -19
  356. package/dist/components/{p-CvGSC_-s.js.map → p-q7POHITb.js.map} +1 -1
  357. package/dist/components/{p-BmLaXwff.js → p-sojRqN8m.js} +5 -5
  358. package/dist/components/{p-BmLaXwff.js.map → p-sojRqN8m.js.map} +1 -1
  359. package/dist/components/{p-DHzj3DhQ.js → p-u530FQDK.js} +5 -5
  360. package/dist/components/{p-DHzj3DhQ.js.map → p-u530FQDK.js.map} +1 -1
  361. package/dist/components/{p-HCl418eB.js → p-vPOQX4A7.js} +46 -22
  362. package/dist/components/p-vPOQX4A7.js.map +1 -0
  363. package/dist/components/{p-Cy2uaM45.js → p-vi-29Jy_.js} +4 -4
  364. package/dist/components/{p-Cy2uaM45.js.map → p-vi-29Jy_.js.map} +1 -1
  365. package/dist/components/page-renderer.js +35 -35
  366. package/dist/components/primary-action-header.js +1 -1
  367. package/dist/components/question-configs-renderer.js +1 -1
  368. package/dist/components/question-specific-configs-renderer.js +1 -1
  369. package/dist/components/resource-timeline-calendar.js +7 -7
  370. package/dist/components/resource-timeline-primary-bar.js +1 -1
  371. package/dist/components/save-view-form-dialog.js +1 -1
  372. package/dist/components/search-list-item.js +1 -1
  373. package/dist/components/search-method-grid.js +1 -1
  374. package/dist/components/section-configs-renderer.js +1 -1
  375. package/dist/components/select-layer-popup.js +1 -1
  376. package/dist/components/selectable-list.js +1 -1
  377. package/dist/components/server-side-grid.js +1 -1
  378. package/dist/components/side-sheet.js +1 -1
  379. package/dist/components/signature-input.js +1 -1
  380. package/dist/components/split-line-popup.js +1 -1
  381. package/dist/components/stencil-chip.js +1 -1
  382. package/dist/components/stencil-icon-button-grid-action-header.js +1 -1
  383. package/dist/components/stencil-icon-button.js +1 -1
  384. package/dist/components/stencil-toggle.js +1 -1
  385. package/dist/components/tally-display.js +1 -1
  386. package/dist/components/text-area.js +1 -1
  387. package/dist/components/text-field.js +1 -1
  388. package/dist/components/text-input-renderer.js +1 -1
  389. package/dist/components/tree-list-item.js +1 -1
  390. package/dist/components/udp-advanced-search-builder.js +10 -10
  391. package/dist/components/udp-ambient-card.js +1 -1
  392. package/dist/components/udp-ambient-tool-tip.js +1 -1
  393. package/dist/components/udp-avatar.js +1 -1
  394. package/dist/components/udp-badge.js +1 -1
  395. package/dist/components/udp-bar-chart.js +1 -1
  396. package/dist/components/udp-card-header.js +1 -1
  397. package/dist/components/udp-card.js +1 -1
  398. package/dist/components/udp-charts-example.js +12 -12
  399. package/dist/components/udp-chip.js +1 -1
  400. package/dist/components/udp-column-header.js +1 -1
  401. package/dist/components/udp-container-query-grid-item.js +1 -1
  402. package/dist/components/udp-container-query-grid.js +2 -2
  403. package/dist/components/udp-container-query.js +1 -1
  404. package/dist/components/udp-container.js +1 -1
  405. package/dist/components/udp-date-selector.js +1 -1
  406. package/dist/components/udp-datetime-selector.js +1 -1
  407. package/dist/components/udp-dialog.js +1 -112
  408. package/dist/components/udp-dialog.js.map +1 -1
  409. package/dist/components/udp-distribution-chart.js +1 -1
  410. package/dist/components/udp-donut-chart.js +1 -1
  411. package/dist/components/udp-dynamic-container-with-menu.js +1 -1
  412. package/dist/components/udp-dynamic-form.js +8 -8
  413. package/dist/components/udp-empty-state-display.js +1 -1
  414. package/dist/components/udp-forms-builder-menu.js +1 -1
  415. package/dist/components/udp-forms-builder-question-item.js +1 -1
  416. package/dist/components/udp-forms-builder-style-override.js +1 -1
  417. package/dist/components/udp-forms-builder.js +30 -30
  418. package/dist/components/udp-forms-list-card.js +1 -1
  419. package/dist/components/udp-forms-list.js +14 -14
  420. package/dist/components/udp-forms-renderer.js +23 -23
  421. package/dist/components/udp-forms-ui.js +1 -1
  422. package/dist/components/udp-grid-loader.js +1 -1
  423. package/dist/components/udp-hotlist-form.js +1 -1
  424. package/dist/components/udp-icon-button.js +1 -1
  425. package/dist/components/udp-line-chart.js +1 -1
  426. package/dist/components/udp-linear-loader.js +1 -1
  427. package/dist/components/udp-list-item.js +1 -111
  428. package/dist/components/udp-list-item.js.map +1 -1
  429. package/dist/components/udp-map-toolbar.js +1 -1
  430. package/dist/components/udp-map.js +20 -20
  431. package/dist/components/udp-menu-item.js +1 -1
  432. package/dist/components/udp-menu.js +1 -1
  433. package/dist/components/udp-notification.js +1 -1
  434. package/dist/components/udp-page-header.js +1 -1
  435. package/dist/components/udp-page.js +1 -1
  436. package/dist/components/udp-pop-over-grid-action-header.js +1 -1
  437. package/dist/components/udp-question-comment.js +1 -1
  438. package/dist/components/udp-question.js +1 -1
  439. package/dist/components/udp-radio-button.js +1 -1
  440. package/dist/components/udp-sankey-chart.js +7 -7
  441. package/dist/components/udp-save-draft-button.js +1 -1
  442. package/dist/components/udp-selector.js +1 -1
  443. package/dist/components/udp-side-sheet.js +1 -1
  444. package/dist/components/udp-skeleton-loading.js +1 -1
  445. package/dist/components/udp-split-screen.js +1 -1
  446. package/dist/components/udp-stepper-demo.js +3 -3
  447. package/dist/components/udp-stepper.js +1 -1
  448. package/dist/components/udp-tab.js +1 -1
  449. package/dist/components/udp-tabs.js +1 -1
  450. package/dist/components/udp-time-selector.js +1 -1
  451. package/dist/components/udp-vertical-spacer.js +1 -1
  452. package/dist/components/udp-xy-chart.js +1 -1
  453. package/dist/components/udp-xy-multi-series-chart.js +7 -7
  454. package/dist/components/unity-typography.js +1 -1
  455. package/dist/components/upd-alert-banner.js +1 -1
  456. package/dist/components/validation-chip.js +1 -1
  457. package/dist/docs.d.ts +443 -0
  458. package/dist/docs.json +48798 -0
  459. package/dist/esm/add-map-feature-popup_4.entry.js +11 -11
  460. package/dist/esm/advanced-search-builder.entry.js +1 -1
  461. package/dist/esm/advanced-search-builder.entry.js.map +1 -1
  462. package/dist/esm/advanced-search_50.entry.js +22 -22
  463. package/dist/esm/advanced-search_50.entry.js.map +1 -1
  464. package/dist/esm/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.js.map +1 -0
  465. package/dist/esm/{ag-grid-base_2.entry.js → ag-grid-base_5.entry.js} +228 -18
  466. package/dist/esm/ag-grid-base_5.entry.js.map +1 -0
  467. package/dist/esm/api-method-instance-grid.entry.js +1 -1
  468. package/dist/esm/check-box.entry.js +2 -2
  469. package/dist/esm/chip-section.entry.js +2 -2
  470. package/dist/esm/client-side-grid.entry.js +1 -1
  471. package/dist/esm/color-preview.entry.js +1 -1
  472. package/dist/esm/entity-maintenance-grid.entry.js +1 -1
  473. package/dist/esm/feature-details-card_2.entry.js +5 -5
  474. package/dist/esm/filter-group.validation-chip.entry.js.map +1 -1
  475. package/dist/esm/filter-group_2.entry.js +1 -1
  476. package/dist/esm/filter-group_2.entry.js.map +1 -1
  477. package/dist/esm/image-upload_7.entry.js +5 -5
  478. package/dist/esm/index-C75VZPn2.js +2 -10
  479. package/dist/esm/inputs-example.entry.js +2 -2
  480. package/dist/esm/loader.js +1 -1
  481. package/dist/esm/map-component_2.entry.js +2 -2
  482. package/dist/esm/numeric-field_5.entry.js +15 -15
  483. package/dist/esm/page-renderer.entry.js +1 -1
  484. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  485. package/dist/esm/resource-timeline-primary-bar.entry.js +1 -1
  486. package/dist/esm/search-method-grid.entry.js +1 -1
  487. package/dist/esm/server-side-grid.entry.js +1 -1
  488. package/dist/esm/stencil-library.js +1 -1
  489. package/dist/esm/udp-chip.udp-icon-button.udp-menu.entry.js.map +1 -1
  490. package/dist/esm/udp-chip_3.entry.js +3 -3
  491. package/dist/esm/udp-chip_3.entry.js.map +1 -1
  492. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  493. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  494. package/dist/esm/udp-container-query.entry.js +2 -2
  495. package/dist/esm/udp-container.entry.js +2 -2
  496. package/dist/esm/udp-map.entry.js +3 -3
  497. package/dist/esm/udp-page.entry.js +1 -1
  498. package/dist/esm/udp-split-screen.entry.js +1 -1
  499. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  500. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  501. package/dist/stencil-library/advanced-search-builder.entry.esm.js.map +1 -1
  502. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.esm.js.map +1 -0
  503. package/dist/stencil-library/filter-group.validation-chip.entry.esm.js.map +1 -1
  504. package/dist/stencil-library/{p-bc1f30cd.entry.js → p-14934f64.entry.js} +2 -2
  505. package/dist/stencil-library/p-1525cdd0.entry.js +2 -0
  506. package/dist/stencil-library/{p-75841059.entry.js → p-1738ea8b.entry.js} +2 -2
  507. package/dist/stencil-library/p-1e05f587.entry.js +2 -0
  508. package/dist/stencil-library/p-20aae59c.entry.js +2 -0
  509. package/dist/stencil-library/{p-53ab47bc.entry.js → p-297ea031.entry.js} +2 -2
  510. package/dist/stencil-library/{p-cd5ef378.entry.js → p-37e1dc4a.entry.js} +2 -2
  511. package/dist/stencil-library/{p-b60fde4e.entry.js → p-3d9d4f20.entry.js} +2 -2
  512. package/dist/stencil-library/{p-b60fde4e.entry.js.map → p-3d9d4f20.entry.js.map} +1 -1
  513. package/dist/stencil-library/{p-f96cd937.entry.js → p-428bf170.entry.js} +2 -2
  514. package/dist/stencil-library/p-5951ba80.entry.js +2 -0
  515. package/dist/stencil-library/p-5951ba80.entry.js.map +1 -0
  516. package/dist/stencil-library/{p-fe0f688f.entry.js → p-6805b175.entry.js} +2 -2
  517. package/dist/stencil-library/{p-4f52dfa4.entry.js → p-6ad39155.entry.js} +2 -2
  518. package/dist/stencil-library/p-6b7a5c44.entry.js +2 -0
  519. package/dist/stencil-library/p-72ed4b25.entry.js +2 -0
  520. package/dist/stencil-library/p-72ed4b25.entry.js.map +1 -0
  521. package/dist/stencil-library/{p-b6c440e6.entry.js → p-79517863.entry.js} +2 -2
  522. package/dist/stencil-library/{p-62816607.entry.js → p-7b082f2f.entry.js} +2 -2
  523. package/dist/stencil-library/{p-b6f349a1.entry.js → p-8026545b.entry.js} +2 -2
  524. package/dist/stencil-library/{p-c6666ca3.entry.js → p-83e25800.entry.js} +2 -2
  525. package/dist/stencil-library/{p-39ceb24c.entry.js → p-8685a7a0.entry.js} +2 -2
  526. package/dist/stencil-library/p-8b3d04ea.entry.js +2 -0
  527. package/dist/stencil-library/p-8b3d04ea.entry.js.map +1 -0
  528. package/dist/stencil-library/{p-be8b8b29.entry.js → p-8c61a770.entry.js} +2 -2
  529. package/dist/stencil-library/{p-22f255a9.entry.js → p-908b27fe.entry.js} +2 -2
  530. package/dist/stencil-library/{p-ab1dc8e5.entry.js → p-a3d4ab45.entry.js} +2 -2
  531. package/dist/stencil-library/{p-0df9bbc8.entry.js → p-a758f7b4.entry.js} +2 -2
  532. package/dist/stencil-library/p-aae0f83a.entry.js +2 -0
  533. package/dist/stencil-library/{p-91aad9d5.entry.js → p-b1df1128.entry.js} +2 -2
  534. package/dist/stencil-library/{p-30e4d9ef.entry.js → p-c59e623d.entry.js} +2 -2
  535. package/dist/stencil-library/{p-6e9a3690.entry.js → p-cac17b31.entry.js} +2 -2
  536. package/dist/stencil-library/{p-c357c38a.entry.js → p-de1ba5e0.entry.js} +2 -2
  537. package/dist/stencil-library/p-e4cd040e.entry.js +2 -0
  538. package/dist/stencil-library/p-ebeb4a9b.entry.js +2 -0
  539. package/dist/stencil-library/p-ebeb4a9b.entry.js.map +1 -0
  540. package/dist/stencil-library/stencil-library.esm.js +1 -1
  541. package/dist/stencil-library/udp-chip.udp-icon-button.udp-menu.entry.esm.js.map +1 -1
  542. package/dist/types/components/my-component/UI/charts/chartUtils.d.ts +5 -4
  543. package/dist/types/components/my-component/UI/grid/new-grid/interfaces/grid.d.ts +1 -1
  544. package/dist/types/components/my-component/UI/util/ghost-render/ghost-render.d.ts +69 -0
  545. package/dist/types/components.d.ts +13 -0
  546. package/dist/types/components.stories.d.ts +12 -0
  547. package/package.json +10 -3
  548. package/readme.md +622 -2
  549. package/dist/cjs/ag-grid-base.grid-header.entry.cjs.js.map +0 -1
  550. package/dist/cjs/ag-grid-base_2.cjs.entry.js.map +0 -1
  551. package/dist/cjs/udp-dialog.cjs.entry.js +0 -70
  552. package/dist/cjs/udp-dialog.cjs.entry.js.map +0 -1
  553. package/dist/cjs/udp-dialog.entry.cjs.js.map +0 -1
  554. package/dist/cjs/udp-list-item.cjs.entry.js +0 -72
  555. package/dist/cjs/udp-list-item.cjs.entry.js.map +0 -1
  556. package/dist/cjs/udp-list-item.entry.cjs.js.map +0 -1
  557. package/dist/components/p-BNNPE7nC.js.map +0 -1
  558. package/dist/components/p-BQWYWcMT.js.map +0 -1
  559. package/dist/components/p-BTNfY6DI.js.map +0 -1
  560. package/dist/components/p-CTEFRXiy.js.map +0 -1
  561. package/dist/components/p-CcwNgcqS.js.map +0 -1
  562. package/dist/components/p-Cy2K22TE.js.map +0 -1
  563. package/dist/components/p-DiOXyAYM.js +0 -122
  564. package/dist/components/p-DiOXyAYM.js.map +0 -1
  565. package/dist/components/p-HCl418eB.js.map +0 -1
  566. package/dist/components/p-KyHnMmDR.js.map +0 -1
  567. package/dist/esm/ag-grid-base.grid-header.entry.js.map +0 -1
  568. package/dist/esm/ag-grid-base_2.entry.js.map +0 -1
  569. package/dist/esm/udp-dialog.entry.js.map +0 -1
  570. package/dist/esm/udp-list-item.entry.js.map +0 -1
  571. package/dist/stencil-library/ag-grid-base.grid-header.entry.esm.js.map +0 -1
  572. package/dist/stencil-library/p-17364a58.entry.js +0 -2
  573. package/dist/stencil-library/p-3e31a847.entry.js +0 -2
  574. package/dist/stencil-library/p-3e31a847.entry.js.map +0 -1
  575. package/dist/stencil-library/p-45b253d9.entry.js +0 -2
  576. package/dist/stencil-library/p-5557251d.entry.js +0 -2
  577. package/dist/stencil-library/p-69949245.entry.js +0 -2
  578. package/dist/stencil-library/p-837c3e1f.entry.js +0 -2
  579. package/dist/stencil-library/p-837c3e1f.entry.js.map +0 -1
  580. package/dist/stencil-library/p-963059c8.entry.js +0 -2
  581. package/dist/stencil-library/p-963059c8.entry.js.map +0 -1
  582. package/dist/stencil-library/p-b772e7f0.entry.js +0 -2
  583. package/dist/stencil-library/p-c8ca2dc5.entry.js +0 -2
  584. package/dist/stencil-library/p-c8ca2dc5.entry.js.map +0 -1
  585. package/dist/stencil-library/p-e830dbe0.entry.js +0 -2
  586. package/dist/stencil-library/p-f393c8e9.entry.js +0 -2
  587. package/dist/stencil-library/p-f393c8e9.entry.js.map +0 -1
  588. package/dist/stencil-library/p-f4ccc3c0.entry.js +0 -2
  589. package/dist/stencil-library/p-f4ccc3c0.entry.js.map +0 -1
  590. package/dist/stencil-library/udp-dialog.entry.esm.js.map +0 -1
  591. package/dist/stencil-library/udp-list-item.entry.esm.js.map +0 -1
  592. /package/dist/stencil-library/{p-bc1f30cd.entry.js.map → p-14934f64.entry.js.map} +0 -0
  593. /package/dist/stencil-library/{p-69949245.entry.js.map → p-1525cdd0.entry.js.map} +0 -0
  594. /package/dist/stencil-library/{p-75841059.entry.js.map → p-1738ea8b.entry.js.map} +0 -0
  595. /package/dist/stencil-library/{p-45b253d9.entry.js.map → p-1e05f587.entry.js.map} +0 -0
  596. /package/dist/stencil-library/{p-e830dbe0.entry.js.map → p-20aae59c.entry.js.map} +0 -0
  597. /package/dist/stencil-library/{p-53ab47bc.entry.js.map → p-297ea031.entry.js.map} +0 -0
  598. /package/dist/stencil-library/{p-cd5ef378.entry.js.map → p-37e1dc4a.entry.js.map} +0 -0
  599. /package/dist/stencil-library/{p-f96cd937.entry.js.map → p-428bf170.entry.js.map} +0 -0
  600. /package/dist/stencil-library/{p-fe0f688f.entry.js.map → p-6805b175.entry.js.map} +0 -0
  601. /package/dist/stencil-library/{p-4f52dfa4.entry.js.map → p-6ad39155.entry.js.map} +0 -0
  602. /package/dist/stencil-library/{p-17364a58.entry.js.map → p-6b7a5c44.entry.js.map} +0 -0
  603. /package/dist/stencil-library/{p-b6c440e6.entry.js.map → p-79517863.entry.js.map} +0 -0
  604. /package/dist/stencil-library/{p-62816607.entry.js.map → p-7b082f2f.entry.js.map} +0 -0
  605. /package/dist/stencil-library/{p-b6f349a1.entry.js.map → p-8026545b.entry.js.map} +0 -0
  606. /package/dist/stencil-library/{p-c6666ca3.entry.js.map → p-83e25800.entry.js.map} +0 -0
  607. /package/dist/stencil-library/{p-39ceb24c.entry.js.map → p-8685a7a0.entry.js.map} +0 -0
  608. /package/dist/stencil-library/{p-be8b8b29.entry.js.map → p-8c61a770.entry.js.map} +0 -0
  609. /package/dist/stencil-library/{p-22f255a9.entry.js.map → p-908b27fe.entry.js.map} +0 -0
  610. /package/dist/stencil-library/{p-ab1dc8e5.entry.js.map → p-a3d4ab45.entry.js.map} +0 -0
  611. /package/dist/stencil-library/{p-0df9bbc8.entry.js.map → p-a758f7b4.entry.js.map} +0 -0
  612. /package/dist/stencil-library/{p-b772e7f0.entry.js.map → p-aae0f83a.entry.js.map} +0 -0
  613. /package/dist/stencil-library/{p-91aad9d5.entry.js.map → p-b1df1128.entry.js.map} +0 -0
  614. /package/dist/stencil-library/{p-30e4d9ef.entry.js.map → p-c59e623d.entry.js.map} +0 -0
  615. /package/dist/stencil-library/{p-6e9a3690.entry.js.map → p-cac17b31.entry.js.map} +0 -0
  616. /package/dist/stencil-library/{p-c357c38a.entry.js.map → p-de1ba5e0.entry.js.map} +0 -0
  617. /package/dist/stencil-library/{p-5557251d.entry.js.map → p-e4cd040e.entry.js.map} +0 -0
@@ -82,11 +82,11 @@ const AddMapFeaturePopUp = class {
82
82
  }
83
83
  render() {
84
84
  var _a, _b, _c;
85
- return (index.h("div", { key: '2c77384188f86a918dab67a4105c89b8a1e54eda', class: "popoverContent" }, !((_a = this.panelConfig) === null || _a === void 0 ? void 0 : _a.hideLayerSelector) && (index.h("div", { key: '1f83a9b05a3a8408ee9dfedc6741dc29bf1e066c' }, index.h("udp-selector", { key: 'da4483d142b3d2389ab2ff5087c14f8b4bc71a6a', id: 'layer', options: this.layerToAddOptions, initialValue: this.selectedLayer, label: 'Layer', onChange: (e) => {
85
+ return (index.h("div", { key: 'a5fb1dbb0584394e02a0b6c409e9577ea9039707', class: "popoverContent" }, !((_a = this.panelConfig) === null || _a === void 0 ? void 0 : _a.hideLayerSelector) && (index.h("div", { key: 'ca099fd68d51dd003a8900fe559f3da24c80f53f' }, index.h("udp-selector", { key: 'fff6ed66f0bd0fd3fe5ee6607dd36c80be30f733', id: 'layer', options: this.layerToAddOptions, initialValue: this.selectedLayer, label: 'Layer', onChange: (e) => {
86
86
  this.handleSetSelectedLayer(e);
87
- }, large: false }), index.h("div", { key: '37a0fd6574bbb0b8acdef92cc39302f91b31c543', style: { height: '12px' } }))), index.h("udp-selector", { key: 'b820e6f0dee23a6fc08c5fe37f813d8f95ceee48', id: 'type', options: (_b = this.drawingTypeOptions) !== null && _b !== void 0 ? _b : [], initialValue: this.selectedType, label: 'Type', onChange: (e) => {
87
+ }, large: false }), index.h("div", { key: 'cdd0cf757ae32ff2d2c171e1872ab680b446fe5d', style: { height: '12px' } }))), index.h("udp-selector", { key: '9d8e845a9a9c36484e4a5339eae1c6821cb43093', id: 'type', options: (_b = this.drawingTypeOptions) !== null && _b !== void 0 ? _b : [], initialValue: this.selectedType, label: 'Type', onChange: (e) => {
88
88
  this.handleSetSelectedType(e);
89
- }, large: false }), index.h("div", { key: '2cc9307478dec12c0558ee33ad34a682f3efb118', style: { height: '12px' } }), index.h("div", { key: '820c9e54c32e143d340d6d376cd3200473a2ec09', class: "formButton" }, index.h("custom-button", { key: '33abfaffbd64b353872a177a6d4a352ccd927062', label: index.h("unity-typography", { variant: "button" }, 'Draw feature'), onClick: () => this.handleStartDrawingMapFeature(this.selectedLayer, this.selectedType), variant: 'outline', disabled: (this.selectedLayer === null && !((_c = this.panelConfig) === null || _c === void 0 ? void 0 : _c.hideLayerSelector)) || this.selectedType === null }))));
89
+ }, large: false }), index.h("div", { key: 'a258e80e600104b1fbdc6815512d334c2b74c724', style: { height: '12px' } }), index.h("div", { key: '595cef1e8bcc7c84747571d806debee420b48b34', class: "formButton" }, index.h("custom-button", { key: '397ab9862cf68cea4c9e65f73eede4b2bd364a9a', label: index.h("unity-typography", { variant: "button" }, 'Draw feature'), onClick: () => this.handleStartDrawingMapFeature(this.selectedLayer, this.selectedType), variant: 'outline', disabled: (this.selectedLayer === null && !((_c = this.panelConfig) === null || _c === void 0 ? void 0 : _c.hideLayerSelector)) || this.selectedType === null }))));
90
90
  }
91
91
  static get watchers() { return {
92
92
  "panelConfig": ["watchPanelConfig"],
@@ -260,22 +260,22 @@ const MapToolbar = class {
260
260
  }
261
261
  render() {
262
262
  var _a, _b;
263
- return (index.h("div", { key: '6c8cf2f1a4f0fa119d49b2d50c33e948d37556df', class: "toolbarContainer" }, index.h("div", { key: 'a7afe721e176c3d0cab83e771f6eaeca9a52d0f7', class: "title" }, this.mapTitle && this.mapTitle.length > 0 && index.h("unity-typography", { key: 'b6753c9c88a5bc2aa3ab846342a788093f9345c4', variant: "h4" }, this.mapTitle)), index.h("div", { key: '4ea5c1ee9837067201e3b0638f81473b4ac92d00', class: "buttons" }, index.h("div", { key: 'f789c0a68002e9af599f003501094a38bd1695c6', class: "buttonContainer" }, index.h("div", { key: 'aaf014010f023ec42de4a7f29d9300b4bb1a607c', class: "secondaryButtons" }, this.filterPanel && (index.h("div", { key: '5687225662d23c0764a9ee0320b31077960b0a53', id: "filterOption" }, index.h("div", { key: '6d0392c9a800ebcb459cfebf865712dab68472f6', id: "filterOptionButton" }, index.h("stencil-icon-button", { key: '0db80cbafb16e57b8e15f8e101f039b4852d03ee', iconName: 'filterButton', iconClassName: 'iconButtonWrapper', tooltip: 'Filter', icon: es.Filter16, buttonId: 'filterButton', onClick: () => this.handleFilterOnclick() })), this.filterAnchor && (index.h("div", { key: 'b2f7404a93407a00515b2549e97df60450ead6ec', id: "filterOptionDiv" }, index.h("udp-pop-over", { key: '3744e0db4dd96c4599c027c10ddb48fbb2a5de91', isOpen: this.filterAnchor ? true : false, anchorElement: this.filterAnchor, handleOnClose: () => this.handleCloseFilterPopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("div", { key: '9c92a796e9231aa0ac98100698ec53d501f504bf', innerHTML: this.filterPanel })))))), this.layerOptions && (index.h("div", { key: '9fb6ca6526fc1244d2050f34cc20f0a626624f8a', id: "layerOption" }, index.h("div", { key: 'd89606617d7fd8f60ce9e3dc52aa9ea51098d115', id: "layerOptionButton" }, index.h("stencil-icon-button", { key: 'd17c5b6365e7768217b61dd1ea4f43dccdc0347e', iconName: 'layersButton', iconClassName: 'iconButtonWrapper', tooltip: 'Layers', icon: es.Layers16, buttonId: 'layersButton', onClick: () => this.handleLayerOnclick(), count: (_a = this.visibleLayers) === null || _a === void 0 ? void 0 : _a.length })), index.h("div", { key: '6a92203e81e4bc354776fc987de89b05696d44a5', id: "layerOptionDiv" }, this.layerAnchor && (index.h("udp-pop-over", { key: '9ee82936e28a6613437233276398fc994c007316', isOpen: this.layerAnchor ? true : false, anchorElement: this.layerAnchor, handleOnClose: () => this.handleCloseLayerPopover(), popoverPlacement: 'bottom-start', popoverMaxHeight: '500px' }, index.h("select-layer-popup", { key: '3f6afbb8c78b6b2d78bdb1b78ab7c5332ea353f2', enableTileSelection: this.enableTileSelection, tileOptions: this.tileOptions, handleMapTypeInputChange: this.handleMapTypeInputChange, handleSearchLayers: this.handleSearchLayers, filteredOptions: this.filteredOptions, visibleLayers: this.visibleLayers, updateSelectedLayers: this.updateSelectedLayers, selectedTile: this.selectedTile })))))), !this.readOnlyMap && this.selectedFeaturesActionPanel && (index.h("div", { key: '463100a0688282bd49aff27ef0effddf42061303', id: "bulkSelectOption" }, index.h("div", { key: '791aeeabf4d140dc21fcdcd43215a850fc06c242', id: "bulkSelectOptionButton" }, index.h("stencil-icon-button", { key: '8b06cb87a8c24658029ec5d9359eb5183f0266d3', iconName: 'selectButton', iconClassName: 'iconButtonWrapper', tooltip: 'Select', icon: es.Select_0116, buttonId: 'selectButton', onClick: () => this.handleSelectionBtnOnclick() })), index.h("div", { key: '61b7e8ec1345cd45890f591cc9c550a56352b01d', id: "bulkSelectOptionDiv" }, this.bulkSelectionTypeAnchor && (index.h("udp-pop-over", { key: '46a696fb1477a76f71f545ac1df8c89be9caa645', isOpen: this.bulkSelectionTypeAnchor ? true : false, anchorElement: this.bulkSelectionTypeAnchor, handleOnClose: () => this.handleCloseBulkSelectionTypePopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("udp-menu-item", { key: '5ab9d68bccc21ad11dc8547bd62e9ef630ef8243', label: 'Box', handleOnClick: () => {
263
+ return (index.h("div", { key: 'cbaa7707108ddd452af8d8c5ae5b9f3f4dc129d0', class: "toolbarContainer" }, index.h("div", { key: '24938aeff47f9c2aee2816306b5443f1b2ce8184', class: "title" }, this.mapTitle && this.mapTitle.length > 0 && index.h("unity-typography", { key: 'af8c253b01ba24426ea9943c1422a3bef2f9b030', variant: "h4" }, this.mapTitle)), index.h("div", { key: '6ca068ad276897e78c847e7554f9cc94ffb35146', class: "buttons" }, index.h("div", { key: 'f1a6ac2e14ec447445e5501e66da692991ccb473', class: "buttonContainer" }, index.h("div", { key: '7cedf3ab110b34a2ab924791aac122631b37bb82', class: "secondaryButtons" }, this.filterPanel && (index.h("div", { key: '6609be6be93efcc2f3e5530ad0531da31101cbbb', id: "filterOption" }, index.h("div", { key: 'df67c95ba25bc1cee7023a97a143fe35e0e7a686', id: "filterOptionButton" }, index.h("stencil-icon-button", { key: '9b3c9edb4e3882413bfb6d1ec9586300fc168492', iconName: 'filterButton', iconClassName: 'iconButtonWrapper', tooltip: 'Filter', icon: es.Filter16, buttonId: 'filterButton', onClick: () => this.handleFilterOnclick() })), this.filterAnchor && (index.h("div", { key: '46fbfd44c751a100873b745a727b283615f99da4', id: "filterOptionDiv" }, index.h("udp-pop-over", { key: 'b5822922dc8482daefdfc7c0d73007e1a6e22eb0', isOpen: this.filterAnchor ? true : false, anchorElement: this.filterAnchor, handleOnClose: () => this.handleCloseFilterPopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("div", { key: 'e93ef8aedfea8fb47cbc3849a5e3cda43120be86', innerHTML: this.filterPanel })))))), this.layerOptions && (index.h("div", { key: '5338aa287eecc3b255922cf80ac09dd054772c46', id: "layerOption" }, index.h("div", { key: 'b2d448532e03b536838ea1a4a0923e75a82dbee4', id: "layerOptionButton" }, index.h("stencil-icon-button", { key: 'c2b286cb6b5b89404412a34c925db5771df68009', iconName: 'layersButton', iconClassName: 'iconButtonWrapper', tooltip: 'Layers', icon: es.Layers16, buttonId: 'layersButton', onClick: () => this.handleLayerOnclick(), count: (_a = this.visibleLayers) === null || _a === void 0 ? void 0 : _a.length })), index.h("div", { key: '3f17d77b57e1fab801bf43414e82c2c07638c644', id: "layerOptionDiv" }, this.layerAnchor && (index.h("udp-pop-over", { key: 'ea6b9cd0a865548ad8601422e2f72c9d9bc3f503', isOpen: this.layerAnchor ? true : false, anchorElement: this.layerAnchor, handleOnClose: () => this.handleCloseLayerPopover(), popoverPlacement: 'bottom-start', popoverMaxHeight: '500px' }, index.h("select-layer-popup", { key: 'b4591409c33d76f35e596cfad756666afbee3d8a', enableTileSelection: this.enableTileSelection, tileOptions: this.tileOptions, handleMapTypeInputChange: this.handleMapTypeInputChange, handleSearchLayers: this.handleSearchLayers, filteredOptions: this.filteredOptions, visibleLayers: this.visibleLayers, updateSelectedLayers: this.updateSelectedLayers, selectedTile: this.selectedTile })))))), !this.readOnlyMap && this.selectedFeaturesActionPanel && (index.h("div", { key: '02a37151a3ba19662158dc34301aaa1d6327aed4', id: "bulkSelectOption" }, index.h("div", { key: '2478369cc4364edb7a530bb0d4c1e26aa71fe05e', id: "bulkSelectOptionButton" }, index.h("stencil-icon-button", { key: '1bcb080c2f19ca1c864cce27c4c7025b3296257f', iconName: 'selectButton', iconClassName: 'iconButtonWrapper', tooltip: 'Select', icon: es.Select_0116, buttonId: 'selectButton', onClick: () => this.handleSelectionBtnOnclick() })), index.h("div", { key: '3407429658fa0a6c1d93ae33f6d6d336e8d51ea7', id: "bulkSelectOptionDiv" }, this.bulkSelectionTypeAnchor && (index.h("udp-pop-over", { key: '4fe5d9ce584b9ecf835e0202ec919255c5b7c6dd', isOpen: this.bulkSelectionTypeAnchor ? true : false, anchorElement: this.bulkSelectionTypeAnchor, handleOnClose: () => this.handleCloseBulkSelectionTypePopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("udp-menu-item", { key: '306b77012fc55b29156f5a77b2e006df4f7b83c6', label: 'Box', handleOnClick: () => {
264
264
  this.handleBulkSelectionTypeOnclick('box');
265
- } }), index.h("udp-menu-item", { key: '33bc2c6be276b639eacb35de9a6ae409c49ba465', label: 'Circle', handleOnClick: () => {
265
+ } }), index.h("udp-menu-item", { key: 'e6478a49943366f66f7996380cb0cd4b9a1ba423', label: 'Circle', handleOnClick: () => {
266
266
  this.handleBulkSelectionTypeOnclick('circle');
267
- } }), index.h("udp-menu-item", { key: '919a585a552ee8ab0537b8a825269259317695ea', label: 'Polygon', handleOnClick: () => {
267
+ } }), index.h("udp-menu-item", { key: 'aad5e2e0899c6ce454f8211aff579289a9add433', label: 'Polygon', handleOnClick: () => {
268
268
  this.handleBulkSelectionTypeOnclick('polygon');
269
- } }), index.h("udp-menu-item", { key: 'f920748cfba8fb6e1c442b4d963a235ab65f37de', label: 'Lasso', handleOnClick: () => {
269
+ } }), index.h("udp-menu-item", { key: 'f1175583cdc19bfcdb9277b18a989cdd714cbc9f', label: 'Lasso', handleOnClick: () => {
270
270
  this.handleBulkSelectionTypeOnclick('lasso');
271
- } })))))), !this.readOnlyMap && this.enableSplit && (index.h("div", { key: '08913bbfd4668f53b500fe97dc9fd3648662b9b4', id: "splitOption" }, index.h("div", { key: 'fc104e728f629d6d9a825817e07ee0ba6eef1fb7', id: "splitOptionButton" }, index.h("stencil-icon-button", { key: '059ed48995e221b63f4af54f9953cb75b5e39f7a', iconName: 'splitButton', iconClassName: 'splitButtonWrapper', tooltip: 'Split Linear Feature', icon: es.Scalpel16, buttonId: 'splitButton', onClick: () => this.handleSplitBtnOnclick() })), index.h("div", { key: '2bf6cbe596a4d2e0a7ce81c1cd55c6c24b050206', id: "splitOptionDiv" }, this.splitAnchor && (index.h("udp-pop-over", { key: '003ed6107d41f8b33fece55823624d3a773073b5', isOpen: this.splitAnchor ? true : false, anchorElement: this.splitAnchor, handleOnClose: () => this.handleCloseSplitPopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("split-line-popup", { key: '2b6c24eb7be4360ee4317abd7a12810e10f3484c', vectorLayerOptions: this.layerOptionsForPopup, selectedLayer: this.selectedLayerToAddFeature, handleStartSplitting: this.handleStartSplitting })))))), this.refreshEvent && (index.h("stencil-icon-button", { key: 'e82cf2feb5ebd1d151d0938af3fc66bcb87d6441', iconName: 'refreshButton', iconClassName: 'iconButtonWrapper', tooltip: (_b = this.refreshButtonTooltip) !== null && _b !== void 0 ? _b : 'Refresh', icon: es.Renew16, buttonId: 'refreshButton', onClick: () => this.refreshEvent() })), !this.readOnlyMap && (this.enableDragBox || (this.addMultipleFeatures && this.enableAddNewFeature)) && (index.h("div", { key: 'ce68a561233c4419071a1f5f6e1b16ab56ab2763', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'b0422297219cd52ed0bec9d9788f4702e8cf47a5', showLabel: true, icon: this.getButtonIcon(), onClick: () => {
271
+ } })))))), !this.readOnlyMap && this.enableSplit && (index.h("div", { key: '7111752f3385ad2362943dcaa909e43223fd70d3', id: "splitOption" }, index.h("div", { key: '61a10461fa398fe1668f605a45df4edfb085e11c', id: "splitOptionButton" }, index.h("stencil-icon-button", { key: '5ff3b93da546293ebfb5c081afbe67f5a79280d1', iconName: 'splitButton', iconClassName: 'splitButtonWrapper', tooltip: 'Split Linear Feature', icon: es.Scalpel16, buttonId: 'splitButton', onClick: () => this.handleSplitBtnOnclick() })), index.h("div", { key: 'cb8d745d6e87b43e2d52be58e13affbcdc28328c', id: "splitOptionDiv" }, this.splitAnchor && (index.h("udp-pop-over", { key: 'e2fe4e5127034f07aab2281b9dc22745415f4aa4', isOpen: this.splitAnchor ? true : false, anchorElement: this.splitAnchor, handleOnClose: () => this.handleCloseSplitPopover(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("split-line-popup", { key: '3df7fd56f73d37fc5b5d25e7648ffbaae3e175d5', vectorLayerOptions: this.layerOptionsForPopup, selectedLayer: this.selectedLayerToAddFeature, handleStartSplitting: this.handleStartSplitting })))))), this.refreshEvent && (index.h("stencil-icon-button", { key: '15d086b7748977e455962f89909559c3c9bee598', iconName: 'refreshButton', iconClassName: 'iconButtonWrapper', tooltip: (_b = this.refreshButtonTooltip) !== null && _b !== void 0 ? _b : 'Refresh', icon: es.Renew16, buttonId: 'refreshButton', onClick: () => this.refreshEvent() })), !this.readOnlyMap && (this.enableDragBox || (this.addMultipleFeatures && this.enableAddNewFeature)) && (index.h("div", { key: 'bc75e795440eb6bd93880675f8c838dced82cb8a', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: '685d0df506fafffef72142dcb517a0a709fb66e3', showLabel: true, icon: this.getButtonIcon(), onClick: () => {
272
272
  if (this.enableDragBox) {
273
273
  this.handleCancelBoxSelection();
274
274
  }
275
275
  if (this.enableAddNewFeature) {
276
276
  this.handleAddNewFeature();
277
277
  }
278
- }, tooltip: this.getButtonText(), iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '11824fafbd6413c1d7a259e52ee781a6e2ceb192', variant: "button" }, this.getButtonText())))), this.showSplitButton && (index.h("div", { key: '09b8e2f067bc314c0c9e534f993c363e5a469825', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'db3b7ea449ea0f305bad44a4200851b2f559d6e9', showLabel: true, icon: es.Checkmark16, onClick: () => this.handleSaveSplit(), tooltip: 'Save Split', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '5b64f2cdd718653e54491134b255e17ffa5bc40f', variant: "button" }, 'Save Split')))), this.showSplitButton && (index.h("div", { key: '4c52131f1a869d84163411b56daff3ee6da867f4', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'd2d54b71ee823070ca8c8a5aef0ebb4b436b6f2d', showLabel: true, icon: es.Close16, onClick: () => this.handleCancelSplit(), tooltip: 'Cancel Split', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '495862bc12ea6d5a5e383eb22f3bc3888df056a4', variant: "button" }, 'Cancel Split')))), !this.readOnlyMap && this.enableAddNewFeature && (index.h("div", { key: '55c0eb16421e7e4674538ebe81c8c538f06497d0', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'e84033aa55c473d72245c9079fcaeb8673a3a5a0', showLabel: true, icon: es.Close16, onClick: () => this.handleCancelAddNewFeature(), tooltip: 'Cancel Drawing', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '89444c8f35b83297a3907edd73f061bb2553d536', variant: "button" }, 'Cancel Drawing')))), !this.readOnlyMap && this.withSelected && (index.h("div", { key: 'f0ab58c52f7390e07256c9294cc269278ed48682', class: "selectedFeaturesButtons labelButtons" }, index.h("div", { key: '8df82358235032369d46093681b267e61ec47686', id: "withSelectedOption" }, index.h("div", { key: '79ff054d6a703f2b35180424adfa8995613a51f8', id: "withSelectedOptionButton" }, index.h("stencil-icon-button-grid-action-header", { key: 'a281d9f49aa7a7574b819406add621001326d83e', showLabel: true, icon: es.OverflowMenuHorizontal16, onClick: () => this.handleSelectionActionOnclick(), tooltip: 'With Selected', iconClassName: 'save-icon-class', count: this.selectedFeatureByBoxSelection.length }, index.h("unity-typography", { key: '6d37d6cfeacc6a56d43a3be07d4c502026bc8c41', variant: "button" }, 'With Selected'))), index.h("div", { key: 'c322a2aa4daf70fa78abf34281bab88153f04eea', id: "withSelectedOptionDiv" }, this.selectedFeaturesActionPanel && this.selectionActionAnchor && (index.h("udp-pop-over", { key: 'f64c6eb2fd6e3460402735c532a447bc863026de', isOpen: this.selectionActionAnchor ? true : false, anchorElement: this.selectionActionAnchor, handleOnClose: () => this.handleCloseSelectionActionPopover(), popoverPlacement: 'bottom-start' }, index.h("div", { key: '0cc0579caaed0f9b7f8bb3711f372f61aba4c571', innerHTML: this.selectedFeaturesActionPanel }))))), index.h("stencil-icon-button-grid-action-header", { key: 'f892de51f895c99bf4a9c05ca675c3aa4224e309', showLabel: true, icon: es.Close16, onClick: () => this.unselectFeatures(), tooltip: 'Cancel selection', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '3110a2d36f0c1aa233d2a90fb1904f22e90b2397', variant: "button" }, 'Cancel Selection'))))), index.h("div", { key: '12905c4f8c1d9659926d69471706a970fd0fc470', id: "addOption" }, this.enableAdd && !this.readOnlyMap && (index.h("div", { key: '6e430d19ced7a465aae1415daa2b34cbac548c92', id: "addOptionButton" }, index.h("custom-button", { key: '22e668dcd39670e1486abd0e675612e384973a9c', secondary: true, label: index.h("unity-typography", { variant: "button" }, 'Add'), onClick: () => this.handleAddOnclick(), size: "tall" }, index.h("udp-icon", { key: 'a12c3010a1ea35bd4fd0d4f67158e18169fe287c', iconName: 'add32', darkIcon: false })))), this.addFeatureAnchor && (index.h("udp-pop-over", { key: 'a67b9e90105b772ad006af6d0e0acec8705ae63c', isOpen: this.addFeatureAnchor ? true : false, anchorElement: this.addFeatureAnchor, handleOnClose: () => this.handleCloseAddMapFeature(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("add-map-feature-popup", { key: '02e8c4977e688076113403d75b2d81e909cb98e8', handleStartDrawingMapFeature: this.handleStartDrawingMapFeature, vectorLayerOptions: this.layerOptionsForPopup, selectedLayer: this.selectedLayerToAddFeature, selectedType: this.selectedTypeToAddFeature, panelConfig: this.addFeaturePanelConfig }))))))));
278
+ }, tooltip: this.getButtonText(), iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '0e5817c1e519f44cff5ef58f830a40cf96bee104', variant: "button" }, this.getButtonText())))), this.showSplitButton && (index.h("div", { key: 'd1bcbf75fbf3b64d30ba6039151bb7b586486b10', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'd76adc81e1387ce5192bdda7f61967c2d63ec9d0', showLabel: true, icon: es.Checkmark16, onClick: () => this.handleSaveSplit(), tooltip: 'Save Split', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '421cd3143618720b32013933ebbe73a5bd189bd3', variant: "button" }, 'Save Split')))), this.showSplitButton && (index.h("div", { key: '851ecc2119102227d1419d172dcbaa9f23fcbe79', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: 'b94e590cf5ce34779a1b7f9473bd74b5f96702a6', showLabel: true, icon: es.Close16, onClick: () => this.handleCancelSplit(), tooltip: 'Cancel Split', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: 'b8add6276ffecb771ad0ae4a41ab428c708c8f69', variant: "button" }, 'Cancel Split')))), !this.readOnlyMap && this.enableAddNewFeature && (index.h("div", { key: '69105b32f3500905695691100192fda7fae953a3', class: "labelButtons" }, index.h("stencil-icon-button-grid-action-header", { key: '708e158391c0c147e082f9e59c61c84ed972e39f', showLabel: true, icon: es.Close16, onClick: () => this.handleCancelAddNewFeature(), tooltip: 'Cancel Drawing', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: 'c9d160180aa52accfa4bed7a749aace963fec441', variant: "button" }, 'Cancel Drawing')))), !this.readOnlyMap && this.withSelected && (index.h("div", { key: '9e575cf914ff1f6c583dd089eb0311d06ec44233', class: "selectedFeaturesButtons labelButtons" }, index.h("div", { key: '9ce2e0e90d1b7f10fe0e8b7193e6d7720f1d7c14', id: "withSelectedOption" }, index.h("div", { key: '855dba9f56d5de13d0df2ea0a7df35227594ce2a', id: "withSelectedOptionButton" }, index.h("stencil-icon-button-grid-action-header", { key: 'f588dbd005a74c90704fbf3cb739f08d680d484d', showLabel: true, icon: es.OverflowMenuHorizontal16, onClick: () => this.handleSelectionActionOnclick(), tooltip: 'With Selected', iconClassName: 'save-icon-class', count: this.selectedFeatureByBoxSelection.length }, index.h("unity-typography", { key: '2ddbbeb214a06bfa1d914d018693dc924151f804', variant: "button" }, 'With Selected'))), index.h("div", { key: '8c05d5c263fc42dce7bf72bd33459387c44e5266', id: "withSelectedOptionDiv" }, this.selectedFeaturesActionPanel && this.selectionActionAnchor && (index.h("udp-pop-over", { key: '2eb511ea7a877e7f2361959fd6d320922939d576', isOpen: this.selectionActionAnchor ? true : false, anchorElement: this.selectionActionAnchor, handleOnClose: () => this.handleCloseSelectionActionPopover(), popoverPlacement: 'bottom-start' }, index.h("div", { key: '859d324e2c59207846f0d34edc2f0b67915aca37', innerHTML: this.selectedFeaturesActionPanel }))))), index.h("stencil-icon-button-grid-action-header", { key: 'ffe85e0a4fd41bb13058298ca52fe74972769cfa', showLabel: true, icon: es.Close16, onClick: () => this.unselectFeatures(), tooltip: 'Cancel selection', iconClassName: 'save-icon-class' }, index.h("unity-typography", { key: '3f6b84dc0b6c90254f3c602befda7a9c3ed000cf', variant: "button" }, 'Cancel Selection'))))), index.h("div", { key: '6a24e1f3dd181168ea7ef9a7432ffaa1aa8a23e4', id: "addOption" }, this.enableAdd && !this.readOnlyMap && (index.h("div", { key: '0a3f87cb1eafcb7cfb1937997c652c647b5ebcb9', id: "addOptionButton" }, index.h("custom-button", { key: '0dded4c903a0a30725a30f213f44fef1a84ca579', secondary: true, label: index.h("unity-typography", { variant: "button" }, 'Add'), onClick: () => this.handleAddOnclick(), size: "tall" }, index.h("udp-icon", { key: 'bc4158b0ad5d41ce53d919a5ee404c21eacc237a', iconName: 'add32', darkIcon: false })))), this.addFeatureAnchor && (index.h("udp-pop-over", { key: 'bda91d72d88eb0b1bbfce0e01bd4fb2d89b91235', isOpen: this.addFeatureAnchor ? true : false, anchorElement: this.addFeatureAnchor, handleOnClose: () => this.handleCloseAddMapFeature(), popoverPlacement: 'bottom-start', overflow: 'visible' }, index.h("add-map-feature-popup", { key: 'e4db99a02029439880a327ac9c4a0f234793a4a7', handleStartDrawingMapFeature: this.handleStartDrawingMapFeature, vectorLayerOptions: this.layerOptionsForPopup, selectedLayer: this.selectedLayerToAddFeature, selectedType: this.selectedTypeToAddFeature, panelConfig: this.addFeaturePanelConfig }))))))));
279
279
  }
280
280
  get mapToolbarElement() { return index.getElement(this); }
281
281
  static get watchers() { return {
@@ -300,7 +300,7 @@ const SelectLayerPopUp = class {
300
300
  }
301
301
  render() {
302
302
  var _a, _b, _c;
303
- return (index.h("div", { key: '04cf1543be7237d92f1af04cf186a906e9d03aeb', class: "popoverContent" }, this.enableTileSelection && (index.h("udp-selector", { key: 'd4cf018e8bf973c02ac9dab7266cd4d820aa61bc', id: "mapType", options: (_a = this.tileOptions) !== null && _a !== void 0 ? _a : [], initialValue: this.selectedTile.value, label: "Map Type", onChange: (e) => { this.handleMapTypeInputChange(e); }, large: false })), index.h("div", { key: '69791c18c4ec3a1d71e571dacff32cd0044f72ed', style: { height: '12px' } }), index.h("div", { key: '308fff91b9587f63b0c52e77d3a1d17c34385e09' }, index.h("text-field", { key: 'f37902cd12143e12fe57e31c43005c3424df61c2', label: "Search Layers", id: "searchFilter", value: "", onInput: (e) => this.handleSearchLayers(e) })), ((_b = this.filteredOptions) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
303
+ return (index.h("div", { key: '0fea2e9e76129b4433b9ce462815c15c4a14fe55', class: "popoverContent" }, this.enableTileSelection && (index.h("udp-selector", { key: '5615df8e5b848d2dd18b23f1d17ea1107ffc5e02', id: "mapType", options: (_a = this.tileOptions) !== null && _a !== void 0 ? _a : [], initialValue: this.selectedTile.value, label: "Map Type", onChange: (e) => { this.handleMapTypeInputChange(e); }, large: false })), index.h("div", { key: '3848b9a25967c45b5723953d4a4832cac5a8753f', style: { height: '12px' } }), index.h("div", { key: '7e5d847e68ee3bde1fab79049e60a18f7fc07cb9' }, index.h("text-field", { key: '5242a50d4102305d2c61b504dee40b729ae7542a', label: "Search Layers", id: "searchFilter", value: "", onInput: (e) => this.handleSearchLayers(e) })), ((_b = this.filteredOptions) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
304
304
  ((_c = this.filteredOptions) === null || _c === void 0 ? void 0 : _c.map((item) => (index.h("check-box-group", { title: item === null || item === void 0 ? void 0 : item.title, options: item === null || item === void 0 ? void 0 : item.options, values: this.visibleLayers, handleChange: this.updateSelectedLayers }))))));
305
305
  }
306
306
  };
@@ -316,7 +316,7 @@ const SplitLinePopup = class {
316
316
  }
317
317
  render() {
318
318
  var _a;
319
- return (index.h("div", { key: '5622516016e9f6afe3228a01ce87b260ec134fdd', class: "popoverContent" }, index.h("udp-selector", { key: 'd12b668848ecb0860eb843dc155485e2bf91e682', id: "layer", options: (_a = this.vectorLayerOptions.map((layer) => {
319
+ return (index.h("div", { key: '103ec14d5633494f7d427b5e0401cb550f28ff12', class: "popoverContent" }, index.h("udp-selector", { key: '10bdfdfb318e231772ff57f91a0704deb2d5e837', id: "layer", options: (_a = this.vectorLayerOptions.map((layer) => {
320
320
  return {
321
321
  label: layer,
322
322
  value: layer
@@ -39,7 +39,7 @@ const generateFilterString = (data) => {
39
39
  return rootGroup ? buildStringForGroup(rootGroup.groupId) : '';
40
40
  };
41
41
 
42
- const advancedSearchBuilderCss = ":host{display:flex;flex-direction:column;font-family:sans-serif;border:1px solid #ccc;border-radius:4px;background:white;margin:3px;box-sizing:border-box;overflow:visible}:host(.host-collapsed){resize:none;height:auto}:host(.host-expanded){overflow-y:auto}:host(.is-resizable.host-expanded){resize:vertical;min-height:180px;max-height:80vh;overflow:auto}.advanced-filter-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.collapsed-view{display:flex;align-items:center;gap:0.5rem;padding:10px;border-bottom:1px solid #eee}.anim-container{flex-grow:1;overflow-y:auto;overflow-x:auto;display:flex}.content-wrapper{padding-bottom:15px;flex-grow:1}.advanced-filter-footer{display:flex;justify-content:flex-end;border-top:1px solid #eee;padding:10px;flex-shrink:0;gap:10px;align-items:center}.string-display-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;background-color:#f5f5f5;box-sizing:border-box;cursor:default;user-select:none}.string-display-input:focus{outline:none}.search-button{opacity:0;transform:scale(0.95);pointer-events:none;margin-right:10px}.advanced-filter-container.is-expanded .anim-container{overflow-y:auto;min-height:130px}.advanced-filter-container.is-expanded .collapsed-view{display:none}.advanced-filter-container.is-expanded .search-button{opacity:1;transform:scale(1);pointer-events:auto}.advanced-filter-container:not(.is-expanded) .anim-container{max-height:0;min-height:0;overflow:hidden}.advanced-filter-container:not(.is-expanded) .advanced-filter-footer{opacity:0;height:0;padding:0;border:none;pointer-events:none;overflow:hidden}";
42
+ const advancedSearchBuilderCss = ":host{display:flex;flex-direction:column;font-family:sans-serif;box-sizing:border-box;overflow:visible}:host(.host-collapsed){resize:none;height:auto}:host(.host-expanded){overflow-y:auto}:host(.is-resizable.host-expanded){resize:vertical;min-height:180px;max-height:80vh;overflow:auto}.advanced-filter-container{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.collapsed-view{display:flex;align-items:center;gap:0.5rem;padding:10px;border-bottom:1px solid #eee}.anim-container{flex-grow:1;overflow-y:auto;overflow-x:auto;display:flex}.content-wrapper{padding-bottom:15px;flex-grow:1}.advanced-filter-footer{display:flex;justify-content:flex-end;border-top:1px solid #eee;padding:10px;flex-shrink:0;gap:10px;align-items:center}.string-display-input{width:100%;padding:8px;border:1px solid #ccc;border-radius:4px;background-color:#f5f5f5;box-sizing:border-box;cursor:default;user-select:none}.string-display-input:focus{outline:none}.search-button{opacity:0;transform:scale(0.95);pointer-events:none;margin-right:10px}.advanced-filter-container.is-expanded .anim-container{overflow-y:auto;min-height:130px}.advanced-filter-container.is-expanded .collapsed-view{display:none}.advanced-filter-container.is-expanded .search-button{opacity:1;transform:scale(1);pointer-events:auto}.advanced-filter-container:not(.is-expanded) .anim-container{max-height:0;min-height:0;overflow:hidden}.advanced-filter-container:not(.is-expanded) .advanced-filter-footer{opacity:0;height:0;padding:0;border:none;pointer-events:none;overflow:hidden}";
43
43
 
44
44
  const AdvancedSearchBuilder = class {
45
45
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"file":"advanced-search-builder.entry.cjs.js","mappings":"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","names":["getAllowedSearchOperators","h","Host"],"sources":["src/components/my-component/UI/advanced-search-builder/helperFunctions/createStringFromSearchObject.ts","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.css?tag=advanced-search-builder&encapsulation=shadow","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.tsx"],"sourcesContent":["import { Search } from '../../../../../udp-utilities/interfaces/searchObject';\n\nexport const generateFilterString = (data: Search ): string => {\n // Return an empty string if there's no data or no groups\n if (!data || !data.filterGroups || data.filterGroups.length === 0) {\n return '';\n }\n\n // Recursive helper function to build the string for a given group\n const buildStringForGroup = (groupId: number): string => {\n const groupInfo = data.filterGroups.find(g => g.groupId === groupId);\n if (!groupInfo) return '';\n\n const logicalOperator = groupInfo.logicalSearchOperator === 1 ? 'AND' : 'OR';\n const parts = [];\n\n // 1. Process all filters in this group\n const filtersInGroup = data.filterElements.filter(f => f.groupId === groupId);\n filtersInGroup.forEach(filter => {\n // Add quotes around string values\n const value =\n typeof filter.searchValue === 'string' ? `\"${filter.searchValue}\"` : filter.searchValue;\n parts.push(`[${filter.searchField}] ${filter.searchOperator} ${value}`);\n });\n\n // 2. Process all subgroups by calling this function recursively\n const subGroups = data.filterGroups.filter(g => g.parentGroupId === groupId);\n subGroups.forEach(subGroup => {\n const subGroupString = buildStringForGroup(subGroup.groupId);\n // Only add the part if the subgroup is not empty\n if (subGroupString) {\n parts.push(`(${subGroupString})`);\n }\n });\n\n // 3. Join all the parts together with the correct operator\n return parts.join(` ${logicalOperator} `);\n };\n\n // Find the root group (the one with no parent) and start the process\n const rootGroup = data.filterGroups.find(g => g.parentGroupId === null);\n return rootGroup ? buildStringForGroup(rootGroup.groupId) : '';\n }\n",":host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n margin: 3px;\n box-sizing: border-box;\n overflow: visible;\n}\n\n/* --- Host State Styles --- */\n:host(.host-collapsed) {\n resize: none;\n height: auto;\n}\n\n:host(.host-expanded) {\n overflow-y: auto;\n}\n\n:host(.is-resizable.host-expanded) {\n resize: vertical;\n min-height: 180px;\n max-height: 80vh;\n overflow: auto;\n}\n\n/* --- Main Layout --- */\n.advanced-filter-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.collapsed-view {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 10px;\n border-bottom: 1px solid #eee;\n}\n\n.anim-container {\n flex-grow: 1;\n overflow-y: auto;\n overflow-x: auto;\n display: flex;\n}\n\n.content-wrapper {\n padding-bottom: 15px;\n flex-grow: 1;\n}\n\n.advanced-filter-footer {\n display: flex;\n justify-content: flex-end;\n border-top: 1px solid #eee;\n padding: 10px;\n flex-shrink: 0;\n gap: 10px;\n align-items: center;\n}\n\n/* --- Input & Button Styles --- */\n.string-display-input {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #f5f5f5;\n box-sizing: border-box;\n cursor: default;\n user-select: none;\n}\n\n.string-display-input:focus {\n outline: none;\n}\n\n.search-button {\n opacity: 0;\n transform: scale(0.95);\n pointer-events: none;\n margin-right: 10px;\n}\n\n/* --- Animation & Visibility Rules --- */\n\n/* When EXPANDED, show the content */\n.advanced-filter-container.is-expanded .anim-container {\n overflow-y: auto;\n min-height: 130px;\n}\n\n.advanced-filter-container.is-expanded .collapsed-view {\n display: none;\n}\n\n.advanced-filter-container.is-expanded .search-button {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n}\n\n/* When COLLAPSED, hide the content */\n.advanced-filter-container:not(.is-expanded) .anim-container {\n max-height: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.advanced-filter-container:not(.is-expanded) .advanced-filter-footer {\n opacity: 0;\n height: 0;\n padding: 0;\n border: none;\n pointer-events: none;\n overflow: hidden;\n}\n","import { Component, h, Prop, State, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport { Field } from './models';\nimport { generateFilterString } from './helperFunctions/createStringFromSearchObject';\nimport { Search } from '../../../../udp-utilities/interfaces/searchObject';\nimport { AdvancedFilterConfig } from './models';\nimport { getAllowedSearchOperators } from './helperFunctions/udpOperatorHelper';\n\n/**\n * A powerful and configurable component for building complex data queries.\n * It provides a user-friendly UI for adding filters and logical groups,\n * and emits the resulting search object for use in data grids or API calls.\n *\n * @example\n * <advanced-search-builder\n * fields={myFields}\n * initialFilterData={myFilter}\n * config={{ collapsible: false }}\n * onFilterSave={(e) => handleSearch(e.detail)}\n * onChange={(e) => console.log('Current state:', e.detail)}\n * />\n */\n\n@Component({\n tag: 'advanced-search-builder',\n styleUrl: 'advanced-search-builder.css',\n shadow: true,\n})\nexport class AdvancedSearchBuilder {\n /**\n * An array of `Field` objects that defines the available options in the\n * \"Fields\" dropdown. This can be a nested structure for expandable fields.\n */\n @Prop() fields: Field[] = [];\n\n /**\n * The initial state of the filter. The component uses this to build the\n * initial UI and manages its state internally thereafter.\n */\n @Prop() initialFilterData: Search;\n\n /**\n * A configuration object to control optional features of the component,\n * such as enabling or disabling the collapsible and resizable behaviors.\n */\n @Prop() config: AdvancedFilterConfig = {};\n\n /**\n * Emitted only when the user clicks the \"Search\" button in the footer.\n * This represents the final, committed filter state.\n *\n * @event filterSave\n * @param {Search} searchData - The complete, final search object.\n */\n @Event() filterSave: EventEmitter<Search>; //fires when the \"Search\" button is clicked\n\n /**\n * Emitted on every single change to the filter data (e.g., typing in a\n * value, changing an operator). This is useful for real-time feedback.\n *\n * @event change\n * @param {Search} searchData - The complete, up-to-the-minute search object.\n */\n @Event() change: EventEmitter<Search>;\n\n @State() private openAddMenuForGroupId: number | null = null;\n @State() filterString: string = '';\n @State() private isExpanded: boolean = true;\n\n @State() private currentFilterData: Search;\n @State() private isFilterValid: boolean = true;\n @State() private errorMessages: string[] = [];\n\n private nextGroupId = 1;\n private animContainerEl: HTMLElement;\n @Element() private el: HTMLElement;\n\n componentWillLoad() {\n // Initialize the internal state from the prop\n this.currentFilterData = this.getNormalizedData(this.initialFilterData);\n this.updateNextGroupId(this.currentFilterData);\n }\n\n componentDidLoad() {\n this.updateHostClasses();\n }\n\n private updateHostClasses() {\n if (this.isExpanded) {\n this.el.classList.add('host-expanded');\n this.el.classList.remove('host-collapsed');\n } else {\n this.el.classList.add('host-collapsed');\n this.el.classList.remove('host-expanded');\n this.el.style.height = null;\n }\n }\n\n private updateNextGroupId(data: Search) {\n // Check if there are any groups to scan\n if (data && data.filterGroups.length > 0) {\n // Find the highest existing groupId and add 1\n this.nextGroupId = Math.max(...data.filterGroups.map(g => g.groupId)) + 1;\n } else {\n // If there are no groups, start with 2 (since the default root is 1)\n this.nextGroupId = 2;\n }\n }\n\n private verifyFilterState(data: Search): { isValid: boolean; errors: string[] } {\n const errors: string[] = [];\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n data.filterElements.forEach(filter => {\n delete filter._error; // Clear old errors first\n const isSearchFieldEmpty =\n filter.searchField === null ||\n filter.searchField === undefined ||\n filter.searchField === '';\n const isValueEmpty = !filter.searchValue;\n const operatorAllowsEmpty =\n filter.searchOperator === 'NULL' || filter.searchOperator === 'NOTNULL';\n\n if (isSearchFieldEmpty) {\n const errorMessage = `Search Field cannot be empty.`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter.searchOperator === 'BETWEEN') {\n const values = (filter.searchValue || '').split(',');\n // Check if we have two values and that neither is an empty string.\n if (values.length !== 2 || !values[0] || !values[1]) {\n const errorMessage = `Two values required when using BETWEEN operator for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n } else if (isValueEmpty && !operatorAllowsEmpty) {\n const errorMessage = `Value cannot be empty for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter._type === 'guid' && !isValueEmpty && !guidRegex.test(filter.searchValue)) {\n const errorMessage = `Invalid GUID for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n });\n\n return { isValid: errors.length === 0, errors: errors };\n }\n\n private handleSearch = () => {\n if (this.isFilterValid && this.filterSave) {\n this.filterSave.emit(this.currentFilterData);\n this.filterString = generateFilterString(this.currentFilterData);\n this.config.collapsible && this.toggleExpanded();\n } else {\n console.warn('Cannot run search: filter is invalid.');\n }\n };\n\n private getNormalizedData(data: Search): Search {\n if (data && data.filterGroups?.length > 0) {\n return data;\n }\n if (data && data.filterElements?.length > 0) {\n const rootGroupId = 1;\n return {\n ...data,\n filterGroups: [\n {\n groupId: rootGroupId,\n parentGroupId: null,\n logicalSearchOperator: data.logicalSearchOperator || 1,\n },\n ],\n filterElements: data.filterElements.map(el => ({ ...el, groupId: rootGroupId })),\n };\n }\n // Return a default structure if the prop is null or empty\n return {\n logicalSearchOperator: 1,\n filterGroups: [{ groupId: 1, parentGroupId: null, logicalSearchOperator: 1 }],\n filterElements: [],\n };\n }\n\n private toggleExpanded = () => {\n this.isExpanded = !this.isExpanded;\n this.updateHostClasses();\n };\n\n private handleToggleAddMenu = (event: CustomEvent<number>) => {\n const groupId = event.detail;\n // If clicking the same button, close the menu. Otherwise, open the new one.\n this.openAddMenuForGroupId = this.openAddMenuForGroupId === groupId ? null : groupId;\n\n if (this.openAddMenuForGroupId !== null) {\n const el = this.animContainerEl;\n if (el) {\n // We use requestAnimationFrame to ensure the scroll happens smoothly\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight;\n });\n }\n }\n };\n\n private runUpdateCycle(mutator: (data: Search) => void) {\n // Create a deep clone to avoid mutating the prop directly\n const newState = JSON.parse(JSON.stringify(this.currentFilterData));\n\n // Apply the mutations to the new state object\n mutator(newState);\n\n this.currentFilterData = newState;\n\n const validationResult = this.verifyFilterState(this.currentFilterData);\n this.isFilterValid = validationResult.isValid;\n this.errorMessages = validationResult.errors;\n\n this.change.emit(newState);\n }\n\n // --- Data Manipulation Methods ---\n\n private handleDrop = (event: CustomEvent<{ event: DragEvent; targetFilterId: string }>) => {\n const dragEvent = event.detail.event;\n const droppedOnFilterId = event.detail.targetFilterId;\n\n // Get the dragged filter's ID from the dataTransfer object\n const draggedFilterId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedFilterId || draggedFilterId === droppedOnFilterId) {\n return;\n }\n\n this.runUpdateCycle(newState => {\n const elements = newState.filterElements;\n const draggedItem = elements.find(f => f._id === draggedFilterId);\n if (!draggedItem) return;\n\n const fromIndex = elements.findIndex(f => f._id === draggedFilterId);\n const toIndex = elements.findIndex(f => f._id === droppedOnFilterId);\n\n elements.splice(fromIndex, 1);\n elements.splice(toIndex, 0, draggedItem);\n });\n };\n\n private handleAddFilter = (groupId: number) => {\n this.runUpdateCycle(newState => {\n const defaultField = this.fields?.[0];\n const allowedOperators = getAllowedSearchOperators(defaultField);\n const defaultOperator = allowedOperators?.[0]?.value || '';\n newState.filterElements.push({\n _id: `filter_${Math.random()}`,\n _type: defaultField?.type,\n groupId: groupId,\n searchField: defaultField?.name,\n searchOperator: defaultOperator, // Use the new default operator\n searchValue: '',\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleAddGroup = (parentGroupId: number) => {\n this.runUpdateCycle(newState => {\n newState.filterGroups.push({\n groupId: this.nextGroupId++,\n parentGroupId: parentGroupId,\n logicalSearchOperator: 1,\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleRemoveFilter = (filterId: string) => {\n this.runUpdateCycle(newState => {\n const index = newState.filterElements.findIndex(f => f._id === filterId);\n if (index > -1) newState.filterElements.splice(index, 1);\n });\n };\n\n private handleRemoveGroup = (groupIdToRemove: number) => {\n this.runUpdateCycle(newState => {\n const findDescendantGroupIds = (parentGroupId: number): number[] => {\n const children = newState.filterGroups.filter(g => g.parentGroupId === parentGroupId);\n let allDescendants = children.map(c => c.groupId);\n children.forEach(c => {\n allDescendants = [...allDescendants, ...findDescendantGroupIds(c.groupId)];\n });\n return allDescendants;\n };\n const allIdsToRemove = [groupIdToRemove, ...findDescendantGroupIds(groupIdToRemove)];\n newState.filterGroups = newState.filterGroups.filter(\n g => !allIdsToRemove.includes(g.groupId),\n );\n newState.filterElements = newState.filterElements.filter(\n f => !allIdsToRemove.includes(f.groupId),\n );\n });\n };\n\n private handleFilterChange = (event: CustomEvent) => {\n const { filterId, field, value, updates } = event.detail;\n this.runUpdateCycle(newState => {\n const filter = newState.filterElements.find(f => f._id === filterId);\n if (filter) {\n if (updates) {\n // If there are multiple updates, apply them all\n Object.assign(filter, updates);\n } else {\n // Otherwise, apply the single update\n filter[field] = value;\n }\n }\n });\n };\n\n private handleGroupChange = (event: CustomEvent) => {\n const { groupId, logicalSearchOperator } = event.detail;\n this.runUpdateCycle(newState => {\n const group = newState.filterGroups.find(g => g.groupId === groupId);\n if (group) group.logicalSearchOperator = logicalSearchOperator;\n });\n };\n\n private isDescendant(targetGroupId: number, draggedGroupId: number, allGroups: any[]): boolean {\n let currentGroup = allGroups.find(g => g.groupId === targetGroupId);\n // Traverse up the tree from the target\n while (currentGroup && currentGroup.parentGroupId !== null) {\n // If we find the dragged group in the ancestry, it's a descendant\n if (currentGroup.parentGroupId === draggedGroupId) {\n return true;\n }\n currentGroup = allGroups.find(g => g.groupId === currentGroup.parentGroupId);\n }\n return false;\n }\n\n private handleDropOnGroup = (event: CustomEvent<{ event: DragEvent; targetGroupId: number }>) => {\n const dragEvent = event.detail.event;\n const targetGroupId = event.detail.targetGroupId;\n\n // Read the type and ID from the dataTransfer object\n const dragType = dragEvent.dataTransfer.getData('application/drag-type');\n const draggedId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedId) return;\n\n this.runUpdateCycle(newState => {\n // --- Handle a dropped FILTER ---\n if (dragType === 'filter') {\n const draggedFilter = newState.filterElements.find(f => f._id === draggedId);\n if (draggedFilter && draggedFilter.groupId !== targetGroupId) {\n draggedFilter.groupId = targetGroupId;\n }\n }\n // --- Handle a dropped GROUP ---\n else if (dragType === 'group') {\n const draggedGroupId = parseInt(draggedId, 10);\n const draggedGroup = newState.filterGroups.find(g => g.groupId === draggedGroupId);\n\n // Safety checks:\n // 1. Can't drop a group on itself.\n // 2. Can't drop a group into its current parent.\n // 3. Can't drop a group into one of its own descendants.\n if (\n draggedGroup &&\n draggedGroupId !== targetGroupId &&\n draggedGroup.parentGroupId !== targetGroupId &&\n !this.isDescendant(targetGroupId, draggedGroupId, newState.filterGroups)\n ) {\n // If all checks pass, update the group's parentGroupId\n draggedGroup.parentGroupId = targetGroupId;\n }\n }\n });\n };\n\n render() {\n const rootGroup = this.currentFilterData.filterGroups.find(g => g.parentGroupId === null);\n\n const isCollapsible = this.config.collapsible === true;\n const isResizable = this.config.resizable !== false;\n const showFooter = this.config.showFooter !== false;\n\n const containerClasses = {\n 'advanced-filter-container': true,\n 'is-expanded': this.isExpanded,\n };\n\n const hostStyles = {};\n // Only apply a height style when the component is expanded\n if (this.isExpanded && this.config.height) {\n // If not resizable, this will be the fixed height.\n // If resizable, this will be the initial height, constrained by the CSS.\n hostStyles['height'] = this.config.height;\n }\n\n return (\n <Host\n style={hostStyles}\n class={{\n 'is-resizable': isResizable,\n 'host-expanded': this.isExpanded,\n 'host-collapsed': !this.isExpanded,\n }}\n >\n <div class={containerClasses}>\n {isCollapsible && (\n <div class=\"collapsed-view\">\n <input type=\"text\" readonly value={this.filterString} class=\"string-display-input\" />\n <custom-button\n class=\"toggle-button\"\n size=\"short\"\n variant=\"text\"\n handleClick={this.toggleExpanded}\n >\n <span>{this.isExpanded ? 'Collapse' : 'Expand'}</span>\n <svg class=\"toggle-icon\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </custom-button>\n </div>\n )}\n <div class=\"anim-container\" ref={el => (this.animContainerEl = el)}>\n <div class=\"content-wrapper\">\n {(this.isExpanded || !isCollapsible) && rootGroup && (\n <filter-group\n key={rootGroup.groupId}\n groupId={rootGroup.groupId}\n filterData={this.currentFilterData}\n fields={this.fields}\n isRoot={true}\n onAddFilter={e => this.handleAddFilter(e.detail)}\n onAddGroup={e => this.handleAddGroup(e.detail)}\n onRemoveFilter={e => this.handleRemoveFilter(e.detail)}\n onRemoveGroup={e => this.handleRemoveGroup(e.detail)}\n onFilterChange={this.handleFilterChange}\n onGroupChange={this.handleGroupChange}\n onDropOnFilter={this.handleDrop}\n openAddMenuForGroupId={this.openAddMenuForGroupId}\n onToggleAddMenu={this.handleToggleAddMenu}\n onDropOnGroup={this.handleDropOnGroup}\n />\n )}\n </div>\n </div>\n {showFooter && (\n <div class=\"advanced-filter-footer\">\n <validation-chip isValid={this.isFilterValid} errorMessages={this.errorMessages} />\n <udp-button\n disabled={!this.isFilterValid}\n onClick={this.handleSearch}\n variant=\"contained\"\n >\n Search\n </udp-button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"advanced-search-builder.entry.cjs.js","mappings":"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","names":["getAllowedSearchOperators","h","Host"],"sources":["src/components/my-component/UI/advanced-search-builder/helperFunctions/createStringFromSearchObject.ts","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.css?tag=advanced-search-builder&encapsulation=shadow","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.tsx"],"sourcesContent":["import { Search } from '../../../../../udp-utilities/interfaces/searchObject';\n\nexport const generateFilterString = (data: Search ): string => {\n // Return an empty string if there's no data or no groups\n if (!data || !data.filterGroups || data.filterGroups.length === 0) {\n return '';\n }\n\n // Recursive helper function to build the string for a given group\n const buildStringForGroup = (groupId: number): string => {\n const groupInfo = data.filterGroups.find(g => g.groupId === groupId);\n if (!groupInfo) return '';\n\n const logicalOperator = groupInfo.logicalSearchOperator === 1 ? 'AND' : 'OR';\n const parts = [];\n\n // 1. Process all filters in this group\n const filtersInGroup = data.filterElements.filter(f => f.groupId === groupId);\n filtersInGroup.forEach(filter => {\n // Add quotes around string values\n const value =\n typeof filter.searchValue === 'string' ? `\"${filter.searchValue}\"` : filter.searchValue;\n parts.push(`[${filter.searchField}] ${filter.searchOperator} ${value}`);\n });\n\n // 2. Process all subgroups by calling this function recursively\n const subGroups = data.filterGroups.filter(g => g.parentGroupId === groupId);\n subGroups.forEach(subGroup => {\n const subGroupString = buildStringForGroup(subGroup.groupId);\n // Only add the part if the subgroup is not empty\n if (subGroupString) {\n parts.push(`(${subGroupString})`);\n }\n });\n\n // 3. Join all the parts together with the correct operator\n return parts.join(` ${logicalOperator} `);\n };\n\n // Find the root group (the one with no parent) and start the process\n const rootGroup = data.filterGroups.find(g => g.parentGroupId === null);\n return rootGroup ? buildStringForGroup(rootGroup.groupId) : '';\n }\n",":host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n /* border: 1px solid #ccc; */\n /* border-radius: 4px; */\n /* background: white; */\n /* margin: 3px; */\n box-sizing: border-box;\n overflow: visible;\n}\n\n/* --- Host State Styles --- */\n:host(.host-collapsed) {\n resize: none;\n height: auto;\n}\n\n:host(.host-expanded) {\n overflow-y: auto;\n}\n\n:host(.is-resizable.host-expanded) {\n resize: vertical;\n min-height: 180px;\n max-height: 80vh;\n overflow: auto;\n}\n\n/* --- Main Layout --- */\n.advanced-filter-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.collapsed-view {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 10px;\n border-bottom: 1px solid #eee;\n}\n\n.anim-container {\n flex-grow: 1;\n overflow-y: auto;\n overflow-x: auto;\n display: flex;\n}\n\n.content-wrapper {\n padding-bottom: 15px;\n flex-grow: 1;\n}\n\n.advanced-filter-footer {\n display: flex;\n justify-content: flex-end;\n border-top: 1px solid #eee;\n padding: 10px;\n flex-shrink: 0;\n gap: 10px;\n align-items: center;\n}\n\n/* --- Input & Button Styles --- */\n.string-display-input {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #f5f5f5;\n box-sizing: border-box;\n cursor: default;\n user-select: none;\n}\n\n.string-display-input:focus {\n outline: none;\n}\n\n.search-button {\n opacity: 0;\n transform: scale(0.95);\n pointer-events: none;\n margin-right: 10px;\n}\n\n/* --- Animation & Visibility Rules --- */\n\n/* When EXPANDED, show the content */\n.advanced-filter-container.is-expanded .anim-container {\n overflow-y: auto;\n min-height: 130px;\n}\n\n.advanced-filter-container.is-expanded .collapsed-view {\n display: none;\n}\n\n.advanced-filter-container.is-expanded .search-button {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n}\n\n/* When COLLAPSED, hide the content */\n.advanced-filter-container:not(.is-expanded) .anim-container {\n max-height: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.advanced-filter-container:not(.is-expanded) .advanced-filter-footer {\n opacity: 0;\n height: 0;\n padding: 0;\n border: none;\n pointer-events: none;\n overflow: hidden;\n}\n","import { Component, h, Prop, State, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport { Field } from './models';\nimport { generateFilterString } from './helperFunctions/createStringFromSearchObject';\nimport { Search } from '../../../../udp-utilities/interfaces/searchObject';\nimport { AdvancedFilterConfig } from './models';\nimport { getAllowedSearchOperators } from './helperFunctions/udpOperatorHelper';\n\n/**\n * A powerful and configurable component for building complex data queries.\n * It provides a user-friendly UI for adding filters and logical groups,\n * and emits the resulting search object for use in data grids or API calls.\n *\n * @example\n * <advanced-search-builder\n * fields={myFields}\n * initialFilterData={myFilter}\n * config={{ collapsible: false }}\n * onFilterSave={(e) => handleSearch(e.detail)}\n * onChange={(e) => console.log('Current state:', e.detail)}\n * />\n */\n\n@Component({\n tag: 'advanced-search-builder',\n styleUrl: 'advanced-search-builder.css',\n shadow: true,\n})\nexport class AdvancedSearchBuilder {\n /**\n * An array of `Field` objects that defines the available options in the\n * \"Fields\" dropdown. This can be a nested structure for expandable fields.\n */\n @Prop() fields: Field[] = [];\n\n /**\n * The initial state of the filter. The component uses this to build the\n * initial UI and manages its state internally thereafter.\n */\n @Prop() initialFilterData: Search;\n\n /**\n * A configuration object to control optional features of the component,\n * such as enabling or disabling the collapsible and resizable behaviors.\n */\n @Prop() config: AdvancedFilterConfig = {};\n\n /**\n * Emitted only when the user clicks the \"Search\" button in the footer.\n * This represents the final, committed filter state.\n *\n * @event filterSave\n * @param {Search} searchData - The complete, final search object.\n */\n @Event() filterSave: EventEmitter<Search>; //fires when the \"Search\" button is clicked\n\n /**\n * Emitted on every single change to the filter data (e.g., typing in a\n * value, changing an operator). This is useful for real-time feedback.\n *\n * @event change\n * @param {Search} searchData - The complete, up-to-the-minute search object.\n */\n @Event() change: EventEmitter<Search>;\n\n @State() private openAddMenuForGroupId: number | null = null;\n @State() filterString: string = '';\n @State() private isExpanded: boolean = true;\n\n @State() private currentFilterData: Search;\n @State() private isFilterValid: boolean = true;\n @State() private errorMessages: string[] = [];\n\n private nextGroupId = 1;\n private animContainerEl: HTMLElement;\n @Element() private el: HTMLElement;\n\n componentWillLoad() {\n // Initialize the internal state from the prop\n this.currentFilterData = this.getNormalizedData(this.initialFilterData);\n this.updateNextGroupId(this.currentFilterData);\n }\n\n componentDidLoad() {\n this.updateHostClasses();\n }\n\n private updateHostClasses() {\n if (this.isExpanded) {\n this.el.classList.add('host-expanded');\n this.el.classList.remove('host-collapsed');\n } else {\n this.el.classList.add('host-collapsed');\n this.el.classList.remove('host-expanded');\n this.el.style.height = null;\n }\n }\n\n private updateNextGroupId(data: Search) {\n // Check if there are any groups to scan\n if (data && data.filterGroups.length > 0) {\n // Find the highest existing groupId and add 1\n this.nextGroupId = Math.max(...data.filterGroups.map(g => g.groupId)) + 1;\n } else {\n // If there are no groups, start with 2 (since the default root is 1)\n this.nextGroupId = 2;\n }\n }\n\n private verifyFilterState(data: Search): { isValid: boolean; errors: string[] } {\n const errors: string[] = [];\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n data.filterElements.forEach(filter => {\n delete filter._error; // Clear old errors first\n const isSearchFieldEmpty =\n filter.searchField === null ||\n filter.searchField === undefined ||\n filter.searchField === '';\n const isValueEmpty = !filter.searchValue;\n const operatorAllowsEmpty =\n filter.searchOperator === 'NULL' || filter.searchOperator === 'NOTNULL';\n\n if (isSearchFieldEmpty) {\n const errorMessage = `Search Field cannot be empty.`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter.searchOperator === 'BETWEEN') {\n const values = (filter.searchValue || '').split(',');\n // Check if we have two values and that neither is an empty string.\n if (values.length !== 2 || !values[0] || !values[1]) {\n const errorMessage = `Two values required when using BETWEEN operator for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n } else if (isValueEmpty && !operatorAllowsEmpty) {\n const errorMessage = `Value cannot be empty for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter._type === 'guid' && !isValueEmpty && !guidRegex.test(filter.searchValue)) {\n const errorMessage = `Invalid GUID for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n });\n\n return { isValid: errors.length === 0, errors: errors };\n }\n\n private handleSearch = () => {\n if (this.isFilterValid && this.filterSave) {\n this.filterSave.emit(this.currentFilterData);\n this.filterString = generateFilterString(this.currentFilterData);\n this.config.collapsible && this.toggleExpanded();\n } else {\n console.warn('Cannot run search: filter is invalid.');\n }\n };\n\n private getNormalizedData(data: Search): Search {\n if (data && data.filterGroups?.length > 0) {\n return data;\n }\n if (data && data.filterElements?.length > 0) {\n const rootGroupId = 1;\n return {\n ...data,\n filterGroups: [\n {\n groupId: rootGroupId,\n parentGroupId: null,\n logicalSearchOperator: data.logicalSearchOperator || 1,\n },\n ],\n filterElements: data.filterElements.map(el => ({ ...el, groupId: rootGroupId })),\n };\n }\n // Return a default structure if the prop is null or empty\n return {\n logicalSearchOperator: 1,\n filterGroups: [{ groupId: 1, parentGroupId: null, logicalSearchOperator: 1 }],\n filterElements: [],\n };\n }\n\n private toggleExpanded = () => {\n this.isExpanded = !this.isExpanded;\n this.updateHostClasses();\n };\n\n private handleToggleAddMenu = (event: CustomEvent<number>) => {\n const groupId = event.detail;\n // If clicking the same button, close the menu. Otherwise, open the new one.\n this.openAddMenuForGroupId = this.openAddMenuForGroupId === groupId ? null : groupId;\n\n if (this.openAddMenuForGroupId !== null) {\n const el = this.animContainerEl;\n if (el) {\n // We use requestAnimationFrame to ensure the scroll happens smoothly\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight;\n });\n }\n }\n };\n\n private runUpdateCycle(mutator: (data: Search) => void) {\n // Create a deep clone to avoid mutating the prop directly\n const newState = JSON.parse(JSON.stringify(this.currentFilterData));\n\n // Apply the mutations to the new state object\n mutator(newState);\n\n this.currentFilterData = newState;\n\n const validationResult = this.verifyFilterState(this.currentFilterData);\n this.isFilterValid = validationResult.isValid;\n this.errorMessages = validationResult.errors;\n\n this.change.emit(newState);\n }\n\n // --- Data Manipulation Methods ---\n\n private handleDrop = (event: CustomEvent<{ event: DragEvent; targetFilterId: string }>) => {\n const dragEvent = event.detail.event;\n const droppedOnFilterId = event.detail.targetFilterId;\n\n // Get the dragged filter's ID from the dataTransfer object\n const draggedFilterId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedFilterId || draggedFilterId === droppedOnFilterId) {\n return;\n }\n\n this.runUpdateCycle(newState => {\n const elements = newState.filterElements;\n const draggedItem = elements.find(f => f._id === draggedFilterId);\n if (!draggedItem) return;\n\n const fromIndex = elements.findIndex(f => f._id === draggedFilterId);\n const toIndex = elements.findIndex(f => f._id === droppedOnFilterId);\n\n elements.splice(fromIndex, 1);\n elements.splice(toIndex, 0, draggedItem);\n });\n };\n\n private handleAddFilter = (groupId: number) => {\n this.runUpdateCycle(newState => {\n const defaultField = this.fields?.[0];\n const allowedOperators = getAllowedSearchOperators(defaultField);\n const defaultOperator = allowedOperators?.[0]?.value || '';\n newState.filterElements.push({\n _id: `filter_${Math.random()}`,\n _type: defaultField?.type,\n groupId: groupId,\n searchField: defaultField?.name,\n searchOperator: defaultOperator, // Use the new default operator\n searchValue: '',\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleAddGroup = (parentGroupId: number) => {\n this.runUpdateCycle(newState => {\n newState.filterGroups.push({\n groupId: this.nextGroupId++,\n parentGroupId: parentGroupId,\n logicalSearchOperator: 1,\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleRemoveFilter = (filterId: string) => {\n this.runUpdateCycle(newState => {\n const index = newState.filterElements.findIndex(f => f._id === filterId);\n if (index > -1) newState.filterElements.splice(index, 1);\n });\n };\n\n private handleRemoveGroup = (groupIdToRemove: number) => {\n this.runUpdateCycle(newState => {\n const findDescendantGroupIds = (parentGroupId: number): number[] => {\n const children = newState.filterGroups.filter(g => g.parentGroupId === parentGroupId);\n let allDescendants = children.map(c => c.groupId);\n children.forEach(c => {\n allDescendants = [...allDescendants, ...findDescendantGroupIds(c.groupId)];\n });\n return allDescendants;\n };\n const allIdsToRemove = [groupIdToRemove, ...findDescendantGroupIds(groupIdToRemove)];\n newState.filterGroups = newState.filterGroups.filter(\n g => !allIdsToRemove.includes(g.groupId),\n );\n newState.filterElements = newState.filterElements.filter(\n f => !allIdsToRemove.includes(f.groupId),\n );\n });\n };\n\n private handleFilterChange = (event: CustomEvent) => {\n const { filterId, field, value, updates } = event.detail;\n this.runUpdateCycle(newState => {\n const filter = newState.filterElements.find(f => f._id === filterId);\n if (filter) {\n if (updates) {\n // If there are multiple updates, apply them all\n Object.assign(filter, updates);\n } else {\n // Otherwise, apply the single update\n filter[field] = value;\n }\n }\n });\n };\n\n private handleGroupChange = (event: CustomEvent) => {\n const { groupId, logicalSearchOperator } = event.detail;\n this.runUpdateCycle(newState => {\n const group = newState.filterGroups.find(g => g.groupId === groupId);\n if (group) group.logicalSearchOperator = logicalSearchOperator;\n });\n };\n\n private isDescendant(targetGroupId: number, draggedGroupId: number, allGroups: any[]): boolean {\n let currentGroup = allGroups.find(g => g.groupId === targetGroupId);\n // Traverse up the tree from the target\n while (currentGroup && currentGroup.parentGroupId !== null) {\n // If we find the dragged group in the ancestry, it's a descendant\n if (currentGroup.parentGroupId === draggedGroupId) {\n return true;\n }\n currentGroup = allGroups.find(g => g.groupId === currentGroup.parentGroupId);\n }\n return false;\n }\n\n private handleDropOnGroup = (event: CustomEvent<{ event: DragEvent; targetGroupId: number }>) => {\n const dragEvent = event.detail.event;\n const targetGroupId = event.detail.targetGroupId;\n\n // Read the type and ID from the dataTransfer object\n const dragType = dragEvent.dataTransfer.getData('application/drag-type');\n const draggedId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedId) return;\n\n this.runUpdateCycle(newState => {\n // --- Handle a dropped FILTER ---\n if (dragType === 'filter') {\n const draggedFilter = newState.filterElements.find(f => f._id === draggedId);\n if (draggedFilter && draggedFilter.groupId !== targetGroupId) {\n draggedFilter.groupId = targetGroupId;\n }\n }\n // --- Handle a dropped GROUP ---\n else if (dragType === 'group') {\n const draggedGroupId = parseInt(draggedId, 10);\n const draggedGroup = newState.filterGroups.find(g => g.groupId === draggedGroupId);\n\n // Safety checks:\n // 1. Can't drop a group on itself.\n // 2. Can't drop a group into its current parent.\n // 3. Can't drop a group into one of its own descendants.\n if (\n draggedGroup &&\n draggedGroupId !== targetGroupId &&\n draggedGroup.parentGroupId !== targetGroupId &&\n !this.isDescendant(targetGroupId, draggedGroupId, newState.filterGroups)\n ) {\n // If all checks pass, update the group's parentGroupId\n draggedGroup.parentGroupId = targetGroupId;\n }\n }\n });\n };\n\n render() {\n const rootGroup = this.currentFilterData.filterGroups.find(g => g.parentGroupId === null);\n\n const isCollapsible = this.config.collapsible === true;\n const isResizable = this.config.resizable !== false;\n const showFooter = this.config.showFooter !== false;\n\n const containerClasses = {\n 'advanced-filter-container': true,\n 'is-expanded': this.isExpanded,\n };\n\n const hostStyles = {};\n // Only apply a height style when the component is expanded\n if (this.isExpanded && this.config.height) {\n // If not resizable, this will be the fixed height.\n // If resizable, this will be the initial height, constrained by the CSS.\n hostStyles['height'] = this.config.height;\n }\n\n return (\n <Host\n style={hostStyles}\n class={{\n 'is-resizable': isResizable,\n 'host-expanded': this.isExpanded,\n 'host-collapsed': !this.isExpanded,\n }}\n >\n <div class={containerClasses}>\n {isCollapsible && (\n <div class=\"collapsed-view\">\n <input type=\"text\" readonly value={this.filterString} class=\"string-display-input\" />\n <custom-button\n class=\"toggle-button\"\n size=\"short\"\n variant=\"text\"\n handleClick={this.toggleExpanded}\n >\n <span>{this.isExpanded ? 'Collapse' : 'Expand'}</span>\n <svg class=\"toggle-icon\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </custom-button>\n </div>\n )}\n <div class=\"anim-container\" ref={el => (this.animContainerEl = el)}>\n <div class=\"content-wrapper\">\n {(this.isExpanded || !isCollapsible) && rootGroup && (\n <filter-group\n key={rootGroup.groupId}\n groupId={rootGroup.groupId}\n filterData={this.currentFilterData}\n fields={this.fields}\n isRoot={true}\n onAddFilter={e => this.handleAddFilter(e.detail)}\n onAddGroup={e => this.handleAddGroup(e.detail)}\n onRemoveFilter={e => this.handleRemoveFilter(e.detail)}\n onRemoveGroup={e => this.handleRemoveGroup(e.detail)}\n onFilterChange={this.handleFilterChange}\n onGroupChange={this.handleGroupChange}\n onDropOnFilter={this.handleDrop}\n openAddMenuForGroupId={this.openAddMenuForGroupId}\n onToggleAddMenu={this.handleToggleAddMenu}\n onDropOnGroup={this.handleDropOnGroup}\n />\n )}\n </div>\n </div>\n {showFooter && (\n <div class=\"advanced-filter-footer\">\n <validation-chip isValid={this.isFilterValid} errorMessages={this.errorMessages} />\n <udp-button\n disabled={!this.isFilterValid}\n onClick={this.handleSearch}\n variant=\"contained\"\n >\n Search\n </udp-button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"version":3,"file":"advanced-search-builder.entry.cjs.js","sources":["src/components/my-component/UI/advanced-search-builder/helperFunctions/createStringFromSearchObject.ts","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.css?tag=advanced-search-builder&encapsulation=shadow","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.tsx"],"sourcesContent":["import { Search } from '../../../../../udp-utilities/interfaces/searchObject';\n\nexport const generateFilterString = (data: Search ): string => {\n // Return an empty string if there's no data or no groups\n if (!data || !data.filterGroups || data.filterGroups.length === 0) {\n return '';\n }\n\n // Recursive helper function to build the string for a given group\n const buildStringForGroup = (groupId: number): string => {\n const groupInfo = data.filterGroups.find(g => g.groupId === groupId);\n if (!groupInfo) return '';\n\n const logicalOperator = groupInfo.logicalSearchOperator === 1 ? 'AND' : 'OR';\n const parts = [];\n\n // 1. Process all filters in this group\n const filtersInGroup = data.filterElements.filter(f => f.groupId === groupId);\n filtersInGroup.forEach(filter => {\n // Add quotes around string values\n const value =\n typeof filter.searchValue === 'string' ? `\"${filter.searchValue}\"` : filter.searchValue;\n parts.push(`[${filter.searchField}] ${filter.searchOperator} ${value}`);\n });\n\n // 2. Process all subgroups by calling this function recursively\n const subGroups = data.filterGroups.filter(g => g.parentGroupId === groupId);\n subGroups.forEach(subGroup => {\n const subGroupString = buildStringForGroup(subGroup.groupId);\n // Only add the part if the subgroup is not empty\n if (subGroupString) {\n parts.push(`(${subGroupString})`);\n }\n });\n\n // 3. Join all the parts together with the correct operator\n return parts.join(` ${logicalOperator} `);\n };\n\n // Find the root group (the one with no parent) and start the process\n const rootGroup = data.filterGroups.find(g => g.parentGroupId === null);\n return rootGroup ? buildStringForGroup(rootGroup.groupId) : '';\n }\n",":host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n border: 1px solid #ccc;\n border-radius: 4px;\n background: white;\n margin: 3px;\n box-sizing: border-box;\n overflow: visible;\n}\n\n/* --- Host State Styles --- */\n:host(.host-collapsed) {\n resize: none;\n height: auto;\n}\n\n:host(.host-expanded) {\n overflow-y: auto;\n}\n\n:host(.is-resizable.host-expanded) {\n resize: vertical;\n min-height: 180px;\n max-height: 80vh;\n overflow: auto;\n}\n\n/* --- Main Layout --- */\n.advanced-filter-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.collapsed-view {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 10px;\n border-bottom: 1px solid #eee;\n}\n\n.anim-container {\n flex-grow: 1;\n overflow-y: auto;\n overflow-x: auto;\n display: flex;\n}\n\n.content-wrapper {\n padding-bottom: 15px;\n flex-grow: 1;\n}\n\n.advanced-filter-footer {\n display: flex;\n justify-content: flex-end;\n border-top: 1px solid #eee;\n padding: 10px;\n flex-shrink: 0;\n gap: 10px;\n align-items: center;\n}\n\n/* --- Input & Button Styles --- */\n.string-display-input {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #f5f5f5;\n box-sizing: border-box;\n cursor: default;\n user-select: none;\n}\n\n.string-display-input:focus {\n outline: none;\n}\n\n.search-button {\n opacity: 0;\n transform: scale(0.95);\n pointer-events: none;\n margin-right: 10px;\n}\n\n/* --- Animation & Visibility Rules --- */\n\n/* When EXPANDED, show the content */\n.advanced-filter-container.is-expanded .anim-container {\n overflow-y: auto;\n min-height: 130px;\n}\n\n.advanced-filter-container.is-expanded .collapsed-view {\n display: none;\n}\n\n.advanced-filter-container.is-expanded .search-button {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n}\n\n/* When COLLAPSED, hide the content */\n.advanced-filter-container:not(.is-expanded) .anim-container {\n max-height: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.advanced-filter-container:not(.is-expanded) .advanced-filter-footer {\n opacity: 0;\n height: 0;\n padding: 0;\n border: none;\n pointer-events: none;\n overflow: hidden;\n}\n","import { Component, h, Prop, State, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport { Field } from './models';\nimport { generateFilterString } from './helperFunctions/createStringFromSearchObject';\nimport { Search } from '../../../../udp-utilities/interfaces/searchObject';\nimport { AdvancedFilterConfig } from './models';\nimport { getAllowedSearchOperators } from './helperFunctions/udpOperatorHelper';\n\n/**\n * A powerful and configurable component for building complex data queries.\n * It provides a user-friendly UI for adding filters and logical groups,\n * and emits the resulting search object for use in data grids or API calls.\n *\n * @example\n * <advanced-search-builder\n * fields={myFields}\n * initialFilterData={myFilter}\n * config={{ collapsible: false }}\n * onFilterSave={(e) => handleSearch(e.detail)}\n * onChange={(e) => console.log('Current state:', e.detail)}\n * />\n */\n\n@Component({\n tag: 'advanced-search-builder',\n styleUrl: 'advanced-search-builder.css',\n shadow: true,\n})\nexport class AdvancedSearchBuilder {\n /**\n * An array of `Field` objects that defines the available options in the\n * \"Fields\" dropdown. This can be a nested structure for expandable fields.\n */\n @Prop() fields: Field[] = [];\n\n /**\n * The initial state of the filter. The component uses this to build the\n * initial UI and manages its state internally thereafter.\n */\n @Prop() initialFilterData: Search;\n\n /**\n * A configuration object to control optional features of the component,\n * such as enabling or disabling the collapsible and resizable behaviors.\n */\n @Prop() config: AdvancedFilterConfig = {};\n\n /**\n * Emitted only when the user clicks the \"Search\" button in the footer.\n * This represents the final, committed filter state.\n *\n * @event filterSave\n * @param {Search} searchData - The complete, final search object.\n */\n @Event() filterSave: EventEmitter<Search>; //fires when the \"Search\" button is clicked\n\n /**\n * Emitted on every single change to the filter data (e.g., typing in a\n * value, changing an operator). This is useful for real-time feedback.\n *\n * @event change\n * @param {Search} searchData - The complete, up-to-the-minute search object.\n */\n @Event() change: EventEmitter<Search>;\n\n @State() private openAddMenuForGroupId: number | null = null;\n @State() filterString: string = '';\n @State() private isExpanded: boolean = true;\n\n @State() private currentFilterData: Search;\n @State() private isFilterValid: boolean = true;\n @State() private errorMessages: string[] = [];\n\n private nextGroupId = 1;\n private animContainerEl: HTMLElement;\n @Element() private el: HTMLElement;\n\n componentWillLoad() {\n // Initialize the internal state from the prop\n this.currentFilterData = this.getNormalizedData(this.initialFilterData);\n this.updateNextGroupId(this.currentFilterData);\n }\n\n componentDidLoad() {\n this.updateHostClasses();\n }\n\n private updateHostClasses() {\n if (this.isExpanded) {\n this.el.classList.add('host-expanded');\n this.el.classList.remove('host-collapsed');\n } else {\n this.el.classList.add('host-collapsed');\n this.el.classList.remove('host-expanded');\n this.el.style.height = null;\n }\n }\n\n private updateNextGroupId(data: Search) {\n // Check if there are any groups to scan\n if (data && data.filterGroups.length > 0) {\n // Find the highest existing groupId and add 1\n this.nextGroupId = Math.max(...data.filterGroups.map(g => g.groupId)) + 1;\n } else {\n // If there are no groups, start with 2 (since the default root is 1)\n this.nextGroupId = 2;\n }\n }\n\n private verifyFilterState(data: Search): { isValid: boolean; errors: string[] } {\n const errors: string[] = [];\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n data.filterElements.forEach(filter => {\n delete filter._error; // Clear old errors first\n const isSearchFieldEmpty =\n filter.searchField === null ||\n filter.searchField === undefined ||\n filter.searchField === '';\n const isValueEmpty = !filter.searchValue;\n const operatorAllowsEmpty =\n filter.searchOperator === 'NULL' || filter.searchOperator === 'NOTNULL';\n\n if (isSearchFieldEmpty) {\n const errorMessage = `Search Field cannot be empty.`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter.searchOperator === 'BETWEEN') {\n const values = (filter.searchValue || '').split(',');\n // Check if we have two values and that neither is an empty string.\n if (values.length !== 2 || !values[0] || !values[1]) {\n const errorMessage = `Two values required when using BETWEEN operator for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n } else if (isValueEmpty && !operatorAllowsEmpty) {\n const errorMessage = `Value cannot be empty for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter._type === 'guid' && !isValueEmpty && !guidRegex.test(filter.searchValue)) {\n const errorMessage = `Invalid GUID for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n });\n\n return { isValid: errors.length === 0, errors: errors };\n }\n\n private handleSearch = () => {\n if (this.isFilterValid && this.filterSave) {\n this.filterSave.emit(this.currentFilterData);\n this.filterString = generateFilterString(this.currentFilterData);\n this.config.collapsible && this.toggleExpanded();\n } else {\n console.warn('Cannot run search: filter is invalid.');\n }\n };\n\n private getNormalizedData(data: Search): Search {\n if (data && data.filterGroups?.length > 0) {\n return data;\n }\n if (data && data.filterElements?.length > 0) {\n const rootGroupId = 1;\n return {\n ...data,\n filterGroups: [\n {\n groupId: rootGroupId,\n parentGroupId: null,\n logicalSearchOperator: data.logicalSearchOperator || 1,\n },\n ],\n filterElements: data.filterElements.map(el => ({ ...el, groupId: rootGroupId })),\n };\n }\n // Return a default structure if the prop is null or empty\n return {\n logicalSearchOperator: 1,\n filterGroups: [{ groupId: 1, parentGroupId: null, logicalSearchOperator: 1 }],\n filterElements: [],\n };\n }\n\n private toggleExpanded = () => {\n this.isExpanded = !this.isExpanded;\n this.updateHostClasses();\n };\n\n private handleToggleAddMenu = (event: CustomEvent<number>) => {\n const groupId = event.detail;\n // If clicking the same button, close the menu. Otherwise, open the new one.\n this.openAddMenuForGroupId = this.openAddMenuForGroupId === groupId ? null : groupId;\n\n if (this.openAddMenuForGroupId !== null) {\n const el = this.animContainerEl;\n if (el) {\n // We use requestAnimationFrame to ensure the scroll happens smoothly\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight;\n });\n }\n }\n };\n\n private runUpdateCycle(mutator: (data: Search) => void) {\n // Create a deep clone to avoid mutating the prop directly\n const newState = JSON.parse(JSON.stringify(this.currentFilterData));\n\n // Apply the mutations to the new state object\n mutator(newState);\n\n this.currentFilterData = newState;\n\n const validationResult = this.verifyFilterState(this.currentFilterData);\n this.isFilterValid = validationResult.isValid;\n this.errorMessages = validationResult.errors;\n\n this.change.emit(newState);\n }\n\n // --- Data Manipulation Methods ---\n\n private handleDrop = (event: CustomEvent<{ event: DragEvent; targetFilterId: string }>) => {\n const dragEvent = event.detail.event;\n const droppedOnFilterId = event.detail.targetFilterId;\n\n // Get the dragged filter's ID from the dataTransfer object\n const draggedFilterId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedFilterId || draggedFilterId === droppedOnFilterId) {\n return;\n }\n\n this.runUpdateCycle(newState => {\n const elements = newState.filterElements;\n const draggedItem = elements.find(f => f._id === draggedFilterId);\n if (!draggedItem) return;\n\n const fromIndex = elements.findIndex(f => f._id === draggedFilterId);\n const toIndex = elements.findIndex(f => f._id === droppedOnFilterId);\n\n elements.splice(fromIndex, 1);\n elements.splice(toIndex, 0, draggedItem);\n });\n };\n\n private handleAddFilter = (groupId: number) => {\n this.runUpdateCycle(newState => {\n const defaultField = this.fields?.[0];\n const allowedOperators = getAllowedSearchOperators(defaultField);\n const defaultOperator = allowedOperators?.[0]?.value || '';\n newState.filterElements.push({\n _id: `filter_${Math.random()}`,\n _type: defaultField?.type,\n groupId: groupId,\n searchField: defaultField?.name,\n searchOperator: defaultOperator, // Use the new default operator\n searchValue: '',\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleAddGroup = (parentGroupId: number) => {\n this.runUpdateCycle(newState => {\n newState.filterGroups.push({\n groupId: this.nextGroupId++,\n parentGroupId: parentGroupId,\n logicalSearchOperator: 1,\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleRemoveFilter = (filterId: string) => {\n this.runUpdateCycle(newState => {\n const index = newState.filterElements.findIndex(f => f._id === filterId);\n if (index > -1) newState.filterElements.splice(index, 1);\n });\n };\n\n private handleRemoveGroup = (groupIdToRemove: number) => {\n this.runUpdateCycle(newState => {\n const findDescendantGroupIds = (parentGroupId: number): number[] => {\n const children = newState.filterGroups.filter(g => g.parentGroupId === parentGroupId);\n let allDescendants = children.map(c => c.groupId);\n children.forEach(c => {\n allDescendants = [...allDescendants, ...findDescendantGroupIds(c.groupId)];\n });\n return allDescendants;\n };\n const allIdsToRemove = [groupIdToRemove, ...findDescendantGroupIds(groupIdToRemove)];\n newState.filterGroups = newState.filterGroups.filter(\n g => !allIdsToRemove.includes(g.groupId),\n );\n newState.filterElements = newState.filterElements.filter(\n f => !allIdsToRemove.includes(f.groupId),\n );\n });\n };\n\n private handleFilterChange = (event: CustomEvent) => {\n const { filterId, field, value, updates } = event.detail;\n this.runUpdateCycle(newState => {\n const filter = newState.filterElements.find(f => f._id === filterId);\n if (filter) {\n if (updates) {\n // If there are multiple updates, apply them all\n Object.assign(filter, updates);\n } else {\n // Otherwise, apply the single update\n filter[field] = value;\n }\n }\n });\n };\n\n private handleGroupChange = (event: CustomEvent) => {\n const { groupId, logicalSearchOperator } = event.detail;\n this.runUpdateCycle(newState => {\n const group = newState.filterGroups.find(g => g.groupId === groupId);\n if (group) group.logicalSearchOperator = logicalSearchOperator;\n });\n };\n\n private isDescendant(targetGroupId: number, draggedGroupId: number, allGroups: any[]): boolean {\n let currentGroup = allGroups.find(g => g.groupId === targetGroupId);\n // Traverse up the tree from the target\n while (currentGroup && currentGroup.parentGroupId !== null) {\n // If we find the dragged group in the ancestry, it's a descendant\n if (currentGroup.parentGroupId === draggedGroupId) {\n return true;\n }\n currentGroup = allGroups.find(g => g.groupId === currentGroup.parentGroupId);\n }\n return false;\n }\n\n private handleDropOnGroup = (event: CustomEvent<{ event: DragEvent; targetGroupId: number }>) => {\n const dragEvent = event.detail.event;\n const targetGroupId = event.detail.targetGroupId;\n\n // Read the type and ID from the dataTransfer object\n const dragType = dragEvent.dataTransfer.getData('application/drag-type');\n const draggedId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedId) return;\n\n this.runUpdateCycle(newState => {\n // --- Handle a dropped FILTER ---\n if (dragType === 'filter') {\n const draggedFilter = newState.filterElements.find(f => f._id === draggedId);\n if (draggedFilter && draggedFilter.groupId !== targetGroupId) {\n draggedFilter.groupId = targetGroupId;\n }\n }\n // --- Handle a dropped GROUP ---\n else if (dragType === 'group') {\n const draggedGroupId = parseInt(draggedId, 10);\n const draggedGroup = newState.filterGroups.find(g => g.groupId === draggedGroupId);\n\n // Safety checks:\n // 1. Can't drop a group on itself.\n // 2. Can't drop a group into its current parent.\n // 3. Can't drop a group into one of its own descendants.\n if (\n draggedGroup &&\n draggedGroupId !== targetGroupId &&\n draggedGroup.parentGroupId !== targetGroupId &&\n !this.isDescendant(targetGroupId, draggedGroupId, newState.filterGroups)\n ) {\n // If all checks pass, update the group's parentGroupId\n draggedGroup.parentGroupId = targetGroupId;\n }\n }\n });\n };\n\n render() {\n const rootGroup = this.currentFilterData.filterGroups.find(g => g.parentGroupId === null);\n\n const isCollapsible = this.config.collapsible === true;\n const isResizable = this.config.resizable !== false;\n const showFooter = this.config.showFooter !== false;\n\n const containerClasses = {\n 'advanced-filter-container': true,\n 'is-expanded': this.isExpanded,\n };\n\n const hostStyles = {};\n // Only apply a height style when the component is expanded\n if (this.isExpanded && this.config.height) {\n // If not resizable, this will be the fixed height.\n // If resizable, this will be the initial height, constrained by the CSS.\n hostStyles['height'] = this.config.height;\n }\n\n return (\n <Host\n style={hostStyles}\n class={{\n 'is-resizable': isResizable,\n 'host-expanded': this.isExpanded,\n 'host-collapsed': !this.isExpanded,\n }}\n >\n <div class={containerClasses}>\n {isCollapsible && (\n <div class=\"collapsed-view\">\n <input type=\"text\" readonly value={this.filterString} class=\"string-display-input\" />\n <custom-button\n class=\"toggle-button\"\n size=\"short\"\n variant=\"text\"\n handleClick={this.toggleExpanded}\n >\n <span>{this.isExpanded ? 'Collapse' : 'Expand'}</span>\n <svg class=\"toggle-icon\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </custom-button>\n </div>\n )}\n <div class=\"anim-container\" ref={el => (this.animContainerEl = el)}>\n <div class=\"content-wrapper\">\n {(this.isExpanded || !isCollapsible) && rootGroup && (\n <filter-group\n key={rootGroup.groupId}\n groupId={rootGroup.groupId}\n filterData={this.currentFilterData}\n fields={this.fields}\n isRoot={true}\n onAddFilter={e => this.handleAddFilter(e.detail)}\n onAddGroup={e => this.handleAddGroup(e.detail)}\n onRemoveFilter={e => this.handleRemoveFilter(e.detail)}\n onRemoveGroup={e => this.handleRemoveGroup(e.detail)}\n onFilterChange={this.handleFilterChange}\n onGroupChange={this.handleGroupChange}\n onDropOnFilter={this.handleDrop}\n openAddMenuForGroupId={this.openAddMenuForGroupId}\n onToggleAddMenu={this.handleToggleAddMenu}\n onDropOnGroup={this.handleDropOnGroup}\n />\n )}\n </div>\n </div>\n {showFooter && (\n <div class=\"advanced-filter-footer\">\n <validation-chip isValid={this.isFilterValid} errorMessages={this.errorMessages} />\n <udp-button\n disabled={!this.isFilterValid}\n onClick={this.handleSearch}\n variant=\"contained\"\n >\n Search\n </udp-button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":["getAllowedSearchOperators","h","Host"],"mappings":"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"}
1
+ {"version":3,"file":"advanced-search-builder.entry.cjs.js","sources":["src/components/my-component/UI/advanced-search-builder/helperFunctions/createStringFromSearchObject.ts","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.css?tag=advanced-search-builder&encapsulation=shadow","src/components/my-component/UI/advanced-search-builder/advanced-search-builder.tsx"],"sourcesContent":["import { Search } from '../../../../../udp-utilities/interfaces/searchObject';\n\nexport const generateFilterString = (data: Search ): string => {\n // Return an empty string if there's no data or no groups\n if (!data || !data.filterGroups || data.filterGroups.length === 0) {\n return '';\n }\n\n // Recursive helper function to build the string for a given group\n const buildStringForGroup = (groupId: number): string => {\n const groupInfo = data.filterGroups.find(g => g.groupId === groupId);\n if (!groupInfo) return '';\n\n const logicalOperator = groupInfo.logicalSearchOperator === 1 ? 'AND' : 'OR';\n const parts = [];\n\n // 1. Process all filters in this group\n const filtersInGroup = data.filterElements.filter(f => f.groupId === groupId);\n filtersInGroup.forEach(filter => {\n // Add quotes around string values\n const value =\n typeof filter.searchValue === 'string' ? `\"${filter.searchValue}\"` : filter.searchValue;\n parts.push(`[${filter.searchField}] ${filter.searchOperator} ${value}`);\n });\n\n // 2. Process all subgroups by calling this function recursively\n const subGroups = data.filterGroups.filter(g => g.parentGroupId === groupId);\n subGroups.forEach(subGroup => {\n const subGroupString = buildStringForGroup(subGroup.groupId);\n // Only add the part if the subgroup is not empty\n if (subGroupString) {\n parts.push(`(${subGroupString})`);\n }\n });\n\n // 3. Join all the parts together with the correct operator\n return parts.join(` ${logicalOperator} `);\n };\n\n // Find the root group (the one with no parent) and start the process\n const rootGroup = data.filterGroups.find(g => g.parentGroupId === null);\n return rootGroup ? buildStringForGroup(rootGroup.groupId) : '';\n }\n",":host {\n display: flex;\n flex-direction: column;\n font-family: sans-serif;\n /* border: 1px solid #ccc; */\n /* border-radius: 4px; */\n /* background: white; */\n /* margin: 3px; */\n box-sizing: border-box;\n overflow: visible;\n}\n\n/* --- Host State Styles --- */\n:host(.host-collapsed) {\n resize: none;\n height: auto;\n}\n\n:host(.host-expanded) {\n overflow-y: auto;\n}\n\n:host(.is-resizable.host-expanded) {\n resize: vertical;\n min-height: 180px;\n max-height: 80vh;\n overflow: auto;\n}\n\n/* --- Main Layout --- */\n.advanced-filter-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n overflow: hidden;\n}\n\n.collapsed-view {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 10px;\n border-bottom: 1px solid #eee;\n}\n\n.anim-container {\n flex-grow: 1;\n overflow-y: auto;\n overflow-x: auto;\n display: flex;\n}\n\n.content-wrapper {\n padding-bottom: 15px;\n flex-grow: 1;\n}\n\n.advanced-filter-footer {\n display: flex;\n justify-content: flex-end;\n border-top: 1px solid #eee;\n padding: 10px;\n flex-shrink: 0;\n gap: 10px;\n align-items: center;\n}\n\n/* --- Input & Button Styles --- */\n.string-display-input {\n width: 100%;\n padding: 8px;\n border: 1px solid #ccc;\n border-radius: 4px;\n background-color: #f5f5f5;\n box-sizing: border-box;\n cursor: default;\n user-select: none;\n}\n\n.string-display-input:focus {\n outline: none;\n}\n\n.search-button {\n opacity: 0;\n transform: scale(0.95);\n pointer-events: none;\n margin-right: 10px;\n}\n\n/* --- Animation & Visibility Rules --- */\n\n/* When EXPANDED, show the content */\n.advanced-filter-container.is-expanded .anim-container {\n overflow-y: auto;\n min-height: 130px;\n}\n\n.advanced-filter-container.is-expanded .collapsed-view {\n display: none;\n}\n\n.advanced-filter-container.is-expanded .search-button {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n}\n\n/* When COLLAPSED, hide the content */\n.advanced-filter-container:not(.is-expanded) .anim-container {\n max-height: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.advanced-filter-container:not(.is-expanded) .advanced-filter-footer {\n opacity: 0;\n height: 0;\n padding: 0;\n border: none;\n pointer-events: none;\n overflow: hidden;\n}\n","import { Component, h, Prop, State, Event, EventEmitter, Element, Host } from '@stencil/core';\nimport { Field } from './models';\nimport { generateFilterString } from './helperFunctions/createStringFromSearchObject';\nimport { Search } from '../../../../udp-utilities/interfaces/searchObject';\nimport { AdvancedFilterConfig } from './models';\nimport { getAllowedSearchOperators } from './helperFunctions/udpOperatorHelper';\n\n/**\n * A powerful and configurable component for building complex data queries.\n * It provides a user-friendly UI for adding filters and logical groups,\n * and emits the resulting search object for use in data grids or API calls.\n *\n * @example\n * <advanced-search-builder\n * fields={myFields}\n * initialFilterData={myFilter}\n * config={{ collapsible: false }}\n * onFilterSave={(e) => handleSearch(e.detail)}\n * onChange={(e) => console.log('Current state:', e.detail)}\n * />\n */\n\n@Component({\n tag: 'advanced-search-builder',\n styleUrl: 'advanced-search-builder.css',\n shadow: true,\n})\nexport class AdvancedSearchBuilder {\n /**\n * An array of `Field` objects that defines the available options in the\n * \"Fields\" dropdown. This can be a nested structure for expandable fields.\n */\n @Prop() fields: Field[] = [];\n\n /**\n * The initial state of the filter. The component uses this to build the\n * initial UI and manages its state internally thereafter.\n */\n @Prop() initialFilterData: Search;\n\n /**\n * A configuration object to control optional features of the component,\n * such as enabling or disabling the collapsible and resizable behaviors.\n */\n @Prop() config: AdvancedFilterConfig = {};\n\n /**\n * Emitted only when the user clicks the \"Search\" button in the footer.\n * This represents the final, committed filter state.\n *\n * @event filterSave\n * @param {Search} searchData - The complete, final search object.\n */\n @Event() filterSave: EventEmitter<Search>; //fires when the \"Search\" button is clicked\n\n /**\n * Emitted on every single change to the filter data (e.g., typing in a\n * value, changing an operator). This is useful for real-time feedback.\n *\n * @event change\n * @param {Search} searchData - The complete, up-to-the-minute search object.\n */\n @Event() change: EventEmitter<Search>;\n\n @State() private openAddMenuForGroupId: number | null = null;\n @State() filterString: string = '';\n @State() private isExpanded: boolean = true;\n\n @State() private currentFilterData: Search;\n @State() private isFilterValid: boolean = true;\n @State() private errorMessages: string[] = [];\n\n private nextGroupId = 1;\n private animContainerEl: HTMLElement;\n @Element() private el: HTMLElement;\n\n componentWillLoad() {\n // Initialize the internal state from the prop\n this.currentFilterData = this.getNormalizedData(this.initialFilterData);\n this.updateNextGroupId(this.currentFilterData);\n }\n\n componentDidLoad() {\n this.updateHostClasses();\n }\n\n private updateHostClasses() {\n if (this.isExpanded) {\n this.el.classList.add('host-expanded');\n this.el.classList.remove('host-collapsed');\n } else {\n this.el.classList.add('host-collapsed');\n this.el.classList.remove('host-expanded');\n this.el.style.height = null;\n }\n }\n\n private updateNextGroupId(data: Search) {\n // Check if there are any groups to scan\n if (data && data.filterGroups.length > 0) {\n // Find the highest existing groupId and add 1\n this.nextGroupId = Math.max(...data.filterGroups.map(g => g.groupId)) + 1;\n } else {\n // If there are no groups, start with 2 (since the default root is 1)\n this.nextGroupId = 2;\n }\n }\n\n private verifyFilterState(data: Search): { isValid: boolean; errors: string[] } {\n const errors: string[] = [];\n const guidRegex =\n /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n\n data.filterElements.forEach(filter => {\n delete filter._error; // Clear old errors first\n const isSearchFieldEmpty =\n filter.searchField === null ||\n filter.searchField === undefined ||\n filter.searchField === '';\n const isValueEmpty = !filter.searchValue;\n const operatorAllowsEmpty =\n filter.searchOperator === 'NULL' || filter.searchOperator === 'NOTNULL';\n\n if (isSearchFieldEmpty) {\n const errorMessage = `Search Field cannot be empty.`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter.searchOperator === 'BETWEEN') {\n const values = (filter.searchValue || '').split(',');\n // Check if we have two values and that neither is an empty string.\n if (values.length !== 2 || !values[0] || !values[1]) {\n const errorMessage = `Two values required when using BETWEEN operator for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n } else if (isValueEmpty && !operatorAllowsEmpty) {\n const errorMessage = `Value cannot be empty for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n } else if (filter._type === 'guid' && !isValueEmpty && !guidRegex.test(filter.searchValue)) {\n const errorMessage = `Invalid GUID for field \"${filter.searchField}\".`;\n filter._error = errorMessage;\n errors.push(errorMessage);\n }\n });\n\n return { isValid: errors.length === 0, errors: errors };\n }\n\n private handleSearch = () => {\n if (this.isFilterValid && this.filterSave) {\n this.filterSave.emit(this.currentFilterData);\n this.filterString = generateFilterString(this.currentFilterData);\n this.config.collapsible && this.toggleExpanded();\n } else {\n console.warn('Cannot run search: filter is invalid.');\n }\n };\n\n private getNormalizedData(data: Search): Search {\n if (data && data.filterGroups?.length > 0) {\n return data;\n }\n if (data && data.filterElements?.length > 0) {\n const rootGroupId = 1;\n return {\n ...data,\n filterGroups: [\n {\n groupId: rootGroupId,\n parentGroupId: null,\n logicalSearchOperator: data.logicalSearchOperator || 1,\n },\n ],\n filterElements: data.filterElements.map(el => ({ ...el, groupId: rootGroupId })),\n };\n }\n // Return a default structure if the prop is null or empty\n return {\n logicalSearchOperator: 1,\n filterGroups: [{ groupId: 1, parentGroupId: null, logicalSearchOperator: 1 }],\n filterElements: [],\n };\n }\n\n private toggleExpanded = () => {\n this.isExpanded = !this.isExpanded;\n this.updateHostClasses();\n };\n\n private handleToggleAddMenu = (event: CustomEvent<number>) => {\n const groupId = event.detail;\n // If clicking the same button, close the menu. Otherwise, open the new one.\n this.openAddMenuForGroupId = this.openAddMenuForGroupId === groupId ? null : groupId;\n\n if (this.openAddMenuForGroupId !== null) {\n const el = this.animContainerEl;\n if (el) {\n // We use requestAnimationFrame to ensure the scroll happens smoothly\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight;\n });\n }\n }\n };\n\n private runUpdateCycle(mutator: (data: Search) => void) {\n // Create a deep clone to avoid mutating the prop directly\n const newState = JSON.parse(JSON.stringify(this.currentFilterData));\n\n // Apply the mutations to the new state object\n mutator(newState);\n\n this.currentFilterData = newState;\n\n const validationResult = this.verifyFilterState(this.currentFilterData);\n this.isFilterValid = validationResult.isValid;\n this.errorMessages = validationResult.errors;\n\n this.change.emit(newState);\n }\n\n // --- Data Manipulation Methods ---\n\n private handleDrop = (event: CustomEvent<{ event: DragEvent; targetFilterId: string }>) => {\n const dragEvent = event.detail.event;\n const droppedOnFilterId = event.detail.targetFilterId;\n\n // Get the dragged filter's ID from the dataTransfer object\n const draggedFilterId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedFilterId || draggedFilterId === droppedOnFilterId) {\n return;\n }\n\n this.runUpdateCycle(newState => {\n const elements = newState.filterElements;\n const draggedItem = elements.find(f => f._id === draggedFilterId);\n if (!draggedItem) return;\n\n const fromIndex = elements.findIndex(f => f._id === draggedFilterId);\n const toIndex = elements.findIndex(f => f._id === droppedOnFilterId);\n\n elements.splice(fromIndex, 1);\n elements.splice(toIndex, 0, draggedItem);\n });\n };\n\n private handleAddFilter = (groupId: number) => {\n this.runUpdateCycle(newState => {\n const defaultField = this.fields?.[0];\n const allowedOperators = getAllowedSearchOperators(defaultField);\n const defaultOperator = allowedOperators?.[0]?.value || '';\n newState.filterElements.push({\n _id: `filter_${Math.random()}`,\n _type: defaultField?.type,\n groupId: groupId,\n searchField: defaultField?.name,\n searchOperator: defaultOperator, // Use the new default operator\n searchValue: '',\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleAddGroup = (parentGroupId: number) => {\n this.runUpdateCycle(newState => {\n newState.filterGroups.push({\n groupId: this.nextGroupId++,\n parentGroupId: parentGroupId,\n logicalSearchOperator: 1,\n });\n });\n this.openAddMenuForGroupId = null;\n };\n\n private handleRemoveFilter = (filterId: string) => {\n this.runUpdateCycle(newState => {\n const index = newState.filterElements.findIndex(f => f._id === filterId);\n if (index > -1) newState.filterElements.splice(index, 1);\n });\n };\n\n private handleRemoveGroup = (groupIdToRemove: number) => {\n this.runUpdateCycle(newState => {\n const findDescendantGroupIds = (parentGroupId: number): number[] => {\n const children = newState.filterGroups.filter(g => g.parentGroupId === parentGroupId);\n let allDescendants = children.map(c => c.groupId);\n children.forEach(c => {\n allDescendants = [...allDescendants, ...findDescendantGroupIds(c.groupId)];\n });\n return allDescendants;\n };\n const allIdsToRemove = [groupIdToRemove, ...findDescendantGroupIds(groupIdToRemove)];\n newState.filterGroups = newState.filterGroups.filter(\n g => !allIdsToRemove.includes(g.groupId),\n );\n newState.filterElements = newState.filterElements.filter(\n f => !allIdsToRemove.includes(f.groupId),\n );\n });\n };\n\n private handleFilterChange = (event: CustomEvent) => {\n const { filterId, field, value, updates } = event.detail;\n this.runUpdateCycle(newState => {\n const filter = newState.filterElements.find(f => f._id === filterId);\n if (filter) {\n if (updates) {\n // If there are multiple updates, apply them all\n Object.assign(filter, updates);\n } else {\n // Otherwise, apply the single update\n filter[field] = value;\n }\n }\n });\n };\n\n private handleGroupChange = (event: CustomEvent) => {\n const { groupId, logicalSearchOperator } = event.detail;\n this.runUpdateCycle(newState => {\n const group = newState.filterGroups.find(g => g.groupId === groupId);\n if (group) group.logicalSearchOperator = logicalSearchOperator;\n });\n };\n\n private isDescendant(targetGroupId: number, draggedGroupId: number, allGroups: any[]): boolean {\n let currentGroup = allGroups.find(g => g.groupId === targetGroupId);\n // Traverse up the tree from the target\n while (currentGroup && currentGroup.parentGroupId !== null) {\n // If we find the dragged group in the ancestry, it's a descendant\n if (currentGroup.parentGroupId === draggedGroupId) {\n return true;\n }\n currentGroup = allGroups.find(g => g.groupId === currentGroup.parentGroupId);\n }\n return false;\n }\n\n private handleDropOnGroup = (event: CustomEvent<{ event: DragEvent; targetGroupId: number }>) => {\n const dragEvent = event.detail.event;\n const targetGroupId = event.detail.targetGroupId;\n\n // Read the type and ID from the dataTransfer object\n const dragType = dragEvent.dataTransfer.getData('application/drag-type');\n const draggedId = dragEvent.dataTransfer.getData('text/plain');\n\n if (!draggedId) return;\n\n this.runUpdateCycle(newState => {\n // --- Handle a dropped FILTER ---\n if (dragType === 'filter') {\n const draggedFilter = newState.filterElements.find(f => f._id === draggedId);\n if (draggedFilter && draggedFilter.groupId !== targetGroupId) {\n draggedFilter.groupId = targetGroupId;\n }\n }\n // --- Handle a dropped GROUP ---\n else if (dragType === 'group') {\n const draggedGroupId = parseInt(draggedId, 10);\n const draggedGroup = newState.filterGroups.find(g => g.groupId === draggedGroupId);\n\n // Safety checks:\n // 1. Can't drop a group on itself.\n // 2. Can't drop a group into its current parent.\n // 3. Can't drop a group into one of its own descendants.\n if (\n draggedGroup &&\n draggedGroupId !== targetGroupId &&\n draggedGroup.parentGroupId !== targetGroupId &&\n !this.isDescendant(targetGroupId, draggedGroupId, newState.filterGroups)\n ) {\n // If all checks pass, update the group's parentGroupId\n draggedGroup.parentGroupId = targetGroupId;\n }\n }\n });\n };\n\n render() {\n const rootGroup = this.currentFilterData.filterGroups.find(g => g.parentGroupId === null);\n\n const isCollapsible = this.config.collapsible === true;\n const isResizable = this.config.resizable !== false;\n const showFooter = this.config.showFooter !== false;\n\n const containerClasses = {\n 'advanced-filter-container': true,\n 'is-expanded': this.isExpanded,\n };\n\n const hostStyles = {};\n // Only apply a height style when the component is expanded\n if (this.isExpanded && this.config.height) {\n // If not resizable, this will be the fixed height.\n // If resizable, this will be the initial height, constrained by the CSS.\n hostStyles['height'] = this.config.height;\n }\n\n return (\n <Host\n style={hostStyles}\n class={{\n 'is-resizable': isResizable,\n 'host-expanded': this.isExpanded,\n 'host-collapsed': !this.isExpanded,\n }}\n >\n <div class={containerClasses}>\n {isCollapsible && (\n <div class=\"collapsed-view\">\n <input type=\"text\" readonly value={this.filterString} class=\"string-display-input\" />\n <custom-button\n class=\"toggle-button\"\n size=\"short\"\n variant=\"text\"\n handleClick={this.toggleExpanded}\n >\n <span>{this.isExpanded ? 'Collapse' : 'Expand'}</span>\n <svg class=\"toggle-icon\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6L8 10L12 6\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </custom-button>\n </div>\n )}\n <div class=\"anim-container\" ref={el => (this.animContainerEl = el)}>\n <div class=\"content-wrapper\">\n {(this.isExpanded || !isCollapsible) && rootGroup && (\n <filter-group\n key={rootGroup.groupId}\n groupId={rootGroup.groupId}\n filterData={this.currentFilterData}\n fields={this.fields}\n isRoot={true}\n onAddFilter={e => this.handleAddFilter(e.detail)}\n onAddGroup={e => this.handleAddGroup(e.detail)}\n onRemoveFilter={e => this.handleRemoveFilter(e.detail)}\n onRemoveGroup={e => this.handleRemoveGroup(e.detail)}\n onFilterChange={this.handleFilterChange}\n onGroupChange={this.handleGroupChange}\n onDropOnFilter={this.handleDrop}\n openAddMenuForGroupId={this.openAddMenuForGroupId}\n onToggleAddMenu={this.handleToggleAddMenu}\n onDropOnGroup={this.handleDropOnGroup}\n />\n )}\n </div>\n </div>\n {showFooter && (\n <div class=\"advanced-filter-footer\">\n <validation-chip isValid={this.isFilterValid} errorMessages={this.errorMessages} />\n <udp-button\n disabled={!this.isFilterValid}\n onClick={this.handleSearch}\n variant=\"contained\"\n >\n Search\n </udp-button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":["getAllowedSearchOperators","h","Host"],"mappings":"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"}