udp-stencil-component-library 25.18.1-beta.8 → 25.18.1-beta.9

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 (965) hide show
  1. package/dist/cjs/add-map-feature-popup_4.cjs.entry.js +12 -12
  2. package/dist/cjs/advanced-search-builder.cjs.entry.js +2 -2
  3. package/dist/cjs/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.cjs.js.map +1 -0
  4. package/dist/cjs/advanced-search_12.cjs.entry.js +876 -0
  5. package/dist/cjs/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.cjs.js.map +1 -0
  6. package/dist/cjs/{ag-grid-base_5.cjs.entry.js → ag-grid-base_6.cjs.entry.js} +26 -8
  7. package/dist/cjs/{advanced-search_50.cjs.entry.js → ambient-template-grid.cjs.entry.js} +43 -4915
  8. package/dist/cjs/ambient-template-grid.entry.cjs.js.map +1 -0
  9. package/dist/cjs/api-method-instance-grid.cjs.entry.js +1 -1
  10. package/dist/cjs/app-bar.cjs.entry.js +23 -0
  11. package/dist/cjs/app-bar.entry.cjs.js.map +1 -0
  12. package/dist/cjs/catalog-store-BOiNPWZB.js +34 -0
  13. package/dist/cjs/catalog-store-BOiNPWZB.js.map +1 -0
  14. package/dist/cjs/chart-container_3.cjs.entry.js +2 -2
  15. package/dist/cjs/check-box.cjs.entry.js +2 -2
  16. package/dist/cjs/chip-section.cjs.entry.js +2 -2
  17. package/dist/cjs/client-side-grid.resource-timeline-primary-bar.entry.cjs.js.map +1 -1
  18. package/dist/cjs/client-side-grid_2.cjs.entry.js +5 -4
  19. package/dist/cjs/color-preview.cjs.entry.js +1 -1
  20. package/dist/cjs/conversionFunctions-B_9y17KE.js +135 -0
  21. package/dist/cjs/conversionFunctions-B_9y17KE.js.map +1 -0
  22. package/dist/cjs/{currency-renderer-D8Tuzf0W.js → currency-renderer-53i7rUkS.js} +7 -8
  23. package/dist/cjs/currency-renderer-53i7rUkS.js.map +1 -0
  24. package/dist/cjs/custom-button.cjs.entry.js +52 -0
  25. package/dist/cjs/custom-button.entry.cjs.js.map +1 -0
  26. package/dist/cjs/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.cjs.js.map +1 -1
  27. package/dist/cjs/date-time-renderer_6.cjs.entry.js +10 -9
  28. package/dist/cjs/entity-maintenance-grid.cjs.entry.js +1 -1
  29. package/dist/cjs/feature-details-card.feature-details-popup.entry.cjs.js.map +1 -1
  30. package/dist/cjs/feature-details-card_2.cjs.entry.js +7 -6
  31. package/dist/cjs/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.cjs.js.map +1 -0
  32. package/dist/cjs/filter-conditions_7.cjs.entry.js +309 -0
  33. package/dist/cjs/filter-group.validation-chip.entry.cjs.js.map +1 -1
  34. package/dist/cjs/filter-group_2.cjs.entry.js +3 -2
  35. package/dist/cjs/fluent-dialog.cjs.entry.js +23 -0
  36. package/dist/cjs/fluent-dialog.entry.cjs.js.map +1 -0
  37. package/dist/cjs/{iconUtils-Bfr2fT9-.js → iconMapping-BV2-Gk9Y.js} +2 -13
  38. package/dist/cjs/iconMapping-BV2-Gk9Y.js.map +1 -0
  39. package/dist/cjs/iconUtils-2mh73T__.js +18 -0
  40. package/dist/cjs/iconUtils-2mh73T__.js.map +1 -0
  41. package/dist/cjs/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.cjs.js.map +1 -1
  42. package/dist/cjs/image-upload_7.cjs.entry.js +8 -7
  43. package/dist/cjs/index-DrMNAZCL.js +162 -94
  44. package/dist/cjs/index.cjs.js +57 -17
  45. package/dist/cjs/index.cjs.js.map +1 -1
  46. package/dist/cjs/inputs-example.cjs.entry.js +2 -2
  47. package/dist/cjs/loader.cjs.js +1 -1
  48. package/dist/cjs/logical-search-indicator.cjs.entry.js +1 -1
  49. package/dist/cjs/map-component_2.cjs.entry.js +2 -2
  50. package/dist/cjs/numeric-field_5.cjs.entry.js +15 -15
  51. package/dist/cjs/primary-action-header.udp-side-sheet.udp-tabs.entry.cjs.js.map +1 -0
  52. package/dist/cjs/primary-action-header_3.cjs.entry.js +644 -0
  53. package/dist/cjs/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.cjs.js.map +1 -1
  54. package/dist/cjs/question-configs-renderer_5.cjs.entry.js +16 -15
  55. package/dist/cjs/resource-timeline-calendar.cjs.entry.js +1 -1
  56. package/dist/cjs/search-method-grid.cjs.entry.js +1 -1
  57. package/dist/cjs/server-side-grid.cjs.entry.js +1 -1
  58. package/dist/cjs/side-sheet-container.cjs.entry.js +20 -0
  59. package/dist/cjs/side-sheet-container.entry.cjs.js.map +1 -0
  60. package/dist/cjs/simple-card.cjs.entry.js +1 -1
  61. package/dist/cjs/status-chip.udp-function-button.entry.cjs.js.map +1 -0
  62. package/dist/cjs/status-chip_2.cjs.entry.js +109 -0
  63. package/dist/cjs/stencil-chip.cjs.entry.js +112 -0
  64. package/dist/cjs/stencil-chip.entry.cjs.js.map +1 -0
  65. package/dist/cjs/stencil-icon-button-grid-action-header.cjs.entry.js +44 -0
  66. package/dist/cjs/stencil-icon-button-grid-action-header.entry.cjs.js.map +1 -0
  67. package/dist/cjs/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.cjs.js.map +1 -0
  68. package/dist/cjs/stencil-icon-button_3.cjs.entry.js +158 -0
  69. package/dist/cjs/stencil-library.cjs.js +1 -1
  70. package/dist/cjs/stencil-toggle.cjs.entry.js +150 -0
  71. package/dist/cjs/stencil-toggle.entry.cjs.js.map +1 -0
  72. package/dist/cjs/text-field.udp-selector.entry.cjs.js.map +1 -0
  73. package/dist/cjs/text-field_2.cjs.entry.js +568 -0
  74. package/dist/cjs/{catalog-store-yJKDPXXM.js → transformSearchData-B4bk4Aik.js} +2 -31
  75. package/dist/cjs/transformSearchData-B4bk4Aik.js.map +1 -0
  76. package/dist/cjs/udp-adornment.cjs.entry.js +1 -1
  77. package/dist/cjs/udp-advanced-search-builder.cjs.entry.js +1 -1
  78. package/dist/cjs/udp-avatar.cjs.entry.js +57 -0
  79. package/dist/cjs/udp-avatar.entry.cjs.js.map +1 -0
  80. package/dist/cjs/udp-bar-chart_4.cjs.entry.js +4 -4
  81. package/dist/cjs/udp-button.cjs.entry.js +113 -0
  82. package/dist/cjs/udp-button.entry.cjs.js.map +1 -0
  83. package/dist/cjs/udp-calendar-base.cjs.entry.js +1 -1
  84. package/dist/cjs/udp-calendar-day.cjs.entry.js +1 -1
  85. package/dist/cjs/udp-calendar-month.cjs.entry.js +1 -1
  86. package/dist/cjs/udp-calendar-week.cjs.entry.js +1 -1
  87. package/dist/cjs/udp-calendar-year.cjs.entry.js +1 -1
  88. package/dist/cjs/udp-card-action-area.cjs.entry.js +1 -1
  89. package/dist/cjs/udp-card_6.cjs.entry.js +7 -7
  90. package/dist/cjs/udp-charts-example.cjs.entry.js +1 -1
  91. package/dist/cjs/udp-chip_3.cjs.entry.js +2 -2
  92. package/dist/cjs/udp-container-query-grid-item.cjs.entry.js +1 -1
  93. package/dist/cjs/udp-container-query-grid.cjs.entry.js +1 -1
  94. package/dist/cjs/udp-container-query.cjs.entry.js +2 -2
  95. package/dist/cjs/udp-container.udp-linear-loader.entry.cjs.js.map +1 -0
  96. package/dist/cjs/udp-container_2.cjs.entry.js +56 -0
  97. package/dist/cjs/udp-date-range-selector.cjs.entry.js +1 -1
  98. package/dist/cjs/udp-divider.cjs.entry.js +22 -0
  99. package/dist/cjs/udp-divider.entry.cjs.js.map +1 -0
  100. package/dist/cjs/udp-dynamic-container-with-menu.cjs.entry.js +134 -0
  101. package/dist/cjs/udp-dynamic-container-with-menu.entry.cjs.js.map +1 -0
  102. package/dist/cjs/udp-dynamic-form.cjs.entry.js +1 -1
  103. package/dist/cjs/udp-empty-state-display.cjs.entry.js +1 -1
  104. package/dist/cjs/udp-forms-builder.cjs.entry.js +2 -1
  105. package/dist/cjs/udp-forms-builder.entry.cjs.js.map +1 -1
  106. package/dist/cjs/udp-forms-follow-up-list-card.cjs.entry.js +2 -2
  107. package/dist/cjs/udp-forms-list-card.cjs.entry.js +5 -5
  108. package/dist/cjs/udp-forms-list.cjs.entry.js +1 -1
  109. package/dist/cjs/udp-forms-renderer.cjs.entry.js +1 -1
  110. package/dist/cjs/udp-forms-ui.cjs.entry.js +2 -1
  111. package/dist/cjs/udp-forms-ui.entry.cjs.js.map +1 -1
  112. package/dist/cjs/udp-icon.cjs.entry.js +151 -0
  113. package/dist/cjs/udp-icon.entry.cjs.js.map +1 -0
  114. package/dist/cjs/udp-list-renderer.udp-pagination.entry.cjs.js.map +1 -0
  115. package/dist/cjs/udp-list-renderer_2.cjs.entry.js +204 -0
  116. package/dist/cjs/udp-map.cjs.entry.js +3 -3
  117. package/dist/cjs/udp-menu-item.cjs.entry.js +27 -0
  118. package/dist/cjs/udp-menu-item.entry.cjs.js.map +1 -0
  119. package/dist/cjs/udp-page.cjs.entry.js +1 -1
  120. package/dist/cjs/udp-pop-over.cjs.entry.js +132 -0
  121. package/dist/cjs/udp-pop-over.entry.cjs.js.map +1 -0
  122. package/dist/cjs/udp-sankey-chart.cjs.entry.js +1 -1
  123. package/dist/cjs/udp-skeleton-loading.cjs.entry.js +22 -0
  124. package/dist/cjs/udp-skeleton-loading.entry.cjs.js.map +1 -0
  125. package/dist/cjs/udp-split-screen.cjs.entry.js +1 -1
  126. package/dist/cjs/udp-stepper-demo.cjs.entry.js +1 -1
  127. package/dist/cjs/udp-tab-panel.cjs.entry.js +2 -2
  128. package/dist/cjs/udp-tab.cjs.entry.js +38 -0
  129. package/dist/cjs/udp-tab.entry.cjs.js.map +1 -0
  130. package/dist/cjs/udp-vertical-spacer.cjs.entry.js +1 -1
  131. package/dist/cjs/udp-xy-chart.cjs.entry.js +1 -1
  132. package/dist/cjs/udp-xy-multi-series-chart.cjs.entry.js +1 -1
  133. package/dist/cjs/unity-typography.cjs.entry.js +63 -0
  134. package/dist/cjs/unity-typography.entry.cjs.js.map +1 -0
  135. package/dist/collection/collection-manifest.json +0 -8
  136. package/dist/collection/components/deprecated/side-sheet/side-sheet-container.js +1 -1
  137. package/dist/collection/components/deprecated/side-sheet/side-sheet.js +1 -1
  138. package/dist/collection/components/my-component/UI/advanced-search/advanced-search-grouped.js +6 -2
  139. package/dist/collection/components/my-component/UI/advanced-search/advanced-search-grouped.js.map +1 -1
  140. package/dist/collection/components/my-component/UI/advanced-search/advanced-search.js +6 -2
  141. package/dist/collection/components/my-component/UI/advanced-search/advanced-search.js.map +1 -1
  142. package/dist/collection/components/my-component/UI/advanced-search/filter-conditions/filter-conditions.js +1 -1
  143. package/dist/collection/components/my-component/UI/advanced-search/ui/logical-search-indicator/logical-search-indicator.js +1 -1
  144. package/dist/collection/components/my-component/UI/advanced-search-builder/advanced-search-builder.js +2 -2
  145. package/dist/collection/components/my-component/UI/advanced-search-builder/udp-advanced-search-builder.js +1 -1
  146. package/dist/collection/components/my-component/UI/advanced-search-builder/validation-chip.js +1 -1
  147. package/dist/collection/components/my-component/UI/buttons/icon-button/function-button/udp-function-button.js +1 -1
  148. package/dist/collection/components/my-component/UI/buttons/icon-button/primary-button/custom-button.js +1 -1
  149. package/dist/collection/components/my-component/UI/buttons/icon-button/radio-button/udp-radio-button.js +1 -1
  150. package/dist/collection/components/my-component/UI/buttons/udp-button/udp-button.js +1 -1
  151. package/dist/collection/components/my-component/UI/calendar/udp-calendar-base.js +1 -1
  152. package/dist/collection/components/my-component/UI/calendar/udp-calendar-day.js +1 -1
  153. package/dist/collection/components/my-component/UI/calendar/udp-calendar-month.js +1 -1
  154. package/dist/collection/components/my-component/UI/calendar/udp-calendar-week.js +1 -1
  155. package/dist/collection/components/my-component/UI/calendar/udp-calendar-year.js +1 -1
  156. package/dist/collection/components/my-component/UI/charts/chart-kpi/chart-kpi.js +1 -1
  157. package/dist/collection/components/my-component/UI/charts/udp-bar-chart/udp-bar-chart.js +1 -1
  158. package/dist/collection/components/my-component/UI/charts/udp-charts-example.js +1 -1
  159. package/dist/collection/components/my-component/UI/charts/udp-distribution-chart/udp-distribution-chart.js +1 -1
  160. package/dist/collection/components/my-component/UI/charts/udp-donut-chart/udp-donut-chart.js +1 -1
  161. package/dist/collection/components/my-component/UI/charts/udp-line-chart/udp-line-chart.js +1 -1
  162. package/dist/collection/components/my-component/UI/charts/udp-sankey-chart/udp-sankey-chart.js +1 -1
  163. package/dist/collection/components/my-component/UI/charts/udp-xy-chart/udp-xy-chart.js +1 -1
  164. package/dist/collection/components/my-component/UI/charts/udp-xy-multi-series-chart/udp-xy-multi-series-chart.js +1 -1
  165. package/dist/collection/components/my-component/UI/data-display/adornment/udp-adornment/udp-adornment.js +1 -1
  166. package/dist/collection/components/my-component/UI/data-display/badge/udp-badge.js +1 -1
  167. package/dist/collection/components/my-component/UI/data-display/cards/udp-ambient-card/udp-ambient-card.js +1 -1
  168. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-action-area/udp-card-action-area.js +1 -1
  169. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-actions/udp-card-actions.js +1 -1
  170. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-content/udp-card-content.js +1 -1
  171. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-header/udp-card-header.js +1 -1
  172. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card-media/udp-card-media.js +1 -1
  173. package/dist/collection/components/my-component/UI/data-display/cards/udp-card/udp-card.js +3 -3
  174. package/dist/collection/components/my-component/UI/data-display/chips/stencil-chip/status-chip/status-chip.js +1 -1
  175. package/dist/collection/components/my-component/UI/data-display/chips/stencil-chip/stencil-chip.js +2 -2
  176. package/dist/collection/components/my-component/UI/data-display/chips/udp-chip.js +1 -1
  177. package/dist/collection/components/my-component/UI/data-display/divider/udp-divider.js +1 -1
  178. package/dist/collection/components/my-component/UI/data-display/empty-state-display/udp-empty-state-display.js +1 -1
  179. package/dist/collection/components/my-component/UI/data-display/headers/udp-column-header.js +1 -1
  180. package/dist/collection/components/my-component/UI/data-display/headers/udp-page-header/udp-page-header.js +1 -1
  181. package/dist/collection/components/my-component/UI/data-display/hint-panel/hint-panel.js +1 -1
  182. package/dist/collection/components/my-component/UI/data-display/kpi/kpi-list.js +1 -1
  183. package/dist/collection/components/my-component/UI/data-display/list-item/list-item.js +2 -2
  184. package/dist/collection/components/my-component/UI/data-display/pop-over/udp-pop-over.js +1 -1
  185. package/dist/collection/components/my-component/UI/data-display/pop-over-grid-action-header/udp-pop-over-grid-action-header.js +1 -1
  186. package/dist/collection/components/my-component/UI/data-display/primary-action-header/primary-action-header.js +2 -2
  187. package/dist/collection/components/my-component/UI/data-display/simple-card/simple-card.js +1 -1
  188. package/dist/collection/components/my-component/UI/data-display/tool-tip/udp-ambient-tool-tip.js +2 -2
  189. package/dist/collection/components/my-component/UI/data-display/tree/tree-list-item/search-item/search-list-item.js +1 -1
  190. package/dist/collection/components/my-component/UI/data-display/udp-avatar/udp-avatar.js +1 -1
  191. package/dist/collection/components/my-component/UI/dialogs/fluent-dialog/fluent-dialog.js +2 -2
  192. package/dist/collection/components/my-component/UI/dialogs/udp-dialog.js +1 -1
  193. package/dist/collection/components/my-component/UI/drawers/udp-side-sheet/udp-side-sheet.js +9 -9
  194. package/dist/collection/components/my-component/UI/feedback/udp-notification/alerts/upd-alert-banner.js +1 -1
  195. package/dist/collection/components/my-component/UI/feedback/udp-notification/udp-notification.js +2 -2
  196. package/dist/collection/components/my-component/UI/forms/dynamic-form/udp-dynamic-form.js +1 -1
  197. package/dist/collection/components/my-component/UI/forms/edit-view-form/edit-view-form.js +2 -2
  198. package/dist/collection/components/my-component/UI/forms/form/stencil-form.js +1 -1
  199. package/dist/collection/components/my-component/UI/forms/save-view-form/save-view-form.js +2 -2
  200. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/forms-question-item/udp-forms-builder-question-item.js +2 -2
  201. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/file-upload-renderer/file-upload-renderer.js +2 -2
  202. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/list-option-renderer/list-options-renderer.js +3 -3
  203. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/question-configs-renderer/question-configs-renderer.js +6 -6
  204. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/section-configs-renderer/section-configs-renderer.js +3 -3
  205. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/signature-renderer/signature-renderer.js +1 -1
  206. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-item/text-input-renderer/text-input-renderer.js +2 -2
  207. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-menu/udp-forms-builder-menu.js +2 -2
  208. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-builder/udp-forms-builder-style-override/udp-forms-builder-style-override.js +1 -1
  209. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list-card/udp-forms-list-card.js +5 -5
  210. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-list/udp-forms-list.js +1 -1
  211. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer-follow-up-list-card/udp-forms-follow-up-list-card.js +2 -2
  212. package/dist/collection/components/my-component/UI/forms/udp-forms/udp-forms-renderer/udp-forms-renderer.js +1 -1
  213. package/dist/collection/components/my-component/UI/grid/ag-table/ag-table.js +1 -1
  214. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js +19 -15
  215. package/dist/collection/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.js.map +1 -1
  216. package/dist/collection/components/my-component/UI/grid/grid-primary-bar/grid-primary-bar.js +2 -2
  217. package/dist/collection/components/my-component/UI/grid/hotlists/udp-hotlist-form/udp-hotlist-form.js +1 -1
  218. package/dist/collection/components/my-component/UI/grid/new-grid/ag-grid-base.js +1 -1
  219. package/dist/collection/components/my-component/UI/grid/new-grid/api-method-instance-grid.js +1 -1
  220. package/dist/collection/components/my-component/UI/grid/new-grid/client-side-grid.js +1 -1
  221. package/dist/collection/components/my-component/UI/grid/new-grid/entity-maintenance-grid.js +1 -1
  222. package/dist/collection/components/my-component/UI/grid/new-grid/search-method-grid.js +1 -1
  223. package/dist/collection/components/my-component/UI/grid/new-grid/server-side-grid.js +1 -1
  224. package/dist/collection/components/my-component/UI/grid/renderers/currency-renderer.js +11 -1
  225. package/dist/collection/components/my-component/UI/grid/renderers/currency-renderer.js.map +1 -1
  226. package/dist/collection/components/my-component/UI/grid/renderers/hot-list-add-renderer.js +3 -0
  227. package/dist/collection/components/my-component/UI/grid/renderers/hot-list-add-renderer.js.map +1 -1
  228. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-calendar.js +1 -1
  229. package/dist/collection/components/my-component/UI/grid/resource-timeline-calendar/resource-timeline-primary-bar.js +2 -2
  230. package/dist/collection/components/my-component/UI/inputs/checkbox/check-box.js +2 -2
  231. package/dist/collection/components/my-component/UI/inputs/date-range-selector/udp-date-range-selector.js +1 -1
  232. package/dist/collection/components/my-component/UI/inputs/date-selector/udp-date-selector.js +3 -3
  233. package/dist/collection/components/my-component/UI/inputs/date-time-selector/udp-datetime-selector.js +3 -3
  234. package/dist/collection/components/my-component/UI/inputs/image-upload/image-upload.js +1 -1
  235. package/dist/collection/components/my-component/UI/inputs/numeric-field/numeric-field.js +3 -3
  236. package/dist/collection/components/my-component/UI/inputs/signature-input/signature-input.js +2 -2
  237. package/dist/collection/components/my-component/UI/inputs/tally/tally.js +2 -2
  238. package/dist/collection/components/my-component/UI/inputs/text-area/text-area.js +3 -3
  239. package/dist/collection/components/my-component/UI/inputs/text-field/text-field.js +3 -3
  240. package/dist/collection/components/my-component/UI/inputs/time-selector/udp-time-selector.js +3 -3
  241. package/dist/collection/components/my-component/UI/inputs/toggle/stencil-toggle.js +4 -4
  242. package/dist/collection/components/my-component/UI/inputs/udp-selector/udp-selector.js +4 -4
  243. package/dist/collection/components/my-component/UI/layout/udp-container/udp-container.js +2 -2
  244. package/dist/collection/components/my-component/UI/layout/udp-container-query/udp-container-query.js +2 -2
  245. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid/udp-container-query-grid.js +1 -1
  246. package/dist/collection/components/my-component/UI/layout/udp-container-query-grid-item/udp-container-query-grid-item.js +1 -1
  247. package/dist/collection/components/my-component/UI/layout/udp-page/udp-page.js +1 -1
  248. package/dist/collection/components/my-component/UI/layout/udp-split-screen/udp-split-screen.js +1 -1
  249. package/dist/collection/components/my-component/UI/layout/udp-vertical-spacer.js +1 -1
  250. package/dist/collection/components/my-component/UI/loaders/udp-grid-loader/udp-grid-loader.js +2 -2
  251. package/dist/collection/components/my-component/UI/loaders/udp-linear-loader/udp-linear-loader.js +1 -1
  252. package/dist/collection/components/my-component/UI/loaders/udp-skeleton-loading.js +1 -1
  253. package/dist/collection/components/my-component/UI/map/udp-map/map-component.js +1 -1
  254. package/dist/collection/components/my-component/UI/map/udp-map/popups/add-map-feature-popup.js +3 -3
  255. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-card/feature-details-card.js +4 -4
  256. package/dist/collection/components/my-component/UI/map/udp-map/popups/feature-details-popup.js +1 -1
  257. package/dist/collection/components/my-component/UI/map/udp-map/popups/select-layer-popup.js +2 -2
  258. package/dist/collection/components/my-component/UI/map/udp-map/popups/split-line-popup.js +1 -1
  259. package/dist/collection/components/my-component/UI/map/udp-map/toolbar/map-toolbar.js +6 -6
  260. package/dist/collection/components/my-component/UI/map/udp-map/udp-map-toolbar.js +1 -1
  261. package/dist/collection/components/my-component/UI/map/udp-map/udp-map.js +3 -3
  262. package/dist/collection/components/my-component/UI/menu/menu-item/udp-menu-item.js +1 -1
  263. package/dist/collection/components/my-component/UI/menu/udp-menu.js +1 -1
  264. package/dist/collection/components/my-component/UI/stepper/udp-stepper-demo.js +1 -1
  265. package/dist/collection/components/my-component/UI/tabs/tab/tabs/udp-tabs.js +2 -2
  266. package/dist/collection/components/my-component/UI/tabs/tab/udp-tab.js +1 -1
  267. package/dist/collection/components/my-component/UI/tabs/udp-tab-panel/udp-tab-panel.js +2 -2
  268. package/dist/collection/components/my-component/UI/toolbars/app-bar/app-bar.js +1 -1
  269. package/dist/collection/components/my-component/UI/util/ghost-render/ghost-render.js +1 -1
  270. package/dist/collection/components/test-component/inputs-example/inputs-example.js +2 -2
  271. package/dist/collection/global/ag-grid.js +3 -0
  272. package/dist/collection/global/ag-grid.js.map +1 -1
  273. package/dist/collection/index.js +0 -3
  274. package/dist/collection/index.js.map +1 -1
  275. package/dist/collection/store/user-store.js.map +1 -1
  276. package/dist/collection/theme/color-preview/color-preview.js +1 -1
  277. package/dist/collection/udp-utilities/api-udp/apiMutate.js.map +1 -1
  278. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/chip-section/chip-section.js +2 -2
  279. package/dist/collection/udp-utilities/layout/udp-dynamic-container-with-menu/udp-dynamic-container-with-menu.js +1 -1
  280. package/dist/components/add-map-feature-popup2.js +3 -3
  281. package/dist/components/advanced-search-builder2.js +2 -2
  282. package/dist/components/advanced-search-grouped2.js +2 -2
  283. package/dist/components/advanced-search-grouped2.js.map +1 -1
  284. package/dist/components/advanced-search2.js +2 -2
  285. package/dist/components/advanced-search2.js.map +1 -1
  286. package/dist/components/ag-grid-base2.js +2 -2
  287. package/dist/components/ag-table2.js +1 -1
  288. package/dist/components/ambient-template-grid.js +4350 -1
  289. package/dist/components/ambient-template-grid.js.map +1 -1
  290. package/dist/components/api-method-instance-grid.js +1 -1
  291. package/dist/components/apiUtils.js +1 -1
  292. package/dist/components/app-bar.js +69 -1
  293. package/dist/components/app-bar.js.map +1 -1
  294. package/dist/components/catalog-store.js +1 -1
  295. package/dist/components/chart-kpi2.js +1 -1
  296. package/dist/components/check-box2.js +2 -2
  297. package/dist/components/chip-section.js +2 -2
  298. package/dist/components/client-side-grid2.js +1 -1
  299. package/dist/components/color-preview.js +1 -1
  300. package/dist/components/custom-button2.js +1 -1
  301. package/dist/components/edit-view-form.js +2 -2
  302. package/dist/components/entity-maintenance-grid.js +2 -2
  303. package/dist/components/feature-details-card2.js +4 -4
  304. package/dist/components/feature-details-popup2.js +1 -1
  305. package/dist/components/file-upload-renderer2.js +2 -2
  306. package/dist/components/filter-conditions2.js +1 -1
  307. package/dist/components/fluent-dialog2.js +2 -2
  308. package/dist/components/ghost-render2.js +1 -1
  309. package/dist/components/grid-primary-bar2.js +2 -2
  310. package/dist/components/hint-panel2.js +1 -1
  311. package/dist/components/image-upload2.js +1 -1
  312. package/dist/components/index.js +45 -4
  313. package/dist/components/index.js.map +1 -1
  314. package/dist/components/inputs-example.js +2 -2
  315. package/dist/components/kpi-list2.js +1 -1
  316. package/dist/components/list-item.js +2 -2
  317. package/dist/components/list-options-renderer2.js +3 -3
  318. package/dist/components/logical-search-indicator.js +1 -1
  319. package/dist/components/map-component2.js +1 -1
  320. package/dist/components/map-toolbar2.js +6 -6
  321. package/dist/components/numeric-field2.js +3 -3
  322. package/dist/components/primary-action-header2.js +2 -2
  323. package/dist/components/question-configs-renderer2.js +6 -6
  324. package/dist/components/resource-timeline-calendar.js +1 -1
  325. package/dist/components/resource-timeline-primary-bar2.js +2 -2
  326. package/dist/components/save-view-form.js +2 -2
  327. package/dist/components/search-list-item2.js +1 -1
  328. package/dist/components/search-method-grid2.js +2 -2
  329. package/dist/components/section-configs-renderer2.js +3 -3
  330. package/dist/components/select-layer-popup2.js +2 -2
  331. package/dist/components/server-side-grid2.js +1 -1
  332. package/dist/components/side-sheet-container2.js +1 -1
  333. package/dist/components/side-sheet2.js +1 -1
  334. package/dist/components/signature-input2.js +2 -2
  335. package/dist/components/signature-renderer2.js +1 -1
  336. package/dist/components/simple-card.js +1 -1
  337. package/dist/components/split-line-popup2.js +1 -1
  338. package/dist/components/status-chip2.js +1 -1
  339. package/dist/components/status-renderer.js +4 -5
  340. package/dist/components/status-renderer.js.map +1 -1
  341. package/dist/components/stencil-chip2.js +2 -2
  342. package/dist/components/stencil-form2.js +1 -1
  343. package/dist/components/stencil-toggle2.js +4 -4
  344. package/dist/components/tally.js +2 -2
  345. package/dist/components/text-area2.js +3 -3
  346. package/dist/components/text-field2.js +3 -3
  347. package/dist/components/text-input-renderer2.js +2 -2
  348. package/dist/components/udp-adornment2.js +1 -1
  349. package/dist/components/udp-advanced-search-builder.js +1 -1
  350. package/dist/components/udp-ambient-card2.js +1 -1
  351. package/dist/components/udp-ambient-tool-tip2.js +2 -2
  352. package/dist/components/udp-avatar2.js +1 -1
  353. package/dist/components/udp-badge2.js +1 -1
  354. package/dist/components/udp-bar-chart2.js +1 -1
  355. package/dist/components/udp-button2.js +1 -1
  356. package/dist/components/udp-calendar-base2.js +1 -1
  357. package/dist/components/udp-calendar-day.js +1 -1
  358. package/dist/components/udp-calendar-month.js +1 -1
  359. package/dist/components/udp-calendar-week.js +1 -1
  360. package/dist/components/udp-calendar-year.js +1 -1
  361. package/dist/components/udp-card-action-area.js +1 -1
  362. package/dist/components/udp-card-actions2.js +1 -1
  363. package/dist/components/udp-card-content2.js +1 -1
  364. package/dist/components/udp-card-header2.js +1 -1
  365. package/dist/components/udp-card-media2.js +1 -1
  366. package/dist/components/udp-card2.js +3 -3
  367. package/dist/components/udp-charts-example.js +1 -1
  368. package/dist/components/udp-chip2.js +1 -1
  369. package/dist/components/udp-column-header2.js +1 -1
  370. package/dist/components/udp-container-query-grid-item.js +1 -1
  371. package/dist/components/udp-container-query-grid.js +1 -1
  372. package/dist/components/udp-container-query2.js +2 -2
  373. package/dist/components/udp-container2.js +2 -2
  374. package/dist/components/udp-date-range-selector.js +1 -1
  375. package/dist/components/udp-date-selector2.js +3 -3
  376. package/dist/components/udp-datetime-selector2.js +3 -3
  377. package/dist/components/udp-dialog2.js +1 -1
  378. package/dist/components/udp-distribution-chart2.js +1 -1
  379. package/dist/components/udp-divider2.js +1 -1
  380. package/dist/components/udp-donut-chart2.js +1 -1
  381. package/dist/components/udp-dynamic-container-with-menu2.js +1 -1
  382. package/dist/components/udp-dynamic-form.js +1 -1
  383. package/dist/components/udp-empty-state-display.js +1 -1
  384. package/dist/components/udp-forms-builder-menu2.js +2 -2
  385. package/dist/components/udp-forms-builder-question-item2.js +2 -2
  386. package/dist/components/udp-forms-builder-style-override2.js +1 -1
  387. package/dist/components/udp-forms-follow-up-list-card.js +2 -2
  388. package/dist/components/udp-forms-list-card2.js +5 -5
  389. package/dist/components/udp-forms-list.js +1 -1
  390. package/dist/components/udp-forms-renderer.js +1 -1
  391. package/dist/components/udp-function-button2.js +1 -1
  392. package/dist/components/udp-grid-loader2.js +2 -2
  393. package/dist/components/udp-hotlist-form2.js +1 -1
  394. package/dist/components/udp-line-chart2.js +1 -1
  395. package/dist/components/udp-linear-loader2.js +1 -1
  396. package/dist/components/udp-map-toolbar2.js +1 -1
  397. package/dist/components/udp-map.js +3 -3
  398. package/dist/components/udp-menu-item2.js +1 -1
  399. package/dist/components/udp-menu2.js +1 -1
  400. package/dist/components/udp-notification2.js +2 -2
  401. package/dist/components/udp-page-header2.js +1 -1
  402. package/dist/components/udp-page.js +1 -1
  403. package/dist/components/udp-pop-over-grid-action-header2.js +1 -1
  404. package/dist/components/udp-pop-over2.js +1 -1
  405. package/dist/components/udp-radio-button2.js +1 -1
  406. package/dist/components/udp-sankey-chart.js +1 -1
  407. package/dist/components/udp-selector2.js +4 -4
  408. package/dist/components/udp-side-sheet2.js +9 -9
  409. package/dist/components/udp-skeleton-loading2.js +1 -1
  410. package/dist/components/udp-split-screen.js +1 -1
  411. package/dist/components/udp-stepper-demo.js +1 -1
  412. package/dist/components/udp-tab-panel.js +2 -2
  413. package/dist/components/udp-tab.js +56 -1
  414. package/dist/components/udp-tab.js.map +1 -1
  415. package/dist/components/udp-tabs2.js +2 -2
  416. package/dist/components/udp-time-selector2.js +3 -3
  417. package/dist/components/udp-user-creator.js +86 -1
  418. package/dist/components/udp-user-creator.js.map +1 -1
  419. package/dist/components/udp-vertical-spacer.js +1 -1
  420. package/dist/components/udp-xy-chart2.js +1 -1
  421. package/dist/components/udp-xy-multi-series-chart.js +1 -1
  422. package/dist/components/upd-alert-banner2.js +1 -1
  423. package/dist/components/validation-chip2.js +1 -1
  424. package/dist/docs.json +363 -1408
  425. package/dist/esm/{action-column-util-BArOL_Uz.js → action-column-util-DUK_9dnF.js} +3 -3
  426. package/dist/esm/{action-column-util-BArOL_Uz.js.map → action-column-util-DUK_9dnF.js.map} +1 -1
  427. package/dist/esm/add-map-feature-popup_4.entry.js +13 -13
  428. package/dist/esm/advanced-search-builder.entry.js +2 -2
  429. package/dist/esm/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.js.map +1 -0
  430. package/dist/esm/advanced-search_12.entry.js +850 -0
  431. package/dist/esm/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.js.map +1 -0
  432. package/dist/esm/{ag-grid-base_5.entry.js → ag-grid-base_6.entry.js} +27 -10
  433. package/dist/{components/ambient-template-grid2.js → esm/ambient-template-grid.entry.js} +128 -489
  434. package/dist/esm/ambient-template-grid.entry.js.map +1 -0
  435. package/dist/esm/api-method-instance-grid.entry.js +1 -1
  436. package/dist/esm/{apiUtils-CudiwABF.js → apiUtils-cUHs50y0.js} +3 -3
  437. package/dist/{stencil-library/apiUtils-CudiwABF.js.map → esm/apiUtils-cUHs50y0.js.map} +1 -1
  438. package/dist/esm/app-bar.entry.js +17 -0
  439. package/dist/esm/app-bar.entry.js.map +1 -0
  440. package/dist/esm/catalog-store-BhgNAUY6.js +30 -0
  441. package/dist/esm/catalog-store-BhgNAUY6.js.map +1 -0
  442. package/dist/esm/chart-container_3.entry.js +2 -2
  443. package/dist/esm/{chartUtils-DqjnIahA.js → chartUtils-DFIyEsL1.js} +3 -3
  444. package/dist/esm/{chartUtils-DqjnIahA.js.map → chartUtils-DFIyEsL1.js.map} +1 -1
  445. package/dist/esm/check-box.entry.js +2 -2
  446. package/dist/esm/chip-section.entry.js +2 -2
  447. package/dist/esm/client-side-grid.resource-timeline-primary-bar.entry.js.map +1 -1
  448. package/dist/esm/client-side-grid_2.entry.js +5 -4
  449. package/dist/esm/color-preview.entry.js +1 -1
  450. package/dist/esm/conversionFunctions-CNWYTvRs.js +132 -0
  451. package/dist/esm/conversionFunctions-CNWYTvRs.js.map +1 -0
  452. package/dist/esm/{currency-renderer-BQ-hUac8.js → currency-renderer-CRK1v2o-.js} +7 -8
  453. package/dist/esm/currency-renderer-CRK1v2o-.js.map +1 -0
  454. package/dist/esm/custom-button.entry.js +50 -0
  455. package/dist/esm/custom-button.entry.js.map +1 -0
  456. package/dist/esm/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.js.map +1 -1
  457. package/dist/esm/date-time-renderer_6.entry.js +12 -11
  458. package/dist/esm/entity-maintenance-grid.entry.js +2 -2
  459. package/dist/esm/{enums-CE8s6a9b.js → enums-BOc5zJ68.js} +3 -3
  460. package/dist/esm/{enums-CE8s6a9b.js.map → enums-BOc5zJ68.js.map} +1 -1
  461. package/dist/esm/feature-details-card.feature-details-popup.entry.js.map +1 -1
  462. package/dist/esm/feature-details-card_2.entry.js +9 -8
  463. package/dist/esm/file-upload_2.entry.js +1 -1
  464. package/dist/esm/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.js.map +1 -0
  465. package/dist/esm/filter-conditions_7.entry.js +297 -0
  466. package/dist/esm/filter-group.validation-chip.entry.js.map +1 -1
  467. package/dist/esm/filter-group_2.entry.js +3 -2
  468. package/dist/esm/fluent-dialog.entry.js +21 -0
  469. package/dist/esm/fluent-dialog.entry.js.map +1 -0
  470. package/dist/esm/{iconUtils-KSv32PVD.js → iconMapping-C_IYrnjG.js} +3 -13
  471. package/dist/esm/iconMapping-C_IYrnjG.js.map +1 -0
  472. package/dist/esm/iconUtils-BsS5FaLc.js +16 -0
  473. package/dist/esm/iconUtils-BsS5FaLc.js.map +1 -0
  474. package/dist/esm/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.js.map +1 -1
  475. package/dist/esm/image-upload_7.entry.js +10 -9
  476. package/dist/esm/index-n-1ZSeAs.js +162 -94
  477. package/dist/esm/index.js +48 -9
  478. package/dist/esm/index.js.map +1 -1
  479. package/dist/esm/inputs-example.entry.js +2 -2
  480. package/dist/esm/loader.js +1 -1
  481. package/dist/esm/logical-search-indicator.entry.js +1 -1
  482. package/dist/esm/map-component_2.entry.js +3 -3
  483. package/dist/esm/numeric-field_5.entry.js +15 -15
  484. package/dist/esm/primary-action-header.udp-side-sheet.udp-tabs.entry.js.map +1 -0
  485. package/dist/esm/primary-action-header_3.entry.js +636 -0
  486. package/dist/esm/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.js.map +1 -1
  487. package/dist/esm/question-configs-renderer_5.entry.js +18 -17
  488. package/dist/esm/resource-timeline-calendar.entry.js +1 -1
  489. package/dist/esm/search-method-grid.entry.js +2 -2
  490. package/dist/esm/server-side-grid.entry.js +1 -1
  491. package/dist/esm/side-sheet-container.entry.js +18 -0
  492. package/dist/esm/side-sheet-container.entry.js.map +1 -0
  493. package/dist/esm/simple-card.entry.js +1 -1
  494. package/dist/esm/status-chip.udp-function-button.entry.js.map +1 -0
  495. package/dist/esm/status-chip_2.entry.js +96 -0
  496. package/dist/esm/stencil-chip.entry.js +106 -0
  497. package/dist/esm/stencil-chip.entry.js.map +1 -0
  498. package/dist/esm/stencil-icon-button-grid-action-header.entry.js +42 -0
  499. package/dist/esm/stencil-icon-button-grid-action-header.entry.js.map +1 -0
  500. package/dist/esm/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.js.map +1 -0
  501. package/dist/esm/stencil-icon-button_3.entry.js +154 -0
  502. package/dist/esm/stencil-library.js +1 -1
  503. package/dist/esm/stencil-toggle.entry.js +148 -0
  504. package/dist/esm/stencil-toggle.entry.js.map +1 -0
  505. package/dist/esm/text-field.udp-selector.entry.js.map +1 -0
  506. package/dist/esm/text-field_2.entry.js +565 -0
  507. package/dist/esm/{catalog-store-CeVER_Bk.js → transformSearchData-DBjFnXu6.js} +3 -29
  508. package/dist/esm/transformSearchData-DBjFnXu6.js.map +1 -0
  509. package/dist/esm/udp-adornment.entry.js +1 -1
  510. package/dist/esm/udp-advanced-search-builder.entry.js +1 -1
  511. package/dist/esm/udp-avatar.entry.js +55 -0
  512. package/dist/esm/udp-avatar.entry.js.map +1 -0
  513. package/dist/esm/udp-bar-chart_4.entry.js +5 -5
  514. package/dist/esm/udp-button.entry.js +111 -0
  515. package/dist/esm/udp-button.entry.js.map +1 -0
  516. package/dist/esm/udp-calendar-base.entry.js +1 -1
  517. package/dist/esm/udp-calendar-day.entry.js +1 -1
  518. package/dist/esm/udp-calendar-month.entry.js +1 -1
  519. package/dist/esm/udp-calendar-week.entry.js +1 -1
  520. package/dist/esm/udp-calendar-year.entry.js +1 -1
  521. package/dist/esm/udp-card-action-area.entry.js +1 -1
  522. package/dist/esm/udp-card_6.entry.js +7 -7
  523. package/dist/esm/udp-charts-example.entry.js +1 -1
  524. package/dist/esm/udp-chip_3.entry.js +2 -2
  525. package/dist/esm/udp-container-query-grid-item.entry.js +1 -1
  526. package/dist/esm/udp-container-query-grid.entry.js +1 -1
  527. package/dist/esm/udp-container-query.entry.js +2 -2
  528. package/dist/esm/udp-container.udp-linear-loader.entry.js.map +1 -0
  529. package/dist/esm/udp-container_2.entry.js +53 -0
  530. package/dist/esm/udp-date-range-selector.entry.js +1 -1
  531. package/dist/esm/udp-divider.entry.js +20 -0
  532. package/dist/esm/udp-divider.entry.js.map +1 -0
  533. package/dist/esm/{udp-drive-utils-BiYKUATs.js → udp-drive-utils-CIrjVGiJ.js} +3 -3
  534. package/dist/{stencil-library/udp-drive-utils-BiYKUATs.js.map → esm/udp-drive-utils-CIrjVGiJ.js.map} +1 -1
  535. package/dist/esm/udp-dynamic-container-with-menu.entry.js +132 -0
  536. package/dist/esm/udp-dynamic-container-with-menu.entry.js.map +1 -0
  537. package/dist/esm/udp-dynamic-form.entry.js +1 -1
  538. package/dist/esm/udp-empty-state-display.entry.js +1 -1
  539. package/dist/esm/{udp-forms-builder-question-template-y1XU3Z2l.js → udp-forms-builder-question-template-BwyE73q_.js} +3 -3
  540. package/dist/esm/{udp-forms-builder-question-template-y1XU3Z2l.js.map → udp-forms-builder-question-template-BwyE73q_.js.map} +1 -1
  541. package/dist/esm/udp-forms-builder.entry.js +4 -3
  542. package/dist/esm/udp-forms-builder.entry.js.map +1 -1
  543. package/dist/esm/udp-forms-follow-up-list-card.entry.js +3 -3
  544. package/dist/esm/udp-forms-list-card.entry.js +6 -6
  545. package/dist/esm/udp-forms-list.entry.js +2 -2
  546. package/dist/esm/udp-forms-renderer.entry.js +2 -2
  547. package/dist/esm/udp-forms-ui.entry.js +3 -2
  548. package/dist/esm/udp-forms-ui.entry.js.map +1 -1
  549. package/dist/esm/udp-icon.entry.js +149 -0
  550. package/dist/esm/udp-icon.entry.js.map +1 -0
  551. package/dist/esm/udp-list-renderer.udp-pagination.entry.js.map +1 -0
  552. package/dist/esm/udp-list-renderer_2.entry.js +201 -0
  553. package/dist/esm/{udp-map-utils-BokzHQF1.js → udp-map-utils-DNAUNI5U.js} +3 -3
  554. package/dist/esm/{udp-map-utils-BokzHQF1.js.map → udp-map-utils-DNAUNI5U.js.map} +1 -1
  555. package/dist/esm/udp-map.entry.js +3 -3
  556. package/dist/esm/udp-menu-item.entry.js +25 -0
  557. package/dist/esm/udp-menu-item.entry.js.map +1 -0
  558. package/dist/esm/udp-page.entry.js +1 -1
  559. package/dist/esm/udp-pop-over.entry.js +130 -0
  560. package/dist/esm/udp-pop-over.entry.js.map +1 -0
  561. package/dist/esm/udp-sankey-chart.entry.js +2 -2
  562. package/dist/esm/udp-skeleton-loading.entry.js +20 -0
  563. package/dist/esm/udp-skeleton-loading.entry.js.map +1 -0
  564. package/dist/esm/udp-split-screen.entry.js +1 -1
  565. package/dist/esm/udp-stepper-demo.entry.js +1 -1
  566. package/dist/esm/udp-tab-panel.entry.js +2 -2
  567. package/dist/esm/udp-tab.entry.js +36 -0
  568. package/dist/esm/udp-tab.entry.js.map +1 -0
  569. package/dist/esm/udp-vertical-spacer.entry.js +1 -1
  570. package/dist/esm/udp-xy-chart.entry.js +2 -2
  571. package/dist/esm/udp-xy-multi-series-chart.entry.js +2 -2
  572. package/dist/esm/unity-typography.entry.js +61 -0
  573. package/dist/esm/unity-typography.entry.js.map +1 -0
  574. package/dist/stencil-library/{action-column-util-BArOL_Uz.js → action-column-util-DUK_9dnF.js} +2 -2
  575. package/dist/stencil-library/{action-column-util-BArOL_Uz.js.map → action-column-util-DUK_9dnF.js.map} +1 -1
  576. package/dist/stencil-library/add-map-feature-popup_4.entry.js +1 -1
  577. package/dist/stencil-library/advanced-search-builder.entry.js +1 -1
  578. package/dist/stencil-library/advanced-search.advanced-search-grouped.ag-table.edit-view-form-dialog.grid-primary-bar.kpi-list.save-view-form-dialog.side-sheet.udp-hotlist-form.udp-notification.udp-pop-over-grid-action-header.upd-alert-banner.entry.esm.js.map +1 -0
  579. package/dist/stencil-library/advanced-search_12.entry.js +2 -0
  580. package/dist/stencil-library/advanced-search_12.entry.js.map +1 -0
  581. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.hint-panel.udp-dialog.udp-list-item.entry.esm.js.map +1 -0
  582. package/dist/stencil-library/ag-grid-base_6.entry.js +2 -0
  583. package/dist/stencil-library/ag-grid-base_6.entry.js.map +1 -0
  584. package/dist/stencil-library/ambient-template-grid.entry.esm.js.map +1 -0
  585. package/dist/stencil-library/ambient-template-grid.entry.js +2 -0
  586. package/dist/stencil-library/ambient-template-grid.entry.js.map +1 -0
  587. package/dist/stencil-library/api-method-instance-grid.entry.js +1 -1
  588. package/dist/stencil-library/{apiUtils-CudiwABF.js → apiUtils-cUHs50y0.js} +2 -2
  589. package/dist/{esm/apiUtils-CudiwABF.js.map → stencil-library/apiUtils-cUHs50y0.js.map} +1 -1
  590. package/dist/stencil-library/app-bar.entry.esm.js.map +1 -0
  591. package/dist/stencil-library/app-bar.entry.js +2 -0
  592. package/dist/stencil-library/app-bar.entry.js.map +1 -0
  593. package/dist/stencil-library/catalog-store-BhgNAUY6.js +2 -0
  594. package/dist/stencil-library/catalog-store-BhgNAUY6.js.map +1 -0
  595. package/dist/stencil-library/chart-container_3.entry.js +1 -1
  596. package/dist/stencil-library/chart-container_3.entry.js.map +1 -1
  597. package/dist/stencil-library/{chartUtils-DqjnIahA.js → chartUtils-DFIyEsL1.js} +2 -2
  598. package/dist/stencil-library/{chartUtils-DqjnIahA.js.map → chartUtils-DFIyEsL1.js.map} +1 -1
  599. package/dist/stencil-library/check-box.entry.js +1 -1
  600. package/dist/stencil-library/chip-section.entry.js +1 -1
  601. package/dist/stencil-library/client-side-grid.resource-timeline-primary-bar.entry.esm.js.map +1 -1
  602. package/dist/stencil-library/client-side-grid_2.entry.js +1 -1
  603. package/dist/stencil-library/client-side-grid_2.entry.js.map +1 -1
  604. package/dist/stencil-library/color-preview.entry.js +1 -1
  605. package/dist/stencil-library/conversionFunctions-CNWYTvRs.js +2 -0
  606. package/dist/stencil-library/conversionFunctions-CNWYTvRs.js.map +1 -0
  607. package/dist/stencil-library/{currency-renderer-BQ-hUac8.js → currency-renderer-CRK1v2o-.js} +2 -2
  608. package/dist/stencil-library/currency-renderer-CRK1v2o-.js.map +1 -0
  609. package/dist/stencil-library/custom-button.entry.esm.js.map +1 -0
  610. package/dist/stencil-library/custom-button.entry.js +2 -0
  611. package/dist/stencil-library/custom-button.entry.js.map +1 -0
  612. package/dist/stencil-library/date-time-renderer.file-upload-renderer.list-options-renderer.question-specific-configs-renderer.signature-renderer.text-input-renderer.entry.esm.js.map +1 -1
  613. package/dist/stencil-library/date-time-renderer_6.entry.js +1 -1
  614. package/dist/stencil-library/date-time-renderer_6.entry.js.map +1 -1
  615. package/dist/stencil-library/entity-maintenance-grid.entry.js +1 -1
  616. package/dist/stencil-library/{enums-CE8s6a9b.js → enums-BOc5zJ68.js} +2 -2
  617. package/dist/stencil-library/{enums-CE8s6a9b.js.map → enums-BOc5zJ68.js.map} +1 -1
  618. package/dist/stencil-library/feature-details-card.feature-details-popup.entry.esm.js.map +1 -1
  619. package/dist/stencil-library/feature-details-card_2.entry.js +1 -1
  620. package/dist/stencil-library/feature-details-card_2.entry.js.map +1 -1
  621. package/dist/stencil-library/file-upload_2.entry.js +1 -1
  622. package/dist/stencil-library/filter-conditions.search-list-item.tree-list-item.udp-column-header.udp-grid-loader.udp-page-header.udp-radio-button.entry.esm.js.map +1 -0
  623. package/dist/stencil-library/filter-conditions_7.entry.js +2 -0
  624. package/dist/stencil-library/filter-conditions_7.entry.js.map +1 -0
  625. package/dist/stencil-library/filter-group.validation-chip.entry.esm.js.map +1 -1
  626. package/dist/stencil-library/filter-group_2.entry.js +1 -1
  627. package/dist/stencil-library/filter-group_2.entry.js.map +1 -1
  628. package/dist/stencil-library/fluent-dialog.entry.esm.js.map +1 -0
  629. package/dist/stencil-library/fluent-dialog.entry.js +2 -0
  630. package/dist/stencil-library/fluent-dialog.entry.js.map +1 -0
  631. package/dist/stencil-library/{iconUtils-KSv32PVD.js → iconMapping-C_IYrnjG.js} +2 -2
  632. package/dist/stencil-library/iconMapping-C_IYrnjG.js.map +1 -0
  633. package/dist/stencil-library/iconUtils-BsS5FaLc.js +2 -0
  634. package/dist/stencil-library/iconUtils-BsS5FaLc.js.map +1 -0
  635. package/dist/stencil-library/image-upload.signature-input.stencil-form.tally-display.udp-question.udp-question-comment.udp-save-draft-button.entry.esm.js.map +1 -1
  636. package/dist/stencil-library/image-upload_7.entry.js +1 -1
  637. package/dist/stencil-library/image-upload_7.entry.js.map +1 -1
  638. package/dist/stencil-library/index.esm.js +1 -1
  639. package/dist/stencil-library/index.esm.js.map +1 -1
  640. package/dist/stencil-library/inputs-example.entry.js +1 -1
  641. package/dist/stencil-library/logical-search-indicator.entry.js +1 -1
  642. package/dist/stencil-library/map-component_2.entry.js +1 -1
  643. package/dist/stencil-library/numeric-field_5.entry.js +1 -1
  644. package/dist/stencil-library/primary-action-header.udp-side-sheet.udp-tabs.entry.esm.js.map +1 -0
  645. package/dist/stencil-library/primary-action-header_3.entry.js +2 -0
  646. package/dist/stencil-library/primary-action-header_3.entry.js.map +1 -0
  647. package/dist/stencil-library/question-configs-renderer.section-configs-renderer.udp-forms-builder-menu.udp-forms-builder-question-item.udp-forms-builder-style-override.entry.esm.js.map +1 -1
  648. package/dist/stencil-library/question-configs-renderer_5.entry.js +1 -1
  649. package/dist/stencil-library/question-configs-renderer_5.entry.js.map +1 -1
  650. package/dist/stencil-library/resource-timeline-calendar.entry.js +1 -1
  651. package/dist/stencil-library/search-method-grid.entry.js +1 -1
  652. package/dist/stencil-library/server-side-grid.entry.js +1 -1
  653. package/dist/stencil-library/side-sheet-container.entry.esm.js.map +1 -0
  654. package/dist/stencil-library/side-sheet-container.entry.js +2 -0
  655. package/dist/stencil-library/side-sheet-container.entry.js.map +1 -0
  656. package/dist/stencil-library/simple-card.entry.js +1 -1
  657. package/dist/stencil-library/status-chip.udp-function-button.entry.esm.js.map +1 -0
  658. package/dist/stencil-library/status-chip_2.entry.js +2 -0
  659. package/dist/stencil-library/status-chip_2.entry.js.map +1 -0
  660. package/dist/stencil-library/stencil-chip.entry.esm.js.map +1 -0
  661. package/dist/stencil-library/stencil-chip.entry.js +2 -0
  662. package/dist/stencil-library/stencil-chip.entry.js.map +1 -0
  663. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.esm.js.map +1 -0
  664. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.js +2 -0
  665. package/dist/stencil-library/stencil-icon-button-grid-action-header.entry.js.map +1 -0
  666. package/dist/stencil-library/stencil-icon-button.udp-ambient-tool-tip.udp-badge.entry.esm.js.map +1 -0
  667. package/dist/stencil-library/stencil-icon-button_3.entry.js +2 -0
  668. package/dist/stencil-library/stencil-icon-button_3.entry.js.map +1 -0
  669. package/dist/stencil-library/stencil-library.esm.js +1 -1
  670. package/dist/stencil-library/stencil-toggle.entry.esm.js.map +1 -0
  671. package/dist/stencil-library/stencil-toggle.entry.js +2 -0
  672. package/dist/stencil-library/stencil-toggle.entry.js.map +1 -0
  673. package/dist/stencil-library/text-field.udp-selector.entry.esm.js.map +1 -0
  674. package/dist/stencil-library/text-field_2.entry.js +2 -0
  675. package/dist/stencil-library/text-field_2.entry.js.map +1 -0
  676. package/dist/stencil-library/transformSearchData-DBjFnXu6.js +2 -0
  677. package/dist/stencil-library/transformSearchData-DBjFnXu6.js.map +1 -0
  678. package/dist/stencil-library/udp-adornment.entry.js +1 -1
  679. package/dist/stencil-library/udp-advanced-search-builder.entry.js +1 -1
  680. package/dist/stencil-library/udp-avatar.entry.esm.js.map +1 -0
  681. package/dist/stencil-library/udp-avatar.entry.js +2 -0
  682. package/dist/stencil-library/udp-avatar.entry.js.map +1 -0
  683. package/dist/stencil-library/udp-bar-chart_4.entry.js +1 -1
  684. package/dist/stencil-library/udp-button.entry.esm.js.map +1 -0
  685. package/dist/stencil-library/udp-button.entry.js +2 -0
  686. package/dist/stencil-library/udp-button.entry.js.map +1 -0
  687. package/dist/stencil-library/udp-calendar-base.entry.js +1 -1
  688. package/dist/stencil-library/udp-calendar-day.entry.js +1 -1
  689. package/dist/stencil-library/udp-calendar-month.entry.js +1 -1
  690. package/dist/stencil-library/udp-calendar-week.entry.js +1 -1
  691. package/dist/stencil-library/udp-calendar-year.entry.js +1 -1
  692. package/dist/stencil-library/udp-card-action-area.entry.js +1 -1
  693. package/dist/stencil-library/udp-card_6.entry.js +1 -1
  694. package/dist/stencil-library/udp-charts-example.entry.js +1 -1
  695. package/dist/stencil-library/udp-chip_3.entry.js +1 -1
  696. package/dist/stencil-library/udp-container-query-grid-item.entry.js +1 -1
  697. package/dist/stencil-library/udp-container-query-grid.entry.js +1 -1
  698. package/dist/stencil-library/udp-container-query.entry.js +1 -1
  699. package/dist/stencil-library/udp-container.udp-linear-loader.entry.esm.js.map +1 -0
  700. package/dist/stencil-library/udp-container_2.entry.js +2 -0
  701. package/dist/stencil-library/udp-container_2.entry.js.map +1 -0
  702. package/dist/stencil-library/udp-date-range-selector.entry.js +1 -1
  703. package/dist/stencil-library/udp-divider.entry.esm.js.map +1 -0
  704. package/dist/stencil-library/udp-divider.entry.js +2 -0
  705. package/dist/stencil-library/udp-divider.entry.js.map +1 -0
  706. package/dist/stencil-library/{udp-drive-utils-BiYKUATs.js → udp-drive-utils-CIrjVGiJ.js} +2 -2
  707. package/dist/{esm/udp-drive-utils-BiYKUATs.js.map → stencil-library/udp-drive-utils-CIrjVGiJ.js.map} +1 -1
  708. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.esm.js.map +1 -0
  709. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js +2 -0
  710. package/dist/stencil-library/udp-dynamic-container-with-menu.entry.js.map +1 -0
  711. package/dist/stencil-library/udp-dynamic-form.entry.js +1 -1
  712. package/dist/stencil-library/udp-empty-state-display.entry.js +1 -1
  713. package/dist/stencil-library/{udp-forms-builder-question-template-y1XU3Z2l.js → udp-forms-builder-question-template-BwyE73q_.js} +2 -2
  714. package/dist/stencil-library/{udp-forms-builder-question-template-y1XU3Z2l.js.map → udp-forms-builder-question-template-BwyE73q_.js.map} +1 -1
  715. package/dist/stencil-library/udp-forms-builder.entry.esm.js.map +1 -1
  716. package/dist/stencil-library/udp-forms-builder.entry.js +1 -1
  717. package/dist/stencil-library/udp-forms-builder.entry.js.map +1 -1
  718. package/dist/stencil-library/udp-forms-follow-up-list-card.entry.js +1 -1
  719. package/dist/stencil-library/udp-forms-list-card.entry.js +1 -1
  720. package/dist/stencil-library/udp-forms-list.entry.js +1 -1
  721. package/dist/stencil-library/udp-forms-renderer.entry.js +1 -1
  722. package/dist/stencil-library/udp-forms-ui.entry.esm.js.map +1 -1
  723. package/dist/stencil-library/udp-forms-ui.entry.js +1 -1
  724. package/dist/stencil-library/udp-forms-ui.entry.js.map +1 -1
  725. package/dist/stencil-library/udp-icon.entry.esm.js.map +1 -0
  726. package/dist/stencil-library/udp-icon.entry.js +2 -0
  727. package/dist/stencil-library/udp-icon.entry.js.map +1 -0
  728. package/dist/stencil-library/udp-list-renderer.udp-pagination.entry.esm.js.map +1 -0
  729. package/dist/stencil-library/udp-list-renderer_2.entry.js +2 -0
  730. package/dist/stencil-library/udp-list-renderer_2.entry.js.map +1 -0
  731. package/dist/stencil-library/{udp-map-utils-BokzHQF1.js → udp-map-utils-DNAUNI5U.js} +2 -2
  732. package/dist/stencil-library/{udp-map-utils-BokzHQF1.js.map → udp-map-utils-DNAUNI5U.js.map} +1 -1
  733. package/dist/stencil-library/udp-map.entry.js +1 -1
  734. package/dist/stencil-library/udp-menu-item.entry.esm.js.map +1 -0
  735. package/dist/stencil-library/udp-menu-item.entry.js +2 -0
  736. package/dist/stencil-library/udp-menu-item.entry.js.map +1 -0
  737. package/dist/stencil-library/udp-page.entry.js +1 -1
  738. package/dist/stencil-library/udp-pop-over.entry.esm.js.map +1 -0
  739. package/dist/stencil-library/udp-pop-over.entry.js +2 -0
  740. package/dist/stencil-library/udp-pop-over.entry.js.map +1 -0
  741. package/dist/stencil-library/udp-sankey-chart.entry.js +1 -1
  742. package/dist/stencil-library/udp-skeleton-loading.entry.esm.js.map +1 -0
  743. package/dist/stencil-library/udp-skeleton-loading.entry.js +2 -0
  744. package/dist/stencil-library/udp-skeleton-loading.entry.js.map +1 -0
  745. package/dist/stencil-library/udp-split-screen.entry.js +1 -1
  746. package/dist/stencil-library/udp-stepper-demo.entry.js +1 -1
  747. package/dist/stencil-library/udp-tab-panel.entry.js +1 -1
  748. package/dist/stencil-library/udp-tab.entry.esm.js.map +1 -0
  749. package/dist/stencil-library/udp-tab.entry.js +2 -0
  750. package/dist/stencil-library/udp-tab.entry.js.map +1 -0
  751. package/dist/stencil-library/udp-vertical-spacer.entry.js +1 -1
  752. package/dist/stencil-library/udp-xy-chart.entry.js +1 -1
  753. package/dist/stencil-library/udp-xy-multi-series-chart.entry.js +1 -1
  754. package/dist/stencil-library/unity-typography.entry.esm.js.map +1 -0
  755. package/dist/stencil-library/unity-typography.entry.js +2 -0
  756. package/dist/stencil-library/unity-typography.entry.js.map +1 -0
  757. package/dist/types/components/my-component/UI/advanced-search/advanced-search-grouped.d.ts +4 -0
  758. package/dist/types/components/my-component/UI/advanced-search/advanced-search.d.ts +4 -0
  759. package/dist/types/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.d.ts +4 -0
  760. package/dist/types/components/my-component/UI/grid/renderers/currency-renderer.d.ts +0 -4
  761. package/dist/types/components/my-component/UI/grid/renderers/hot-list-add-renderer.d.ts +3 -0
  762. package/dist/types/components.d.ts +48 -192
  763. package/dist/types/global/ag-grid.d.ts +3 -0
  764. package/dist/types/index.d.ts +0 -3
  765. package/dist/types/store/user-store.d.ts +3 -0
  766. package/dist/types/udp-utilities/api-udp/apiMutate.d.ts +4 -0
  767. package/package.json +1 -1
  768. package/dist/cjs/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.cjs.js.map +0 -1
  769. package/dist/cjs/api-services-NWeAzI4X.js +0 -56
  770. package/dist/cjs/api-services-NWeAzI4X.js.map +0 -1
  771. package/dist/cjs/catalog-store-yJKDPXXM.js.map +0 -1
  772. package/dist/cjs/currency-renderer-D8Tuzf0W.js.map +0 -1
  773. package/dist/cjs/get-user-DFb8yrQ2.js +0 -88
  774. package/dist/cjs/get-user-DFb8yrQ2.js.map +0 -1
  775. package/dist/cjs/get-user.cjs.entry.js +0 -12
  776. package/dist/cjs/get-user.entry.cjs.js.map +0 -1
  777. package/dist/cjs/iconUtils-Bfr2fT9-.js.map +0 -1
  778. package/dist/cjs/page-renderer.cjs.entry.js +0 -40
  779. package/dist/cjs/page-renderer.entry.cjs.js.map +0 -1
  780. package/dist/cjs/test-api-updated.cjs.entry.js +0 -82
  781. package/dist/cjs/test-api-updated.entry.cjs.js.map +0 -1
  782. package/dist/cjs/test-api.cjs.entry.js +0 -72
  783. package/dist/cjs/test-api.entry.cjs.js.map +0 -1
  784. package/dist/cjs/toggle-button.cjs.entry.js +0 -19
  785. package/dist/cjs/toggle-button.entry.cjs.js.map +0 -1
  786. package/dist/cjs/udp-container.cjs.entry.js +0 -35
  787. package/dist/cjs/udp-container.entry.cjs.js.map +0 -1
  788. package/dist/cjs/udp-fetch-C9800dwI.js +0 -267
  789. package/dist/cjs/udp-fetch-C9800dwI.js.map +0 -1
  790. package/dist/cjs/udp-fetch.cjs.entry.js +0 -10
  791. package/dist/cjs/udp-fetch.entry.cjs.js.map +0 -1
  792. package/dist/cjs/udp-list-renderer.udp-pagination.udp-side-sheet.entry.cjs.js.map +0 -1
  793. package/dist/cjs/udp-list-renderer_3.cjs.entry.js +0 -467
  794. package/dist/collection/components/my-component/AG-Grid.js +0 -352
  795. package/dist/collection/components/my-component/AG-Grid.js.map +0 -1
  796. package/dist/collection/components/my-component/demo/ambient-demo-container.css +0 -17
  797. package/dist/collection/components/my-component/demo/ambient-demo-container.js +0 -42
  798. package/dist/collection/components/my-component/demo/ambient-demo-container.js.map +0 -1
  799. package/dist/collection/components/my-component/my-component.css +0 -27
  800. package/dist/collection/components/my-component/my-component.js +0 -1575
  801. package/dist/collection/components/my-component/my-component.js.map +0 -1
  802. package/dist/collection/components/my-component/test-api/test-api.js +0 -46
  803. package/dist/collection/components/my-component/test-api/test-api.js.map +0 -1
  804. package/dist/collection/page-renderer/page-renderer.css +0 -0
  805. package/dist/collection/page-renderer/page-renderer.js +0 -159
  806. package/dist/collection/page-renderer/page-renderer.js.map +0 -1
  807. package/dist/collection/toggle-button.css +0 -29
  808. package/dist/collection/toggle-button.js +0 -64
  809. package/dist/collection/toggle-button.js.map +0 -1
  810. package/dist/collection/udp-utilities/api/api-services.js +0 -45
  811. package/dist/collection/udp-utilities/api/api-services.js.map +0 -1
  812. package/dist/collection/udp-utilities/api/useAxiosGet/useAxiosGet.js +0 -38
  813. package/dist/collection/udp-utilities/api/useAxiosGet/useAxiosGet.js.map +0 -1
  814. package/dist/collection/udp-utilities/api/useAxiosMutate/testApi.js +0 -50
  815. package/dist/collection/udp-utilities/api/useAxiosMutate/testApi.js.map +0 -1
  816. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.js +0 -37
  817. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.js.map +0 -1
  818. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceMutate.js +0 -36
  819. package/dist/collection/udp-utilities/api/useAxiosMutate/useApiServiceMutate.js.map +0 -1
  820. package/dist/collection/udp-utilities/api/useAxiosMutate/useAxiosMutate.js +0 -29
  821. package/dist/collection/udp-utilities/api/useAxiosMutate/useAxiosMutate.js.map +0 -1
  822. package/dist/collection/udp-utilities/api-udp/get-user.js +0 -125
  823. package/dist/collection/udp-utilities/api-udp/get-user.js.map +0 -1
  824. package/dist/collection/udp-utilities/api-udp/udp-fetch.js +0 -284
  825. package/dist/collection/udp-utilities/api-udp/udp-fetch.js.map +0 -1
  826. package/dist/collection/udp-utilities/auth/auth-actions.js +0 -39
  827. package/dist/collection/udp-utilities/auth/auth-actions.js.map +0 -1
  828. package/dist/collection/udp-utilities/auth/auth-config.js +0 -26
  829. package/dist/collection/udp-utilities/auth/auth-config.js.map +0 -1
  830. package/dist/collection/udp-utilities/auth/auth.js +0 -1
  831. package/dist/collection/udp-utilities/auth/auth.js.map +0 -1
  832. package/dist/collection/udp-utilities/auth/sign-in-auth-provider.js +0 -63
  833. package/dist/collection/udp-utilities/auth/sign-in-auth-provider.js.map +0 -1
  834. package/dist/collection/udp-utilities/baseSearchPayload.js +0 -13
  835. package/dist/collection/udp-utilities/baseSearchPayload.js.map +0 -1
  836. package/dist/collection/udp-utilities/testAuth/manualAccessToken.js +0 -4
  837. package/dist/collection/udp-utilities/testAuth/manualAccessToken.js.map +0 -1
  838. package/dist/collection/utils/utils.js +0 -15
  839. package/dist/collection/utils/utils.js.map +0 -1
  840. package/dist/components/ambient-demo-container.d.ts +0 -11
  841. package/dist/components/ambient-demo-container.js +0 -9
  842. package/dist/components/ambient-demo-container.js.map +0 -1
  843. package/dist/components/ambient-demo-container2.js +0 -43
  844. package/dist/components/ambient-demo-container2.js.map +0 -1
  845. package/dist/components/ambient-template-grid2.js.map +0 -1
  846. package/dist/components/api-services.js +0 -50
  847. package/dist/components/api-services.js.map +0 -1
  848. package/dist/components/app-bar2.js +0 -74
  849. package/dist/components/app-bar2.js.map +0 -1
  850. package/dist/components/get-user.d.ts +0 -11
  851. package/dist/components/get-user.js +0 -9
  852. package/dist/components/get-user.js.map +0 -1
  853. package/dist/components/get-user2.js +0 -103
  854. package/dist/components/get-user2.js.map +0 -1
  855. package/dist/components/my-component.d.ts +0 -11
  856. package/dist/components/my-component.js +0 -1796
  857. package/dist/components/my-component.js.map +0 -1
  858. package/dist/components/page-renderer.d.ts +0 -11
  859. package/dist/components/page-renderer.js +0 -325
  860. package/dist/components/page-renderer.js.map +0 -1
  861. package/dist/components/test-api-updated.d.ts +0 -11
  862. package/dist/components/test-api-updated.js +0 -105
  863. package/dist/components/test-api-updated.js.map +0 -1
  864. package/dist/components/test-api.d.ts +0 -11
  865. package/dist/components/test-api.js +0 -92
  866. package/dist/components/test-api.js.map +0 -1
  867. package/dist/components/toggle-button.d.ts +0 -11
  868. package/dist/components/toggle-button.js +0 -42
  869. package/dist/components/toggle-button.js.map +0 -1
  870. package/dist/components/udp-fetch.d.ts +0 -11
  871. package/dist/components/udp-fetch.js +0 -9
  872. package/dist/components/udp-fetch.js.map +0 -1
  873. package/dist/components/udp-fetch2.js +0 -284
  874. package/dist/components/udp-fetch2.js.map +0 -1
  875. package/dist/components/udp-tab2.js +0 -61
  876. package/dist/components/udp-tab2.js.map +0 -1
  877. package/dist/components/udp-user-creator2.js +0 -91
  878. package/dist/components/udp-user-creator2.js.map +0 -1
  879. package/dist/esm/advanced-search_50.entry.js +0 -8795
  880. package/dist/esm/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.js.map +0 -1
  881. package/dist/esm/api-services-C0O6l6cU.js +0 -50
  882. package/dist/esm/api-services-C0O6l6cU.js.map +0 -1
  883. package/dist/esm/catalog-store-CeVER_Bk.js.map +0 -1
  884. package/dist/esm/currency-renderer-BQ-hUac8.js.map +0 -1
  885. package/dist/esm/get-user-BtNVBI86.js +0 -82
  886. package/dist/esm/get-user-BtNVBI86.js.map +0 -1
  887. package/dist/esm/get-user.entry.js +0 -6
  888. package/dist/esm/get-user.entry.js.map +0 -1
  889. package/dist/esm/iconUtils-KSv32PVD.js.map +0 -1
  890. package/dist/esm/page-renderer.entry.js +0 -38
  891. package/dist/esm/page-renderer.entry.js.map +0 -1
  892. package/dist/esm/test-api-updated.entry.js +0 -80
  893. package/dist/esm/test-api-updated.entry.js.map +0 -1
  894. package/dist/esm/test-api.entry.js +0 -66
  895. package/dist/esm/test-api.entry.js.map +0 -1
  896. package/dist/esm/toggle-button.entry.js +0 -17
  897. package/dist/esm/toggle-button.entry.js.map +0 -1
  898. package/dist/esm/udp-container.entry.js +0 -33
  899. package/dist/esm/udp-container.entry.js.map +0 -1
  900. package/dist/esm/udp-fetch-BGMJ3xhH.js +0 -259
  901. package/dist/esm/udp-fetch-BGMJ3xhH.js.map +0 -1
  902. package/dist/esm/udp-fetch.entry.js +0 -4
  903. package/dist/esm/udp-fetch.entry.js.map +0 -1
  904. package/dist/esm/udp-list-renderer.udp-pagination.udp-side-sheet.entry.js.map +0 -1
  905. package/dist/esm/udp-list-renderer_3.entry.js +0 -459
  906. package/dist/stencil-library/advanced-search_50.entry.js +0 -2
  907. package/dist/stencil-library/advanced-search_50.entry.js.map +0 -1
  908. package/dist/stencil-library/ag-grid-base.ghost-render.grid-header.udp-dialog.udp-list-item.entry.esm.js.map +0 -1
  909. package/dist/stencil-library/ag-grid-base_5.entry.js +0 -2
  910. package/dist/stencil-library/ag-grid-base_5.entry.js.map +0 -1
  911. package/dist/stencil-library/api-services-C0O6l6cU.js +0 -2
  912. package/dist/stencil-library/api-services-C0O6l6cU.js.map +0 -1
  913. package/dist/stencil-library/catalog-store-CeVER_Bk.js +0 -2
  914. package/dist/stencil-library/catalog-store-CeVER_Bk.js.map +0 -1
  915. package/dist/stencil-library/currency-renderer-BQ-hUac8.js.map +0 -1
  916. package/dist/stencil-library/get-user-BtNVBI86.js +0 -2
  917. package/dist/stencil-library/get-user-BtNVBI86.js.map +0 -1
  918. package/dist/stencil-library/get-user.entry.esm.js.map +0 -1
  919. package/dist/stencil-library/get-user.entry.js +0 -2
  920. package/dist/stencil-library/get-user.entry.js.map +0 -1
  921. package/dist/stencil-library/iconUtils-KSv32PVD.js.map +0 -1
  922. package/dist/stencil-library/page-renderer.entry.esm.js.map +0 -1
  923. package/dist/stencil-library/page-renderer.entry.js +0 -2
  924. package/dist/stencil-library/page-renderer.entry.js.map +0 -1
  925. package/dist/stencil-library/test-api-updated.entry.esm.js.map +0 -1
  926. package/dist/stencil-library/test-api-updated.entry.js +0 -2
  927. package/dist/stencil-library/test-api-updated.entry.js.map +0 -1
  928. package/dist/stencil-library/test-api.entry.esm.js.map +0 -1
  929. package/dist/stencil-library/test-api.entry.js +0 -2
  930. package/dist/stencil-library/test-api.entry.js.map +0 -1
  931. package/dist/stencil-library/toggle-button.entry.esm.js.map +0 -1
  932. package/dist/stencil-library/toggle-button.entry.js +0 -2
  933. package/dist/stencil-library/toggle-button.entry.js.map +0 -1
  934. package/dist/stencil-library/udp-container.entry.esm.js.map +0 -1
  935. package/dist/stencil-library/udp-container.entry.js +0 -2
  936. package/dist/stencil-library/udp-container.entry.js.map +0 -1
  937. package/dist/stencil-library/udp-fetch-BGMJ3xhH.js +0 -2
  938. package/dist/stencil-library/udp-fetch-BGMJ3xhH.js.map +0 -1
  939. package/dist/stencil-library/udp-fetch.entry.esm.js.map +0 -1
  940. package/dist/stencil-library/udp-fetch.entry.js +0 -2
  941. package/dist/stencil-library/udp-fetch.entry.js.map +0 -1
  942. package/dist/stencil-library/udp-list-renderer.udp-pagination.udp-side-sheet.entry.esm.js.map +0 -1
  943. package/dist/stencil-library/udp-list-renderer_3.entry.js +0 -2
  944. package/dist/stencil-library/udp-list-renderer_3.entry.js.map +0 -1
  945. package/dist/types/components/my-component/AG-Grid.d.ts +0 -0
  946. package/dist/types/components/my-component/demo/ambient-demo-container.d.ts +0 -4
  947. package/dist/types/components/my-component/my-component.d.ts +0 -699
  948. package/dist/types/components/my-component/test-api/test-api.d.ts +0 -7
  949. package/dist/types/page-renderer/page-renderer.d.ts +0 -10
  950. package/dist/types/toggle-button.d.ts +0 -5
  951. package/dist/types/udp-utilities/api/api-services.d.ts +0 -14
  952. package/dist/types/udp-utilities/api/useAxiosGet/useAxiosGet.d.ts +0 -19
  953. package/dist/types/udp-utilities/api/useAxiosMutate/testApi.d.ts +0 -7
  954. package/dist/types/udp-utilities/api/useAxiosMutate/useApiServiceGetQuery.d.ts +0 -19
  955. package/dist/types/udp-utilities/api/useAxiosMutate/useApiServiceMutate.d.ts +0 -5
  956. package/dist/types/udp-utilities/api/useAxiosMutate/useAxiosMutate.d.ts +0 -12
  957. package/dist/types/udp-utilities/api-udp/get-user.d.ts +0 -18
  958. package/dist/types/udp-utilities/api-udp/udp-fetch.d.ts +0 -10
  959. package/dist/types/udp-utilities/auth/auth-actions.d.ts +0 -0
  960. package/dist/types/udp-utilities/auth/auth-config.d.ts +0 -14
  961. package/dist/types/udp-utilities/auth/auth.d.ts +0 -0
  962. package/dist/types/udp-utilities/auth/sign-in-auth-provider.d.ts +0 -0
  963. package/dist/types/udp-utilities/baseSearchPayload.d.ts +0 -2
  964. package/dist/types/udp-utilities/testAuth/manualAccessToken.d.ts +0 -2
  965. package/dist/types/utils/utils.d.ts +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ambient-template-grid.entry.esm.js","sources":["src/components/my-component/UI/grid/renderers/custom-renderer.tsx","src/components/my-component/UI/grid/renderers/custom-actions-renderer.tsx","src/udp-utilities/grid/udp-grid-enums.ts","src/udp-utilities/grid/models/udp-models.ts","src/udp-utilities/grid/search/search-utilities.ts","src/udp-utilities/grid/data-source/SearchServiceDatasource.ts","src/components/my-component/UI/grid/renderers/email-cell-renderer.tsx","src/components/my-component/UI/grid/renderers/sharedContext.ts","src/components/my-component/UI/grid/renderers/open-function-cell-renderer.tsx","src/components/my-component/UI/grid/renderers/hot-list-add-renderer.tsx","src/components/my-component/UI/grid/renderers/hover-content-cell-renderer.tsx","src/components/my-component/UI/grid/ambient-template-grid/license/licenseKey.ts","src/components/my-component/UI/grid/ambient-template-grid/ambient-template-functions/buildGroupedSearchPayload.ts","src/global/ag-grid.ts","src/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.css?tag=ambient-template-grid&encapsulation=shadow","src/components/my-component/UI/grid/ambient-template-grid/ambient-template-grid.tsx"],"sourcesContent":["import { ICellRenderer } from 'ag-grid-community';\n\n /**\n * @deprecated This component is deprecated and will be removed in a future version.\n * Please use another cell renderer instead\n */\n\nexport default class CustomRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n private statusChip: any; // Use appropriate type\n\n public init(params: any): void {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `\n <status-chip></status-chip>\n `;\n this.statusChip = this.eGui.querySelector('status-chip');\n this.statusChip.status = params.value;\n }\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n this.statusChip.status = params.value;\n return true;\n }\n}\n","import { ICellRenderer } from 'ag-grid-community';\nimport ChooseItem16 from '@carbon/icons/es/choose-item/16';\n\n /**\n * @deprecated This component is deprecated and will be removed in a future version.\n * Please use `actions-renderer.tsx` instead\n */\n\nexport default class CustomActionsRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n private iconButton: any; // Use appropriate type\n\n public init(params: any): void {\n this.eGui = document.createElement('div');\n\n this.eGui.innerHTML = `\n <stencil-icon-button></stencil-icon-button>\n `;\n\n this.iconButton = this.eGui.querySelector('stencil-icon-button');\n\n // Assuming `icon` is the attribute or property used to set the icon\n this.iconButton.icon = ChooseItem16;\n\n this.iconButton = this.eGui.querySelector('stencil-icon-button');\n\n // Assigning the cell value to some attribute or property\n this.iconButton.cellValue = params.value;\n\n // Use the provided onClick function if it exists\n const onClick = params.onClick || function() {};\n\n // Add an onClick event listener to the button\n this.iconButton.addEventListener('click', () => onClick(params.value));\n }\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n this.iconButton.cellValue = params.value;\n return true;\n }\n}\n","export enum LogicalSearchOperatorEnums {\n And = 1,\n Or = 2\n }\n \n export enum SearchGroupingType {\n Distinct = 'DISTINCT',\n Aggregate = 'AGGREGATE'\n }\n \n \n export enum SearchSortDirection {\n Asc = 'ASC',\n Desc = 'DESC'\n }\n ","export const FilterOperators = {\n equals: '=',\n contains: 'IN',\n notEqual: '<>',\n greaterThan: '>',\n lessThan: '<',\n greaterThanOrEqual: '>=',\n lessThanOrEqual: '<=',\n between: 'BETWEEN'\n };","import { LogicalSearchOperatorEnums, SearchGroupingType } from '../udp-grid-enums';\nimport { Search } from '../search/inquiry-search-datasource';\n\nexport const getSearchObject = (searchFilterElements, page, pageSize, eagerLoad = false, logicalSearchOperator = LogicalSearchOperatorEnums.And) => {\n const searchObject: Search = {\n pageNumber: page || 1,\n pageSize: pageSize || 20,\n filterElements: [],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: eagerLoad,\n logicalSearchOperator: logicalSearchOperator,\n };\n\n if (searchFilterElements) {\n searchFilterElements.forEach(property => {\n const formattedPropertyName = property.searchField;\n searchObject.filterElements = searchFilterElements;\n // adds order elements\n if (property.sortDirection) {\n const orderElement = {\n sortColumn: formattedPropertyName,\n sortDirection: property.sortDirection,\n };\n searchObject.orderElements.push(orderElement);\n }\n if (property.distinct) {\n searchObject.groupingType = SearchGroupingType.Distinct;\n searchObject.groupProperty?.push(formattedPropertyName);\n }\n });\n }\n return searchObject;\n};\n","import { SearchGroupingType, SearchSortDirection } from '../udp-grid-enums';\nimport { FilterOperators } from '../models/udp-models';\nimport { getSearchObject } from '../search/search-utilities';\nimport { getCleanData } from '../../api-udp/apiUtils';\n\nlet rowGroups = [];\n\nexport const SearchServiceDatasource = (\n queryData,\n gridUID,\n isRecentSearch,\n apiMethodId,\n hotlistEmpty,\n searchFilterElements,\n logicalSearchOperator,\n lookupApiMethodId: Promise<string> | string,\n executeQuery,\n lookupsMap: object | null | undefined,\n defaultFilterObject,\n onDataFetched,\n updateLoadingState,\n) => {\n return {\n async getRows(params, shouldForceEmptyResults = false) {\n if (shouldForceEmptyResults) {\n params.success({\n rowData: [],\n rowCount: 0,\n });\n onDataFetched([], 0);\n return;\n }\n\n const { startRow, endRow, rowGroupCols, groupKeys, filterModel, sortModel } = params.request;\n const page = endRow / 20;\n const searchObject = getSearchObject([], page, null, false, logicalSearchOperator);\n updateLoadingState(true);\n\n // handle server-side sorting on ag-grid\n if (Array.isArray(sortModel) && sortModel.length > 0) {\n const orderElements = searchObject.orderElements || [];\n sortModel.forEach(sortItem => {\n if (sortItem && sortItem.colId) {\n const formattedPropertyName = sortItem.colId.charAt(0).toUpperCase() + sortItem.colId.slice(1);\n const element = orderElements.find(element => element.sortColumn === formattedPropertyName);\n if (element) {\n element.sortDirection = sortItem.sort.toUpperCase();\n } else {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: sortItem.sort.toUpperCase(),\n });\n }\n }\n });\n }\n\n // handle server-side filtering on ag-grid\n if (Object.keys(filterModel).length) {\n const filterElements = searchObject.filterElements || [];\n Object.keys(filterModel).forEach(key => {\n const filterItem = filterModel[key];\n const formattedPropertyName = key.charAt(0).toUpperCase() + key.slice(1);\n const element = filterElements.find(element => element.searchField === formattedPropertyName);\n if (element) {\n element.searchValue = filterItem.filter;\n element.searchOperator = FilterOperators[filterItem.type];\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: filterItem.filter,\n searchOperator: FilterOperators[filterItem.type],\n });\n }\n });\n }\n\n // construct search for initial grouping\n if (rowGroupCols.length && !groupKeys.length) {\n const formattedPropertyName = rowGroupCols[0].field.charAt(0).toUpperCase() + rowGroupCols[0].field.slice(1);\n searchObject.groupingType = SearchGroupingType.Distinct;\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements || [];\n const element = orderElements.find(element => element.sortColumn === formattedPropertyName);\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc,\n });\n }\n }\n }\n\n // construct the filter for grouped columns\n if (Array.isArray(groupKeys) && groupKeys.length > 0) {\n if (groupKeys.length === rowGroupCols.length) {\n searchObject.groupingType = '';\n const filterElements = searchObject.filterElements || [];\n groupKeys.forEach((key, index) => {\n if (rowGroupCols[index]) {\n const rowGroupCol = rowGroupCols[index];\n const formattedPropertyName = rowGroupCol.field.charAt(0).toUpperCase() + rowGroupCol.field.slice(1);\n const element = filterElements.find(element => element.searchField === formattedPropertyName);\n let currentNode = null;\n\n params.api.forEachNode(node => {\n const nodeKey = node.field;\n if (nodeKey?.toLowerCase() === formattedPropertyName?.toLowerCase() && node?.data?.[nodeKey] === key) {\n currentNode = node;\n return;\n }\n });\n let searchValue = key;\n if (currentNode) {\n const cleanData = getCleanData(currentNode.data, lookupsMap) || null;\n if (cleanData) {\n searchValue = cleanData[currentNode.field];\n }\n }\n\n if (element) {\n element.searchValue = searchValue;\n element.searchOperator = '=';\n } else {\n filterElements.push({\n searchField: formattedPropertyName,\n searchValue: searchValue,\n searchOperator: '=',\n });\n }\n }\n });\n } else {\n // Construct search for the next grouped element\n groupKeys.forEach((key, index) => {\n if (rowGroupCols[index]) {\n const formattedPropertyNameForSearch = rowGroupCols[index].field.charAt(0).toUpperCase() + rowGroupCols[index].field.slice(1);\n\n searchObject.filterElements = searchObject.filterElements || [];\n let currentNode = null;\n params.api.forEachNode(node => {\n const nodeKey = node.field;\n if (nodeKey?.toLowerCase() === formattedPropertyNameForSearch?.toLowerCase() && node?.data?.[nodeKey] === key) {\n currentNode = node;\n return;\n }\n });\n let searchValue = key;\n if (currentNode) {\n const cleanData = getCleanData(currentNode.data, lookupsMap) || null;\n if (cleanData) {\n searchValue = cleanData[currentNode.field];\n }\n }\n\n searchObject.filterElements.push({\n searchField: formattedPropertyNameForSearch,\n searchValue: searchValue,\n searchOperator: '=',\n });\n }\n });\n\n searchObject.groupingType = SearchGroupingType.Distinct;\n if (groupKeys.length < rowGroupCols.length) {\n const rowGroupCol = rowGroupCols[groupKeys.length];\n if (rowGroupCol) {\n const formattedPropertyName = rowGroupCol.field.charAt(0).toUpperCase() + rowGroupCol.field.slice(1);\n\n searchObject.groupProperty = searchObject.groupProperty || [];\n if (!searchObject.groupProperty.includes(formattedPropertyName)) {\n searchObject.groupProperty.push(formattedPropertyName);\n\n const orderElements = searchObject.orderElements || [];\n const element = orderElements.find(element => element.sortColumn === formattedPropertyName);\n if (!element) {\n orderElements.push({\n sortColumn: formattedPropertyName,\n sortDirection: SearchSortDirection.Asc,\n });\n }\n }\n }\n }\n }\n }\n\n if (!startRow && rowGroupCols.length === 0 && !sortModel.length && !Object.keys(filterModel).length && !groupKeys.length && queryData) {\n if (queryData.pageList && queryData.pageList) {\n params.successCallback(queryData.pageList, queryData.total);\n } else {\n params.successCallback([], 0);\n }\n } else {\n let response = null;\n if (executeQuery) {\n function deepCopy(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n\n function mergeArrays(searchFilterElements, searchObject) {\n return searchFilterElements.map(element => {\n let newElement = deepCopy(element);\n for (const key in searchObject) {\n if (Array.isArray(newElement[key]) && newElement[key].length === 0 && searchObject[key].length > 0) {\n newElement[key] = deepCopy(searchObject[key]);\n } else if (!Array.isArray(newElement[key]) && searchObject.hasOwnProperty(key)) {\n newElement[key] = searchObject[key];\n } else if (key === 'filterElements' && searchObject[key].length > 0 && newElement[key].length > 0 && rowGroupCols.length > 0) {\n const filteredElements = searchObject[key].filter(element => element.searchOperator === '=');\n newElement[key] = newElement[key].concat(filteredElements);\n }\n }\n return newElement;\n });\n }\n rowGroups = rowGroupCols.map(group => group.field);\n const updatedSearchFilterElements = mergeArrays(searchFilterElements, searchObject);\n\n function saveSearch() {\n if (updatedSearchFilterElements[0].filterElements.length == 0) {\n return;\n }\n var newSearchObj = updatedSearchFilterElements[0];\n const currentTimeStamp: number = Date.now();\n const formattedTimeStamp: string = new Date(currentTimeStamp).toLocaleString();\n var recentSearches = localStorage.getItem('recentSearches') ? JSON.parse(localStorage.getItem('recentSearches')) : [];\n var currentGridSearchHistoryObj = recentSearches.find(item => item.gridUID === (gridUID || 'default_gridUID'));\n if (currentGridSearchHistoryObj) {\n currentGridSearchHistoryObj.searchHistory.unshift({ timestamp: formattedTimeStamp, searchObj: newSearchObj });\n if (currentGridSearchHistoryObj.searchHistory.length > 10) {\n currentGridSearchHistoryObj.searchHistory = currentGridSearchHistoryObj.searchHistory.slice(0, 10);\n }\n } else {\n recentSearches.push({ gridUID: gridUID, searchHistory: [{ timestamp: formattedTimeStamp, searchObj: newSearchObj }] });\n }\n localStorage.setItem('recentSearches', JSON.stringify(recentSearches));\n }\n if (isRecentSearch == false) {\n saveSearch();\n } else isRecentSearch = false;\n\n response = await executeQuery(updatedSearchFilterElements, defaultFilterObject, logicalSearchOperator, apiMethodId, lookupsMap, false, {\n lookupApiMethodId,\n prefetch: params.request.prefetch ?? false,\n }).catch(e => console.error(e.message));\n }\n\n const rowData = response;\n\n if (hotlistEmpty) {\n rowData.pageList = [];\n rowData.total = 0;\n }\n\n function toCamelCase(str) {\n if (typeof str === 'string') {\n return str.charAt(0).toLowerCase() + str.slice(1);\n } else {\n return str;\n }\n }\n\n function rankData(rowData, filterObjects) {\n if (searchObject.groupProperty.length > 0 && searchObject.groupProperty) {\n const groupProps = searchObject.groupProperty.map(prop => prop.toLowerCase());\n rowData.forEach(row => {\n for (let prop in row) {\n if (!groupProps.includes(prop.toLowerCase())) {\n row[prop] = null;\n }\n }\n });\n }\n\n return rowData?.map(row => {\n let searchRank = 10;\n filterObjects.forEach(filter => {\n const fieldName = toCamelCase(filter.searchField);\n if (row.hasOwnProperty(fieldName)) {\n if (typeof row[fieldName] === 'string') {\n if (row[fieldName].toLowerCase() === filter.searchValue.toLowerCase()) {\n searchRank += 10;\n }\n } else if (row[fieldName] === filter.searchValue) {\n searchRank += 10;\n }\n }\n });\n return { ...row, searchRank };\n });\n }\n\n if (!rowData || rowData.pageList.length === 0) {\n const event = new CustomEvent('noDataDetected', { detail: {} });\n document.dispatchEvent(event);\n params.success({\n rowData: [],\n rowCount: 0,\n });\n onDataFetched([], 0);\n } else {\n const rowDataRanked = rankData(rowData.pageList, searchFilterElements[0].filterElements);\n const rowDataRankedSorted = rowDataRanked.sort((a, b) => b.searchRank - a.searchRank);\n onDataFetched(rowDataRankedSorted, parseInt(rowData.total));\n params.success({\n rowData: rowDataRankedSorted,\n rowCount: parseInt(rowData.total),\n });\n }\n }\n updateLoadingState(false);\n },\n };\n};\n\nexport { rowGroups };\n","import { ICellRenderer } from 'ag-grid-community';\n//import { SharedContext } from './sharedContext'; // Ensure the path is correct\n\nexport default class EmailCellRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n //private otherCellValue: any;\n private clickListener: () => void;\n\n public init(params: any): void {\n this.eGui = document.createElement('div');\n\n // Set the cell's content with the arrow character appended\n this.eGui.innerHTML = `${params.value} <span style=\"padding-left: 5px; color: blue \">🡕</span>`;\n\n // Style the cell\n this.applyStyles();\n\n // Retrieve the value from another cell in the same row (update 'otherField' accordingly)\n //this.otherCellValue = params.data.contactID;\n\n // Create a click listener that calls the shared callback with the other cell's value\n //this.clickListener = () => SharedContext.myClickCallback(this.otherCellValue);\n\n // Add the click event listener to the cell\n this.eGui.addEventListener('click', this.clickListener);\n }\n\n private applyStyles(): void {\n // Apply your desired styling here\n this.eGui.style.backgroundColor = '#f0f0f0'; // Light grey background\n this.eGui.style.borderRadius = '50px'; // Rounded corners\n this.eGui.style.paddingLeft = '8px'; // Some padding\n this.eGui.style.paddingRight = '8px'; // Some padding\n this.eGui.style.textAlign = 'center'; // Center the text\n this.eGui.style.margin = '2px 0'; // Add a bit of margin for spacing\n this.eGui.style.lineHeight = '26px'; // Add a bit of margin for spacing\n this.eGui.style.cursor = 'pointer'; \n \n // Apply styles to the arrow\n const arrowStyle = document.createElement('style');\n arrowStyle.innerHTML = `\n .arrow {\n display: inline-block;\n \n }\n `;\n document.head.appendChild(arrowStyle);\n }\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n // Update the content (with arrow) and other cell value when data changes\n this.eGui.innerHTML = `${params.value} <span style=\"padding-left: 6px; \">⇡</span>`;\n //this.otherCellValue = params.data.contactID;\n return true; // Return true to indicate the refresh happened\n }\n\n public destroy(): void {\n // Cleanup: remove the click event listener\n if (this.eGui && this.clickListener) {\n this.eGui.removeEventListener('click', this.clickListener);\n }\n }\n}\n","export const SharedContext = {\n myClickCallback: (otherCellValue, callbackId) => { \n console.log('In callback',otherCellValue, callbackId)\n },\n viewActionCallback: (otherCellValue, callbackId) => { \n console.log('In callback',otherCellValue, callbackId)\n },\n thirdActionCallback: (otherCellValue, callbackId) => { \n console.log('In callback',otherCellValue, callbackId)\n },\n hotListAddHandler: null, // New handler specifically for HotListAddRenderer\n \n};\n\n ","import { ICellRenderer } from 'ag-grid-community';\nimport { SharedContext } from './sharedContext'; // Ensure the path is correct\n\nexport default class OpenFunctionCellRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n private otherCellValue: any;\n private otherField: string;\n private callbackId: string;\n \n public init(params: any): void {\n console.log('Renderer params:', params);\n \n this.eGui = document.createElement('div');\n\n // Check if we're in a group and if the specific field is available\n if(params.node.group) {\n // Possibly display something different for group rows or nothing at all\n if(params.value) {\n this.eGui.innerHTML = `${params.value} <span style=\"padding-left: 5px; color: blue;\">🡕</span>`;\n }else {\n this.eGui.style.display = 'none';\n }\n\n } else {\n // Normal row rendering\n if(params.value) {\n this.eGui.innerHTML = `${params.value} <span style=\"padding-left: 5px; color: blue;\">🡕</span>`;\n }\n }\n \n this.applyStyles();\n\n // Only proceed if not a group row\n if(!params.node.group) {\n this.otherField = params.colDef.cellRendererParams.otherField;\n this.otherCellValue = params.data[this.otherField];\n this.callbackId = params.colDef.cellRendererParams.callbackId;\n\n this.eGui.addEventListener('click', () => {\n console.log('Click event triggered');\n if (typeof SharedContext.myClickCallback === 'function') {\n console.log('Executing shared callback');\n SharedContext.myClickCallback(this.otherCellValue, this.callbackId);\n } else {\n console.log('Dispatching custom event');\n const customEvent = new CustomEvent('cellClick', {\n detail: { cellValue: this.otherCellValue, callbackId: this.callbackId },\n bubbles: true,\n composed: true\n });\n this.eGui.dispatchEvent(customEvent);\n }\n });\n }\n } \n\n private applyStyles(): void {\n this.eGui.style.backgroundColor = '#f0f0f0';\n this.eGui.style.borderRadius = '50px';\n this.eGui.style.paddingLeft = '8px';\n this.eGui.style.paddingRight = '8px';\n this.eGui.style.textAlign = 'center';\n this.eGui.style.margin = '2px 0';\n this.eGui.style.lineHeight = '26px';\n this.eGui.style.cursor = 'pointer';\n }\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n // Make sure the renderer updates correctly for grouped/non-grouped rows\n if(!params.node.group && params.value) {\n this.eGui.innerHTML = `${params.value} <span style=\"padding-left: 5px; color: blue;\">🡕</span>`;\n this.otherCellValue = params.data[this.otherField];\n }\n return true;\n }\n\n public destroy(): void {\n // Cleanup if necessary\n }\n}","import { ICellRenderer } from 'ag-grid-community';\nimport { SharedContext } from './sharedContext';\nimport { state } from '../../../../../store/catalog-store';\n\n/**\n * @deprecated This component is deprecated and will be removed in a future version.\n */\n\nexport default class HotListAddRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n private otherCellValue: any;\n private callbackId: string;\n private viewActionElement: HTMLButtonElement;\n private thirdActionElement: HTMLButtonElement;\n\n public init(params: any): void {\n this.eGui = document.createElement('div');\n this.otherCellValue = params.data;\n this.callbackId = params.colDef.cellRendererParams.callbackId;\n\n this.viewActionElement = document.createElement('button');\n this.viewActionElement.textContent = '⋯';\n this.viewActionElement.addEventListener('click', this.onViewActionClick.bind(this));\n\n\n this.thirdActionElement = document.createElement('button');\n this.thirdActionElement.textContent = 'Third Action'; // Example text\n this.thirdActionElement.addEventListener('click', this.onThirdActionClick.bind(this));\n\n // Update display based on hotListActive\n this.updateDisplay(params);\n\n // Append second action button if enabled\n if (params.colDef.cellRendererParams.showViewAction) {\n this.eGui.appendChild(this.viewActionElement);\n }\n if( params.node.group && !params.value){\n this.eGui.style.display = 'none';\n }\n\n this.eGui.addEventListener('click', () => {\n if (SharedContext.hotListAddHandler && params.colDef.cellRendererParams.showThirdAction) {\n SharedContext.hotListAddHandler(this.otherCellValue, this.callbackId);\n } else if (typeof SharedContext.myClickCallback === 'function') {\n SharedContext.myClickCallback(this.otherCellValue, this.callbackId);\n } else {\n const customEvent = new CustomEvent('cellClick', {\n detail: { cellValue: this.otherCellValue, callbackId: this.callbackId },\n bubbles: true,\n composed: true\n });\n this.eGui.dispatchEvent(customEvent);\n }\n });\n\n\n\n this.applyStyles(params);\n }\n\n private onViewActionClick(event: MouseEvent): void {\n event.stopPropagation();\n\n if (typeof SharedContext.viewActionCallback === 'function') {\n SharedContext.viewActionCallback(this.otherCellValue, this.callbackId);\n } else {\n const customEvent = new CustomEvent('viewActionClick', {\n detail: { cellValue: this.otherCellValue, callbackId: this.callbackId },\n bubbles: true,\n composed: true\n });\n this.eGui.dispatchEvent(customEvent);\n }\n }\n\n private onThirdActionClick(event: MouseEvent): void {\n event.stopPropagation();\n\n if (typeof SharedContext.thirdActionCallback === 'function') {\n SharedContext.thirdActionCallback(this.otherCellValue, this.callbackId);\n } else {\n const customEvent = new CustomEvent('thirdActionClick', {\n detail: { cellValue: this.otherCellValue, callbackId: this.callbackId },\n bubbles: true,\n composed: true\n });\n this.eGui.dispatchEvent(customEvent);\n }\n }\n\n // private updateDisplay(params: any): void {\n // console.log(params);\n // const hotListActive = state.hotListActive || '';\n\n // if (params.colDef.cellRendererParams.showThirdAction) {\n // const symbol = hotListActive !== '' ? '-' : '+';\n // const color = hotListActive !== '' ? '#dfd3ff' : '#f0f0f0';\n // this.eGui.innerHTML = `✱ <span style=\"padding-left: 5px; color: blue;\">${symbol}</span>`;\n // this.eGui.style.backgroundColor = color;\n // this.eGui.title = 'Hotlist';\n // this.thirdActionElement.disabled = !params.colDef.cellRendererParams.showThirdAction;\n // }\n // }\n\n// private updateDisplay(params: any): void {\n// console.log(params);\n// const hotListActive = state.hotListActive || '';\n\n\n// // This assumes that you're managing the visibility and interaction of both the symbol and the third action button\n// if (params.colDef.cellRendererParams.showThirdAction) {\n// // Update symbol container if necessary\n// const symbol = hotListActive !== '' ? '-' : '+';\n// const color = hotListActive !== '' ? 'green' : 'pink';\n// this.eGui.innerHTML = `✱ <span style=\"padding-left: 5px; color: grey;\">${symbol}</span>`;\n\n// this.eGui.style.backgroundColor = color;\n// this.eGui.title = 'Hotlist';\n\n// // Ensure third action element is ready for interaction\n// this.thirdActionElement.style.display = ''; // Ensure button is visible\n// this.thirdActionElement.disabled = false; // Ensure button is interactive\n// this.thirdActionElement.style.display = 'none'; // Hide the button\n// this.thirdActionElement.disabled = true; // Disable the button\n\n// // Optionally clear any innerHTML manipulation if it affects interaction\n// this.eGui.innerHTML = '';\n// } else {\n// // Hide and disable third action element when not needed\n// this.thirdActionElement.style.display = 'none'; // Hide the button\n// this.thirdActionElement.disabled = true; // Disable the button\n\n// // Optionally clear any innerHTML manipulation if it affects interaction\n// this.eGui.innerHTML = ''; // Remove other interactive elements or symbols\n// this.eGui.appendChild(this.viewActionElement); // Make sure to re-append view action element to maintain it in the DOM\n// }\n\n// // Ensure view action element is always interactive regardless of other conditions\n// this.viewActionElement.style.display = '';\n// this.viewActionElement.disabled = false;\n// }\n\nprivate updateDisplay(params: any): void {\n console.log(params);\n const hotListActive = state.hotListActive || '';\n\n\n\n // Conditionally add or remove the styled span based on `showThirdAction`\n if (params.colDef.cellRendererParams.showThirdAction) {\n // Determine the background color and symbol based on `hotListActive`\n const color = hotListActive !== '' ? 'rgb(224, 224, 224)' : 'rgb(201, 239, 224)';\n const symbol = hotListActive !== '' ? '-' : '+';\n\n // Set the title and background color of the entire GUI element\n this.eGui.title = 'Hotlist';\n this.eGui.style.backgroundColor = color;\n const specialContent = `✱ <span style=\"padding-left: 5px; color: grey;\">${symbol}</span>`;\n // Try to access the existing special content element if it exists\n let existingSpan = this.eGui.querySelector('span');\n if (!existingSpan) {\n // If it doesn't exist, use insertAdjacentHTML to add without overwriting\n this.eGui.insertAdjacentHTML('afterbegin', specialContent);\n }\n } else {\n // If `showThirdAction` is false, remove the span if it exists\n let existingSpan = this.eGui.querySelector('span');\n if (existingSpan) {\n existingSpan.remove(); // Remove the styled span\n }\n }\n\n // Control visibility and interaction of the third action button\n this.thirdActionElement.style.display = params.colDef.cellRendererParams.showThirdAction ? '' : 'none';\n this.thirdActionElement.disabled = !params.colDef.cellRendererParams.showThirdAction;\n\n // Ensure the view action element is maintained and always interactive\n if (!this.eGui.contains(this.viewActionElement)) {\n this.eGui.appendChild(this.viewActionElement);\n }\n this.viewActionElement.style.display = '';\n this.viewActionElement.disabled = false;\n}\n\n\n\n private applyStyles(params): void {\n\n this.eGui.style.borderRadius = '50px';\n this.eGui.style.paddingLeft = '8px';\n this.eGui.style.paddingRight = '8px';\n this.eGui.style.textAlign = 'center';\n this.eGui.style.margin = '2px 0';\n this.eGui.style.lineHeight = '26px';\n this.eGui.style.cursor = params.colDef.cellRendererParams.showThirdAction && 'pointer';\n this.eGui.style.width = '30px';\n\n // Additional styles for viewActionElement\n this.viewActionElement.style.backgroundColor = 'rgb(224, 224, 224)'; // light grey background\n this.viewActionElement.style.color = '#000'; // text color\n this.viewActionElement.style.border = 'none';\n this.viewActionElement.style.borderRadius = '15px'; // rounded corners\n this.viewActionElement.style.padding = '5px 10px'; // padding inside the button\n this.viewActionElement.style.margin = '2px';\n this.viewActionElement.style.cursor = 'pointer';\n this.viewActionElement.style.fontSize = '14px'; // font size\n this.viewActionElement.style.marginLeft = params.colDef.cellRendererParams.showThirdAction ? '16px' : '0px';\n this.viewActionElement.style.transform = params.colDef.cellRendererParams.showThirdAction ? 'none' : 'translateX(-10px)';\n this.viewActionElement.title = 'View More';\n this.thirdActionElement.title = 'Third Action';\n }\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n this.updateDisplay(params);\n return true;\n }\n\n public destroy(): void {\n // Cleanup if necessary\n }\n}\n","import { ICellRenderer } from 'ag-grid-community';\nimport { SharedContext } from './sharedContext'; // Ensure the path is correct\n\nexport default class HoverContentCellRenderer implements ICellRenderer {\n private eGui: HTMLElement;\n private hoverInfo: string;\n private tooltipField: string;\n\n public init(params: any): void {\n console.log('Renderer params:', params);\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = params.value;\n this.applyStyles();\n\n \n if (params.colDef.tooltipField) {\n const columnDefs = params.api.getColumnDefs();\n const columnDefToModify = columnDefs.find(col => col.colId === params.colDef.field);\n const updatedColDef = {\n ...columnDefToModify,\n tooltipField: \"\"\n };\n params.api.setColumnDefs(columnDefs.map(col =>\n col.field === params.colDef.field ? updatedColDef : col\n ));\n }\n\n this.tooltipField = params.colDef.cellRendererParams.otherField || 'defaultTooltipField';\n this.hoverInfo = params.data[this.tooltipField];\n this.createTooltip();\n\n this.eGui.addEventListener('mouseover', this.handleMouseOver);\n this.eGui.addEventListener('mouseout', this.hideTooltip);\n }\n\n private applyStyles(): void {\n (this.eGui as HTMLElement).style.cursor = 'help'; // Change as needed\n // Add more styles as needed\n }\n\n private createTooltip(): void {\n const tooltip = document.createElement('span');\n tooltip.innerText = this.hoverInfo;\n tooltip.style.visibility = 'hidden';\n tooltip.style.position = 'absolute';\n tooltip.style.zIndex = '999';\n tooltip.style.backgroundColor = 'white';\n tooltip.style.border = '1px solid grey';\n tooltip.style.padding = '5px';\n tooltip.style.boxShadow = '0px 4px 8px rgba(0, 0, 0, 0.1)'; \n tooltip.classList.add('cell-tooltip');\n this.eGui.appendChild(tooltip);\n }\n\n private handleMouseOver = () => {\n const tooltip = this.eGui.querySelector('.cell-tooltip') as HTMLElement;\n tooltip.style.visibility = 'visible';\n\n // Using SharedContext's myClickCallback\n SharedContext.myClickCallback(this.hoverInfo, 'someCallbackId');\n };\n\n private hideTooltip = () => {\n const tooltip = this.eGui.querySelector('.cell-tooltip') as HTMLElement;\n tooltip.style.visibility = 'hidden';\n };\n\n public getGui(): HTMLElement {\n return this.eGui;\n }\n\n public refresh(params: any): boolean {\n this.eGui.innerHTML = params.value;\n this.hoverInfo = params.data[this.tooltipField];\n // Update tooltip text if necessary\n return true;\n }\n\n public destroy(): void {\n // Cleanup if necessary\n }\n}\n","export const LicenseKey =\n'Using_this_{AG_Grid}_Enterprise_key_{AG-060880}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{Univerus_Software_Inc}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{MAIS_eRec}_only_for_{1}_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_{MAIS_eRec}_need_to_be_licensed___{MAIS_eRec}_has_not_been_granted_a_Deployment_License_Add-on___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{28_June_2025}____[v3]_[01]_MTc1MTA2NTIwMDAwMA==17ac166e7bb5dcca7f3eaa21c79da63b'\n","export function buildSearchPayload(filterObjectsWithGroups) {\n let currentGroupId = 0;\n // Converts the search operator to its symbolic form\n const convertSearchOperator = operator => {\n switch (operator) {\n case 'equals':\n return '=';\n case '<>':\n return '<>'; // Assuming this is already the symbolic form\n case '=': // Added to handle cases where the operator might already be in symbolic form\n return '=';\n // Add more cases as needed\n default:\n return operator; // Default case returns the operator as is\n }\n };\n\n // Converts the logical operator to its numeric form\n const convertLogicalOperator = logicalOperator => {\n return logicalOperator === 'AND' ? 1 : 2; // Assuming only AND/OR are used\n };\n\n const filterElements = [];\n const filterGroups = [];\n\n const traverse = (filterObject, parentId = null) => {\n currentGroupId++;\n const groupId = currentGroupId;\n\n filterGroups.push({\n groupId,\n logicalSearchOperator: convertLogicalOperator(filterObject.logicalOperator),\n parentGroupId: parentId,\n });\n\n filterObject.filters.forEach(filter => {\n filterElements.push({\n searchField: filter.searchField,\n searchOperator: convertSearchOperator(filter.searchOperator),\n searchValue: filter.searchValue, // Ensure this is correctly accessing the searchValue\n groupId,\n });\n });\n\n filterObject.children?.forEach(child => {\n traverse(child, groupId);\n });\n };\n\n filterObjectsWithGroups.forEach(filterObject => traverse(filterObject));\n\n return {\n pageNumber: 1,\n pageSize: 20,\n filterElements,\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: filterGroups.length > 0 ? filterGroups[0].logicalSearchOperator : 1, // Default to 1 if no groups\n type: 'advanced',\n filterGroups,\n };\n}\n","let agGridLibraryPromise: Promise<void>;\n\nasync function loadAgGridLibrary() {\n try {\n window['agGrid'] = await import('ag-grid-enterprise');\n } catch (e) {\n throw new Error('Failed to load ag-Grid script:\\n' + e.message);\n }\n}\n\n/**\n * @deprecated This component is deprecated and will be removed in a future version.\n */\n\nexport async function lazySetupAgGridLibrary({ LicenseKey }: { LicenseKey: string }) {\n // Lazy-load the ag-grid library only once\n if (!agGridLibraryPromise) agGridLibraryPromise = loadAgGridLibrary();\n await agGridLibraryPromise;\n\n // Set the ag-Grid license key\n if (window['agGrid'] && window['agGrid'].LicenseManager) {\n window['agGrid'].LicenseManager.setLicenseKey(LicenseKey);\n }\n}\n","@import '~ag-grid-enterprise/styles/ag-grid.css';\n@import '~ag-grid-enterprise/styles/ag-theme-material.css';\n\n.ag-virtual-list-viewport {\n background-color: rgb(214, 218, 223) !important;\n}\n\n.ag-column-panel {\n background-color: rgb(214, 218, 223) !important;\n}\n\n.ag-checkbox-input-wrapper.ag-checked::after {\n color: var(--primary-color);\n}\n\n.ag-header-cell,\n.ag-header-group-cell {\n background: var(--primary-color);\n color: rgb(214, 218, 223);\n}\n\n.ag-filter-toolpanel {\n background-color: rgb(214, 218, 223) !important;\n}\n\n.ag-row {\n border-bottom: 1px solid #ccc;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: hidden;\n}\n\n.ag-center-cols-viewport {\n width: 100% !important;\n /* overflow-x: scroll !important; */\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n.ag-cell {\n display: flex;\n align-items: center; /* Ensures vertical centering */\n justify-content: start; /* Adjusts horizontal alignment as needed */\n padding-top: 6px;\n padding-bottom: 2px;\n line-height: 16px;\n}\n\n/* Specific adjustments for text content */\n.ag-cell .ag-text-cell,\n.ag-cell .ag-text-area {\n line-height: 16px; /* Ensure line height matches the general adjustment */\n}\n\n/* .ag-row .ag-cell:last-child {\njustify-content: flex-end;\n} */\n\n.second-row {\n display: flex;\n align-items: center;\n width: 100%;\n /* background-color: #ccc; */\n background-color: rgb(247, 245, 243);\n padding-left: 16px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.chip-section {\n /* flex: 1; */\n display: flex;\n margin-left: 8px;\n}\n\n.chip-wrapper {\n display: flex;\n}\n\n.advanced-search-chips {\n margin-right: 16px;\n display: flex;\n gap: 8px;\n}\n\n.logical-operator {\n margin-right: 16px;\n}\n\n.kpi {\n margin-right: 16px;\n margin-left: auto;\n}\n\n.bulk-select {\n margin-right: 16px;\n}\n\n.ag-body-viewport.ag-layout-normal {\n /* overflow-y: hidden !important; */\n /* height: 100vh; */\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n /* Hide scrollbar for Chrome, Safari */\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n/* .ag-center-cols-viewport {\n height: 150vh !important;\n} */\n\n.ag-side-button {\n display: none;\n}\n\n.ag-root-wrapper {\n box-sizing: content-box;\n}\n\n.ag-side-buttons {\n width: 0px !important;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container,\n.ag-sticky-top-container {\n background: var(--primary-color);\n}\n\n.advanced-group-search-chips {\n display: flex;\n gap: 8px;\n flex: 1;\n /* width: 400px; */\n}\n\n.chip-container {\n display: flex;\n gap: 8px;\n}\n\n.overflowChip {\n width: 200px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n/* ag-grid.css */\n.ag-icon {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.ag-icon-aggregation::before {\n content: var(--ag-icon-font-code-aggregation, '\\f101');\n}\n\n.ag-icon-arrows::before {\n content: var(--ag-icon-font-code-arrows, '\\f102');\n}\n\n.ag-icon-asc::before {\n content: var(--ag-icon-font-code-asc, '\\f103');\n}\n\n.ag-icon-cancel::before {\n content: var(--ag-icon-font-code-cancel, '\\f104');\n}\n\n.ag-icon-chart::before {\n content: var(--ag-icon-font-code-chart, '\\f105');\n}\n\n.ag-icon-checkbox-checked::before {\n content: var(--ag-icon-font-code-checkbox-checked, '\\f106');\n}\n\n.ag-icon-checkbox-indeterminate::before {\n content: var(--ag-icon-font-code-checkbox-indeterminate, '\\f107');\n}\n\n.ag-icon-checkbox-unchecked::before {\n content: var(--ag-icon-font-code-checkbox-unchecked, '\\f108');\n}\n\n.ag-icon-color-picker::before {\n content: var(--ag-icon-font-code-color-picker, '\\f109');\n}\n\n.ag-icon-columns::before {\n content: var(--ag-icon-font-code-columns, '\\f10a');\n}\n\n.ag-icon-contracted::before {\n content: var(--ag-icon-font-code-contracted, '\\f10b');\n}\n\n.ag-icon-copy::before {\n content: var(--ag-icon-font-code-copy, '\\f10c');\n}\n\n.ag-icon-cross::before {\n content: var(--ag-icon-font-code-cross, '\\f10d');\n}\n\n.ag-icon-csv::before {\n content: var(--ag-icon-font-code-csv, '\\f10e');\n}\n\n.ag-icon-cut::before {\n content: var(--ag-icon-font-code-cut, '\\f10f');\n}\n\n.ag-icon-desc::before {\n content: var(--ag-icon-font-code-desc, '\\f110');\n}\n\n.ag-icon-excel::before {\n content: var(--ag-icon-font-code-excel, '\\f111');\n}\n\n.ag-icon-expanded::before {\n content: var(--ag-icon-font-code-expanded, '\\f112');\n}\n\n.ag-icon-eye-slash::before {\n content: var(--ag-icon-font-code-eye-slash, '\\f113');\n}\n\n.ag-icon-eye::before {\n content: var(--ag-icon-font-code-eye, '\\f114');\n}\n\n.ag-icon-filter::before {\n content: var(--ag-icon-font-code-filter, '\\f115');\n}\n\n.ag-icon-first::before {\n content: var(--ag-icon-font-code-first, '\\f116');\n}\n\n.ag-icon-grip::before {\n content: var(--ag-icon-font-code-grip, '\\f117');\n}\n\n.ag-icon-group::before {\n content: var(--ag-icon-font-code-group, '\\f118');\n}\n\n.ag-icon-last::before {\n content: var(--ag-icon-font-code-last, '\\f119');\n}\n\n.ag-icon-left::before {\n content: var(--ag-icon-font-code-left, '\\f11a');\n}\n\n.ag-icon-linked::before {\n content: var(--ag-icon-font-code-linked, '\\f11b');\n}\n\n.ag-icon-loading::before {\n content: var(--ag-icon-font-code-loading, '\\f11c');\n}\n\n.ag-icon-maximize::before {\n content: var(--ag-icon-font-code-maximize, '\\f11d');\n}\n\n.ag-icon-menu::before {\n content: var(--ag-icon-font-code-menu, '\\f11e');\n}\n\n.ag-icon-minimize::before {\n content: var(--ag-icon-font-code-minimize, '\\f11f');\n}\n\n.ag-icon-next::before {\n content: var(--ag-icon-font-code-next, '\\f120');\n}\n\n.ag-icon-none::before {\n content: var(--ag-icon-font-code-none, '\\f121');\n}\n\n.ag-icon-not-allowed::before {\n content: var(--ag-icon-font-code-not-allowed, '\\f122');\n}\n\n.ag-icon-paste::before {\n content: var(--ag-icon-font-code-paste, '\\f123');\n}\n\n.ag-icon-pin::before {\n content: var(--ag-icon-font-code-pin, '\\f124');\n}\n\n.ag-icon-pivot::before {\n content: var(--ag-icon-font-code-pivot, '\\f125');\n}\n\n.ag-icon-previous::before {\n content: var(--ag-icon-font-code-previous, '\\f126');\n}\n\n.ag-icon-radio-button-off::before {\n content: var(--ag-icon-font-code-radio-button-off, '\\f127');\n}\n\n.ag-icon-radio-button-on::before {\n content: var(--ag-icon-font-code-radio-button-on, '\\f128');\n}\n\n.ag-icon-right::before {\n content: var(--ag-icon-font-code-right, '\\f129');\n}\n\n.ag-icon-save::before {\n content: var(--ag-icon-font-code-save, '\\f12a');\n}\n\n.ag-icon-small-down::before {\n content: var(--ag-icon-font-code-small-down, '\\f12b');\n}\n\n.ag-icon-small-left::before {\n content: var(--ag-icon-font-code-small-left, '\\f12c');\n}\n\n.ag-icon-small-right::before {\n content: var(--ag-icon-font-code-small-right, '\\f12d');\n}\n\n.ag-icon-small-up::before {\n content: var(--ag-icon-font-code-small-up, '\\f12e');\n}\n\n.ag-icon-tick::before {\n content: var(--ag-icon-font-code-tick, '\\f12f');\n}\n\n.ag-icon-tree-closed::before {\n content: var(--ag-icon-font-code-tree-closed, '\\f130');\n}\n\n.ag-icon-tree-indeterminate::before {\n content: var(--ag-icon-font-code-tree-indeterminate, '\\f131');\n}\n\n.ag-icon-tree-open::before {\n content: var(--ag-icon-font-code-tree-open, '\\f132');\n}\n\n.ag-icon-unlinked::before {\n content: var(--ag-icon-font-code-unlinked, '\\f133');\n}\n\n.ag-icon-row-drag::before {\n content: var(--ag-icon-font-code-grip);\n}\n\n.ag-left-arrow::before {\n content: var(--ag-icon-font-code-left);\n}\n\n.ag-right-arrow::before {\n content: var(--ag-icon-font-code-right);\n}\n\n[class*='ag-theme-'] {\n --ag-foreground-color: #000;\n --ag-data-color: var(--ag-foreground-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-header-foreground-color: var(--ag-secondary-foreground-color);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.5);\n --ag-background-color: #fff;\n --ag-header-background-color: transparent;\n --ag-tooltip-background-color: transparent;\n --ag-subheader-background-color: transparent;\n --ag-subheader-toolbar-background-color: transparent;\n --ag-control-panel-background-color: transparent;\n --ag-side-button-selected-background-color: var(--ag-control-panel-background-color);\n --ag-selected-row-background-color: #bbb;\n --ag-odd-row-background-color: var(--ag-background-color);\n --ag-modal-overlay-background-color: rgba(255, 255, 255, 0.66);\n --ag-row-hover-color: transparent;\n --ag-column-hover-color: transparent;\n --ag-range-selection-border-color: var(--ag-foreground-color);\n --ag-range-selection-border-style: solid;\n --ag-range-selection-background-color: rgba(0, 0, 0, 0.2);\n --ag-range-selection-background-color-2: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-3: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-4: var(--ag-range-selection-background-color);\n --ag-range-selection-highlight-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-width: 0;\n --ag-selected-tab-underline-transition-speed: 0s;\n --ag-range-selection-chart-category-background-color: rgba(0, 255, 132, 0.1);\n --ag-range-selection-chart-background-color: rgba(0, 88, 255, 0.1);\n --ag-header-cell-hover-background-color: transparent;\n --ag-header-cell-moving-background-color: var(--ag-background-color);\n --ag-value-change-value-highlight-background-color: rgba(22, 160, 133, 0.5);\n --ag-value-change-delta-up-color: #43a047;\n --ag-value-change-delta-down-color: #e53935;\n --ag-chip-background-color: transparent;\n --ag-borders: solid 1px;\n --ag-border-color: rgba(0, 0, 0, 0.25);\n --ag-borders-critical: var(--ag-borders);\n --ag-borders-secondary: var(--ag-borders);\n --ag-secondary-border-color: var(--ag-border-color);\n --ag-row-border-style: solid;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-row-border-width: 1px;\n --ag-cell-horizontal-border: solid transparent;\n --ag-borders-input: var(--ag-borders-secondary);\n --ag-input-border-color: var(--ag-secondary-border-color);\n --ag-borders-input-invalid: solid 2px;\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-borders-side-button: var(--ag-borders);\n --ag-border-radius: 0px;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-header-column-separator-display: none;\n --ag-header-column-separator-height: 100%;\n --ag-header-column-separator-width: 1px;\n --ag-header-column-separator-color: var(--ag-secondary-border-color);\n --ag-header-column-resize-handle-display: none;\n --ag-header-column-resize-handle-height: 50%;\n --ag-header-column-resize-handle-width: 1px;\n --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);\n --ag-invalid-color: red;\n --ag-input-disabled-border-color: var(--ag-input-border-color);\n --ag-input-disabled-background-color: transparent;\n --ag-checkbox-background-color: transparent;\n --ag-checkbox-border-radius: var(--ag-border-radius);\n --ag-checkbox-checked-color: var(--ag-foreground-color);\n --ag-checkbox-unchecked-color: var(--ag-foreground-color);\n --ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-switch-background-color: var(--ag-background-color);\n --ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);\n --ag-toggle-button-border-width: 1px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);\n --ag-input-focus-box-shadow: none;\n --ag-input-focus-border-color: none;\n --ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);\n --ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);\n --ag-grid-size: 4px;\n --ag-icon-size: 12px;\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: var(--ag-grid-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);\n --ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);\n --ag-header-height: var(--ag-row-height);\n --ag-list-item-height: calc(var(--ag-grid-size) * 5);\n --ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));\n --ag-filter-tool-panel-group-indent: 16px;\n --ag-tab-min-width: 220px;\n --ag-menu-min-width: 181px;\n --ag-side-bar-panel-width: 200px;\n --ag-font-family: 'Helvetica Neue', sans-serif;\n --ag-font-size: 14px;\n --ag-card-radius: var(--ag-border-radius);\n --ag-card-shadow: none;\n --ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);\n}\n\n.ag-root-wrapper,\n.ag-sticky-top,\n.ag-dnd-ghost {\n background-color: var(--ag-background-color);\n}\n\n[class*='ag-theme-'] {\n -webkit-font-smoothing: antialiased;\n font-family: var(--ag-font-family);\n font-size: var(--ag-font-size);\n line-height: normal;\n color: var(--ag-foreground-color);\n}\n\nag-grid,\nag-grid-angular,\nag-grid-ng2,\nag-grid-polymer,\nag-grid-aurelia {\n display: block;\n}\n\n.ag-hidden {\n display: none !important;\n}\n\n.ag-invisible {\n visibility: hidden !important;\n}\n\n.ag-no-transition {\n transition: none !important;\n}\n\n.ag-drag-handle {\n cursor: grab;\n}\n\n.ag-column-drop-wrapper {\n display: flex;\n}\n\n.ag-column-drop-horizontal-half-width {\n display: inline-block;\n width: 50% !important;\n}\n\n.ag-unselectable {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-selectable {\n -moz-user-select: text;\n -webkit-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.ag-tab {\n position: relative;\n}\n\n.ag-tab-guard {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n}\n\n.ag-select-agg-func-popup {\n position: absolute;\n}\n\n.ag-input-wrapper,\n.ag-picker-field-wrapper {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n line-height: normal;\n position: relative;\n}\n\n.ag-shake-left-to-right {\n animation-direction: alternate;\n animation-duration: 0.2s;\n animation-iteration-count: infinite;\n animation-name: ag-shake-left-to-right;\n}\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px;\n }\n to {\n padding-left: 2px;\n padding-right: 6px;\n }\n}\n.ag-root-wrapper {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n /* overflow: hidden; */\n}\n.ag-root-wrapper.ag-layout-normal {\n height: 100%;\n}\n\n.ag-watermark {\n position: absolute;\n bottom: 20px;\n right: 25px;\n opacity: 0.5;\n transition: opacity 1s ease-out 3s;\n}\n.ag-watermark::before {\n content: '';\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);\n background-repeat: no-repeat;\n background-size: 170px 40px;\n display: block;\n height: 40px;\n width: 170px;\n opacity: 0.5;\n}\n\n.ag-watermark-text {\n opacity: 0.5;\n font-weight: bold;\n font-family: Impact, sans-serif;\n font-size: 19px;\n padding-left: 0.7rem;\n}\n\n.ag-root-wrapper-body {\n display: flex;\n flex-direction: row;\n}\n.ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0;\n}\n\n.ag-root {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.ag-root.ag-layout-normal,\n.ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0;\n}\n.ag-root.ag-layout-normal {\n height: 100%;\n}\n\n.ag-header-viewport,\n.ag-floating-top-viewport,\n.ag-body-viewport,\n.ag-center-cols-viewport,\n.ag-floating-bottom-viewport,\n.ag-body-horizontal-scroll-viewport,\n.ag-body-vertical-scroll-viewport,\n.ag-virtual-list-viewport,\n.ag-sticky-top-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-body-viewport {\n display: flex;\n}\n.ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll;\n}\n\n.ag-body-vertical-scroll-viewport {\n overflow-y: scroll;\n}\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-body-container,\n.ag-pinned-right-cols-container,\n.ag-center-cols-container,\n.ag-pinned-left-cols-container,\n.ag-floating-bottom-container,\n.ag-body-horizontal-scroll-container,\n.ag-body-vertical-scroll-container,\n.ag-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container,\n.ag-sticky-top-container {\n position: relative;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container,\n.ag-sticky-top-container {\n height: 100%;\n white-space: nowrap;\n}\n\n.ag-center-cols-container {\n display: block;\n}\n\n.ag-pinned-right-cols-container {\n display: block;\n}\n\n.ag-body-horizontal-scroll-container {\n height: 100%;\n}\n\n.ag-body-vertical-scroll-container {\n width: 100%;\n}\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-sticky-top-full-width-container {\n position: absolute;\n top: 0px;\n pointer-events: none;\n}\n.ag-ltr .ag-full-width-container,\n.ag-ltr .ag-floating-top-full-width-container,\n.ag-ltr .ag-floating-bottom-full-width-container,\n.ag-ltr .ag-sticky-top-full-width-container {\n left: 0;\n}\n.ag-rtl .ag-full-width-container,\n.ag-rtl .ag-floating-top-full-width-container,\n.ag-rtl .ag-floating-bottom-full-width-container,\n.ag-rtl .ag-sticky-top-full-width-container {\n right: 0;\n}\n\n.ag-floating-bottom-full-width-container,\n.ag-floating-top-full-width-container {\n display: inline-block;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n\n.ag-virtual-list-container {\n overflow: hidden;\n}\n\n.ag-center-cols-clipper {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n min-height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n flex-direction: row !important;\n min-height: 0;\n}\n\n.ag-body-clipper {\n overflow: hidden;\n min-width: 0px;\n flex: 1 1 auto;\n height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body-horizontal-scroll,\n.ag-body-vertical-scroll {\n min-height: 0;\n min-width: 0;\n display: flex;\n position: relative;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible,\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n position: absolute;\n bottom: 0;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar {\n opacity: 0;\n transition: opacity 400ms;\n visibility: hidden;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active {\n visibility: visible;\n opacity: 1;\n}\n\n.ag-body-horizontal-scroll {\n width: 100%;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible {\n left: 0;\n right: 0;\n}\n\n.ag-body-vertical-scroll {\n height: 100%;\n}\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n top: 0;\n z-index: 10;\n}\n.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible {\n right: 0;\n}\n.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible {\n left: 0;\n}\n\n.ag-force-vertical-scroll {\n overflow-y: scroll !important;\n}\n\n.ag-horizontal-left-spacer,\n.ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n overflow-x: scroll;\n}\n.ag-horizontal-left-spacer.ag-scroller-corner,\n.ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden;\n}\n\n.ag-header,\n.ag-pinned-left-header,\n.ag-pinned-right-header {\n display: inline-block;\n overflow: hidden;\n position: relative;\n}\n\n.ag-header-cell-sortable .ag-header-cell-label {\n cursor: pointer;\n}\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap;\n background-color: var(--primary-color);\n}\n\n.ag-pinned-left-header {\n height: 100%;\n}\n\n.ag-pinned-right-header {\n height: 100%;\n}\n\n.ag-header-row {\n position: absolute;\n}\n\n.ag-header-row:not(.ag-header-row-column-group) {\n overflow: hidden;\n}\n\n.ag-header.ag-header-allow-overflow .ag-header-row {\n overflow: visible;\n}\n\n.ag-header-cell {\n display: inline-flex;\n align-items: center;\n position: absolute;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell.ag-header-active .ag-header-cell-menu-button {\n opacity: 1;\n}\n\n.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n.ag-header-group-cell-label,\n.ag-header-cell-label {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n align-items: center;\n text-overflow: ellipsis;\n align-self: stretch;\n}\n\n.ag-header-group-cell-label.ag-sticky-label {\n position: sticky;\n flex: none;\n max-width: 100%;\n}\n\n.ag-header-cell-text {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-comp-wrapper {\n width: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper {\n white-space: normal;\n}\n\n.ag-right-aligned-header .ag-header-cell-label {\n flex-direction: row-reverse;\n}\n\n.ag-header-group-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-header-cell-resize {\n position: absolute;\n z-index: 2;\n height: 100%;\n width: 8px;\n top: 0;\n cursor: ew-resize;\n}\n.ag-ltr .ag-header-cell-resize {\n right: -4px;\n}\n.ag-rtl .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-pinned-left-header .ag-header-cell-resize {\n right: -4px;\n}\n\n.ag-pinned-right-header .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-header-select-all {\n display: flex;\n}\n\n.ag-column-moving .ag-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-group-cell {\n transition: left 0.2s, width 0.2s;\n}\n\n.ag-column-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-column-select {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 3 1 0px;\n}\n\n.ag-column-select-header {\n position: relative;\n display: flex;\n flex: none;\n}\n\n.ag-column-select-header-icon {\n position: relative;\n}\n\n.ag-column-select-header-filter-wrapper {\n flex: 1 1 auto;\n}\n\n.ag-column-select-header-filter {\n width: 100%;\n}\n\n.ag-column-select-list {\n flex: 1 1 0px;\n overflow: hidden;\n}\n\n.ag-column-drop {\n position: relative;\n display: inline-flex;\n align-items: center;\n overflow: auto;\n width: 100%;\n}\n\n.ag-column-drop-list {\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell-text {\n overflow: hidden;\n flex: 1 1 auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n align-items: stretch;\n flex: 1 1 0px;\n}\n\n.ag-column-drop-vertical-title-bar {\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-column-drop-vertical-list {\n position: relative;\n align-items: stretch;\n flex-grow: 1;\n flex-direction: column;\n overflow-x: auto;\n}\n.ag-column-drop-vertical-list > * {\n flex: none;\n}\n\n.ag-column-drop-empty .ag-column-drop-vertical-list {\n overflow: hidden;\n}\n\n.ag-column-drop-vertical-empty-message {\n display: block;\n}\n\n.ag-column-drop.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-column-drop-cell-button {\n cursor: pointer;\n}\n\n.ag-filter-toolpanel {\n flex: 1 1 0px;\n min-width: 0;\n}\n\n.ag-filter-toolpanel-header {\n position: relative;\n}\n\n.ag-filter-toolpanel-header,\n.ag-filter-toolpanel-search {\n display: flex;\n align-items: center;\n}\n.ag-filter-toolpanel-header > *,\n.ag-filter-toolpanel-search > * {\n display: flex;\n align-items: center;\n}\n\n.ag-filter-apply-panel {\n display: flex;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n.ag-row-animation .ag-row {\n transition: transform 0.4s, top 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-animation .ag-row.ag-after-created {\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s;\n}\n\n.ag-row {\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-row-loading {\n display: flex;\n align-items: center;\n}\n\n.ag-row-position-absolute {\n position: absolute;\n}\n\n.ag-row-position-relative {\n position: relative;\n}\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all;\n}\n\n.ag-row-inline-editing {\n z-index: 1;\n}\n\n.ag-row-dragging {\n z-index: 2;\n}\n\n.ag-stub-cell {\n display: flex;\n align-items: center;\n}\n\n.ag-cell {\n display: inline-block;\n position: absolute;\n white-space: nowrap;\n height: 100%;\n}\n\n.ag-cell-value {\n flex: 1 1 auto;\n min-height: 36px;\n}\n\n.ag-cell-value,\n.ag-group-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-cell-wrap-text {\n white-space: normal;\n word-break: break-all;\n}\n\n.ag-cell-wrapper {\n display: flex;\n align-items: center;\n}\n.ag-cell-wrapper.ag-row-group {\n align-items: flex-start;\n}\n\n.ag-sparkline-wrapper {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n height: 100%;\n align-items: center;\n}\n\n.ag-cell-inline-editing {\n z-index: 1;\n}\n.ag-cell-inline-editing .ag-cell-wrapper,\n.ag-cell-inline-editing .ag-cell-edit-wrapper,\n.ag-cell-inline-editing .ag-cell-editor,\n.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,\n.ag-cell-inline-editing .ag-cell-editor input {\n height: 100%;\n width: 100%;\n line-height: normal;\n}\n\n.ag-cell .ag-icon {\n display: inline-block;\n vertical-align: middle;\n}\n\n.ag-set-filter-item {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.ag-set-filter-item-checkbox {\n display: flex;\n overflow: hidden;\n}\n\n.ag-set-filter-group-icons {\n display: block;\n}\n.ag-set-filter-group-icons > * {\n cursor: pointer;\n}\n\n.ag-filter-body-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ag-filter-filter {\n flex: 1 1 0px;\n}\n\n.ag-filter-condition {\n display: flex;\n justify-content: center;\n}\n\n.ag-advanced-filter-header {\n position: relative;\n display: flex;\n align-items: center;\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-advanced-filter {\n display: flex;\n align-items: center;\n width: 100%;\n}\n\n.ag-advanced-filter-apply-button {\n line-height: normal;\n}\n.ag-ltr .ag-advanced-filter-apply-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-advanced-filter-apply-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-floating-filter-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.ag-floating-filter-full-body {\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n align-items: center;\n overflow: hidden;\n}\n\n.ag-floating-filter-full-body > div {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input {\n align-items: center;\n display: flex;\n width: 100%;\n}\n.ag-floating-filter-input > * {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-button {\n display: flex;\n flex: none;\n}\n\n.ag-set-floating-filter-input input[disabled] {\n pointer-events: none;\n}\n\n.ag-dnd-ghost {\n position: absolute;\n display: inline-flex;\n align-items: center;\n cursor: move;\n white-space: nowrap;\n z-index: 9999;\n}\n\n.ag-overlay {\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.ag-overlay-panel {\n display: flex;\n height: 100%;\n width: 100%;\n}\n\n.ag-overlay-wrapper {\n display: flex;\n flex: none;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.ag-overlay-loading-wrapper {\n pointer-events: all;\n}\n\n.ag-popup-child {\n z-index: 5;\n top: 0;\n}\n\n.ag-popup-editor {\n position: absolute;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-large-text-input {\n display: block;\n}\n\n.ag-virtual-list-item {\n position: absolute;\n width: 100%;\n}\n\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-sticky-top {\n position: absolute;\n display: flex;\n width: 100%;\n}\n\n.ag-pinned-left-sticky-top,\n.ag-pinned-right-sticky-top {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-sticky-top-full-width-container {\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-dialog,\n.ag-panel {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.ag-panel-title-bar {\n display: flex;\n flex: none;\n align-items: center;\n cursor: default;\n}\n\n.ag-panel-title-bar-title {\n flex: 1 1 auto;\n}\n\n.ag-panel-title-bar-buttons {\n display: flex;\n}\n\n.ag-panel-title-bar-button {\n cursor: pointer;\n}\n\n.ag-panel-content-wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n}\n\n.ag-dialog {\n position: absolute;\n}\n\n.ag-resizer {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ag-resizer.ag-resizer-topLeft {\n top: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-top {\n top: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-topRight {\n top: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-right {\n top: 5px;\n right: 0;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n.ag-resizer.ag-resizer-bottomRight {\n bottom: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-bottom {\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-bottomLeft {\n bottom: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-left {\n left: 0;\n top: 5px;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n\n.ag-tooltip {\n position: absolute;\n z-index: 99999;\n}\n\n.ag-tooltip-custom {\n position: absolute;\n z-index: 99999;\n}\n\n.ag-tooltip:not(.ag-tooltip-interactive),\n.ag-tooltip-custom:not(.ag-tooltip-interactive) {\n pointer-events: none;\n}\n\n.ag-value-slide-out {\n margin-right: 5px;\n opacity: 1;\n transition: opacity 3s, margin-right 3s;\n transition-timing-function: linear;\n}\n\n.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0;\n}\n\n.ag-opacity-zero {\n opacity: 0 !important;\n}\n\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto;\n}\n.ag-menu-column-select-wrapper .ag-column-select {\n height: 100%;\n}\n\n.ag-menu-list {\n display: table;\n width: 100%;\n}\n\n.ag-menu-option,\n.ag-menu-separator {\n display: table-row;\n}\n\n.ag-menu-option-part,\n.ag-menu-separator-part {\n display: table-cell;\n vertical-align: middle;\n}\n\n.ag-menu-option-text {\n white-space: nowrap;\n}\n\n.ag-compact-menu-option {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n}\n\n.ag-compact-menu-option-text {\n white-space: nowrap;\n flex: 1 1 auto;\n}\n\n.ag-rich-select {\n cursor: default;\n outline: none;\n height: 100%;\n}\n\n.ag-rich-select-value {\n display: flex;\n align-items: center;\n height: 100%;\n}\n.ag-rich-select-value .ag-picker-field-display {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-rich-select-list {\n position: relative;\n}\n\n.ag-rich-select-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n height: 100%;\n}\n\n.ag-autocomplete {\n align-items: center;\n display: flex;\n}\n.ag-autocomplete > * {\n flex: 1 1 auto;\n}\n\n.ag-autocomplete-list-popup {\n position: absolute;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-autocomplete-list {\n position: relative;\n}\n\n.ag-autocomplete-virtual-list-item {\n display: flex;\n}\n\n.ag-autocomplete-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n overflow: hidden;\n}\n\n.ag-autocomplete-row-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-paging-panel {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n}\n\n.ag-paging-page-summary-panel {\n display: flex;\n align-items: center;\n}\n\n.ag-paging-button {\n position: relative;\n}\n\n.ag-disabled .ag-paging-page-summary-panel {\n pointer-events: none;\n}\n\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: default;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-column-select-column,\n.ag-column-select-column-group,\n.ag-select-agg-func-item {\n position: relative;\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n height: 100%;\n}\n.ag-column-select-column > *,\n.ag-column-select-column-group > *,\n.ag-select-agg-func-item > * {\n flex: none;\n}\n\n.ag-select-agg-func-item,\n.ag-column-select-column-label {\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-column-select-checkbox {\n display: flex;\n}\n\n.ag-tool-panel-horizontal-resize {\n cursor: ew-resize;\n height: 100%;\n position: absolute;\n top: 0;\n width: 5px;\n z-index: 1;\n}\n\n.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n\n.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n\n.ag-details-row {\n width: 100%;\n}\n\n.ag-details-row-fixed-height {\n height: 100%;\n}\n\n.ag-details-grid {\n width: 100%;\n}\n\n.ag-details-grid-fixed-height {\n height: 100%;\n}\n\n.ag-header-group-cell {\n display: flex;\n align-items: center;\n height: 100%;\n position: absolute;\n}\n\n.ag-header-group-cell-no-group.ag-header-span-height .ag-header-cell-resize {\n display: none;\n}\n\n.ag-cell-label-container {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 5px 0px;\n}\n\n.ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row;\n}\n.ag-right-aligned-header .ag-header-cell-text {\n text-align: end;\n}\n\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.ag-side-bar-left {\n order: -1;\n flex-direction: row;\n}\n\n.ag-side-button-button {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: nowrap;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n\n.ag-side-button-label {\n writing-mode: vertical-lr;\n}\n\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n}\n\n.ag-status-panel {\n display: inline-flex;\n}\n\n.ag-status-name-value {\n white-space: nowrap;\n}\n\n.ag-status-bar-left {\n display: inline-flex;\n}\n\n.ag-status-bar-center {\n display: inline-flex;\n}\n\n.ag-status-bar-right {\n display: inline-flex;\n}\n\n.ag-icon {\n display: block;\n speak: none;\n}\n\n.ag-group {\n position: relative;\n width: 100%;\n}\n\n.ag-group-title-bar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-title {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.ag-group-title-bar .ag-group-title {\n cursor: default;\n}\n\n.ag-group-toolbar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-container {\n display: flex;\n}\n\n.ag-disabled .ag-group-container {\n pointer-events: none;\n}\n\n.ag-group-container-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.ag-group-container-vertical {\n flex-direction: column;\n}\n\n.ag-column-group-icons {\n display: block;\n}\n.ag-column-group-icons > * {\n cursor: pointer;\n}\n\n.ag-group-item-alignment-stretch .ag-group-item {\n align-items: stretch;\n}\n\n.ag-group-item-alignment-start .ag-group-item {\n align-items: flex-start;\n}\n\n.ag-group-item-alignment-end .ag-group-item {\n align-items: flex-end;\n}\n\n.ag-toggle-button-icon {\n transition: right 0.3s;\n position: absolute;\n top: -1px;\n}\n\n.ag-input-field,\n.ag-select {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ag-input-field-input {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input .ag-input-field-input[type='date'] {\n width: 1px;\n}\n\n.ag-range-field {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select-wrapper {\n display: flex;\n}\n\n.ag-angle-select-parent-circle {\n display: block;\n position: relative;\n}\n\n.ag-angle-select-child-circle {\n position: absolute;\n}\n\n.ag-slider-wrapper {\n display: flex;\n}\n.ag-slider-wrapper .ag-input-field {\n flex: 1 1 auto;\n}\n\n.ag-picker-field-display {\n flex: 1 1 auto;\n}\n\n.ag-picker-field {\n display: flex;\n align-items: center;\n}\n\n.ag-picker-field-icon {\n display: flex;\n border: 0;\n padding: 0;\n margin: 0;\n cursor: pointer;\n}\n\n.ag-picker-field-wrapper {\n overflow: hidden;\n}\n\n.ag-label-align-right .ag-label {\n order: 1;\n}\n.ag-label-align-right > * {\n flex: none;\n}\n\n.ag-label-align-top {\n flex-direction: column;\n align-items: flex-start;\n}\n.ag-label-align-top > * {\n align-self: stretch;\n}\n\n.ag-label-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.ag-color-panel {\n width: 100%;\n display: flex;\n flex-direction: column;\n text-align: center;\n}\n\n.ag-spectrum-color {\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n\n.ag-spectrum-fill {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-spectrum-val {\n cursor: pointer;\n}\n\n.ag-spectrum-dragger {\n position: absolute;\n pointer-events: none;\n cursor: pointer;\n}\n\n.ag-spectrum-hue {\n cursor: default;\n background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\n}\n\n.ag-spectrum-alpha {\n cursor: default;\n}\n\n.ag-spectrum-hue-background {\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-alpha-background {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-tool {\n cursor: pointer;\n}\n\n.ag-spectrum-slider {\n position: absolute;\n pointer-events: none;\n}\n\n.ag-recent-colors {\n display: flex;\n}\n\n.ag-recent-color {\n cursor: pointer;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr {\n direction: ltr;\n}\n.ag-ltr .ag-body,\n.ag-ltr .ag-floating-top,\n.ag-ltr .ag-floating-bottom,\n.ag-ltr .ag-header,\n.ag-ltr .ag-sticky-top,\n.ag-ltr .ag-body-viewport,\n.ag-ltr .ag-body-horizontal-scroll {\n flex-direction: row;\n}\n\n.ag-rtl {\n direction: rtl;\n}\n.ag-rtl .ag-body,\n.ag-rtl .ag-floating-top,\n.ag-rtl .ag-floating-bottom,\n.ag-rtl .ag-header,\n.ag-rtl .ag-sticky-top,\n.ag-rtl .ag-body-viewport,\n.ag-rtl .ag-body-horizontal-scroll {\n flex-direction: row-reverse;\n}\n.ag-rtl .ag-icon-contracted,\n.ag-rtl .ag-icon-expanded,\n.ag-rtl .ag-icon-tree-closed {\n display: block;\n transform: rotate(180deg);\n}\n\n.ag-body .ag-body-viewport {\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n}\n\n.ag-layout-print.ag-body {\n display: block;\n height: unset;\n}\n.ag-layout-print.ag-body-clipper {\n height: unset;\n}\n.ag-layout-print.ag-root-wrapper {\n display: inline-flex;\n}\n.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%;\n}\n.ag-layout-print .ag-body-vertical-scroll {\n display: none;\n}\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none;\n}\n.ag-layout-print.ag-force-vertical-scroll {\n overflow-y: visible !important;\n}\n\n@media print {\n .ag-root-wrapper.ag-layout-print {\n display: table;\n }\n .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,\n .ag-root-wrapper.ag-layout-print .ag-root,\n .ag-root-wrapper.ag-layout-print .ag-body-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-container,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-clipper,\n .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,\n .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {\n height: auto !important;\n overflow: hidden !important;\n display: block !important;\n }\n .ag-root-wrapper.ag-layout-print .ag-row,\n .ag-root-wrapper.ag-layout-print .ag-cell {\n break-inside: avoid;\n }\n}\n[class^='ag-'],\n[class^='ag-']:focus,\n[class^='ag-']:after,\n[class^='ag-']:before {\n box-sizing: border-box;\n outline: none;\n}\n\n[class^='ag-']::-ms-clear {\n display: none;\n}\n\n.ag-checkbox .ag-input-wrapper,\n.ag-radio-button .ag-input-wrapper {\n overflow: visible;\n}\n\n.ag-range-field .ag-input-wrapper {\n height: 100%;\n}\n\n.ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset;\n}\n\n.ag-button {\n border-radius: 0px;\n color: var(--ag-foreground-color);\n}\n\n.ag-button:hover {\n background-color: transparent;\n}\n\n.ag-ltr .ag-label-align-right .ag-label {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-label-align-right .ag-label {\n margin-right: var(--ag-grid-size);\n}\n\ninput[class^='ag-'] {\n margin: 0;\n background-color: var(--ag-background-color);\n}\n\ntextarea[class^='ag-'],\nselect[class^='ag-'] {\n background-color: var(--ag-background-color);\n}\n\ninput[class^='ag-']:not([type]),\ninput[class^='ag-'][type='text'],\ninput[class^='ag-'][type='number'],\ninput[class^='ag-'][type='tel'],\ninput[class^='ag-'][type='date'],\ninput[class^='ag-'][type='datetime-local'],\ntextarea[class^='ag-'] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border: var(--ag-borders-input) var(--ag-input-border-color);\n}\ninput[class^='ag-']:not([type]):disabled,\ninput[class^='ag-'][type='text']:disabled,\ninput[class^='ag-'][type='number']:disabled,\ninput[class^='ag-'][type='tel']:disabled,\ninput[class^='ag-'][type='date']:disabled,\ninput[class^='ag-'][type='datetime-local']:disabled,\ntextarea[class^='ag-']:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\ninput[class^='ag-']:not([type]):focus,\ninput[class^='ag-'][type='text']:focus,\ninput[class^='ag-'][type='number']:focus,\ninput[class^='ag-'][type='tel']:focus,\ninput[class^='ag-'][type='date']:focus,\ninput[class^='ag-'][type='datetime-local']:focus,\ntextarea[class^='ag-']:focus {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-input-focus-border-color);\n}\ninput[class^='ag-']:not([type]):invalid,\ninput[class^='ag-'][type='text']:invalid,\ninput[class^='ag-'][type='number']:invalid,\ninput[class^='ag-'][type='tel']:invalid,\ninput[class^='ag-'][type='date']:invalid,\ninput[class^='ag-'][type='datetime-local']:invalid,\ntextarea[class^='ag-']:invalid {\n border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);\n}\n\ninput[class^='ag-'][type='number']:not(.ag-number-field-input-stepper) {\n -moz-appearance: textfield;\n}\ninput[class^='ag-'][type='number']:not(.ag-number-field-input-stepper)::-webkit-outer-spin-button,\ninput[class^='ag-'][type='number']:not(.ag-number-field-input-stepper)::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[class^='ag-'][type='range'] {\n padding: 0;\n}\n\ninput[class^='ag-'][type='button']:focus,\nbutton[class^='ag-']:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-drag-handle {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-list-item,\n.ag-virtual-list-item {\n height: var(--ag-list-item-height);\n}\n\n.ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-virtual-list-item:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-select-list {\n background-color: var(--ag-background-color);\n overflow-y: auto;\n overflow-x: hidden;\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-select-list-item {\n padding-left: 4px;\n padding-right: 4px;\n cursor: default;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ag-row-drag,\n.ag-selection-checkbox,\n.ag-group-expanded,\n.ag-group-contracted {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-ltr .ag-row-drag,\n.ag-ltr .ag-selection-checkbox,\n.ag-ltr .ag-group-expanded,\n.ag-ltr .ag-group-contracted {\n margin-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-row-drag,\n.ag-rtl .ag-selection-checkbox,\n.ag-rtl .ag-group-expanded,\n.ag-rtl .ag-group-contracted {\n margin-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-group-expanded,\n.ag-group-contracted {\n cursor: pointer;\n}\n\n.ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-ltr .ag-group-child-count {\n margin-left: 2px;\n}\n.ag-rtl .ag-group-child-count {\n margin-right: 2px;\n}\n\n.ag-group-title-bar {\n background-color: var(--ag-subheader-background-color);\n padding: var(--ag-grid-size);\n}\n\n.ag-group-toolbar {\n padding: var(--ag-grid-size);\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n\n.ag-disabled-group-title-bar,\n.ag-disabled-group-container {\n opacity: 0.5;\n}\n\n.group-item {\n margin: calc(var(--ag-grid-size) * 0.5) 0;\n}\n\n.ag-label {\n white-space: nowrap;\n}\n.ag-ltr .ag-label {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-label {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-label-align-top .ag-label {\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-angle-select[disabled] {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n.ag-angle-select[disabled] .ag-angle-select-field {\n opacity: 0.4;\n}\n\n.ag-ltr .ag-slider-field,\n.ag-ltr .ag-angle-select-field {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-slider-field,\n.ag-rtl .ag-angle-select-field {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: var(--ag-border-color);\n background-color: var(--ag-background-color);\n}\n\n.ag-angle-select-child-circle {\n top: 4px;\n left: 12px;\n width: 6px;\n height: 6px;\n margin-left: -3px;\n margin-top: -4px;\n border-radius: 3px;\n background-color: var(--ag-secondary-foreground-color);\n}\n\n.ag-picker-field-wrapper {\n border: var(--ag-borders);\n border-color: var(--ag-border-color);\n border-radius: 5px;\n}\n.ag-picker-field-wrapper:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-picker-field-wrapper.ag-picker-has-focus,\n.ag-picker-field-wrapper:focus {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-picker-field-button {\n background-color: var(--ag-background-color);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-dialog.ag-color-dialog {\n border-radius: 5px;\n}\n\n.ag-color-picker .ag-picker-field-display {\n height: var(--ag-icon-size);\n}\n\n.ag-color-panel {\n padding: var(--ag-grid-size);\n}\n\n.ag-spectrum-color {\n background-color: rgb(255, 0, 0);\n border-radius: 2px;\n}\n\n.ag-spectrum-tools {\n padding: 10px;\n}\n\n.ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-dragger {\n border-radius: 12px;\n height: 12px;\n width: 12px;\n border: 1px solid white;\n background: black;\n box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);\n}\n\n.ag-spectrum-hue-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-alpha-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px;\n}\n\n.ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: rgb(248, 248, 248);\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n}\n\n.ag-recent-color {\n margin: 0 3px;\n}\n.ag-recent-color:first-child {\n margin-left: 0;\n}\n.ag-recent-color:last-child {\n margin-right: 0;\n}\n\n.ag-spectrum-color:focus-visible:not(:disabled):not([readonly]),\n.ag-spectrum-slider:focus-visible:not(:disabled):not([readonly]),\n.ag-recent-color:focus-visible:not(:disabled):not([readonly]) {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-dnd-ghost {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n overflow: hidden;\n text-overflow: ellipsis;\n border: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height) !important;\n line-height: var(--ag-header-height);\n margin: 0;\n padding: 0 calc(var(--ag-grid-size) * 2);\n transform: translateY(calc(var(--ag-grid-size) * 2));\n}\n\n.ag-dnd-ghost-icon {\n margin-right: var(--ag-grid-size);\n color: var(--ag-foreground-color);\n}\n\n.ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: var(--ag-popup-shadow);\n}\n\n.ag-select .ag-picker-field-wrapper {\n background-color: var(--ag-background-color);\n min-height: var(--ag-list-item-height);\n cursor: default;\n}\n.ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none;\n}\n.ag-select:not(.ag-cell-editor, .ag-label-align-top) {\n height: var(--ag-list-item-height);\n}\n.ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center;\n}\n.ag-select.ag-disabled {\n opacity: 0.5;\n}\n\n.ag-rich-select-value,\n.ag-rich-select-list {\n background-color: var(--ag-background-color);\n}\n\n.ag-rich-select-list {\n width: 100%;\n height: auto;\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n max-height: calc(var(--ag-row-height) * 6.5);\n}\n\n.ag-rich-select-value {\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-ltr .ag-rich-select-value {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-value {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-ltr .ag-rich-select-value {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-rich-select-value {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-popup-editor .ag-rich-select-value {\n height: var(--ag-row-height);\n min-width: 200px;\n}\n\n.ag-rich-select-virtual-list-item {\n cursor: default;\n height: var(--ag-list-item-height);\n}\n.ag-keyboard-focus .ag-rich-select-virtual-list-item:focus::after {\n content: none;\n}\n.ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-ltr .ag-rich-select-row {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-row {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rich-select-row-selected {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-autocomplete {\n width: 100%;\n}\n\n.ag-autocomplete-list {\n width: 100%;\n min-width: 200px;\n height: calc(var(--ag-row-height) * 6.5);\n}\n\n.ag-autocomplete-virtual-list-item {\n cursor: default;\n height: var(--ag-list-item-height);\n}\n.ag-keyboard-focus .ag-autocomplete-virtual-list-item:focus::after {\n content: none;\n}\n.ag-autocomplete-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-autocomplete-row-label {\n margin: 0px var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-autocomplete-row-selected {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-dragging-range-handle .ag-dialog,\n.ag-dragging-fill-handle .ag-dialog {\n opacity: 0.7;\n pointer-events: none;\n}\n\n.ag-dialog {\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n box-shadow: var(--ag-popup-shadow);\n}\n\n.ag-panel {\n background-color: var(--ag-background-color);\n}\n\n.ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n padding: var(--ag-grid-size) var(--ag-cell-horizontal-padding);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-panel-title-bar-button {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-panel-title-bar-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-tooltip {\n background-color: var(--ag-tooltip-background-color);\n color: var(--ag-foreground-color);\n padding: var(--ag-grid-size);\n border: var(--ag-borders) var(--ag-border-color);\n border-radius: var(--ag-card-radius);\n white-space: normal;\n}\n\n.ag-tooltip.ag-tooltip-animate,\n.ag-tooltip-custom.ag-tooltip-animate {\n transition: opacity 1s;\n}\n.ag-tooltip.ag-tooltip-animate.ag-tooltip-hiding,\n.ag-tooltip-custom.ag-tooltip-animate.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: calc(1 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: calc(1 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: calc(2 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: calc(2 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: calc(3 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: calc(3 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: calc(4 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: calc(4 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: calc(5 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: calc(5 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: calc(6 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: calc(6 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: calc(7 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: calc(7 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: calc(8 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: calc(8 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: calc(9 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: calc(9 * var(--ag-column-select-indent-size));\n}\n\n.ag-column-select-header-icon {\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header-icon:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-ltr .ag-column-group-icons:not(:last-child),\n.ag-ltr .ag-column-select-header-icon:not(:last-child),\n.ag-ltr .ag-column-select-header-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-ltr .ag-column-select-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: var(--ag-widget-horizontal-spacing);\n}\n.ag-rtl .ag-column-group-icons:not(:last-child),\n.ag-rtl .ag-column-select-header-icon:not(:last-child),\n.ag-rtl .ag-column-select-header-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-rtl .ag-column-select-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: var(--ag-widget-horizontal-spacing);\n}\n\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-column-group:not(:last-child),\n.ag-column-select-column:not(:last-child) {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-column-select-column-readonly,\n.ag-column-select-column-group-readonly {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n\n.ag-ltr .ag-column-select-add-group-indent {\n margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-column-select-add-group-indent {\n margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-column-select-virtual-list-viewport {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) 0px;\n}\n\n.ag-column-select-virtual-list-item {\n padding: 0 var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-checkbox-edit {\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rtl {\n text-align: right;\n}\n\n.ag-root-wrapper {\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: calc(1 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: calc(1 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: calc(2 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: calc(2 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: calc(3 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: calc(3 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: calc(4 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: calc(4 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: calc(5 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: calc(5 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: calc(6 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: calc(6 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: calc(7 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: calc(7 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: calc(8 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: calc(8 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: calc(9 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: calc(9 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: calc(10 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: calc(10 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: calc(11 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: calc(11 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: calc(12 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: calc(12 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: calc(13 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: calc(13 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: calc(14 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: calc(14 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: calc(15 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: calc(15 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: calc(16 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: calc(16 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: calc(17 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: calc(17 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: calc(18 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: calc(18 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: calc(19 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: calc(19 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: calc(20 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: calc(20 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: calc(21 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: calc(21 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: calc(22 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: calc(22 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: calc(23 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: calc(23 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: calc(24 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: calc(24 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: calc(25 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: calc(25 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: calc(26 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: calc(26 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: calc(27 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: calc(27 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: calc(28 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: calc(28 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: calc(29 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: calc(29 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: calc(30 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: calc(30 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: calc(31 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: calc(31 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: calc(32 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: calc(32 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: calc(33 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: calc(33 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: calc(34 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: calc(34 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: calc(35 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: calc(35 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: calc(36 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: calc(36 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: calc(37 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: calc(37 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: calc(38 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: calc(38 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: calc(39 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: calc(39 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: calc(40 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: calc(40 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: calc(41 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: calc(41 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: calc(42 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: calc(42 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: calc(43 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: calc(43 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: calc(44 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: calc(44 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: calc(45 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: calc(45 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: calc(46 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: calc(46 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: calc(47 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: calc(47 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: calc(48 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: calc(48 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: calc(49 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: calc(49 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n\n.ag-ltr .ag-row-group-indent-50 {\n padding-left: calc(50 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-50 {\n padding-right: calc(50 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n\n.ag-ltr .ag-row-group-indent-51 {\n padding-left: calc(51 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-51 {\n padding-right: calc(51 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n\n.ag-ltr .ag-row-group-indent-52 {\n padding-left: calc(52 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-52 {\n padding-right: calc(52 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n\n.ag-ltr .ag-row-group-indent-53 {\n padding-left: calc(53 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-53 {\n padding-right: calc(53 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n\n.ag-ltr .ag-row-group-indent-54 {\n padding-left: calc(54 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-54 {\n padding-right: calc(54 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n\n.ag-ltr .ag-row-group-indent-55 {\n padding-left: calc(55 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-55 {\n padding-right: calc(55 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n\n.ag-ltr .ag-row-group-indent-56 {\n padding-left: calc(56 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-56 {\n padding-right: calc(56 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n\n.ag-ltr .ag-row-group-indent-57 {\n padding-left: calc(57 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-57 {\n padding-right: calc(57 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n\n.ag-ltr .ag-row-group-indent-58 {\n padding-left: calc(58 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-58 {\n padding-right: calc(58 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n\n.ag-ltr .ag-row-group-indent-59 {\n padding-left: calc(59 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-59 {\n padding-right: calc(59 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n\n.ag-ltr .ag-row-group-indent-60 {\n padding-left: calc(60 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-60 {\n padding-right: calc(60 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n\n.ag-ltr .ag-row-group-indent-61 {\n padding-left: calc(61 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-61 {\n padding-right: calc(61 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n\n.ag-ltr .ag-row-group-indent-62 {\n padding-left: calc(62 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-62 {\n padding-right: calc(62 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n\n.ag-ltr .ag-row-group-indent-63 {\n padding-left: calc(63 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-63 {\n padding-right: calc(63 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n\n.ag-ltr .ag-row-group-indent-64 {\n padding-left: calc(64 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-64 {\n padding-right: calc(64 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n\n.ag-ltr .ag-row-group-indent-65 {\n padding-left: calc(65 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-65 {\n padding-right: calc(65 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n\n.ag-ltr .ag-row-group-indent-66 {\n padding-left: calc(66 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-66 {\n padding-right: calc(66 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n\n.ag-ltr .ag-row-group-indent-67 {\n padding-left: calc(67 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-67 {\n padding-right: calc(67 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n\n.ag-ltr .ag-row-group-indent-68 {\n padding-left: calc(68 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-68 {\n padding-right: calc(68 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n\n.ag-ltr .ag-row-group-indent-69 {\n padding-left: calc(69 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-69 {\n padding-right: calc(69 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n\n.ag-ltr .ag-row-group-indent-70 {\n padding-left: calc(70 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-70 {\n padding-right: calc(70 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n\n.ag-ltr .ag-row-group-indent-71 {\n padding-left: calc(71 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-71 {\n padding-right: calc(71 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n\n.ag-ltr .ag-row-group-indent-72 {\n padding-left: calc(72 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-72 {\n padding-right: calc(72 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n\n.ag-ltr .ag-row-group-indent-73 {\n padding-left: calc(73 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-73 {\n padding-right: calc(73 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n\n.ag-ltr .ag-row-group-indent-74 {\n padding-left: calc(74 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-74 {\n padding-right: calc(74 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n\n.ag-ltr .ag-row-group-indent-75 {\n padding-left: calc(75 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-75 {\n padding-right: calc(75 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n\n.ag-ltr .ag-row-group-indent-76 {\n padding-left: calc(76 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-76 {\n padding-right: calc(76 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n\n.ag-ltr .ag-row-group-indent-77 {\n padding-left: calc(77 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-77 {\n padding-right: calc(77 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n\n.ag-ltr .ag-row-group-indent-78 {\n padding-left: calc(78 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-78 {\n padding-right: calc(78 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n\n.ag-ltr .ag-row-group-indent-79 {\n padding-left: calc(79 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-79 {\n padding-right: calc(79 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n\n.ag-ltr .ag-row-group-indent-80 {\n padding-left: calc(80 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-80 {\n padding-right: calc(80 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n\n.ag-ltr .ag-row-group-indent-81 {\n padding-left: calc(81 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-81 {\n padding-right: calc(81 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n\n.ag-ltr .ag-row-group-indent-82 {\n padding-left: calc(82 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-82 {\n padding-right: calc(82 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n\n.ag-ltr .ag-row-group-indent-83 {\n padding-left: calc(83 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-83 {\n padding-right: calc(83 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n\n.ag-ltr .ag-row-group-indent-84 {\n padding-left: calc(84 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-84 {\n padding-right: calc(84 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n\n.ag-ltr .ag-row-group-indent-85 {\n padding-left: calc(85 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-85 {\n padding-right: calc(85 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n\n.ag-ltr .ag-row-group-indent-86 {\n padding-left: calc(86 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-86 {\n padding-right: calc(86 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n\n.ag-ltr .ag-row-group-indent-87 {\n padding-left: calc(87 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-87 {\n padding-right: calc(87 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n\n.ag-ltr .ag-row-group-indent-88 {\n padding-left: calc(88 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-88 {\n padding-right: calc(88 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n\n.ag-ltr .ag-row-group-indent-89 {\n padding-left: calc(89 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-89 {\n padding-right: calc(89 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n\n.ag-ltr .ag-row-group-indent-90 {\n padding-left: calc(90 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-90 {\n padding-right: calc(90 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n\n.ag-ltr .ag-row-group-indent-91 {\n padding-left: calc(91 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-91 {\n padding-right: calc(91 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n\n.ag-ltr .ag-row-group-indent-92 {\n padding-left: calc(92 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-92 {\n padding-right: calc(92 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n\n.ag-ltr .ag-row-group-indent-93 {\n padding-left: calc(93 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-93 {\n padding-right: calc(93 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n\n.ag-ltr .ag-row-group-indent-94 {\n padding-left: calc(94 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-94 {\n padding-right: calc(94 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n\n.ag-ltr .ag-row-group-indent-95 {\n padding-left: calc(95 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-95 {\n padding-right: calc(95 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n\n.ag-ltr .ag-row-group-indent-96 {\n padding-left: calc(96 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-96 {\n padding-right: calc(96 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n\n.ag-ltr .ag-row-group-indent-97 {\n padding-left: calc(97 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-97 {\n padding-right: calc(97 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n\n.ag-ltr .ag-row-group-indent-98 {\n padding-left: calc(98 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-98 {\n padding-right: calc(98 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n\n.ag-ltr .ag-row-group-indent-99 {\n padding-left: calc(99 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-99 {\n padding-right: calc(99 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row-group-leaf-indent {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-group-leaf-indent {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-value-change-delta {\n padding-right: 2px;\n}\n\n.ag-value-change-delta-up {\n color: var(--ag-value-change-delta-up-color);\n}\n\n.ag-value-change-delta-down {\n color: var(--ag-value-change-delta-down-color);\n}\n\n.ag-value-change-value {\n background-color: transparent;\n border-radius: 1px;\n padding-left: 1px;\n padding-right: 1px;\n transition: background-color 1s;\n}\n\n.ag-value-change-value-highlight {\n background-color: var(--ag-value-change-value-highlight-background-color);\n transition: background-color 0.1s;\n}\n\n.ag-cell-data-changed {\n background-color: var(--ag-value-change-value-highlight-background-color) !important;\n}\n\n.ag-cell-data-changed-animation {\n background-color: transparent;\n}\n\n.ag-cell-highlight {\n background-color: var(--ag-range-selection-highlight-color) !important;\n}\n\n.ag-row {\n height: var(--ag-row-height);\n background-color: var(--ag-background-color);\n color: var(--ag-data-color);\n border-bottom: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);\n}\n\n.ag-row-highlight-above::after,\n.ag-row-highlight-below::after {\n content: '';\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n left: 1px;\n}\n\n.ag-row-highlight-above::after {\n top: -1px;\n}\n\n.ag-row-highlight-above.ag-row-first::after {\n top: 0;\n}\n\n.ag-row-highlight-below::after {\n bottom: 0px;\n}\n\n.ag-row-odd {\n background-color: var(--ag-odd-row-background-color);\n}\n\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-row-selected::before {\n content: '';\n background-color: var(--ag-selected-row-background-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-row-hover:not(.ag-full-width-row)::before,\n.ag-row-hover.ag-full-width-row.ag-row-group::before {\n content: '';\n background-color: var(--ag-row-hover-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n}\n\n.ag-row-hover.ag-full-width-row.ag-row-group > * {\n position: relative;\n}\n\n.ag-row-hover.ag-row-selected::before {\n background-color: var(--ag-row-hover-color);\n background-image: linear-gradient(var(--ag-selected-row-background-color), var(--ag-selected-row-background-color));\n}\n\n.ag-column-hover {\n background-color: var(--ag-column-hover-color);\n}\n\n.ag-ltr .ag-right-aligned-cell {\n text-align: right;\n}\n.ag-rtl .ag-right-aligned-cell {\n text-align: left;\n}\n\n.ag-ltr .ag-right-aligned-cell .ag-cell-value,\n.ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto;\n}\n.ag-rtl .ag-right-aligned-cell .ag-cell-value,\n.ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto;\n}\n\n.ag-cell,\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n border: 1px solid transparent;\n line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.ag-row > .ag-cell-wrapper {\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n}\n\n.ag-row-dragging {\n cursor: move;\n opacity: 0.5;\n}\n\n.ag-cell-inline-editing {\n border: 1px solid var(--ag-border-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: 0;\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-popup-editor .ag-large-text,\n.ag-autocomplete-list-popup {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background-color: var(--ag-control-panel-background-color);\n padding: 0;\n}\n\n.ag-large-text-input {\n height: auto;\n padding: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rtl .ag-large-text-input textarea {\n resize: none;\n}\n\n.ag-details-row {\n padding: calc(var(--ag-grid-size) * 5);\n background-color: var(--ag-background-color);\n}\n\n.ag-layout-auto-height .ag-center-cols-clipper,\n.ag-layout-auto-height .ag-center-cols-container,\n.ag-layout-print .ag-center-cols-clipper,\n.ag-layout-print .ag-center-cols-container {\n min-height: 50px;\n}\n\n.ag-overlay-loading-wrapper {\n background-color: var(--ag-modal-overlay-background-color);\n}\n\n.ag-overlay-loading-center {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n}\n\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px;\n}\n\n.ag-loading {\n display: flex;\n height: 100%;\n align-items: center;\n}\n.ag-ltr .ag-loading {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-loading {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-loading-icon {\n padding-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-loading-icon {\n padding-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-icon-loading {\n animation-name: spin;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.ag-floating-top {\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-floating-bottom {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-cell {\n border-right: var(--ag-cell-horizontal-border);\n}\n.ag-rtl .ag-cell {\n border-left: var(--ag-cell-horizontal-border);\n}\n.ag-ltr .ag-cell {\n border-right-width: 1px;\n}\n.ag-rtl .ag-cell {\n border-left-width: 1px;\n}\n\n.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell-range-selected:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: var(--ag-range-selection-chart-background-color) !important;\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {\n background-color: var(--ag-range-selection-chart-category-background-color) !important;\n}\n\n.ag-cell-range-selected-1:not(.ag-cell-focus),\n.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n\n.ag-cell-range-selected-2:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: var(--ag-range-selection-background-color-2);\n}\n\n.ag-cell-range-selected-3:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: var(--ag-range-selection-background-color-3);\n}\n\n.ag-cell-range-selected-4:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: var(--ag-range-selection-background-color-4);\n}\n\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: var(--ag-range-selection-border-color);\n border-top-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: var(--ag-range-selection-border-color);\n border-right-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: var(--ag-range-selection-border-color);\n border-bottom-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: var(--ag-range-selection-border-color);\n border-left-style: var(--ag-range-selection-border-style);\n}\n\n.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-ltr .ag-cell-range-single-cell,\n.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle,\n.ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-rtl .ag-cell-range-single-cell,\n.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: var(--ag-range-selection-border-color);\n border-style: var(--ag-range-selection-border-style);\n outline: initial;\n}\n\n.ag-cell.ag-selection-fill-top,\n.ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-right,\n.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-right,\n.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-cell.ag-selection-fill-bottom,\n.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-left,\n.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-left,\n.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-fill-handle,\n.ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-ltr .ag-fill-handle,\n.ag-ltr .ag-range-handle {\n right: -1px;\n}\n.ag-rtl .ag-fill-handle,\n.ag-rtl .ag-range-handle {\n left: -1px;\n}\n\n.ag-fill-handle {\n cursor: cell;\n}\n\n.ag-range-handle {\n cursor: nwse-resize;\n}\n\n.ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n\n.ag-menu {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n}\n\n.ag-menu-list {\n cursor: default;\n padding: var(--ag-grid-size) 0;\n}\n\n.ag-menu-separator {\n height: calc(var(--ag-grid-size) * 2 + 1px);\n}\n\n.ag-menu-separator-part::after {\n content: '';\n display: block;\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-menu-option-active,\n.ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-menu-option-part,\n.ag-compact-menu-option-part {\n line-height: var(--ag-icon-size);\n padding: calc(var(--ag-grid-size) + 2px) 0;\n}\n\n.ag-menu-option-disabled,\n.ag-compact-menu-option-disabled {\n opacity: 0.5;\n}\n\n.ag-menu-option-icon,\n.ag-compact-menu-option-icon {\n width: var(--ag-icon-size);\n}\n.ag-ltr .ag-menu-option-icon,\n.ag-ltr .ag-compact-menu-option-icon {\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-menu-option-icon,\n.ag-rtl .ag-compact-menu-option-icon {\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-menu-option-text,\n.ag-compact-menu-option-text {\n padding-left: calc(var(--ag-grid-size) * 2);\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-menu-option-shortcut,\n.ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-menu-option-shortcut,\n.ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-menu-option-popup-pointer,\n.ag-compact-menu-option-popup-pointer {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-tabs {\n min-width: var(--ag-tab-min-width);\n}\n\n.ag-tabs-header {\n width: 100%;\n display: flex;\n}\n\n.ag-tab {\n border-bottom: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-bottom var(--ag-selected-tab-underline-transition-speed);\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-tab:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-tab:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-tab-selected {\n border-bottom-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-menu-header {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-filter-separator {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-filter-select .ag-picker-field-wrapper {\n width: 0;\n}\n\n.ag-filter-condition-operator {\n height: 17px;\n}\n\n.ag-ltr .ag-filter-condition-operator-or {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-condition-operator-or {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-set-filter-select-all {\n padding-top: var(--ag-widget-container-vertical-padding);\n}\n\n.ag-set-filter-list,\n.ag-filter-no-matches {\n height: calc(var(--ag-list-item-height) * 6);\n}\n\n.ag-set-filter-tree-list {\n height: calc(var(--ag-list-item-height) * 10);\n}\n\n.ag-set-filter-filter {\n margin-top: var(--ag-widget-container-vertical-padding);\n margin-left: var(--ag-widget-container-horizontal-padding);\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-to {\n margin-top: var(--ag-widget-vertical-spacing);\n}\n\n.ag-mini-filter {\n margin: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-set-filter-item {\n margin: 0px var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-ltr .ag-set-filter-add-group-indent {\n margin-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-set-filter-add-group-indent {\n margin-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: calc(1 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: calc(1 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: calc(2 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: calc(2 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: calc(3 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: calc(3 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: calc(4 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: calc(4 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: calc(5 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: calc(5 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: calc(6 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: calc(6 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: calc(7 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: calc(7 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: calc(8 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: calc(8 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: calc(9 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: calc(9 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-group-icons {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-set-filter-group-icons {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-apply-panel {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-filter-apply-panel-button {\n line-height: 1.5;\n}\n.ag-ltr .ag-filter-apply-panel-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-apply-panel-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-simple-filter-body-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n overflow-y: auto;\n min-height: calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing));\n}\n.ag-simple-filter-body-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n.ag-simple-filter-body-wrapper .ag-resizer-wrapper {\n margin: 0;\n}\n\n.ag-menu:not(.ag-tabs) .ag-filter .ag-simple-filter-body-wrapper,\n.ag-menu:not(.ag-tabs) .ag-filter > *:not(.ag-filter-wrapper) {\n min-width: calc(var(--ag-menu-min-width) - 2px);\n}\n\n.ag-filter-no-matches {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-multi-filter-menu-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-multi-filter-group-title-bar {\n padding: calc(var(--ag-grid-size) * 2) var(--ag-grid-size);\n background-color: transparent;\n}\n\n.ag-group-filter-field-select-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-group-filter-field-select-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-side-bar {\n position: relative;\n}\n\n.ag-tool-panel-wrapper {\n width: var(--ag-side-bar-panel-width);\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-side-buttons {\n padding-top: calc(var(--ag-grid-size) * 4);\n width: calc(var(--ag-icon-size) + 4px);\n position: relative;\n overflow: hidden;\n}\n\nbutton.ag-side-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n background: transparent;\n padding: calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;\n width: 100%;\n margin: 0;\n min-height: calc(var(--ag-grid-size) * 18);\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: var(--ag-borders-side-button) var(--ag-border-color);\n border-bottom: var(--ag-borders-side-button) var(--ag-border-color);\n}\nbutton.ag-side-button-button:focus {\n box-shadow: none;\n}\n\n.ag-keyboard-focus .ag-side-button-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-side-button-button:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-selected button.ag-side-button-button {\n background-color: var(--ag-side-button-selected-background-color);\n}\n\n.ag-side-button-icon-wrapper {\n margin-bottom: 3px;\n}\n\n.ag-ltr .ag-side-bar-left,\n.ag-rtl .ag-side-bar-right {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-right var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-rtl .ag-side-bar-left,\n.ag-ltr .ag-side-bar-right {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-left var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 6);\n}\n\n.ag-ltr .ag-filter-toolpanel-header,\n.ag-ltr .ag-filter-toolpanel-search {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-header,\n.ag-rtl .ag-filter-toolpanel-search {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: var(--ag-icon-font-code-filter, '\\f115');\n position: absolute;\n}\n.ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 8);\n}\n\n.ag-filter-toolpanel-group-item {\n margin-top: calc(var(--ag-grid-size) * 0.5);\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-filter-toolpanel-search {\n height: var(--ag-header-height);\n}\n\n.ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0 {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-ltr .ag-filter-toolpanel-expand,\n.ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-expand,\n.ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-instance-filter {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n border-top: var(--ag-borders) var(--ag-border-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-set-filter-group-icons {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-pivot-mode-panel {\n min-height: var(--ag-header-height);\n height: var(--ag-header-height);\n display: flex;\n}\n\n.ag-pivot-mode-select {\n display: flex;\n align-items: center;\n}\n.ag-ltr .ag-pivot-mode-select {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-pivot-mode-select {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-keyboard-focus .ag-column-select-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-header {\n height: var(--ag-header-height);\n align-items: center;\n padding: 0 var(--ag-widget-container-horizontal-padding);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-panel-column-select {\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-group-icons,\n.ag-column-select-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-select-list .ag-list-item-hovered::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-column-select-list .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-column-select-list .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-header,\n.ag-advanced-filter-header {\n background-color: var(--primary-color);\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-row {\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n background-color: #344861;\n}\n\n.ag-pinned-right-header {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-pinned-left-header {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-header-cell,\n.ag-header-group-cell {\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-header-cell.ag-header-cell-moving,\n.ag-header-group-cell.ag-header-cell-moving {\n background-color: var(--ag-header-cell-moving-background-color);\n}\n\n.ag-ltr .ag-header-group-cell-label.ag-sticky-label {\n left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-header-group-cell-label.ag-sticky-label {\n right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-keyboard-focus .ag-header-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-cell:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n.ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-group-cell:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n.ag-keyboard-focus .ag-advanced-filter-header-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-advanced-filter-header-cell:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-header-expand-icon {\n cursor: pointer;\n}\n.ag-ltr .ag-header-expand-icon {\n padding-left: 4px;\n}\n.ag-rtl .ag-header-expand-icon {\n padding-right: 4px;\n}\n\n.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total),\n.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,\n.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-group-cell:first-of-type.ag-column-resizing,\n.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing {\n background-color: var(--ag-header-cell-hover-background-color);\n}\n\n.ag-header-cell::after,\n.ag-header-group-cell::after {\n content: '';\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-separator-display);\n width: var(--ag-header-column-separator-width);\n height: var(--ag-header-column-separator-height);\n top: calc(50% - var(--ag-header-column-separator-height) * 0.5);\n background-color: var(--ag-header-column-separator-color);\n}\n.ag-ltr .ag-header-cell::after,\n.ag-ltr .ag-header-group-cell::after {\n right: 0;\n}\n.ag-rtl .ag-header-cell::after,\n.ag-rtl .ag-header-group-cell::after {\n left: 0;\n}\n\n.ag-header-cell-resize {\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-resize::after {\n content: '';\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-resize-handle-display);\n width: var(--ag-header-column-resize-handle-width);\n height: var(--ag-header-column-resize-handle-height);\n top: calc(50% - var(--ag-header-column-resize-handle-height) * 0.5);\n background-color: var(--ag-header-column-resize-handle-color);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-header-viewport .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n.ag-rtl .ag-header-viewport .ag-header-cell-resize::after {\n right: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-left-header .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-right-header .ag-header-cell-resize::after {\n left: 50%;\n}\n\n.ag-ltr .ag-header-select-all {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-header-select-all {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-floating-filter-button {\n margin-left: calc(var(--ag-grid-size) * 3);\n}\n.ag-rtl .ag-floating-filter-button {\n margin-right: calc(var(--ag-grid-size) * 3);\n}\n\n.ag-floating-filter-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n appearance: none;\n background: transparent;\n border: none;\n height: var(--ag-icon-size);\n padding: 0;\n width: var(--ag-icon-size);\n}\n\n.ag-filter-loading {\n background-color: var(--ag-control-panel-background-color);\n height: 100%;\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n position: absolute;\n width: 100%;\n z-index: 1;\n}\n\n.ag-paging-panel {\n border-top: 1px solid;\n border-top-color: var(--ag-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height);\n}\n.ag-paging-panel > * {\n margin: 0 var(--ag-cell-horizontal-padding);\n}\n\n.ag-paging-button {\n cursor: pointer;\n}\n\n.ag-paging-button.ag-disabled {\n cursor: default;\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-keyboard-focus .ag-paging-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-paging-button:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-paging-button,\n.ag-paging-description {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-status-bar {\n border-top: var(--ag-borders) var(--ag-border-color);\n color: var(--ag-disabled-foreground-color);\n padding-right: calc(var(--ag-grid-size) * 4);\n padding-left: calc(var(--ag-grid-size) * 4);\n line-height: 1.5;\n}\n\n.ag-status-name-value-value {\n color: var(--ag-foreground-color);\n}\n\n.ag-status-bar-center {\n text-align: center;\n}\n\n.ag-status-name-value {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n padding-top: calc(var(--ag-grid-size) * 2);\n padding-bottom: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell {\n background: var(--ag-chip-background-color);\n border-radius: calc(var(--ag-grid-size) * 4);\n height: calc(var(--ag-grid-size) * 4);\n padding: 0 calc(var(--ag-grid-size) * 0.5);\n border: 1px solid transparent;\n}\n\n.ag-keyboard-focus .ag-column-drop-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-drop-cell:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 2px;\n left: 2px;\n display: block;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-drop-cell-text {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-column-drop-cell-button {\n min-width: calc(var(--ag-grid-size) * 4);\n margin: 0 calc(var(--ag-grid-size) * 0.5);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-cell-drag-handle {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell-ghost {\n opacity: 0.5;\n}\n\n.ag-column-drop-horizontal {\n background-color: var(--ag-control-panel-background-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-column-drop-horizontal {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-column-drop-horizontal-cell-separator {\n margin: 0 var(--ag-grid-size);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-horizontal-empty-message {\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-column-drop-vertical-list {\n padding-bottom: var(--ag-grid-size);\n padding-right: var(--ag-grid-size);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-cell {\n margin-top: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical {\n min-height: 50px;\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n\n.ag-column-drop-vertical-icon {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-empty-message {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n color: var(--ag-disabled-foreground-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-select-agg-func-popup {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background: var(--ag-background-color);\n height: calc(var(--ag-grid-size) * 5 * 3.5);\n padding: 0;\n}\n\n.ag-select-agg-func-virtual-list-item {\n cursor: default;\n}\n.ag-ltr .ag-select-agg-func-virtual-list-item {\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-select-agg-func-virtual-list-item {\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-select-agg-func-virtual-list-item:hover {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus::after {\n content: '';\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-sort-indicator-container {\n display: flex;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-sort-indicator-icon {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-chart {\n position: relative;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-chart-components-wrapper {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-chart-title-edit {\n position: absolute;\n display: none;\n top: 0;\n left: 0;\n text-align: center;\n}\n\n.ag-chart-title-edit.currently-editing {\n display: inline-block;\n}\n\n.ag-chart-canvas-wrapper {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-charts-canvas {\n display: block;\n}\n\n.ag-chart-menu {\n position: absolute;\n top: 10px;\n width: 24px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.ag-ltr .ag-chart-menu {\n right: 20px;\n}\n.ag-rtl .ag-chart-menu {\n left: 20px;\n}\n\n.ag-chart-docked-container {\n position: relative;\n width: 0;\n min-width: 0;\n transition: min-width 0.4s;\n}\n\n.ag-chart-menu-hidden ~ .ag-chart-docked-container {\n max-width: 0;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu-header {\n flex: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n\n.ag-chart-tabbed-menu-body {\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n overflow: hidden;\n}\n\n.ag-chart-tab {\n width: 100%;\n overflow: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings {\n overflow-x: hidden;\n}\n\n.ag-chart-settings-wrapper {\n position: relative;\n flex-direction: column;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.ag-chart-settings-nav-bar {\n display: flex;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 10px;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-chart-settings-card-selector {\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex: 1 1 auto;\n height: 100%;\n padding: 0 10px;\n}\n\n.ag-chart-settings-card-item {\n cursor: pointer;\n width: 10px;\n height: 10px;\n background-color: #000;\n position: relative;\n}\n.ag-chart-settings-card-item.ag-not-selected {\n opacity: 0.2;\n}\n.ag-chart-settings-card-item::before {\n content: ' ';\n display: block;\n position: absolute;\n background-color: transparent;\n left: 50%;\n top: 50%;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n}\n\n.ag-chart-settings-prev,\n.ag-chart-settings-next {\n position: relative;\n flex: none;\n}\n\n.ag-chart-settings-prev-button,\n.ag-chart-settings-next-button {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n\n.ag-chart-settings-mini-charts-container {\n position: relative;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings-mini-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n}\n.ag-chart-settings-mini-wrapper.ag-animating {\n transition: left 0.3s;\n transition-timing-function: ease-in-out;\n}\n\n.ag-chart-mini-thumbnail {\n cursor: pointer;\n}\n\n.ag-chart-mini-thumbnail-canvas {\n display: block;\n}\n\n.ag-chart-data-wrapper,\n.ag-chart-format-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-chart-data-wrapper {\n height: 100%;\n overflow-y: auto;\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-empty-text {\n display: flex;\n top: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.ag-chart .ag-chart-menu {\n display: none;\n}\n\n.ag-chart-menu-hidden:hover .ag-chart-menu {\n display: block;\n}\n\n.ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n display: flex;\n flex-direction: row;\n overflow: auto;\n top: 5px;\n gap: calc(var(--ag-grid-size) * 3 - 8px);\n width: auto;\n}\n.ag-ltr .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n right: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: right;\n}\n.ag-rtl .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n left: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: left;\n}\n\n.ag-chart-menu-close {\n display: none;\n}\n\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n position: absolute;\n top: 50%;\n transition: transform 0.33s ease-in-out;\n padding: 0;\n display: block;\n cursor: pointer;\n border: none;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n left: 0px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close .ag-icon {\n padding: 14px 5px 14px 2px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n content: '';\n position: absolute;\n top: -40px;\n bottom: -40px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: 0px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: -10px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: -10px;\n}\n.ag-chart-tool-panel-button-enable .ag-icon-menu {\n display: none;\n}\n\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(3px, -50%);\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-ltr .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(5px, -50%);\n}\n\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(-3px, -50%);\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-rtl .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(-5px, -50%);\n}\n\n.ag-charts-font-size-color {\n display: flex;\n align-self: stretch;\n justify-content: space-between;\n}\n\n.ag-charts-data-group-item {\n position: relative;\n}\n\n.ag-chart-menu {\n border-radius: var(--ag-card-radius);\n background: var(--ag-background-color);\n}\n\n.ag-chart-menu-icon {\n opacity: 0.5;\n line-height: 24px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin: 2px 0;\n cursor: pointer;\n border-radius: var(--ag-card-radius);\n color: var(--ag-secondary-foreground-color);\n}\n.ag-chart-menu-icon:hover {\n opacity: 1;\n}\n\n.ag-chart-mini-thumbnail {\n border: 1px solid var(--ag-secondary-border-color);\n border-radius: 5px;\n margin: 5px;\n}\n.ag-chart-mini-thumbnail:nth-last-child(3),\n.ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto;\n}\n.ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0;\n}\n.ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0;\n}\n.ag-chart-mini-thumbnail.ag-selected {\n border-color: var(--ag-minichart-selected-chart-color);\n}\n\n.ag-chart-settings-card-item {\n background: var(--ag-foreground-color);\n width: 8px;\n height: 8px;\n border-radius: 4px;\n}\n.ag-chart-settings-card-item.ag-selected {\n background-color: var(--ag-minichart-selected-page-color);\n}\n\n.ag-chart-data-column-drag-handle {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-charts-settings-group-title-bar,\n.ag-charts-data-group-title-bar,\n.ag-charts-format-top-level-group-title-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-charts-settings-group-container {\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-data-group-container {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) var(--ag-widget-container-horizontal-padding);\n}\n.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group) {\n height: var(--ag-list-item-height);\n}\n.ag-charts-data-group-container .ag-list-item-hovered::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-charts-data-group-container .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-charts-data-group-container .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-charts-format-top-level-group-container {\n margin-left: calc(var(--ag-grid-size) * 2);\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-format-top-level-group-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-charts-format-sub-level-group-container {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-charts-format-sub-level-group-container > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-charts-group-container.ag-group-container-horizontal {\n padding: var(--ag-grid-size);\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-menu-panel {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px var(--ag-border-color);\n}\n.ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px var(--ag-border-color);\n}\n\n.ag-date-time-list-page-title-bar {\n display: flex;\n}\n\n.ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-labels-row,\n.ag-date-time-list-page-entries-row {\n display: flex;\n}\n\n.ag-date-time-list-page-column-label,\n.ag-date-time-list-page-entry {\n flex-basis: 0;\n flex-grow: 1;\n}\n\n.ag-date-time-list-page-entry {\n cursor: pointer;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-label {\n text-align: center;\n}\n\n.ag-input-field-input {\n width: 100%;\n min-width: 0;\n}\n\n.ag-checkbox-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n}\n.ag-checkbox-input-wrapper input,\n.ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-checkbox-input-wrapper:focus-within,\n.ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-checkbox-input-wrapper::after {\n content: var(--ag-icon-font-code-checkbox-unchecked, '\\f108');\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-checkbox-checked, '\\f106');\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: var(--ag-icon-font-code-checkbox-indeterminate, '\\f107');\n color: var(--ag-checkbox-indeterminate-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n.ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: var(--ag-toggle-button-width);\n height: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-off-background-color);\n border-radius: calc(var(--ag-toggle-button-height) * 0.5);\n position: relative;\n flex: none;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-off-border-color);\n}\n.ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%;\n}\n.ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-toggle-button-input-wrapper.ag-checked {\n background-color: var(--ag-toggle-button-on-background-color);\n border-color: var(--ag-toggle-button-on-border-color);\n}\n.ag-toggle-button-input-wrapper::before {\n content: ' ';\n position: absolute;\n top: calc(0px - var(--ag-toggle-button-border-width));\n left: calc(0px - var(--ag-toggle-button-border-width));\n display: block;\n box-sizing: border-box;\n height: var(--ag-toggle-button-height);\n width: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-switch-background-color);\n border-radius: 100%;\n transition: left 100ms;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-switch-border-color);\n}\n.ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - var(--ag-toggle-button-height));\n border-color: var(--ag-toggle-button-on-border-color);\n}\n\n.ag-radio-button-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: var(--ag-icon-size);\n}\n.ag-radio-button-input-wrapper input,\n.ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-radio-button-input-wrapper:focus-within,\n.ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-radio-button-input-wrapper::after {\n content: var(--ag-icon-font-code-radio-button-off, '\\f127');\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-radio-button-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-radio-button-on, '\\f128');\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\ninput[class^='ag-'][type='range'] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible;\n}\ninput[class^='ag-'][type='range']::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^='ag-'][type='range']::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^='ag-'][type='range']::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n color: transparent;\n width: calc(100% - 2px);\n}\ninput[class^='ag-'][type='range']::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n transform: translateY(calc(var(--ag-icon-size) * -0.5 + 1.5px));\n}\ninput[class^='ag-'][type='range']::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^='ag-'][type='range']::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^='ag-'][type='range']:focus {\n outline: none;\n}\ninput[class^='ag-'][type='range']:focus::-webkit-slider-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^='ag-'][type='range']:focus::-ms-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^='ag-'][type='range']:focus::-moz-ag-range-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^='ag-'][type='range']:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^='ag-'][type='range']:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^='ag-'][type='range']:active::-ms-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^='ag-'][type='range']:disabled {\n opacity: 0.5;\n}\n\n/* ag-theme-material.css */\n\n@font-face {\n font-family: 'agGridMaterial';\n src: url(data:font/woff2;charset=utf-8;base64,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);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-material {\n --ag-material-primary-color: #0074cc;\n --ag-material-accent-color: #494647;\n --ag-foreground-color: rgba(0, 0, 0, 0.87);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-background-color: #fff;\n --ag-header-background-color: #344861;\n --ag-tooltip-background-color: #fff;\n --ag-subheader-background-color: #eee;\n --ag-subheader-toolbar-background-color: rgba(238, 238, 238, 0.5);\n --ag-header-cell-hover-background-color: #f2f2f2;\n --ag-chip-background-color: #e2e2e2;\n --ag-range-selection-background-color: rgba(122, 134, 203, 0.1);\n --ag-range-selection-background-color-2: rgba(122, 134, 203, 0.19);\n --ag-range-selection-background-color-3: rgba(122, 134, 203, 0.27);\n --ag-range-selection-background-color-4: rgba(122, 134, 203, 0.34);\n --ag-range-selection-highlight-color: #fce4ec;\n --ag-row-hover-color: #fafafa;\n --ag-column-hover-color: #fafafa;\n --ag-control-panel-background-color: #fafafa;\n --ag-selected-row-background-color: rgba(33, 150, 243, 0.3);\n --ag-checkbox-unchecked-color: #333;\n --ag-value-change-value-highlight-background-color: #00acc1;\n --ag-side-button-selected-background-color: transparent;\n --ag-range-selection-border-color: var(--ag-material-primary-color);\n --ag-checkbox-checked-color: var(--ag-material-accent-color);\n --ag-borders: none;\n --ag-borders-critical: solid 1px;\n --ag-border-color: #e2e2e2;\n --ag-grid-size: 8px;\n --ag-icon-size: 18px;\n --ag-header-height: calc(var(--ag-grid-size) * 7);\n --ag-row-height: calc(var(--ag-grid-size) * 6);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);\n --ag-checkbox-border-radius: 2px;\n --ag-toggle-button-switch-border-width: 2px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);\n --ag-font-family: 'Roboto', sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridMaterial;\n --ag-selected-tab-underline-color: var(--ag-material-primary-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-input-focus-border-color: var(--ag-material-primary-color);\n --ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n --ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --ag-card-radius: 2px;\n --ag-invalid-color: #e02525;\n}\n\n.ag-theme-material .ag-filter-toolpanel-header,\n.ag-theme-material .ag-filter-toolpanel-search,\n.ag-theme-material .ag-status-bar,\n.ag-theme-material .ag-header-row,\n.ag-theme-material .ag-panel-title-bar-title,\n.ag-theme-material .ag-multi-filter-group-title-bar {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-material .ag-tab {\n height: calc(var(--ag-grid-size) * 4.5);\n flex: 1 1 auto;\n}\n.ag-theme-material .ag-tabs-header,\n.ag-theme-material .ag-column-drop-horizontal {\n background-color: var(--ag-subheader-background-color);\n}\n.ag-theme-material .ag-tabs-body {\n padding: calc(var(--ag-grid-size) * 0.5) 0;\n}\n.ag-theme-material .ag-tabs-body .ag-menu-list {\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-theme-material .ag-header-cell,\n.ag-theme-material .ag-header-group-cell {\n transition: background-color 0.5s;\n}\n.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {\n bottom: 0;\n}\n.ag-theme-material .ag-cell-inline-editing {\n padding: var(--ag-grid-size);\n height: calc(var(--ag-row-height) + var(--ag-grid-size) * 3);\n border-color: var(--ag-border-color) !important;\n}\n.ag-theme-material .ag-has-focus .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n.ag-theme-material .ag-column-drop-vertical {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n padding-top: var(--ag-grid-size);\n}\n.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n.ag-theme-material .ag-column-drop-vertical-cell {\n margin-left: 0;\n}\n.ag-theme-material .ag-column-drop-vertical-empty-message {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-status-bar {\n border: solid 1px;\n border-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-panel-column-select {\n border-top: solid 1px;\n border-top-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select,\n.ag-theme-material .ag-column-select-header {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select-header {\n height: var(--ag-header-height);\n}\n.ag-theme-material .ag-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.75) var(--ag-grid-size);\n}\n.ag-theme-material .ag-charts-format-sub-level-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.5) var(--ag-grid-size);\n}\n.ag-theme-material .ag-chart-data-section,\n.ag-theme-material .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-material .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-material .ag-chart-menu-close .ag-icon {\n background: var(--ag-subheader-background-color);\n}\n.ag-theme-material input[class^='ag-']:not([type]),\n.ag-theme-material input[class^='ag-'][type='text'],\n.ag-theme-material input[class^='ag-'][type='number'],\n.ag-theme-material input[class^='ag-'][type='tel'],\n.ag-theme-material input[class^='ag-'][type='date'],\n.ag-theme-material input[class^='ag-'][type='datetime-local'],\n.ag-theme-material textarea[class^='ag-'] {\n background: transparent;\n color: var(--ag-foreground-color);\n font-family: inherit;\n font-size: inherit;\n height: calc(var(--ag-grid-size) * 5);\n padding-bottom: var(--ag-grid-size);\n border-width: 0;\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^='ag-']:not([type]):focus,\n.ag-theme-material input[class^='ag-'][type='text']:focus,\n.ag-theme-material input[class^='ag-'][type='number']:focus,\n.ag-theme-material input[class^='ag-'][type='tel']:focus,\n.ag-theme-material input[class^='ag-'][type='date']:focus,\n.ag-theme-material input[class^='ag-'][type='datetime-local']:focus,\n.ag-theme-material textarea[class^='ag-']:focus {\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-material-primary-color);\n outline: none;\n box-shadow: none;\n}\n.ag-theme-material input[class^='ag-']:not([type])::placeholder,\n.ag-theme-material input[class^='ag-'][type='text']::placeholder,\n.ag-theme-material input[class^='ag-'][type='number']::placeholder,\n.ag-theme-material input[class^='ag-'][type='tel']::placeholder,\n.ag-theme-material input[class^='ag-'][type='date']::placeholder,\n.ag-theme-material input[class^='ag-'][type='datetime-local']::placeholder,\n.ag-theme-material textarea[class^='ag-']::placeholder {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material input[class^='ag-']:not([type]):disabled,\n.ag-theme-material input[class^='ag-'][type='text']:disabled,\n.ag-theme-material input[class^='ag-'][type='number']:disabled,\n.ag-theme-material input[class^='ag-'][type='tel']:disabled,\n.ag-theme-material input[class^='ag-'][type='date']:disabled,\n.ag-theme-material input[class^='ag-'][type='datetime-local']:disabled,\n.ag-theme-material textarea[class^='ag-']:disabled {\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^='ag-']:not([type]):invalid,\n.ag-theme-material input[class^='ag-'][type='text']:invalid,\n.ag-theme-material input[class^='ag-'][type='number']:invalid,\n.ag-theme-material input[class^='ag-'][type='tel']:invalid,\n.ag-theme-material input[class^='ag-'][type='date']:invalid,\n.ag-theme-material input[class^='ag-'][type='datetime-local']:invalid,\n.ag-theme-material textarea[class^='ag-']:invalid {\n border-width: 0;\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-invalid-color);\n color: var(--ag-invalid-color);\n}\n.ag-theme-material .ag-standard-button {\n appearance: none;\n background-color: transparent;\n border: 0;\n color: var(--ag-material-primary-color);\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-transform: uppercase;\n}\n.ag-theme-material .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-material.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n}\n.ag-theme-material .ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 7);\n}\n.ag-theme-material .ag-ltr .ag-filter-apply-panel-button,\n.ag-theme-material .ag-ltr .ag-advanced-filter-apply-button {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-filter-apply-panel-button,\n.ag-theme-material .ag-rtl .ag-advanced-filter-apply-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper,\n.ag-theme-material .ag-layout-auto-height .ag-center-cols-container,\n.ag-theme-material .ag-layout-print .ag-center-cols-clipper,\n.ag-theme-material .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 1px var(--ag-material-primary-color);\n}\n.ag-theme-material .ag-rich-select-list {\n box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 5px -3px, rgba(0, 0, 0, 0.14) 0px 8px 10px 1px, rgba(0, 0, 0, 0.12) 0px 3px 14px 2px;\n}\n\n.ag-aria-description-container {\n display: none !important;\n}\n","import { Draft, produce } from 'immer';\nimport { Component, Element, h, State, Prop, Event, EventEmitter, Watch, Listen, Method } from '@stencil/core';\nimport { state } from '../../../../../store/catalog-store';\nimport type { ColumnApi, GridOptions, ICellRendererParams, IServerSideDatasource } from 'ag-grid-enterprise';\nimport CustomRenderer from '../../../../my-component/UI/grid/renderers/custom-renderer';\nimport CustomActionsRenderer from '../../../../my-component/UI/grid/renderers/custom-actions-renderer';\nimport Star16 from '@carbon/icons/es/star/16';\nimport List16 from '@carbon/icons/es/list/16';\nimport { SearchServiceDatasource, rowGroups } from '../../../../../udp-utilities/grid/data-source/SearchServiceDatasource';\nimport { convertToAgGridColumns } from '../../../../../udp-utilities/grid/convertToAgGridColumns';\nimport {\n getSelectedView,\n getAvailableViews,\n saveView,\n updateView,\n updateViewAndConfigurations,\n getAvailableGridActions,\n getPromotedLookupMethod,\n executeQueryAdHocAndMapLookups,\n executeQueryWithParameters,\n getApiCatalogAndProduct,\n getApiCatalogById,\n executeQueryAdHoc,\n getAllHotlists,\n createAHotlist,\n deleteAHotlist,\n addRecordToAHotlist,\n loadAHotlist,\n removeRecordFromHotlist,\n deleteSelectedView,\n getApiMethodInstance,\n getApiMethod,\n} from '../../../../../udp-utilities/api-udp/apiUtils';\nimport { UdpGridColumnDefs, useTreeDatasource } from '../conversionFunctions/conversionFunctions';\nimport '../../../../my-component/ag-grid.css';\nimport EmailCellRenderer from '../renderers/email-cell-renderer';\nimport OpenFunctionCellRenderer from '../renderers/open-function-cell-renderer';\nimport HotListAddRenderer from '../renderers/hot-list-add-renderer';\nimport { SharedContext } from '../renderers/sharedContext';\nimport HoverContentCellRenderer from '../renderers/hover-content-cell-renderer';\nimport { GridStateTypeEnums } from './enums/gridEnums';\nimport { SearchObject, FilterDetail, HotListObject, ActionItem } from './interfaces/gridInterfaces';\nimport { transformSearchData } from '../../../../../udp-utilities/grid/data-converters/transformSearchData';\nimport { LicenseKey } from './license/licenseKey';\nimport { buildSearchPayload } from './ambient-template-functions/buildGroupedSearchPayload';\n// import { FilterElement } from '../../advanced-search/advanced-search-grouped';\nimport * as localforage from 'localforage';\nimport '../../../../../global/app.css';\n// import OverflowMenuHorizontal16 from '@carbon/icons/es/overflow-menu--horizontal/16';\nimport DateTimeCellRenderer from '../renderers/date-time-cell-renderer';\nimport { RenderConfig } from './interfaces/gridInterfaces';\nimport ActionsRenderer from '../renderers/actions-renderer';\nimport { getActionColumnWidth, sortActionItemOrder, splitActionList } from '../../../../../udp-utilities/grid/action-renderers/action-column-util';\nimport { GridApi } from 'ag-grid-enterprise';\nimport { lazySetupAgGridLibrary } from '../../../../../global/ag-grid';\nimport { Memoize } from 'fast-typescript-memoize';\nimport { GridReadyEvent } from 'ag-grid-community';\nimport StatusRenderer from '../renderers/status-renderer';\nimport IconRenderer from '../renderers/icon-renderer';\nimport CurrencyRenderer from '../renderers/currency-renderer';\nimport { cloneDeep } from 'lodash';\nimport { v4 as uuid } from 'uuid';\nimport { getCurrentTenantId } from 'src/udp-utilities/tenant/tenantUtils';\n\ntype NotificationStatus = 'error' | 'success' | 'warning';\n\n/**\n * @deprecated This component is deprecated and will be removed in a future version.\n * Please use `search-method-grid` instead\n */\n\n@Component({\n tag: 'ambient-template-grid',\n styleUrl: './ambient-template-grid.css',\n shadow: true,\n})\nexport class AmbientTemplateGrid {\n private prevPivotMode: boolean;\n //private dynamicFormRef: HTMLUdpDynamicFormElement;\n\n @Event() viewSaved: EventEmitter;\n @Event() externalEmitter: EventEmitter;\n @Event() filterChanged: EventEmitter;\n @Element() el: HTMLElement;\n\n @Prop() columnDefs: any[] = [];\n @Prop() fullViewData: any = {};\n @Prop() rowData: any[] = [];\n @Prop() viewListrowData: any[] = [];\n @Prop() gridState: any[] = [];\n @Prop() gridId: string = '';\n @Prop({ mutable: true }) apiCatalogId: string = '';\n @Prop() userId: string = '';\n @Prop() userPermissions: any[] = [];\n @Prop({ mutable: true }) apiMethodId: string = '';\n @Prop({ mutable: true }) lookupApiMethodId: string = '';\n @Prop({ mutable: true }) entityName: string = '';\n @Prop() menuItems: Array<any> = [];\n @Prop() gridBarTitle: string = '';\n @Prop() viewChips: Array<any> = [];\n @Prop() additionalFilterChips: Array<any> = [];\n @Prop() kpiValues: Array<any> = [];\n @Prop() showAdvancedSearchFeature: boolean = true;\n @Prop() showFilterColumnFeature: boolean = true;\n @Prop() queryId: string = '';\n @Prop() defaultSearchObject: Array<any> = [];\n @Prop() defaultSearchObjectOperator: number = 1; // 1 for AND, 2 for OR\n @Prop() actionId: string = '';\n @Prop() cellClickHandler: (value: any, callback: any) => void;\n @Prop() cellClickHandlerX: (value: any, callback: any) => void;\n @Prop() viewActionClickHandler: (value: any, callback: any) => void;\n @Prop() renderConfigs: RenderConfig[] = [];\n // @Prop() externalPayload: any = {}; // check to see if it fixes the issue with adding an empty object\n @Prop() externalPayload: any = null;\n @Prop() dataEmitter: any = {};\n @Prop() dataEmitterRequest: any = {};\n @Prop() fitGrid: string = '';\n @Prop() hotListIdentifier: string = '';\n @Prop() searchKey: Object = {};\n @Prop({ mutable: true }) filterObject: any = [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 2,\n type: 'advanced',\n },\n ];\n @Prop({ mutable: true }) externalSearchFilter: Array<any> = [];\n @Prop() noResults: boolean = false;\n @Prop() maxChipsAllowed: number = 5;\n @Prop() suppressMenuHide: boolean = true; // default show column menu option without hovering\n @Prop() showRank: boolean = false;\n @Prop() showHotlistButton: boolean = false;\n @Prop() columnNames: { [key: string]: string } = {};\n @Prop() buttonTransform: string = '';\n @Prop() rowGrouping: Array<any> = [];\n @Prop() restrictBulkActionsPermissions: boolean = false;\n @Prop() restrictedGridFeatures: { [key: string]: string } = {};\n @Prop() triggerGridUpdate: boolean = false;\n @Prop() hideActionsColumn: boolean = false; //temporary, need better approach\n @Prop() primaryActionLabel: string;\n @Prop() primaryActionOnClick: (e: any) => void;\n @Prop() primaryActionIcon: string;\n @Prop() showInsightsAction: boolean = false;\n @Prop() insightsActionOnClick: (e: any) => void;\n @Prop() hideBulkActions: boolean = false;\n @Prop() enableCheckboxOnColumns: boolean = false;\n @Prop() hiddenColumnsList: Array<string> = [];\n @Prop() hideDefaultSearchFilterChips: boolean = false;\n @Prop() executeBulkAction: (actionId: string, data: any) => void;\n @Prop() bulkActionFunctions: Object = {};\n @Prop() exportFunction: (entityName: string, searchObject: Object) => void;\n @Prop() hiddenActionButtons: Array<string> = [];\n @Prop() rowIdField: string | null = null;\n @Prop() defaultSearchMode: 'advanced' | 'standard' = 'standard';\n @Prop() disableSearchSwitch: boolean = false;\n @Prop() disableGridPersistance: boolean = false;\n\n @State() drawerOpen: boolean = false;\n @State() filterPanelOpen: boolean = true;\n @State() saveDialogOpen: boolean = false;\n @State() editDialogOpen: boolean = false;\n @State() editViewConfirmationDialogOpen: boolean = false;\n @State() gridOptionsDrawerOpen: boolean = false;\n @State() viewListGridOptions: GridOptions;\n @State() filterChips: Array<any> = [];\n @State() promotedEntity: any = {};\n @State() isServerSide: boolean = true;\n @State() showNotification: boolean = false;\n @State() notificationMessage: string = '';\n @State() notificationStatus: NotificationStatus = 'success';\n @State() loadedView: Array<any> = [];\n @State() loadedViewTitle: string = '';\n @State() loadedViewData: string = '';\n @State() currentColumnOrdering: Array<any> = [];\n @State() currentHiddenColumns: Array<any> = [];\n @State() rowsSelected: boolean = false;\n @State() selectedRowCount: number = 0;\n @State() serverColumnDefs: Array<any> = [];\n @State() isSetupComplete: boolean = false;\n @State() extendedSearchFilterList: Array<any> = [];\n @State() viewListRowData: Array<any> = [];\n @State() bulkActions: Array<any> = [];\n @State() sheetContent: string = 'advancedSearch';\n @State() searchObject: SearchObject = { filterElements: [] };\n @State() configuredColumnDefs: Array<any> = [];\n @State() hasConfiguredColumnDefs: boolean = false;\n @State() fullDataColumns: any[] = [];\n @State() filterOn: string = '';\n @State() gridOptions: GridOptions;\n @State() agGrid:\n | undefined\n | {\n api: GridApi<any>;\n // @note As of ag-grid@v31 ColumnApi has been deprecated and all methods will move to api.\n columnApi: ColumnApi;\n };\n @State() hasSearchRank: boolean;\n @State() serverSideDatasource: IServerSideDatasource | undefined;\n @State() tempSearchObject: { searchField: string; searchOperator: string; searchValue: any; groupId: number } = {\n searchField: '',\n searchOperator: '',\n searchValue: '',\n groupId: 1,\n };\n @State() catalogList: any = {};\n @State() dataRowClicked: any = {};\n @State() advancedSearchFilterList: Array<any> = [];\n @State() allHotlists: Array<any> = [];\n @State() externalToggle: string = '';\n @State() viewId: string = '';\n @State() defaultFilterObject: Array<any> = [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [\n // {\n // \"searchField\": \"genderCode\",\n // \"searchOperator\": \"=\",\n // \"searchValue\" : \"1\"\n // }\n ],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 1,\n type: 'advanced',\n },\n ];\n\n @State() filterRenderList: Array<any> = [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [\n // {\n // \"searchField\": \"Title\",\n // \"searchOperator\": \"IN\",\n // \"searchValue\": \"VP\"\n // }\n ],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 1,\n type: 'advanced',\n },\n ];\n @State() logicalSearchOperator: number = 1;\n @State() lookupsMap: any = null;\n @State() formattedBulkActions: { label: string; value: string }[] = [];\n @State() advancedDrawerOpen: boolean = false;\n @State() viewDrawerOpen: boolean = false;\n @State() hotlistDrawerOpen: boolean = false;\n @State() customSearchDrawerOpen: boolean = false;\n @State() businessObjectKey: string;\n @State() hotListActive: string;\n @State() hotListCount: number = 0;\n @State() hotListId: string;\n @State() loadedHotlistTitle: string = '';\n @State() showHotlistForm: boolean = false;\n @State() confirmDialog: boolean = false;\n @State() confirmDialogDeleteView: boolean = false;\n @State() filteredCount: Array<any> = [];\n @State() hotlistSelectedFull: object = {};\n @State() advancedGroupSearchNodeId: string = '';\n @State() otherId: string = '';\n @State() updateForConfiguredColumnDefs: boolean = true;\n @State() filterObjectsWithGroups: Array<any> = [\n {\n id: 'root',\n filterGroupId: null,\n logicalOperator: 'AND',\n filters: [],\n },\n ];\n @State() loadedGridView: object = {};\n @State() linearLoading: boolean = false;\n @State() selectedGridId: string = '';\n @State() selectedViewName: string = '';\n @State() selectedViewIsDefault: boolean = false;\n @State() selectedViewGridViewVisibilityTypeId: number;\n @State() selectedGridViewGridConfigurations: any[];\n @State() allFilters: Array<any> = [];\n @State() visibleChips: any[];\n @State() overflowChips: any[];\n @State() overflowActive: boolean = false;\n @State() setSearchStart: boolean = false;\n @State() refreshChips: boolean = false;\n @State() gridUID: string = '';\n @State() recentSearches: any[] = [];\n @State() recentSearchesOptions: any[] = [];\n @State() isRecentSearch: boolean = false;\n @State() gridError: boolean = false;\n @State() gridHeight: string = 'calc(100vh - 200px)';\n @State() openActionPopoverMenu: boolean = false;\n @State() selectedRowParams: ICellRendererParams;\n @State() actionMenuAnchorElement: HTMLElement;\n @State() overflowActionMenuItems: ActionItem[];\n @State() initialFilterData: any = {\n filterObjectsWithGroups: [\n {\n id: 'root',\n filterGroupId: null,\n logicalOperator: 'AND',\n filters: [],\n },\n ],\n logicalSearchOperator: 1,\n filterObject: [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 2,\n type: 'advanced',\n },\n ],\n filterRenderList: [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 1,\n type: 'advanced',\n },\n ],\n };\n @State() defaultColumnState: any[] = null;\n @State() _distinctValueStore: any = {};\n @State() _distinctsCached: boolean = false;\n @State() shouldForceEmptyResults: boolean = false;\n @State() enableAdvancedSearch: boolean = true;\n @State() toggleSearchModeConfirmationDialogOpen: boolean = false;\n @State() enableDefaultView: boolean = true;\n @State() resetToOriginalColumnDefs: boolean = false;\n @State() prevFilterObject: any[] = [];\n viewListcolumnDefs: any[];\n\n @Watch('triggerGridUpdate')\n handleTriggerGridUpdate(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue && this.agGrid) {\n this.agGrid?.api?.refreshServerSide({ purge: true });\n this.updateServerSideDatasource('', 'advanced search sheet');\n }\n }\n\n @Event() selectedIdsChanged: EventEmitter<number[]>;\n\n @Listen('noDataDetected', { target: 'document' })\n noDataHandler() {\n this.linearLoading = false;\n this.noResults = true;\n }\n\n\n @Watch('catalogList')\n watchHandler(newVal: any, _oldVal: any) {\n if (newVal) {\n this.filterByCatalogObjectName(this.entityName);\n }\n }\n\n @Memoize()\n async getApiCatalogId(): Promise<string> {\n if (this.apiCatalogId) return this.apiCatalogId;\n\n const fetchedData = await getApiCatalogAndProduct();\n return (this.apiCatalogId = fetchedData.apiCatalogId);\n }\n\n async getApiMethodId(): Promise<string> {\n if (this.apiMethodId) return this.apiMethodId;\n\n const apiMethodInstance = await this.getApiMethodInstance();\n const apiMethodId = apiMethodInstance.apiMethodId;\n if (!apiMethodId) {\n throw new Error('apiMethodId not found');\n }\n\n return (this.apiMethodId = apiMethodId);\n }\n\n async getLookupApiMethod(): Promise<string> {\n if (this.lookupApiMethodId) return this.lookupApiMethodId;\n\n const promotedLookupMethod = await this.getPromotedLookupMethod();\n return (this.lookupApiMethodId = promotedLookupMethod?.unityBaseGetDataMethod?.apiMethodId);\n }\n\n @Memoize()\n async getApiMethodInstance() {\n return await getApiMethodInstance(this.queryId);\n }\n\n @Memoize()\n async getApiMethod() {\n return await getApiMethod(await this.getApiMethodId());\n }\n\n @Memoize()\n async getPromotedLookupMethod() {\n return await getPromotedLookupMethod(await this.getApiCatalogId());\n }\n\n @Memoize()\n async getFilterBody() {\n const apiMethodInstance = await this.getApiMethodInstance();\n return apiMethodInstance.body;\n }\n\n /**\n * Get column definitions from props or API Method Instance catalogModification\n */\n async getColumnDefinitions(): Promise<any[]> {\n if (this.columnDefs && this.columnDefs.length > 0) return this.columnDefs;\n\n const apiMethodInstance = await this.getApiMethodInstance();\n return JSON.parse(apiMethodInstance.catalogModification);\n }\n\n async getEntityName() {\n if (this.entityName) return this.entityName;\n\n const apiMethod = await this.getApiMethod();\n return (this.entityName = apiMethod.entityName);\n }\n\n updateFilterObject(recipe: (state: Draft<any[]>) => any[] | void | undefined) {\n this.filterObject = produce(this.filterObject, recipe);\n }\n\n async filterByCatalogObjectName(catalogObjectName: string) {\n if (!this.catalogList) {\n console.warn('catalogList is empty or undefined.');\n return;\n }\n // change to list from UdpGridColumnDefs\n const catalogObjectList = this.catalogList?.ctlg?.catalogObjectList;\n if (Array.isArray(catalogObjectList)) {\n catalogObjectList.forEach(object => {\n if (object.catalogObjectName === catalogObjectName) {\n const names = object.properties.map(property => {\n return { name: property.name };\n });\n this.advancedSearchFilterList = names;\n }\n });\n } else {\n console.warn('catalogObjectList is not an array or is undefined.');\n }\n }\n\n // PUTS apiCatalogData into localStorage\n getExtendedAdvancedSearchFilterList = async () => {\n\n try {\n const apiCatalogId = await this.getApiCatalogId();\n let apiCatalogData: any;\n\n // Retrieve apiCatalogData from localForage or make the API call if not found\n apiCatalogData = await localforage.getItem('apiCatalogData');\n if (!apiCatalogData) {\n // Fetch data from the API if not available in localForage\n apiCatalogData = await getApiCatalogById(apiCatalogId);\n // Store the fetched data in localForage for future use\n await localforage.setItem('apiCatalogData', apiCatalogData);\n }\n\n const transformedData = useTreeDatasource(apiCatalogData, await this.getEntityName(), true, true, '', '', '');\n\n if (transformedData) {\n state.catalogData = apiCatalogData;\n this.extendedSearchFilterList = transformedData;\n } else {\n console.error('No data returned from useTreeDatasource');\n }\n } catch (error) {\n this.gridError = true;\n console.error('Error fetching API Catalog:', error);\n }\n };\n\n constructor() {\n this.changeOperator = this.changeOperator?.bind(this);\n }\n changeOperator(event: CustomEvent) {\n // Convert string to integer\n const convertedValue = parseInt(event.detail, 10);\n // Update the state\n this.logicalSearchOperator = convertedValue;\n }\n\n @Method()\n async updateFilterAndFetch(newFilter: Array<any>) {\n this.updateFilterObject(() => [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [...newFilter],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 2,\n type: 'advanced',\n },\n ]);\n // Now call updateServerSideDatasource\n this.updateServerSideDatasource('', 'updateFilterAndFetch');\n }\n\n buildSearchFilterElements(filterElement, forObject, isInitialFilterElement) {\n let filterElementObject = {\n id: uuid(),\n groupId: 1,\n isInitialFilterElement: isInitialFilterElement,\n originalSearchOperator: filterElement.searchOperator,\n originalSearchValue: filterElement.searchValue,\n searchLabel: this.getHeaderFieldLabel(filterElement.searchField),\n ...filterElement,\n };\n\n if (forObject) {\n filterElementObject = {\n id: uuid(),\n otherId: uuid(),\n level: 0,\n ...filterElementObject,\n };\n }\n\n return filterElementObject;\n }\n\n @Watch('externalSearchFilter')\n @Watch('defaultSearchObject')\n async handleFilteringSetup() {\n const filterBodyStr = await this.getFilterBody();\n const filterBody = !!filterBodyStr && typeof filterBodyStr === 'string' ? JSON.parse(filterBodyStr) : {};\n const intialFilterElements = filterBody?.filterElements || [];\n const updatedInitialFilterElementsForObject = [];\n\n const rootFilterGroupId = uuid();\n intialFilterElements.forEach(filterElement => {\n updatedInitialFilterElementsForObject.push({\n id: uuid(),\n filterGroupId: rootFilterGroupId,\n groupId: 1,\n isInitialFilterElement: true,\n searchLabel: this.getHeaderFieldLabel(filterElement.searchField),\n ...filterElement,\n });\n });\n\n // construct filterElements from defaultSearchObject props\n (this.defaultSearchObject ?? []).forEach(searchObj => {\n updatedInitialFilterElementsForObject.push(this.buildSearchFilterElements(searchObj, false, true));\n });\n\n // construct filterElements from filterObject props\n this.externalSearchFilter.forEach(filterElement => {\n updatedInitialFilterElementsForObject.push(this.buildSearchFilterElements(filterElement, false, false));\n });\n\n this.filterObjectsWithGroups = [\n {\n id: 'root',\n filterGroupId: null,\n logicalOperator: this.getLogicalOperatorValue(1),\n filters: [],\n children: [\n {\n id: 'default',\n filterGroupId: rootFilterGroupId,\n logicalOperator: this.getLogicalOperatorValue(this.defaultSearchObjectOperator),\n filters: updatedInitialFilterElementsForObject,\n },\n ],\n },\n ];\n\n this.initialFilterData.filterObjectsWithGroups = cloneDeep(this.filterObjectsWithGroups);\n\n this.logicalSearchOperator = filterBody?.logicalSearchOperator || 1;\n this.initialFilterData.logicalSearchOperator = filterBody?.logicalSearchOperator || 1;\n const initialFilterObject = cloneDeep(this.initialFilterData.filterObject);\n initialFilterObject[0].filterElements = [...updatedInitialFilterElementsForObject];\n this.initialFilterData.filterObject = initialFilterObject;\n this.initialFilterData.filterRenderList = cloneDeep(this.initialFilterData.filterObject);\n\n this.filterObject = this.updateFilterGroups(this.filterObjectsWithGroups);\n\n this.filterRenderList = cloneDeep(this.filterObject);\n this.handleColumnSizing();\n this.updateChipLayout();\n }\n\n async componentWillLoad() {\n this.gridError = false;\n\n this.gridUID = this.gridId + '-' + this.queryId;\n\n await this.handleAdditionalSetup();\n\n this.viewListcolumnDefs = [\n {\n headerName: 'Name',\n field: 'name',\n resizable: true, // Enable resizing\n height: 100,\n },\n {\n field: 'gridViewVisibilityTypeId',\n cellRenderer: CustomRenderer,\n height: '100px',\n },\n {\n headerName: 'Actions',\n field: 'gridViewId',\n cellRenderer: CustomActionsRenderer,\n cellRendererParams: {\n onClick: this.handleLoadView,\n },\n },\n ];\n\n // Preload the ag-Grid library\n lazySetupAgGridLibrary({ LicenseKey });\n\n // Grab list of recent searches from local storage\n this.getRecentSearches();\n\n this.enableAdvancedSearch = this.defaultSearchMode === 'advanced';\n }\n\n waitForGrid(callback: () => void) {\n const observer = new MutationObserver(([], observer) => {\n const myGrid = this.el.shadowRoot.querySelector('#myGrid');\n if (myGrid) {\n observer.disconnect(); // Stop observing once the grid is found\n callback();\n }\n });\n\n observer.observe(this.el.shadowRoot, {\n childList: true, // Observe direct children changes\n subtree: true, // Observe nested children changes\n });\n }\n\n componentDidLoad() {\n lazySetupAgGridLibrary({ LicenseKey })\n .then(() => {\n // Initialize the ag-Grid\n this.waitForGrid(() => this.initializeGrid());\n })\n .catch(error => {\n this.gridError = true;\n console.error('Error during grid initialization:', error);\n });\n\n SharedContext.myClickCallback = this.cellClickHandler?.bind(this);\n SharedContext.viewActionCallback = this.viewActionClickHandler?.bind(this);\n SharedContext.thirdActionCallback = this.cellClickHandlerX?.bind(this);\n SharedContext.hotListAddHandler = otherCellValue => {\n this.businessObjectKey = otherCellValue;\n };\n\n // Can handle add or delete hotlist record from a list\n SharedContext.hotListAddHandler = otherCellValue => {\n function findMatchingHotListId(dataObject: any, otherCellValue: any): string | null {\n for (const record of dataObject.records) {\n const parsedData = JSON.parse(record.data);\n\n if (parsedData.businessObjectKey === otherCellValue.businessObjectKey) {\n return record.hotListRecordId;\n }\n }\n return null;\n }\n\n this.businessObjectKey = otherCellValue;\n if (!this.hotListActive) {\n this.hotlistDrawerOpen = true;\n } else {\n const matchingHotListId = findMatchingHotListId(this.hotlistSelectedFull, otherCellValue);\n removeRecordFromHotlist(matchingHotListId);\n const hotlistSelectedFull: HotListObject = this.hotlistSelectedFull as HotListObject;\n this.removeFilterItem({\n searchField: 'contactId',\n searchValue: matchingHotListId,\n });\n this.handleRequestHotlist(hotlistSelectedFull.hotListId);\n }\n };\n\n this.updateChipLayout();\n window.addEventListener('resize', this.updateChipLayout);\n }\n\n handleLinerLoading = (isLoading: boolean) => {\n this.linearLoading = isLoading;\n };\n\n //#region Action Renderer\n updateActionRendererState = (event: any, params: any) => {\n this.openActionPopoverMenu = !this.openActionPopoverMenu;\n this.selectedRowParams = params;\n this.actionMenuAnchorElement = event.currentTarget;\n };\n\n handleOnCloseActionPopover = event => {\n event?.preventDefault();\n this.selectedRowParams = null;\n this.openActionPopoverMenu = false;\n this.actionMenuAnchorElement = null;\n };\n\n getOverflowActionList = (overflowActions, params) => {\n return overflowActions?.map((action: ActionItem) => {\n const disabledAction = action?.checkDisabled ? action?.checkDisabled(params) : action?.disabled ?? false;\n const actionTitle = action?.getTitle ? action?.getTitle(params) : action?.title;\n return (\n <udp-menu-item\n label={actionTitle}\n iconName={action?.iconName}\n disabled={disabledAction}\n handleOnClick={e => {\n action?.handleOnClick(e, params);\n }}\n />\n );\n });\n };\n //#endregion\n\n // Main search call to server (old)\n updateServerSideDatasource(requestType: string, specialType: string) {\n console.warn('(dead branch) updateServerSideDataSouced: ', specialType);\n\n // Optionally close the drawer.\n if (requestType !== 'remove') {\n this.drawerOpen = false;\n this.advancedDrawerOpen = false;\n }\n }\n //#region Column Defs\n @Watch('configuredColumnDefs')\n @Watch('columnNames')\n @Watch('bulkActions')\n changeServerColumnDefs() {\n const updateColumnDefs = serverColumnDefs => {\n // Start with serverColumnDefs and update hide property\n let updatedColumns = serverColumnDefs.map(columnDef => {\n const hide = false;\n return {\n ...columnDef,\n hide: hide,\n };\n });\n\n // Add any columns from fullDataColumns that are not in serverColumnDefs\n this.fullDataColumns.forEach(column => {\n if (!serverColumnDefs.some(serverColumn => serverColumn.field === column.field) && this.showRank) {\n const hide = column.field !== 'searchRank';\n updatedColumns.push({ ...column, hide: hide });\n }\n });\n\n // Update the column header names\n if (this.columnNames) {\n const updatedColumnsWithNewNames = updatedColumns.map(obj => ({\n ...obj,\n headerName: this.columnNames[obj.headerName] || obj.headerName, // Use dictionary value or fallback to original value\n }));\n\n // Update the state or the updatedColumns with the new names\n updatedColumns = updatedColumnsWithNewNames;\n }\n\n // Hide column\n if (rowGroups.length > 0 && rowGroups) {\n let groupProps = null;\n groupProps = rowGroups.map(prop => prop.toLowerCase());\n updatedColumns = updatedColumns.map(column => {\n // Check if this column's field is present in groupProperty\n const hide = groupProps.includes(column.field.toLowerCase());\n return {\n ...column,\n hide: hide,\n };\n });\n }\n\n return updatedColumns;\n };\n const displayColumns = updateColumnDefs(this.configuredColumnDefs);\n\n const modifiedColumnDefs = displayColumns.map(column => {\n // Check if this column's headerName is present in displayColumns\n const isColumnDisplayed = displayColumns.find(displayColumn => displayColumn.headerName === column.headerName);\n // If it's not present, add the 'hide' property\n if (!isColumnDisplayed) {\n if (column.headerName === 'Search Rank') {\n return { ...column, sortable: false, hide: this.hasSearchRank ? false : true };\n } else {\n return { ...column, hide: true };\n }\n }\n // If it is present, return the column as is\n return column;\n });\n\n const addRenderers = (columnDefs, renderConfigs) => {\n return columnDefs.map(colDef => {\n // Find a matching configuration for this column\n const config = renderConfigs.find(cfg => cfg.field === colDef.field);\n if (config) {\n // Merge existing cellRendererParams with ones from config, prioritizing config params\n const cellRendererParams = {\n ...colDef.cellRendererParams,\n ...config.cellRendererParams,\n otherField: config.otherField, // Assuming you might want to keep using this pattern\n callbackId: config.callbackId,\n showViewAction: true,\n showThirdAction:\n this.showHotlistButton &&\n !(this.restrictedGridFeatures?.Hotlist && !this.userPermissions.some(permission => permission.name === this.restrictedGridFeatures.Hotlist)),\n };\n\n if (config?.rendererName === 'actionsRenderer') {\n const maximumVisibleActions = 4;\n //set minWidth and maxWidth for action columns\n const actionColumnWidth = getActionColumnWidth(config?.cellRendererParams?.actionList);\n colDef.minWidth = actionColumnWidth;\n colDef.maxWidth = actionColumnWidth;\n\n //sort action list\n const sortedActionList = sortActionItemOrder([...config.cellRendererParams.actionList]);\n\n if (config?.cellRendererParams?.actionList?.length > maximumVisibleActions) {\n // Split the action list if there are more than 4 actions\n const { visibleActions, overflowActions } = splitActionList(sortedActionList, maximumVisibleActions - 1);\n this.overflowActionMenuItems = overflowActions;\n visibleActions.push({\n id: 100,\n iconName: 'overflowMenuVertical',\n title: 'View More',\n handleOnClick: this.updateActionRendererState.bind(this),\n disabled: false,\n });\n\n cellRendererParams.actionList = visibleActions;\n }\n }\n\n if (config.rendererName === 'currencyRenderer') {\n colDef.type = 'rightAligned';\n }\n\n return {\n ...colDef,\n cellRenderer: config.rendererName,\n cellRendererParams: cellRendererParams,\n };\n }\n return colDef; // Return original colDef if no matching config is found\n });\n };\n\n const addActionsColumn = columnDefs => {\n const actionsColumnExists = columnDefs.some(column => column.field === 'actions');\n if (!actionsColumnExists && !this.hideActionsColumn) {\n const actionsColumn = {\n headerName: 'Actions',\n field: 'actions',\n cellRendererParams: {\n shouldDisplayCustomContent: false,\n },\n cellRenderer: 'hotListAddRenderer',\n pinned: 'right',\n };\n columnDefs.push(actionsColumn);\n }\n return columnDefs;\n };\n\n const CHECKBOX_FIELD = 'checkbox';\n const addCheckboxColumn = columnDefs => {\n var bulkActions = this.bulkActions; // check if bulk actions are configured, if not then skip adding checkboxes\n if (bulkActions?.length > 0 || this.enableCheckboxOnColumns) {\n const checkboxColumnExists = columnDefs.some(column => column.field === CHECKBOX_FIELD);\n if (!checkboxColumnExists) {\n columnDefs = columnDefs.map(col => {\n if (col.field !== CHECKBOX_FIELD) {\n return {\n ...col,\n suppressPinned: true,\n suppressMovable: false,\n sortable: true,\n };\n }\n return col;\n });\n\n const checkboxColumn = {\n headerName: '', // No title for the checkbox column\n field: CHECKBOX_FIELD,\n checkboxSelection: true, // This enables the checkbox selection feature\n headerCheckboxSelection: this.enableCheckboxOnColumns, // set to false now as the server-size for select all is not fully implemented\n pinned: 'left', // Pinned to the left\n lockVisible: true, // This prevents the column from being hideable\n maxWidth: 70,\n filter: false, // no need to show filter for this column\n menuTabs: [], // Disables the menu in the column header\n sortable: false, // Disables sorting for this column\n suppressMovable: true,\n lockPosition: true,\n lockPinned: true,\n };\n columnDefs.unshift(checkboxColumn); // Use unshift to add it at the start of the array\n }\n }\n return columnDefs;\n };\n\n const addToolTip = columnDefs => {\n return columnDefs.map(colDef => {\n colDef.tooltipField = colDef.field;\n colDef.headerTooltip = colDef.headerName;\n return { ...colDef };\n });\n };\n\n // Usage of the function to add checkbox column\n const columnDefsWithCheckbox = addCheckboxColumn(modifiedColumnDefs);\n\n // Add the Actions column to the definitions with checkbox\n let columnDefsWithActions = addActionsColumn(columnDefsWithCheckbox);\n\n // Reorder the columns based on the currentColumnOrdering\n if (this.currentColumnOrdering.length > 0) {\n const reorderedColumns = this.currentColumnOrdering.map(currentColOrder => columnDefsWithActions.find(col => col.field === currentColOrder.colId));\n // Update the columnDefs with the reordered columns\n columnDefsWithActions = reorderedColumns;\n }\n\n // Update each column definition's 'hide' property with the value from grid state\n if (this.currentHiddenColumns?.length > 0) {\n columnDefsWithActions = columnDefsWithActions.map(colDef => {\n const hiddenCol = this.currentHiddenColumns.find(hiddenCol => hiddenCol.colId === colDef.field);\n if (hiddenCol) {\n return { ...colDef, hide: hiddenCol.hide };\n }\n return colDef;\n });\n }\n\n const columnDefsWithToolTips = addToolTip(columnDefsWithActions);\n\n // Now pass this updated array to addRenderers or other manipulation functions\n const columnDefsWithRenderers = addRenderers(columnDefsWithToolTips, this.renderConfigs);\n this.serverColumnDefs = cloneDeep(columnDefsWithRenderers);\n }\n\n @Watch('hiddenColumnsList')\n watchHiddenColumnList() {\n if (this.gridIsReady) {\n const newDefaultState = this.defaultColumnState.map(col => {\n const shouldHide = this.hiddenColumnsList.includes(col.colId);\n return {\n ...col,\n hide: shouldHide,\n };\n });\n this.defaultColumnState = newDefaultState;\n //TODO here might not want to apply column state if a view is active\n if (this.loadedView.length === 0) {\n this.agGrid.columnApi.applyColumnState({ state: this.defaultColumnState, applyOrder: true });\n }\n }\n }\n\n @Watch('configuredColumnDefs')\n configuredColumnDefsChanged(newValue: Array<any>) {\n this.hasConfiguredColumnDefs = newValue.length > 0;\n }\n //#endregion\n\n @Watch('isServerSide')\n // @Watch('apiMethodId')\n // @Watch('agGrid')\n @Watch('filterObject')\n @Watch('logicalSearchOperator')\n @Watch('lookupsMap')\n // @Watch('accessToken')\n // @Watch('tenantId')\n changeServerSideDatasource(_newValue?: any, _oldValue?: any, propName?: string) {\n console.log(`changeServerSideDatasource triggered by ${propName || 'unknown'}`);\n this.linearLoading = true;\n\n // Ensure all prerequisites are met before attempting to update the data source.\n if (!this.isServerSide || !this.apiMethodId) {\n this.linearLoading = false;\n console.warn(`Grid update prerequisites not met. isServerSide: ${this.isServerSide}, apiMethodId: ${this.apiMethodId}`);\n return;\n }\n\n if (propName === 'lookupsMap' && !this.lookupsMap) {\n console.warn('lookupsMap is not set, skipping datasource update');\n return;\n }\n\n if (propName === 'filterObject' && this.filterObject === this.prevFilterObject) {\n console.warn('Filter object has not changed, skipping datasource update');\n return;\n }\n this.prevFilterObject = cloneDeep(this.filterObject);\n\n this.noResults = false;\n\n let datasource = SearchServiceDatasource(\n null,\n this.gridUID,\n this.isRecentSearch,\n this.apiMethodId,\n this.hotListActive && this.extractContactIDs(this.hotlistSelectedFull).length === 0,\n this.filterObject,\n this.logicalSearchOperator,\n this.getLookupApiMethod(),\n executeQueryAdHocAndMapLookups,\n this.lookupsMap,\n this.defaultSearchObject,\n (dataFetched, totalCount) => {\n try {\n if (totalCount === 0) {\n this.linearLoading = false;\n }\n\n this.fullDataColumns = convertToAgGridColumns(dataFetched);\n this.hasSearchRank = !!dataFetched?.[0]?.searchRank;\n if (this.agGrid) {\n this.agGrid.api.removeEventListener('modelUpdated', this._onModelUpdated);\n this.agGrid.api.addEventListener('modelUpdated', this._onModelUpdated);\n }\n } catch (error) {\n this.gridError = true;\n console.error('Error processing data fetched for the grid:', error);\n }\n\n // Update list of recent searches\n this.getRecentSearches();\n this.isRecentSearch = false;\n },\n this.handleLinerLoading,\n );\n\n const wrappedDatasource = this.withFilterTracking(datasource);\n this.serverSideDatasource = wrappedDatasource;\n this.getGridState(true);\n }\n\n private _onModelUpdated = () => {\n const rowCount = this.agGrid.api.getDisplayedRowCount();\n this.getExtendedAdvancedSearchFilterList();\n\n if (rowCount === 0) {\n this.linearLoading = false;\n }\n this.handleColumnSizing();\n };\n\n cacheDistinctValues(rowData) {\n rowData.forEach(row => {\n Object.keys(row).forEach(field => {\n if (!this._distinctValueStore[field]) {\n this._distinctValueStore[field] = new Set();\n }\n this._distinctValueStore[field].add(row[field]);\n });\n });\n }\n\n withFilterTracking(datasource) {\n const originalGetRows = datasource.getRows;\n this._distinctValueStore = {};\n this._distinctsCached = false;\n\n datasource.getRows = params => {\n const wrappedParams = {\n ...params,\n success: data => {\n const rowData = data?.rowData || [];\n\n if (!this._distinctsCached) {\n this.cacheDistinctValues(rowData);\n this._distinctsCached = true;\n\n let columnDefinitions = this.populateColumnDefsWithDistinctValues();\n if (this.hiddenColumnsList?.length > 0) {\n columnDefinitions = columnDefinitions.map(colDef => ({\n ...colDef,\n hide: this.hiddenColumnsList.includes(colDef.field),\n }));\n }\n this.agGrid?.api?.setColumnDefs(columnDefinitions);\n this.setDefaultView();\n this.defaultColumnState = this.agGrid?.columnApi?.getColumnState();\n this.handleColumnSizing();\n }\n\n this.noResults = data.rowData.length === 0;\n params.success(data);\n },\n };\n\n originalGetRows(wrappedParams, this.shouldForceEmptyResults);\n };\n return datasource;\n }\n\n populateColumnDefsWithDistinctValues() {\n if (!this.gridIsReady || !this.agGrid?.columnApi) {\n console.warn('Grid is not ready yet, skipping column population');\n return [];\n }\n const stateMap = Object.fromEntries(this.agGrid.columnApi.getColumnState().map(s => [s.colId, s]));\n const agColumns = this.agGrid.columnApi.getColumns();\n const currentDefs = this.resetToOriginalColumnDefs\n ? this.serverColumnDefs ?? []\n : (agColumns?.length ?? 0) > 0\n ? agColumns.map(col => ({\n ...col.getColDef(),\n ...(stateMap?.[col.getColId()] ?? {}),\n }))\n : [];\n\n const newDefs = currentDefs.map(col => {\n if (!col.field) return col;\n return {\n ...col,\n filter: 'agSetColumnFilter',\n filterParams: {\n values: params => {\n const distinct = Array.from(this._distinctValueStore[col.field] || []);\n params.success(distinct);\n },\n refreshValuesOnOpen: true,\n },\n };\n });\n\n this.resetToOriginalColumnDefs = false;\n return newDefs;\n }\n\n @Watch('serverSideDatasource')\n @Watch('agGrid')\n setServerSideDatasource() {\n this.gridError = false;\n // Set the new data source and trigger a refresh.\n if (this.agGrid) {\n try {\n this.agGrid.api.setServerSideDatasource(this.serverSideDatasource);\n // No need to call refreshServerSide() as setting the datasource will implicitly refresh it.\n } catch (error) {\n this.gridError = true;\n console.error('Error setting server-side datasource:', error);\n }\n } else {\n this.serverSideDatasource.getRows({\n api: undefined,\n columnApi: undefined,\n context: undefined,\n request: {\n startRow: 0,\n endRow: 20,\n rowGroupCols: [],\n valueCols: [],\n pivotCols: [],\n pivotMode: false,\n groupKeys: [],\n filterModel: {},\n sortModel: [],\n // @ts-expect-error -- Prefetch property is custom\n prefetch: true,\n },\n fail() {},\n success() {},\n });\n }\n }\n\n adjustGridScroll() {\n const gridViewport = this.el.querySelector('.ag-center-cols-viewport') as HTMLElement;\n if (gridViewport && gridViewport.style) {\n gridViewport.style.overflowY = 'hidden';\n }\n const scrollViewport = this.el.querySelector('.ag-body-viewport.ag-layout-normal') as HTMLElement;\n if (scrollViewport && scrollViewport.style) {\n scrollViewport.style.overflowY = 'hidden';\n }\n }\n\n triggerResizeEvent() {\n let resizeEvent = new CustomEvent('resize');\n window.dispatchEvent(resizeEvent);\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.updateChipLayout();\n }\n\n @Watch('serverColumnDefs')\n serverColumnDefsChanged(newValue: any[]) {\n if (newValue && newValue.length != 0 && !this.isSetupComplete) {\n this.handleSecondarySetup();\n this.isSetupComplete = true;\n }\n this.updateChipLayout();\n }\n\n @Watch('filterRenderList')\n watchChipLayoutChanges() {\n this.updateChipLayout();\n }\n\n private selectedRowMap: Record<string, any> = {};\n private gridIsReady = false;\n initializeGrid() {\n this.gridOptions = {\n animateRows: true,\n ...(this.isServerSide ? { rowModelType: 'serverSide' } : {}),\n ...(this.isServerSide ? { serverSideStoreType: 'partial' } : {}),\n ...(this.isServerSide ? { cacheOverflowSize: 2 } : {}),\n ...(this.isServerSide ? { cacheBlockSize: 20 } : {}),\n ...(this.isServerSide ? { maxConcurrentDatasourceRequests: 1 } : {}),\n pagination: true,\n paginationPageSize: 20,\n rowHeight: 32,\n defaultColDef: {\n filter: !this.enableAdvancedSearch,\n menuTabs: this.enableAdvancedSearch ? ['generalMenuTab', 'columnsMenuTab'] : ['generalMenuTab', 'filterMenuTab', 'columnsMenuTab'],\n resizable: true,\n },\n rowSelection: 'multiple',\n ...(this.rowIdField && {\n getRowId: params => {\n const id = params.data?.[this.rowIdField];\n if (!id) {\n console.warn(`Missing ID for row using rowIdField=\"${this.rowIdField}\"`, params.data);\n return params.rowIndex?.toString(); // fallback\n }\n return id;\n },\n }),\n suppressRowClickSelection: true,\n onRowSelected: event => {\n const node = event.node;\n const rowId = node.id;\n\n if (!rowId) return;\n\n if (node.isSelected()) {\n this.selectedRowMap[rowId] = node.data;\n } else {\n delete this.selectedRowMap[rowId];\n }\n\n this.selectedRowCount = Object.keys(this.selectedRowMap).length;\n this.rowsSelected = this.selectedRowCount > 0;\n },\n onCellClicked: event => {\n this.dataRowClicked = event.data;\n },\n components: {\n emailCellRenderer: EmailCellRenderer,\n openFunctionCellRenderer: OpenFunctionCellRenderer,\n hoverContentCellRenderer: HoverContentCellRenderer,\n hotListAddRenderer: HotListAddRenderer,\n dateTimeCellRenderer: DateTimeCellRenderer,\n actionsRenderer: ActionsRenderer,\n statusRenderer: StatusRenderer,\n iconRenderer: IconRenderer,\n currencyRenderer: CurrencyRenderer,\n },\n columnDefs: this.serverColumnDefs,\n rowData: this.rowData,\n serverSideDatasource: this.serverSideDatasource,\n sideBar: this.filterPanelOpen\n ? {\n toolPanels: [\n {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n },\n {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n toolPanelParams: {\n suppressRowGroups: true,\n suppressValues: true,\n suppressPivots: true,\n suppressPivotMode: true,\n },\n },\n ],\n defaultToolPanel: '',\n }\n : null,\n onGridReady: (event: GridReadyEvent<any>) => {\n this.agGrid = {\n api: event.api,\n columnApi: event.columnApi,\n };\n\n this.gridIsReady = true;\n const tryResize = () => {\n try {\n // If loadedView/loadedViewData aren't ready or throw, fallback to just resizing\n const view = this.loadedView;\n const data = this.loadedViewData;\n\n const skipResize = Array.isArray(view) && Array.isArray(data) ? view.length !== 0 || data.length !== 0 : false;\n\n if (!skipResize) {\n this.handleColumnSizing();\n }\n } catch (error) {\n // Fallback: just attempt resizing if any error occurs\n this.handleColumnSizing();\n }\n };\n\n [500, 1000, 2000, 3000, 4000, 5000, 6000, 10000, 20000].forEach(delay => {\n setTimeout(tryResize, delay);\n });\n\n this.getGridState?.();\n this.adjustGridScroll?.();\n },\n onColumnMoved: () => {\n if (this.gridIsReady) {\n this.currentColumnOrdering = this.agGrid.columnApi.getColumnState();\n }\n this.getGridState(true);\n },\n onColumnVisible: () => {\n if (this.gridIsReady) {\n this.currentHiddenColumns = this.agGrid.columnApi.getColumnState();\n }\n this.getGridState(true);\n },\n onColumnResized: () => {\n let gridFilters = localStorage.getItem('currentGridFilters');\n if (!gridFilters || gridFilters?.length === 0) {\n this.getGridState();\n } else {\n this.getGridState(true);\n }\n },\n onColumnPinned: () => {\n this.getGridState(true);\n },\n onFilterChanged: () => {\n const filterModel = this.agGrid.api.getFilterModel();\n this.transformAndApplyFilters(filterModel);\n this.getGridState(true);\n },\n onSortChanged: () => {\n this.getGridState(true);\n },\n onFirstDataRendered: () => {\n this.getGridState();\n // Here you can also check if pivot mode has changed\n if (this.gridIsReady) {\n const isPivotMode = this.agGrid.columnApi.isPivotMode();\n if (isPivotMode !== this.prevPivotMode) {\n this.getPivotModeState(); // Replace with your actual method\n this.prevPivotMode = isPivotMode;\n }\n this.handleColumnSizing();\n }\n },\n onFilterOpened: params => {\n const field = params.column.getColDef().field;\n const customFilters = this.filterObject?.[0]?.filterElements || [];\n\n // Get all filterElements matching the column and operator '='\n const matchingFilters = customFilters.filter(f => f.searchField.toLowerCase() === field.toLowerCase() && f.searchOperator === '=');\n\n if (matchingFilters.length === 0) return;\n\n const filterInstance = params.api.getFilterInstance(field);\n\n if (filterInstance) {\n const values = matchingFilters.map(f => f.searchValue);\n filterInstance.setModel({\n values,\n });\n\n if (typeof filterInstance.refreshFilterUi === 'function') {\n filterInstance.refreshFilterUi();\n }\n }\n },\n suppressMenuHide: this.suppressMenuHide,\n tooltipShowDelay: 1000,\n } as unknown as GridOptions;\n const myGrid = this.el.shadowRoot.querySelector('#myGrid');\n if (myGrid) {\n new window['agGrid'].Grid(myGrid, this.gridOptions);\n }\n }\n\n handleSearchModeToggle() {\n this.toggleSearchModeConfirmation(true);\n }\n\n confirmSearchModeToggle() {\n this.enableAdvancedSearch = !this.enableAdvancedSearch;\n // switching from advanced to standard\n if (!this.enableAdvancedSearch) {\n this.noResults = true;\n this.refreshOnNoResults();\n } else {\n this.noResults = true;\n this.refreshOnNoResults(false);\n }\n this.toggleSearchModeConfirmation(false);\n }\n\n @Watch('defaultSearchMode')\n handleDefaultSearchModeChange(newValue: 'advanced' | 'standard') {\n this.enableAdvancedSearch = newValue === 'advanced';\n }\n\n @Watch('enableAdvancedSearch')\n onSearchModeChange() {\n this.reinitializeGrid();\n }\n\n toggleSearchModeConfirmation(show: boolean) {\n this.toggleSearchModeConfirmationDialogOpen = show;\n }\n\n reinitializeGrid() {\n if (this.agGrid?.api) {\n this.agGrid.api.destroy();\n this._distinctsCached = false; // Reset distincts cache\n this._distinctValueStore = {}; // Reset distinct value store\n }\n this.initializeGrid();\n }\n\n // After apiCatalogId is pushed into localStorage\n handleGetPromotedLookupMethod = async () => {\n try {\n // Fetch the API Catalog ID, but don't await it since may not be needed yet\n this.getApiCatalogId().then(apiCatalogId => {\n if (!apiCatalogId) {\n this.gridError = true;\n throw new Error('apiCatalogId is undefined');\n }\n });\n\n localStorage.setItem('lookupApiMethodId', await this.getLookupApiMethod());\n\n let productList = state.catalogData;\n this.catalogList = productList;\n } catch (error) {\n this.gridError = true;\n console.error('Error performing API call:', error);\n }\n };\n\n handleGetInstanceAndMethod = async () => {\n localStorage.setItem('apiMethodId', await this.getApiMethodId());\n\n // Save data to local storage\n const catalogModificationP = this.getColumnDefinitions();\n\n const getConfiguredColumnDefs = UdpGridColumnDefs(await catalogModificationP);\n getConfiguredColumnDefs.forEach(column => {\n if (this.rowGrouping.includes(column.field)) {\n column.rowGroup = true;\n column.hide = true;\n }\n });\n this.configuredColumnDefs = getConfiguredColumnDefs;\n this.lookupsMap = this.getLookupsMap(await catalogModificationP);\n };\n\n async getLookupId(lookupsMap: any) {\n if (!lookupsMap) return null;\n\n const lookupToFilterOn = Object.values(lookupsMap).find((item: any) => item.filterOn);\n const lookupId = (lookupToFilterOn as any)?.value || '';\n\n const uuidPattern = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;\n\n if (!lookupId || typeof lookupId !== 'string' || !uuidPattern.test(lookupId)) {\n console.error('Invalid lookupId', lookupId);\n return null;\n }\n\n // Call the function and await its result\n const data = await executeQueryWithParameters(\n {\n data: {\n id: lookupId,\n },\n },\n await this.getLookupApiMethod(),\n );\n this.filterChips = data.data;\n return lookupId;\n }\n\n getLookupsMap(queryColumnsData) {\n if (!queryColumnsData.length) return null;\n const map = {};\n const lookupColumns = queryColumnsData.filter(column => {\n const lookupValue = column.extendedProperties?.lookup;\n return !!lookupValue;\n });\n\n lookupColumns.forEach(lc => {\n map[lc.name] = {\n lookupKeyName: lc.extendedProperties?.lookupKeyName || '',\n lookupValueName: lc.extendedProperties?.lookupValueName || '',\n value: lc.extendedProperties?.lookup || '',\n filterOn: !!lc.filterOn || false,\n };\n });\n this.getLookupId(map);\n const keys = Object.keys(map);\n const keyString = keys[0];\n this.filterOn = keyString;\n return map;\n }\n\n async handleAdditionalSetup() {\n // Ensure handleGetPromotedLookupMethod is awaited to complete before proceeding.\n await this.handleGetPromotedLookupMethod();\n\n // After awaiting, check again for lookupApiMethodId in localStorage.\n if (await this.getLookupApiMethod()) {\n await this.handleGetInstanceAndMethod();\n } else {\n // If lookupApiMethodId is still not set, it means there was an issue in handleGetPromotedLookupMethod.\n console.error('Failed to retrieve lookupApiMethodId - handleAdditionalSetup aborted.');\n // Return or handle the error as needed.\n }\n }\n\n handleSecondarySetup = async () => {\n this.fetchAvailableGridActions();\n this.filterByCatalogObjectName(this.entityName);\n await this.fetchDataForViews();\n this.transformBulkActions();\n this.handleGetAllHotlists();\n };\n\n getGridState(setAutoGridState = false) {\n if (this.gridOptions && this.gridIsReady) {\n const columnState = this.agGrid.columnApi.getColumnState();\n const columnGroupState = this.agGrid.columnApi.getColumnGroupState();\n const filterModel = this.filterObjectsWithGroups;\n const isPivotMode = this.agGrid.columnApi.isPivotMode();\n const sortModel = columnState.filter(column => column.sort != null);\n\n const gridState = [];\n const columnGridConfiguration = {\n gridStateTypeId: GridStateTypeEnums.Column,\n gridId: this.gridId,\n values: JSON.stringify(columnState),\n };\n const columnGroupGridConfiguration = {\n gridStateTypeId: GridStateTypeEnums.Column_Group,\n gridId: this.gridId,\n values: JSON.stringify(columnGroupState),\n };\n const columnSortGridConfiguration = {\n gridStateTypeId: GridStateTypeEnums.Column_Sort,\n gridId: this.gridId,\n values: JSON.stringify(sortModel),\n };\n const columnFilterGridConfiguration = {\n gridStateTypeId: GridStateTypeEnums.Column_Filter,\n gridId: this.gridId,\n values: JSON.stringify(filterModel),\n };\n const pivotGridConfiguration = {\n gridStateTypeId: GridStateTypeEnums.Pivot_Mode,\n gridId: this.gridId,\n values: JSON.stringify(isPivotMode),\n };\n gridState.push(columnGridConfiguration);\n gridState.push(columnGroupGridConfiguration);\n gridState.push(columnSortGridConfiguration);\n gridState.push(columnFilterGridConfiguration);\n gridState.push(pivotGridConfiguration);\n\n this.gridState = gridState;\n let gridStateObject = {\n state: gridState,\n tenantId: getCurrentTenantId(),\n gridId: this.gridId,\n loadedGridViewName: null,\n };\n\n if (setAutoGridState && !this.disableGridPersistance) {\n let savedGridStatesString = localStorage.getItem('savedGridStates');\n if (!savedGridStatesString) {\n localStorage.setItem('savedGridStates', JSON.stringify([gridStateObject]));\n } else {\n let currentGridStateObj = this.getCurrentGridState();\n if (!currentGridStateObj) {\n let savedGridStatesArray = JSON.parse(savedGridStatesString) ?? [];\n savedGridStatesArray.push(gridStateObject);\n localStorage.setItem('savedGridStates', JSON.stringify(savedGridStatesArray));\n } else {\n this.saveCurrentGridState({\n ...currentGridStateObj,\n state: gridState,\n });\n }\n }\n }\n }\n }\n\n onFirstDataRendered(gridData) {\n if (this.hotListActive) {\n this.handleRemoveHotlist();\n }\n let gridConfigurations = [];\n let gridConfigArray = [];\n if (gridData?.state) {\n gridConfigArray = gridData.state;\n let loadedGridViewName = gridData.loadedGridViewName;\n if (loadedGridViewName?.length > 0) {\n this.loadedViewTitle = loadedGridViewName;\n }\n this.loadedView = gridConfigArray;\n }\n if (gridData?.gridViewGridViewGridConfiguration) {\n this.loadedViewTitle = gridData.name;\n gridConfigArray = gridData?.gridViewGridViewGridConfiguration;\n }\n if (gridConfigArray && gridConfigArray?.length > 0) {\n gridConfigArray.forEach(config => {\n let state = config;\n if (config?.gridViewGridConfigurationGridConfiguration) {\n state = config?.gridViewGridConfigurationGridConfiguration;\n }\n if (state) {\n gridConfigurations.push({\n gridConfigurationId: state?.gridConfigurationId ?? 0,\n gridStateTypeId: state?.gridStateTypeId,\n });\n switch (state.gridStateTypeId) {\n case GridStateTypeEnums.Column:\n this.loadedViewData = state.values;\n if (this.gridIsReady) {\n this.agGrid.columnApi.applyColumnState({\n state: JSON.parse(state.values),\n applyOrder: true,\n });\n }\n break;\n case GridStateTypeEnums.Pivot_Mode:\n if (this.gridIsReady) {\n this.agGrid.columnApi.setPivotMode(JSON.parse(state.values));\n }\n break;\n case GridStateTypeEnums.Column_Sort:\n if (this.gridIsReady) {\n const currentColumnState = this.agGrid.columnApi.getColumnState();\n const newColumnState = JSON.parse(state.values);\n const mergedState = currentColumnState.map(col => newColumnState.find(newCol => newCol.colId === col.colId) || col);\n this.agGrid.columnApi.applyColumnState({ state: mergedState });\n }\n break;\n case GridStateTypeEnums.Column_Filter:\n let filterObjects = JSON.parse(state.values);\n (this.defaultSearchObject ?? []).forEach(defaultFilter => {\n let filterExists = false;\n\n for (let fo of filterObjects) {\n if (Array.isArray(fo.filters)) {\n const match = fo.filters.find(f => f.searchField === defaultFilter.searchField);\n if (match) {\n match.isInitialFilterElement = true;\n filterExists = true;\n break;\n }\n }\n }\n\n if (!filterExists) {\n const newFilter = this.buildSearchFilterElements(defaultFilter, true, true);\n const target = filterObjects.find(fo => Array.isArray(fo.filters));\n if (target) {\n target.filters.push(newFilter);\n } else {\n filterObjects.push({ filters: [newFilter] });\n }\n }\n });\n\n this.filterObject\n .flatMap(({ filterElements }) => filterElements)\n .forEach(filterElement => {\n const exists = filterObjects[0].filters.some(filter => filter.searchField === filterElement.searchField);\n if (!exists) {\n filterObjects[0].filters.push(this.buildSearchFilterElements(filterElement, true, false));\n }\n });\n break;\n case GridStateTypeEnums.Column_Group:\n if (this.gridIsReady) {\n this.agGrid.columnApi.setColumnGroupState(JSON.parse(state.values));\n }\n break;\n default:\n break;\n }\n }\n });\n if (this.filterChips?.length === 0) {\n let currentGridStateObj = this.getCurrentGridState();\n let filters = currentGridStateObj;\n if (currentGridStateObj?.gridViewGridViewGridConfiguration) {\n filters = currentGridStateObj?.gridViewGridViewGridConfiguration;\n }\n if (filters) {\n this.updateChipLayout();\n }\n }\n } else {\n }\n this.selectedGridViewGridConfigurations = gridConfigurations;\n this.handleColumnSizing();\n }\n\n primaryActionClick(type: string) {\n if (type === 'advancedSearch') {\n this.advancedDrawerOpen = !this.advancedDrawerOpen;\n } else if (type === 'views') {\n this.viewDrawerOpen = !this.viewDrawerOpen;\n } else if (type === 'customSearch') {\n this.customSearchDrawerOpen = !this.customSearchDrawerOpen;\n } else {\n this.hotlistDrawerOpen = !this.hotlistDrawerOpen;\n }\n }\n\n // Opens the drop down menu of the gear icon in the header\n showGridOptions() {\n this.gridOptionsDrawerOpen = !this.gridOptionsDrawerOpen;\n }\n\n resetToOriginalFilters() {\n this.filterObjectsWithGroups = cloneDeep(this.initialFilterData.filterObjectsWithGroups);\n this.filterObject = cloneDeep(this.initialFilterData.filterObject);\n this.logicalSearchOperator = cloneDeep(this.initialFilterData.logicalSearchOperator);\n this.filterRenderList = cloneDeep(this.initialFilterData.filterRenderList);\n this.updateChipLayout();\n }\n\n clearViewFilter() {\n if (this.gridOptions && this.agGrid) {\n const { api, columnApi } = this.agGrid;\n\n api.setQuickFilter('');\n columnApi.setRowGroupColumns([]);\n api.setFilterModel(null);\n columnApi.applyColumnState({ state: this.defaultColumnState, applyOrder: true });\n }\n state.hotListActive = '';\n\n let currentGridStateObj = this.getCurrentGridState();\n if (currentGridStateObj) {\n this.saveCurrentGridState({\n ...currentGridStateObj,\n state: null,\n loadedGridViewName: null,\n });\n }\n this.loadedGridView = null;\n this.loadedViewTitle = '';\n this.loadedView = [];\n this.setCurrentViewData('', false, null, null);\n\n this.resetToOriginalColumnDefs = true;\n this.refreshGrid();\n }\n\n clearFilters() {\n this.enableDefaultView = true;\n this.refreshOnNoResults();\n if (this.gridOptions && this.agGrid) {\n const { api } = this.agGrid;\n\n api.setQuickFilter('');\n api.setFilterModel(null);\n }\n }\n\n refreshGrid() {\n this.changeServerSideDatasource();\n this.handleColumnSizing();\n }\n\n handleColumnSizing = () => {\n if (this.fitGrid === 'fit') {\n this.fitColumns();\n } else {\n this.expandColumns();\n }\n };\n\n refreshOnNoResults = (resetFilters: boolean = true) => {\n this.hotListActive = '';\n this.loadedView = [];\n\n if (this.noResults) {\n lazySetupAgGridLibrary({ LicenseKey })\n .then(() => {\n this.handleSecondarySetup();\n })\n .catch(error => {\n this.gridError = true;\n console.error('Error refreshing the grid on no results:', error);\n });\n }\n this.updateServerSideDatasource('', 'advanced search sheet');\n if (resetFilters) {\n this.resetToOriginalFilters();\n }\n\n this.handleColumnSizing();\n this.noResults = false;\n };\n\n // ONCLICK FUNCTIONS for grid-primary-bar and stencil-icon-button-grid-action-header\n exportToCsv() {\n if (this.agGrid) {\n const params = {};\n this.agGrid.api.exportDataAsCsv(params);\n }\n }\n fitColumns() {\n if (this.gridOptions && this.agGrid) {\n this.agGrid.api.sizeColumnsToFit();\n }\n }\n expandColumns() {\n if (this.gridOptions && this.gridIsReady) {\n const allCols = this.agGrid.columnApi.getAllDisplayedColumns();\n const colIds = allCols.map(col => col.getColId());\n this.agGrid.columnApi.autoSizeColumns(colIds);\n }\n }\n togglePanel(panelType) {\n const panelTypes = ['filters', 'columns'];\n panelTypes.forEach(type => {\n if (type !== panelType) {\n const otherPanelOpenKey = `${type}PanelOpen`;\n this[otherPanelOpenKey] = false; // Close other panel if open\n }\n });\n\n const panelOpenKey = `${panelType}PanelOpen`;\n this[panelOpenKey] = !this[panelOpenKey]; // Toggle the current panel\n\n // Create the toolPanel configuration based on the panelType\n const toolPanelConfig = {\n id: panelType,\n labelDefault: panelType.charAt(0).toUpperCase() + panelType.slice(1),\n labelKey: panelType,\n iconKey: panelType === 'filters' ? 'filter' : 'columns',\n toolPanel: panelType === 'filters' ? 'agFiltersToolPanel' : 'agColumnsToolPanel',\n toolPanelParams: {\n suppressRowGroups: true,\n suppressValues: true,\n suppressPivots: true,\n suppressPivotMode: true,\n },\n };\n\n // Update gridOptions to reflect new sidebar settings\n this.gridOptions.sideBar = this[panelOpenKey]\n ? {\n toolPanels: [toolPanelConfig],\n defaultToolPanel: panelType,\n }\n : null;\n\n this.agGrid.api.setSideBarVisible(this[panelOpenKey]);\n\n if (this[panelOpenKey]) {\n this.agGrid.api.openToolPanel(panelType);\n } else {\n this.agGrid.api.closeToolPanel();\n }\n\n // Apply Direct DOM Manipulation\n const sidebarElement = this.el.shadowRoot.querySelector('.ag-side-bar');\n if (sidebarElement instanceof HTMLElement) {\n sidebarElement.style.width = this[panelOpenKey] ? '200px' : 'initial';\n }\n }\n toggleServerSide = () => {\n this.isServerSide = !this.isServerSide;\n };\n getPivotModeState() {\n if (this.gridOptions && this.gridIsReady) {\n return this.agGrid.columnApi.isPivotMode();\n }\n return false;\n }\n\n // VIEW FUNCTIONS\n showViews() {\n this.viewDrawerOpen = !this.viewDrawerOpen;\n this.sheetContent = 'views';\n }\n showViewSave() {\n this.saveDialogOpen = !this.saveDialogOpen;\n }\n resetDefaultView = () => {\n const domain = this.entityName;\n this.viewListRowData.forEach(item => {\n if (item.isDefault === true) {\n try {\n updateView(item.gridViewId, this.userId, this.gridId, this.apiCatalogId, item.name, 0, domain, item.gridViewVisibilityTypeId, data => {\n console.log('updateView, data: ', data);\n });\n } catch (error) {\n console.error('Error updating view, data:', error);\n }\n }\n });\n };\n setCurrentViewData(viewName: string, isDefault: boolean, gridViewVisibilityTypeId: number, gridViewId: string = '') {\n this.selectedGridId = gridViewId || this.selectedGridId;\n this.selectedViewName = viewName;\n this.selectedViewIsDefault = isDefault;\n this.selectedViewGridViewVisibilityTypeId = gridViewVisibilityTypeId;\n }\n openViewEdit(gridViewId: string, viewName: string, isDefault: boolean, gridViewVisibilityTypeId: number) {\n this.editDialogOpen = !this.editDialogOpen;\n this.setCurrentViewData(viewName, isDefault, gridViewVisibilityTypeId, gridViewId);\n }\n closeViewEdit() {\n this.editDialogOpen = !this.editDialogOpen;\n }\n openViewEditConfirmation(name: string, isPrivate: number, isDefault: boolean) {\n this.showViewEditConfirmation(true);\n this.setCurrentViewData(name, isDefault, isPrivate);\n }\n showViewEditConfirmation(show: boolean) {\n this.editViewConfirmationDialogOpen = show;\n }\n\n async handleViewFormSubmit(name: string, isPrivate: number, isDefault: boolean, columnState) {\n const userId = this.userId;\n const gridId = this.gridId;\n const apiCatalogId = this.apiCatalogId;\n const gridConfigurations = columnState; // The columnState from the argument\n const isDefaultNum: number = isDefault ? 1 : 0;\n const domain = await this.getEntityName();\n // if newDefault == 1, then we need to make sure any existing view with isDefault=1 is set to =0\n if (isDefaultNum == 1) {\n this.resetDefaultView();\n }\n\n // Now call saveView\n try {\n await saveView(userId, gridId, apiCatalogId, name, domain, gridConfigurations, isPrivate, isDefaultNum, data => {\n this.saveDialogOpen = !this.saveDialogOpen; // closes form\n this.showNotification = true;\n this.notificationMessage = `${data.gridView.name} has been saved successfully.`;\n this.notificationStatus = 'success';\n this.fetchDataForViews();\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n });\n } catch (error) {\n console.error('Error saving data:', error);\n }\n }\n // Ensures each GridConfiguration has the correct GridConfigurationID for updating in the database\n updateGridConfigurationsWithIDsForUpdatingView(gridConfigs: any[]) {\n gridConfigs.forEach(config => {\n if (this.selectedGridViewGridConfigurations) {\n const gridConfigInfo = this.selectedGridViewGridConfigurations.find(item => item.gridStateTypeId === config.gridStateTypeId);\n config.gridConfigurationId = gridConfigInfo?.gridConfigurationId;\n }\n });\n return gridConfigs;\n }\n // Handler for saving changes to an existing GridView and its GridConfigurations\n async handleViewAndConfigurationsUpdate(name: string, isPrivate: number, isDefault: boolean, columnState) {\n const gridConfigurations = this.updateGridConfigurationsWithIDsForUpdatingView(columnState);\n const isDefaultNum: number = isDefault ? 1 : 0;\n const domain = await this.getEntityName();\n if (isDefaultNum == 1) {\n this.resetDefaultView();\n }\n\n try {\n await updateViewAndConfigurations(\n this.selectedGridId,\n this.userId,\n this.gridId,\n this.apiCatalogId,\n name,\n gridConfigurations,\n isDefaultNum,\n domain,\n isPrivate,\n () => {\n this.saveDialogOpen = !this.saveDialogOpen; // closes form\n this.showViewEditConfirmation(false);\n this.showNotification = true;\n this.notificationMessage = `${name} has been saved successfully.`;\n this.notificationStatus = 'success';\n this.fetchDataForViews();\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n },\n );\n } catch (error) {\n console.error('Error saving data:', error);\n }\n }\n\n // Used for both hotlists and views\n toggleDeleteDialog = type => {\n switch (type) {\n case 'hotlist':\n this.confirmDialog = !this.confirmDialog;\n break;\n case 'view':\n this.confirmDialogDeleteView = !this.confirmDialogDeleteView;\n break;\n default:\n break;\n }\n };\n updateDefaultView = item => {\n var newDefault = item.isDefault ? 0 : 1;\n const domain = this.entityName;\n // if newDefault == 1, then we need to make sure any existing view with isDefault=1 is set to =0\n if (newDefault == 1) {\n this.resetDefaultView();\n }\n try {\n updateView(\n item.gridViewId,\n this.userId,\n this.gridId,\n this.apiCatalogId,\n item.name,\n newDefault,\n domain,\n item.gridViewVisibilityTypeId,\n data => {\n console.log('updateView, data:', data);\n },\n ).then(() => {\n this.fetchDataForViews();\n this.confirmDialog = false;\n this.showNotification = true;\n this.notificationMessage = `Updated default view.`;\n this.notificationStatus = 'success';\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n });\n } catch (error) {\n this.gridError = true;\n console.error('Error updating view, data:', error);\n }\n };\n\n getCurrentGridState = () => {\n let savedStatesString = localStorage.getItem('savedGridStates');\n let currentGridStateObj = null;\n if (savedStatesString) {\n let savedStatesArray = JSON.parse(savedStatesString) ?? [];\n if (savedStatesArray?.length > 0) {\n currentGridStateObj = savedStatesArray?.filter((i: any) => i?.tenantId && i?.tenantId === getCurrentTenantId() && i?.gridId && i?.gridId === this.gridId)[0];\n } else {\n }\n }\n return currentGridStateObj;\n };\n\n saveCurrentGridState = (gridStateObject: any) => {\n let savedGridStatesString = localStorage.getItem('savedGridStates');\n if (savedGridStatesString) {\n let savedGridStatesArray = JSON.parse(savedGridStatesString) ?? [];\n let newArray = savedGridStatesArray.map((s: any) => {\n if (s?.tenantId && s?.tenantId === getCurrentTenantId() && s?.gridId && s?.gridId === this.gridId) {\n s = gridStateObject;\n }\n return s;\n });\n localStorage.setItem('savedGridStates', JSON.stringify(newArray));\n } else {\n localStorage.setItem('savedGridStates', JSON.stringify([gridStateObject]));\n }\n };\n\n async handleViewUpdate(gridId: any, name: string, isPrivate: number, isDefault: boolean) {\n var isDefaultNum = isDefault ? 1 : 0;\n const domain = await this.getEntityName();\n\n // if this isDefault is true, then we need to make sure any existing view with isDefault=1 is set to =0\n if (isDefaultNum == 1) {\n this.resetDefaultView();\n }\n try {\n updateView(gridId, this.userId, this.gridId, this.apiCatalogId, name, isDefaultNum, domain, isPrivate, data => {\n console.log('updateView, data:', data);\n }).then(() => {\n this.fetchDataForViews();\n this.confirmDialog = false;\n this.showNotification = true;\n this.notificationMessage = `Updated view.`;\n this.notificationStatus = 'success';\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n });\n } catch (error) {\n this.gridError = true;\n console.error('Error updating view, data:', error);\n }\n }\n fetchDataForViews = async () => {\n try {\n const apiCatalogId = await this.getApiCatalogId();\n if (!apiCatalogId) {\n console.warn('apiCatalogId is not yet defined');\n return;\n }\n\n const entityName = await this.getEntityName();\n const data = await new Promise<any[]>(resolve => {\n getAvailableViews(this.userId, this.gridId, apiCatalogId, entityName, resolve);\n });\n\n this.viewListRowData = data;\n this.setDefaultView();\n this.updateForConfiguredColumnDefs = false;\n } catch (error) {\n this.gridError = true;\n console.error('Error fetching data for views:', error);\n }\n };\n\n renderViewCallback = data => {\n this.onFirstDataRendered(data);\n this.loadedGridView = data;\n if (data?.name) {\n this.loadedViewTitle = data.name;\n\n let currentGridStateObject = this.getCurrentGridState();\n if (currentGridStateObject) {\n this.saveCurrentGridState({\n ...currentGridStateObject,\n loadedGridViewName: data?.name,\n });\n } else {\n this.saveCurrentGridState({\n gridId: this.gridId,\n gridState: null,\n loadedGridViewName: data?.name,\n });\n }\n }\n this.getGridState(true);\n };\n\n setDefaultView = () => {\n if (this.enableDefaultView) {\n const defaultViewObj = this.viewListRowData.find(item => item.isDefault === true);\n if (defaultViewObj) {\n this.setCurrentViewData(defaultViewObj.name, true, defaultViewObj.gridViewVisibilityTypeId, defaultViewObj.gridViewId);\n getSelectedView(defaultViewObj.gridViewId, this.renderViewCallback);\n }\n }\n\n if (!this.disableGridPersistance) {\n let currentGridStateObj = this.getCurrentGridState();\n if (currentGridStateObj) {\n this.onFirstDataRendered(currentGridStateObj);\n }\n }\n };\n openDeleteViewConfirmation = gridViewId => {\n this.viewId = gridViewId;\n this.confirmDialogDeleteView = true;\n };\n handleDeleteView = () => {\n this.confirmDialogDeleteView = false;\n const callback = () => {\n // Will send to grid to update view\n getAvailableViews(this.userId, this.gridId, this.apiCatalogId, this.entityName, data => {\n this.viewListRowData = data; // Ensure this correctly updates the state\n });\n };\n deleteSelectedView(this.viewId, callback);\n this.showNotification = true;\n this.notificationMessage = `Deleted view`;\n this.notificationStatus = 'success';\n\n // remove view if deleted view is applied view\n if ((this.loadedGridView as any)?.gridViewId === this.viewId) {\n this.clearViewFilter();\n }\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n };\n\n // HOTLIST FUNCTIONS\n showHotlist() {\n this.hotlistDrawerOpen = !this.hotlistDrawerOpen;\n this.businessObjectKey = null;\n this.logicalSearchOperator = 2;\n }\n // set hotlist form open\n toggleHotlistForm = () => {\n this.showHotlistForm = !this.showHotlistForm;\n };\n handleGetAllHotlists = async () => {\n try {\n const hotlistData = await getAllHotlists();\n this.allHotlists = hotlistData;\n } catch (error) {\n console.error('Error fetching hotlists:', error);\n }\n };\n // Add a hotlist item single\n handleSetSingleHotlistItem = id => {\n this.showNotification = true;\n this.notificationMessage = `Record added to hotlist`;\n this.notificationStatus = 'success';\n setTimeout(() => {\n this.showNotification = !this.showNotification;\n }, 4000);\n this.hotlistDrawerOpen = !this.hotlistDrawerOpen;\n const businessObjectKey = this.dataRowClicked.businessObjectKey;\n // Update the dataObject\n const dataObject = {\n hotListId: id, // Assuming id is already defined\n contextDate: '2023/01/01',\n data: JSON.stringify(this.dataRowClicked),\n entityBusinessObjectKey: businessObjectKey,\n currentUserId: '8fe3b5ce-6a94-4ff4-b35c-be2596ea1380',\n };\n addRecordToAHotlist(dataObject);\n };\n // delete a selected hotlist\n confirmRequestDelete = hotListId => {\n this.confirmDialog = !this.confirmDialog;\n this.hotListId = hotListId;\n };\n handleRequestDeleteHotlist = () => {\n deleteAHotlist(this.hotListId)\n .then(() => {\n this.handleGetAllHotlists();\n this.confirmDialog = false;\n })\n .catch(error => {\n console.error('Error deleting hotlist:', error);\n // handle any errors here\n });\n };\n // convert hotlist to payload\n mapHotlistsToPayload(hotlistIdentifiers) {\n return hotlistIdentifiers.map(keyID => ({\n searchField: this.hotListIdentifier,\n searchOperator: '=',\n searchValue: keyID,\n }));\n }\n updateFilterObjectWithPayload(hotlistSearchKeys) {\n // clear view if active\n this.loadedView = [];\n this.resetToOriginalFilters();\n this.updateChipLayout();\n\n const payload = this.mapHotlistsToPayload(hotlistSearchKeys);\n this.hotListCount = payload.length;\n this.updateFilterObject(() => [\n {\n pageNumber: 1,\n pageSize: 20,\n filterElements: payload,\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 2,\n type: 'hotlist',\n },\n ]);\n this.updateServerSideDatasource('', 'updateFilterObjectWithPayload');\n this.hotlistDrawerOpen = false;\n }\n // extract id to process for search object\n extractContactIDs = payload => {\n const contactIDs = payload.records.map(record => {\n const dataObject = JSON.parse(record.data);\n return dataObject[this.hotListIdentifier];\n });\n return contactIDs;\n };\n // view a selected hotlist\n handleRequestHotlist = async hotlistID => {\n try {\n // Await for the Promise to resolve and then store the result\n const hotloadList = await loadAHotlist(hotlistID);\n\n // Process the data with extractContactIDs\n const contactIDs = this.extractContactIDs(hotloadList);\n this.hotListActive = hotloadList.name;\n state.hotListActive = this.hotListActive;\n\n // Set full list hotlist data\n this.hotlistSelectedFull = hotloadList;\n\n // Send the processed data to sendAsSearchObject\n this.updateFilterObjectWithPayload(contactIDs);\n } catch (error) {\n // Handle any errors that occur during the API call\n this.gridError = true;\n console.error('Error in handleRequestHotlist:', error);\n }\n };\n handleLoadView = cellValue => {\n getSelectedView(cellValue, this.renderViewCallback);\n this.viewDrawerOpen = !this.viewDrawerOpen;\n };\n // Submit to save hotlist\n handleSaveHotlist = async (name: string, isPrivate: boolean) => {\n const hostListRequestBody = {\n domain: this.entityName,\n name: name,\n tenantId: getCurrentTenantId(),\n isPrivate: isPrivate,\n createdBy: this.userId,\n hotListDataSourceId: 1,\n hotListTypeId: 2,\n };\n\n try {\n await createAHotlist(hostListRequestBody);\n this.showHotlistForm = false;\n this.handleGetAllHotlists();\n } catch (error) {\n console.error('Error creating hotlist:', error);\n // handle any errors here\n }\n };\n\n // FILTER CHIP FUNCTIONS\n hasInitializedDefaultFilter = false; // Add this flag as a property in your class\n defaultFilterElements: any; // Replace any with your specific type\n activeChips: any[] = [];\n\n handleViewChipDelete = () => {\n this.loadedView = [];\n this.enableDefaultView = false;\n this.clearViewFilter();\n };\n\n handleRemoveHotlist = () => {\n this.hotListActive = '';\n this.loadedView = [];\n this.clearViewFilter();\n state.hotListActive = '';\n };\n\n fullClearSearch = () => {\n // this.filterObjectsWithGroups[0].filters.length = 0; // clears the form UI\n\n // this.updateFilterObject(() => [\n // {\n // pageNumber: 1,\n // pageSize: 20,\n // filterElements: [],\n // orderElements: [],\n // groupingType: '',\n // groupProperty: [],\n // groupOperationList: [],\n // eagerLoad: false,\n // logicalSearchOperator: 2,\n // type: 'advanced',\n // },\n // ]);\n this.resetToOriginalFilters();\n\n this.hotListActive = null;\n state.hotListActive = null;\n this.updateServerSideDatasource('', 'clearSearch');\n };\n\n setFilterFromChips(chipText: string) {\n const isChipValid = this.filterChips.some(chip => chip.description === chipText);\n if (!isChipValid) {\n return;\n }\n\n const index = this.activeChips.findIndex(chip => chip.description === chipText);\n // Initialize defaultFilterElements once, and only once\n if (!this.hasInitializedDefaultFilter) {\n if (this.filterObject && this.filterObject[0] && this.filterObject[0].filterElements) {\n this.defaultFilterElements = JSON.parse(JSON.stringify(this.filterObject[0].filterElements));\n this.hasInitializedDefaultFilter = true;\n }\n }\n\n // Toggle the chip on or off in activeChips\n if (index !== -1) {\n this.activeChips.splice(index, 1);\n } else {\n const chip = this.filterChips.find(chip => chip.description === chipText);\n this.activeChips.push(chip);\n }\n\n this.updateFilterObject(filterObject => {\n // Clear existing FirstName filters from filterElements\n filterObject[0].filterElements = filterObject[0].filterElements.filter(element => {\n return element.searchField !== this.filterOn;\n });\n\n // Re-add filters based on activeChips\n for (const chip of this.activeChips) {\n const searchValue = chip[this.filterOn] ? chip[this.filterOn] : chip.description;\n filterObject[0].filterElements.push({\n searchField: this.filterOn, // @todo: make this dynamic from api\n searchOperator: '=',\n searchValue: searchValue,\n });\n }\n\n // If all chips are deactivated, revert to default pre-set filter\n if (this.activeChips.length === 0) {\n filterObject[0].filterElements = JSON.parse(JSON.stringify(this.defaultFilterElements));\n }\n });\n\n this.logicalSearchOperator = 2;\n // Update the server-side datasource to apply the new filters\n this.updateServerSideDatasource('', 'setFilterChips');\n }\n\n setFilterSelections(filter) {\n const currentFilterObject = this.filterRenderList[0];\n currentFilterObject.filterElements = [...currentFilterObject.filterElements, filter];\n // Update the filterRenderList with the modified filter object\n this.filterRenderList = [currentFilterObject, ...this.filterRenderList.slice(1)];\n }\n\n // ADVANCED SEARCH FUNCTIONS\n showCustomSearch() {\n this.customSearchDrawerOpen = !this.customSearchDrawerOpen;\n }\n showAdvancedSearch() {\n this.advancedDrawerOpen = !this.advancedDrawerOpen;\n this.logicalSearchOperator = 1;\n this.setSearchStart = false;\n }\n\n setGroupedFilterSelections(filter: any) {\n // Try to find corresponding domain field from configuredColumnDefs because only grid columns configured in query builder could have an alias.\n const searchFieldAlias = this.configuredColumnDefs?.find(col => col.field.toLowerCase() === filter.searchField.toLowerCase())?.headerName;\n\n // Prepare the filter object with the new ID\n const newFilter = { ...filter, searchFieldAlias: searchFieldAlias };\n\n // Function to recursively find and update the correct node\n const addFilterToNode = (nodes: any[], nodeId: string, filter: any) => {\n for (const node of nodes) {\n if (node.filterGroupId === nodeId) {\n const newFilter = { ...filter, id: uuid(), filterGroupId: node.filterGroupId };\n node.filters.push(newFilter);\n return true; // Stop searching when the correct node is updated\n }\n if (node.children && node.children.length > 0) {\n if (addFilterToNode(node.children, nodeId, filter)) {\n return true; // Stop searching if the correct node was found in the children\n }\n }\n }\n return false; // Node not found in this branch\n };\n\n addFilterToNode(this.filterObjectsWithGroups, this.advancedGroupSearchNodeId, newFilter);\n this.handleSearchItemChange();\n }\n\n setGroupedSearchSections(groupId: string, filterGroupId: string, logicalOperator: 'AND' | 'OR') {\n const newChild = {\n id: uuid(),\n filterGroupId: filterGroupId,\n logicalOperator: logicalOperator,\n filters: [],\n children: [],\n };\n\n // Recursive function to find the correct node and add the new child\n const addChildToNode = (nodes: any[], nodeId: string, child: any) => {\n for (const node of nodes) {\n if (node.id === nodeId) {\n if (!node.children) {\n node.children = []; // Ensure the children array exists\n }\n node.children.push(child);\n return true; // Node updated, stop the search\n }\n if (node.children && node.children.length > 0) {\n if (addChildToNode(node.children, nodeId, child)) {\n return true; // Child added in a deeper level\n }\n }\n }\n return false; // Node not found in this branch\n };\n\n // Attempt to add the new child to the node identified by groupId\n addChildToNode(this.filterObjectsWithGroups, groupId, newChild);\n\n // Trigger a state update to reflect the change\n this.filterObjectsWithGroups = [...this.filterObjectsWithGroups];\n }\n\n updateGroupLogicalOperator(groupId: string, logicalOperator: 'AND' | 'OR') {\n const updateOperator = (nodes: any[], nodeId: string, newOperator: 'AND' | 'OR') => {\n for (const node of nodes) {\n if (node.filterGroupId === nodeId) {\n if (node.id === 'root') {\n this.logicalSearchOperator = this.getLogicalOperatorCode(newOperator);\n }\n node.logicalOperator = newOperator; // Update the logical operator here\n return true; // Successfully updated, stop the search\n }\n if (node.children && updateOperator(node.children, nodeId, newOperator)) {\n return true; // Successfully updated in a deeper level\n }\n }\n return false; // Node not found\n };\n\n // Attempt to update the logical operator in the node identified by groupId\n if (updateOperator(this.filterObjectsWithGroups, groupId, logicalOperator)) {\n // If the group was found and updated, trigger a state update\n this.filterObjectsWithGroups = [...this.filterObjectsWithGroups];\n }\n }\n\n removeFilterItem(filter) {\n this.setFilterFromChips(filter.searchValue);\n this.externalToggle = filter.searchValue;\n\n const group = this.findGroupById(this.filterObjectsWithGroups, filter.filterGroupId);\n if (group) {\n group.filters = group.filters.filter(item => item.id !== filter.id);\n\n this.filterObjectsWithGroups = this.filterObjectsWithGroups.map(g => (g.filterGroupId === group.filterGroupId ? { ...group } : g));\n }\n\n this.filtersChangedHandler();\n\n this.agGrid.api.setFilterModel(this.filterObject[0].filterElements);\n this.getGridState();\n }\n\n handleGroupDelete(groupId) {\n let groupRemoved = false;\n\n // Recursive function to search for and remove the group by ID\n const searchAndRemoveGroup = (groups, groupId) => {\n return groups.reduce((acc, group) => {\n // If the current group matches the groupId, do not add it to the accumulator\n if (group.filterGroupId === groupId) {\n groupRemoved = true;\n return acc;\n }\n\n // Otherwise, add the group to the accumulator\n const newGroup = { ...group };\n\n // If the group has children, recurse to potentially remove from children\n if (newGroup.children && newGroup.children.length > 0) {\n newGroup.children = searchAndRemoveGroup(newGroup.children, groupId);\n }\n\n acc.push(newGroup);\n return acc;\n }, []);\n };\n\n // Start the recursive search and remove process\n this.filterObjectsWithGroups = searchAndRemoveGroup(this.filterObjectsWithGroups, groupId);\n if (groupRemoved) {\n this.filtersChangedHandler();\n }\n }\n\n // Function to update filter list with groups\n updateFilterObjectsWithGroups = (\n searchField: string,\n searchOperator: string,\n searchValues: string[],\n searchFieldAlias: string,\n originalSearchOperator: string,\n originalSearchValue: string,\n targetFilterGroupId: string,\n ) => {\n let found = false;\n\n const traverse = group => {\n if (group.filterGroupId === targetFilterGroupId) {\n // Remove any existing filters for this fieldId (optional)\n group.filters = [];\n\n // Add new filters for each searchValue\n for (let val of searchValues) {\n group.filters.push({\n id: uuid(),\n searchField,\n searchOperator,\n searchValue: val,\n parentName: '',\n parentPath: 'filter.extendedProperties.parentPath',\n searchFieldAlias,\n originalSearchOperator,\n originalSearchValue,\n filterGroupId: targetFilterGroupId,\n });\n }\n\n found = true;\n return;\n }\n\n for (let child of group.children || []) {\n if (found) return;\n traverse(child);\n }\n };\n\n for (let group of this.filterObjectsWithGroups) {\n traverse(group);\n if (found) break;\n }\n\n // If target group not found, fallback to root\n if (!found) {\n for (let val of searchValues) {\n this.filterObjectsWithGroups[0].filters.push({\n id: uuid(),\n searchField,\n searchOperator,\n searchValue: val,\n parentName: '',\n parentPath: 'filter.extendedProperties.parentPath',\n searchFieldAlias,\n originalSearchOperator,\n originalSearchValue,\n });\n }\n }\n };\n\n getLogicalOperatorCode(op: string) {\n return op === 'AND' ? 1 : 2;\n }\n\n getLogicalOperatorValue(op: number) {\n return op.toString() === '1' ? 'AND' : 'OR';\n }\n\n findGroupById(groups, id) {\n for (const group of groups) {\n if (group.filterGroupId === id) return group;\n const result = group.children && this.findGroupById(group.children, id);\n if (result) return result;\n }\n return null;\n }\n\n updateFilterGroups(groupedFilterObjects) {\n let groupIdCounter = 1;\n const groupIdMap = new Map();\n\n const filterElements = [];\n const filterGroups = [];\n\n const transformGroup = (group, parentGroupId = null) => {\n let currentGroupId = null;\n\n if (group.filters.length === 0 && group.id === 'default') {\n return;\n }\n\n if (group.filterGroupId) {\n if (!groupIdMap.has(group.filterGroupId)) {\n groupIdMap.set(group.filterGroupId, groupIdCounter++);\n }\n currentGroupId = groupIdMap.get(group.filterGroupId);\n\n filterGroups.push({\n groupId: currentGroupId,\n logicalSearchOperator: this.getLogicalOperatorCode(group.logicalOperator),\n parentGroupId: parentGroupId,\n });\n }\n\n // Add all filters in this group\n (group.filters || []).forEach(filter => {\n filterElements.push({\n searchField: filter.searchField,\n searchOperator: filter.searchOperator,\n searchValue: filter.searchValue,\n fieldId: filter.otherId,\n groupId: currentGroupId,\n });\n });\n\n // Recurse children\n (group.children || []).forEach(child => {\n transformGroup(child, currentGroupId);\n });\n };\n\n // Start with each top-level group (usually just one root)\n groupedFilterObjects.forEach(rootGroup => {\n transformGroup(rootGroup);\n });\n\n return [\n {\n pageNumber: 1,\n pageSize: 20,\n type: 'advanced',\n eagerLoad: false,\n logicalSearchOperator: 1,\n filterElements,\n filterGroups,\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n },\n ];\n }\n\n @Listen('searchOperatorChanged')\n filtersChangedHandler() {\n const updatedFilterList = this.updateFilterGroups(this.filterObjectsWithGroups);\n const deepClonedList = cloneDeep(updatedFilterList);\n\n this.filterObject = deepClonedList;\n this.filterRenderList = deepClonedList;\n this.filterObjectsWithGroups = [...this.filterObjectsWithGroups];\n }\n\n @Listen('filterChanged')\n @Listen('searchItemChanged')\n searchItemChangedHandler(event: CustomEvent) {\n let { searchField, searchOperator, searchValue, searchFieldAlias, type, originalSearchOperator, originalSearchValue } = event.detail;\n this.refreshChips = true;\n this.setSearchStart = true;\n let updatedFilterList = [...this.filterObject];\n\n if (!type && type === 'agGridColumnFilter') {\n // Only apply the following logic if event is not from the native ag grid column filter\n let advancedSearchFilter = this.extendedSearchFilterList?.find(filter => filter.name.toLowerCase() === searchField.toLowerCase());\n if (advancedSearchFilter?.type?.toLowerCase() === 'datetime') {\n const configuredColumnDef = this.configuredColumnDefs?.find(col => col.field.toLowerCase() === searchField.toLowerCase());\n searchFieldAlias = configuredColumnDef?.headerName;\n if (searchOperator === this.filterOptions['equals'] && configuredColumnDef?.treatAsDate) {\n let dateFrom = new Date(searchValue);\n let dateTo = new Date(dateFrom);\n\n // Set dateTo to one day ahead\n dateTo.setDate(dateFrom.getDate() + 1);\n\n // Convert the dates to the required format (YYYY-MM-DD HH:mm:ss)\n const formatDate = (date, dateOnly: boolean = false) => {\n const year = date.getFullYear();\n const month = ('0' + (date.getMonth() + 1)).slice(-2);\n const day = ('0' + date.getDate()).slice(-2);\n return dateOnly ? `${year}-${month}-${day}` : `${year}-${month}-${day} 00:00:00`;\n };\n originalSearchOperator = searchOperator;\n originalSearchValue = searchValue;\n searchOperator = this.filterOptions['inRange'];\n searchValue = formatDate(dateFrom) + ',' + formatDate(dateTo);\n }\n }\n this.getGridState(true);\n }\n\n if (type === 'set') {\n if (searchValue.length > 0) {\n if (!this.findGroupById(this.filterObjectsWithGroups, `set-${searchField}-group`)) {\n this.handleAddNewGroup('root', searchOperator, `set-${searchField}-group`);\n }\n this.updateFilterObjectsWithGroups(\n searchField,\n searchOperator.value ? searchOperator.value : searchOperator,\n searchValue,\n searchFieldAlias,\n originalSearchOperator,\n originalSearchValue,\n `set-${searchField}-group`,\n );\n\n // update the AG Grid filter model explicitly\n const currentModel = this.agGrid.api.getFilterModel() || {};\n currentModel[searchField] = {\n filterType: 'set',\n values: searchValue,\n };\n this.agGrid.api.setFilterModel(currentModel);\n } else {\n this.handleGroupDelete(`set-${searchField}-group`);\n return;\n }\n }\n updatedFilterList = this.updateFilterGroups(this.filterObjectsWithGroups);\n\n // Immutably update the state for both lists\n this.filterObject = [...updatedFilterList];\n this.filterRenderList = [...updatedFilterList];\n this.filterObjectsWithGroups = [...this.filterObjectsWithGroups];\n\n if (type !== 'set') {\n this.agGrid.api.setFilterModel(this.convertFilterToAgGridFilterModel(this.filterObject[0].filterElements));\n this.filterObject[0].filterElements.forEach(filter => {\n if (filter.searchOperator === '=') {\n const filterInstance = this.agGrid.api.getFilterInstance(filter.searchField);\n\n if (filterInstance && 'setModel' in filterInstance && 'onFilterChanged' in filterInstance) {\n (filterInstance as any).setModel({ values: [filter.searchValue] });\n (filterInstance as any).onFilterChanged();\n }\n }\n });\n }\n }\n\n convertFilterToAgGridFilterModel(customFilters) {\n const agGridModel = {};\n\n customFilters.forEach(filter => {\n if (filter.searchOperator === '=') {\n agGridModel[filter.searchField] = {\n filterType: 'set',\n values: [filter.searchValue],\n };\n }\n });\n\n return agGridModel;\n }\n\n updateSearchObject(detail: { searchField: string; searchOperator: string; searchValue: any }) {\n this.updateFilterObject(filterObject => {\n // Append the new filter element to filterElements array\n filterObject[0].filterElements.push(detail);\n });\n [500, 1000, 2000, 3000, 4000, 5000, 6000, 10000, 20000].forEach(delay => {\n setTimeout(() => {\n this.getGridState(true);\n }, delay);\n });\n }\n\n // Commented out filter options are currently not suppored in the regex\n filterOptions = {\n equals: '=',\n contains: 'LIKE',\n // notContains: 'NOT LIKE',\n notEqual: '<>',\n greaterThan: '>',\n lessThan: '<',\n greaterThanOrEqual: '>=',\n lessThanOrEqual: '<=',\n startsWith: 'STARTSWITH',\n // endsWith: 'ENDSWITH',\n blank: 'IS NULL',\n // notBlank: 'IS NOT NULL',\n inRange: 'BETWEEN',\n };\n\n // FOR HANDLING NATIVE AG-grid filter\n capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n applyFilterDetail(\n column: string,\n selectedFilterOptions: string,\n value: string,\n searchFieldAlias: string | undefined,\n originalSearchOperator: string,\n originalSearchValue: string,\n groupCount: number,\n groupedFilterElements: {\n groupId: number;\n searchField: string;\n searchOperator: string;\n searchValue: string;\n searchFieldAlias?: string;\n originalSearchOperator: string;\n originalSearchValue: string;\n }[],\n filterObjectsWithGroupsFilters: {\n searchField: string;\n searchOperator: string;\n searchValue: string;\n otherId: string;\n parentName: string;\n parentPath: string;\n searchFieldAlias?: string;\n originalSearchOperator: string;\n originalSearchValue: string;\n }[],\n ) {\n const setDetail = {\n searchField: column,\n searchOperator: selectedFilterOptions,\n searchValue: value,\n searchFieldAlias: searchFieldAlias,\n originalSearchOperator: originalSearchOperator || '',\n originalSearchValue: originalSearchValue || '',\n };\n\n if (this.hotListActive) {\n groupedFilterElements.push({\n groupId: groupCount,\n searchField: this.capitalizeFirstLetter(setDetail.searchField),\n searchOperator: setDetail.searchOperator,\n searchValue: String(setDetail.searchValue),\n searchFieldAlias: setDetail.searchFieldAlias,\n originalSearchOperator: setDetail.originalSearchOperator,\n originalSearchValue: setDetail.originalSearchValue,\n });\n filterObjectsWithGroupsFilters.push({\n searchField: setDetail.searchField,\n searchOperator: setDetail.searchOperator,\n searchValue: setDetail.searchValue,\n otherId: uuid(),\n parentName: '',\n parentPath: 'filter.extendedProperties.parentPath',\n searchFieldAlias: setDetail.searchFieldAlias,\n originalSearchOperator: setDetail.originalSearchOperator,\n originalSearchValue: setDetail.originalSearchValue,\n });\n if (groupCount === 1) {\n groupCount = 3;\n } else {\n groupCount++;\n }\n return true;\n }\n\n //this.updateSearchObject(detail);\n this.searchItemChangedHandler({\n detail: setDetail,\n initCustomEvent: function (): void {\n throw new Error('Function not implemented.');\n },\n bubbles: false,\n cancelBubble: false,\n cancelable: false,\n composed: false,\n currentTarget: undefined,\n defaultPrevented: false,\n eventPhase: 0,\n isTrusted: false,\n returnValue: false,\n srcElement: undefined,\n target: undefined,\n timeStamp: 0,\n type: 'agGridColumnFilter',\n composedPath: function (): EventTarget[] {\n throw new Error('Function not implemented.');\n },\n initEvent: function (): void {\n throw new Error('Function not implemented.');\n },\n preventDefault: function (): void {\n throw new Error('Function not implemented.');\n },\n stopImmediatePropagation: function (): void {\n throw new Error('Function not implemented.');\n },\n stopPropagation: function (): void {\n throw new Error('Function not implemented.');\n },\n NONE: 0,\n CAPTURING_PHASE: 1,\n AT_TARGET: 2,\n BUBBLING_PHASE: 3,\n });\n return false;\n }\n\n transformAndApplyFilters(filterModel: { [key: string]: FilterDetail }) {\n let groupedFilterElements;\n let filterObjectsWithGroupsFilters = [];\n\n if (this.hotListActive) {\n // first group all the hotlist origin filters\n groupedFilterElements = this.filterObject[0].filterElements.map(element => ({\n ...element,\n searchField: this.capitalizeFirstLetter(element.searchField),\n groupId: 2,\n }));\n\n // slicing because need to remove duplicate native filters\n let slicedGroupedFilterElements = groupedFilterElements.slice(0, this.hotListCount);\n groupedFilterElements = slicedGroupedFilterElements;\n\n // this.filterRenderList = [...this.filterRenderList, ...groupedFilterElements]\n this.filterObject[0].filterElements.map(element => this.filterRenderList.push(element));\n }\n var groupCount = 1;\n const formatDate = (date: Date, dateOnly: boolean = false) => {\n const year = date.getFullYear();\n const month = ('0' + (date.getMonth() + 1)).slice(-2);\n const day = ('0' + date.getDate()).slice(-2);\n return dateOnly ? `${year}-${month}-${day}` : `${year}-${month}-${day} 00:00:00`;\n };\n\n if (Object.entries(filterModel).length === 0) {\n this.shouldForceEmptyResults = false;\n this.noResults = false;\n }\n\n for (const [column, filterDetails] of Object.entries(filterModel)) {\n if (!filterDetails || !(filterDetails.type || filterDetails.filterType)) continue;\n\n const configuredColumnDef = this.configuredColumnDefs?.find(col => col.field === column);\n const searchFieldAlias = configuredColumnDef?.headerName;\n const treatAsDate = configuredColumnDef?.treatAsDate;\n\n const filterType = filterDetails.filterType;\n let selectedFilterOptions = this.filterOptions[filterDetails.type] || this.filterOptions['equals'];\n\n let value = '';\n let originalSearchOperator = '';\n let originalSearchValue = '';\n\n let shouldApply = true;\n switch (filterType) {\n case 'date':\n if (filterDetails.type === 'inRange') {\n value = `${filterDetails.dateFrom},${filterDetails.dateTo}`;\n } else if (filterDetails.type === 'equals' && treatAsDate) {\n const dateFrom = new Date(filterDetails.dateFrom);\n const dateTo = new Date(dateFrom);\n dateTo.setDate(dateFrom.getDate() + 1);\n\n originalSearchOperator = selectedFilterOptions;\n originalSearchValue = formatDate(dateFrom, treatAsDate);\n\n selectedFilterOptions = this.filterOptions['inRange'];\n value = `${formatDate(dateFrom)},${formatDate(dateTo)}`;\n } else {\n value = filterDetails.dateFrom;\n originalSearchOperator = selectedFilterOptions;\n originalSearchValue = value;\n }\n break;\n case 'number':\n originalSearchOperator = selectedFilterOptions;\n originalSearchValue = filterDetails.filter;\n value = filterDetails.type === 'inRange' ? `${filterDetails.filter},${filterDetails.filterTo}` : filterDetails.filter;\n break;\n case 'text':\n originalSearchOperator = selectedFilterOptions;\n originalSearchValue = value = filterDetails.filter;\n break;\n case 'set':\n const values = (filterDetails as { values: string[] }).values || [];\n this.shouldForceEmptyResults = false;\n this.noResults = false;\n\n if (values.length === 0) {\n this.noResults = true;\n this.shouldForceEmptyResults = true;\n\n shouldApply = false;\n continue;\n }\n\n this.filterChanged.emit({\n searchField: configuredColumnDef?.field,\n searchOperator: selectedFilterOptions,\n searchValue: values,\n searchFieldAlias,\n type: 'set',\n originalSearchOperator,\n originalSearchValue,\n });\n\n shouldApply = false;\n continue;\n default:\n shouldApply = false;\n continue;\n }\n\n if (shouldApply) {\n const shouldSkip = this.applyFilterDetail(\n column,\n selectedFilterOptions,\n value,\n searchFieldAlias,\n originalSearchOperator,\n originalSearchValue,\n groupCount,\n groupedFilterElements,\n filterObjectsWithGroupsFilters,\n );\n\n if (shouldSkip) {\n groupCount = groupCount === 1 ? 3 : groupCount + 1;\n }\n }\n }\n\n const allFilterFields = this.configuredColumnDefs?.filter(col => col.filter).map(col => col.field) ?? [];\n const filteredFields = Object.keys(filterModel);\n const fieldsToReset = allFilterFields.filter(field => !filteredFields.includes(field));\n\n for (const field of fieldsToReset) {\n this.filterChanged.emit({\n searchField: field,\n searchOperator: null,\n searchValue: [],\n searchFieldAlias: this.configuredColumnDefs?.find(c => c.field === field)?.headerName,\n type: 'set',\n originalSearchOperator: null,\n originalSearchValue: null,\n });\n }\n\n if (this.hotListActive) {\n this.updateFilterObject(filterObject => {\n filterObject[0].filterElements = groupedFilterElements;\n filterObject[0].filterGroups = [\n {\n groupId: 1,\n logicalSearchOperator: 1,\n parentGroupId: null,\n },\n {\n groupId: 2,\n logicalSearchOperator: 2,\n parentGroupId: 1,\n },\n ];\n\n // Adds additional native grid filters\n for (let i = 3; i < groupCount; i++) {\n filterObject[0].filterGroups.push({\n groupId: i,\n logicalSearchOperator: 1,\n parentGroupId: 1,\n });\n }\n\n filterObject[0].logicalSearchOperator = 1;\n filterObject[0].type = 'advanced';\n });\n\n this.logicalSearchOperator = 1;\n this.updateChipLayout();\n\n this.filterObjectsWithGroups[0].filters = filterObjectsWithGroupsFilters;\n this.refreshChips = true;\n }\n }\n\n handleSideSheetButtonClick = async () => {\n this.groupFilter();\n this.customSearchDrawerOpen = false;\n };\n\n // advanced search grouping\n handleAddNewFilter = (filterGroupId: string) => {\n this.advancedGroupSearchNodeId = filterGroupId;\n };\n\n handleAddNewGroup = (groupId: string, logicalOperator: 'AND' | 'OR', filterGroupId = null) => {\n this.setGroupedSearchSections(groupId, filterGroupId ?? uuid(), logicalOperator);\n };\n\n updateLogicalOperator = (groupId: string, logicalOperator: 'AND' | 'OR') => {\n // Implement the logic to update the logical operator for the group\n this.updateGroupLogicalOperator(groupId, logicalOperator);\n };\n\n @Watch('externalPayload')\n externalPayloadChanged(newValue: any, oldValue: any) {\n if (newValue !== oldValue) {\n this.handleTransformSearchData();\n }\n }\n\n @Watch('dataEmitterRequest')\n dataEmitterChanged(newValue: any, oldValue: any) {\n if (newValue !== oldValue) {\n this.handleDataEmitterRequest(newValue);\n }\n }\n\n isEmptyObject = obj => {\n return obj && Object.keys(obj).length === 0 && obj.constructor === Object;\n };\n\n handleDataEmitterRequest = async newValue => {\n // Check if newValue is null, undefined, or an empty object\n if (newValue === null || newValue === undefined || this.isEmptyObject(newValue)) {\n // Handle the case where newValue is not usable\n return;\n }\n\n const emitterSearchObject = {\n pageNumber: 1,\n pageSize: 20,\n filterElements: [newValue],\n orderElements: [],\n groupingType: '',\n groupProperty: [],\n groupOperationList: [],\n eagerLoad: false,\n logicalSearchOperator: 1,\n type: 'advanced',\n };\n\n try {\n const response = await executeQueryAdHoc(emitterSearchObject, await this.getApiMethodId(), '');\n this.externalEmitter.emit(response); // Emitting the response data\n } catch (error) {\n this.gridError = true;\n console.error('Error fetching data:', error);\n }\n };\n\n handleTransformSearchData = () => {\n const modifiedSearchObjects = transformSearchData(this.externalPayload, this.searchKey);\n\n // Merge the filterElements\n if (modifiedSearchObjects.filterElements) {\n this.updateFilterObject(filterObject => {\n filterObject[0].filterElements.push(...modifiedSearchObjects.filterElements);\n });\n }\n\n // Handle filterGroups (assuming you want to replace the existing ones)\n if (modifiedSearchObjects.filterGroups) {\n this.updateFilterObject(filterObject => {\n filterObject[0].filterGroups = modifiedSearchObjects.filterGroups;\n });\n }\n\n // Extract the first element to send as an individual object\n const firstFilterElement = this.filterObject[0].filterElements[0];\n\n // Create a new CustomEvent with the first object as detail (instead of the entire array)\n const filterElementEvent = new CustomEvent('filterElementChange', {\n detail: firstFilterElement,\n });\n\n // Pass the event to the handler function\n this.searchItemChangedHandler(filterElementEvent);\n\n this.updateServerSideDatasource('', 'handleTransformSearchData');\n };\n\n // FOR HANDLING IF SELECT OR GROUPING IN ADVANCED SEARCH\n groupFilter = () => {\n const searchGroupFilterPayload = buildSearchPayload(this.filterObjectsWithGroups);\n this.updateFilterObject(() => [searchGroupFilterPayload]);\n this.setSearchStart = true;\n };\n\n handleSearchItemChange() {\n const updatedFilterObjectsWithGroups = cloneDeep(this.filterObjectsWithGroups);\n const updatedFilterObject = cloneDeep(this.filterObject);\n\n this.filterObjectsWithGroups = updatedFilterObjectsWithGroups;\n this.filterObject = updatedFilterObject;\n }\n\n collectAllFilters(filterGroup, level = 0) {\n let allFilters = [];\n\n // Collect top-level filters and include the current level\n if (filterGroup.filters && filterGroup.filters.length > 0) {\n allFilters = allFilters.concat(filterGroup.filters.map(filter => ({ ...filter, level })));\n }\n\n // Recursively collect filters from children, incrementing the level\n if (filterGroup.children && filterGroup.children.length > 0) {\n filterGroup.children.forEach(child => {\n allFilters = allFilters.concat(this.collectAllFilters(child, level + 1));\n });\n }\n\n return allFilters;\n }\n\n updateChipLayout = () => {\n requestAnimationFrame(() => {\n const chipsContainer = this.el.shadowRoot ? this.el.shadowRoot.getElementById('advanced-group-search-chips') : document.getElementById('advanced-group-search-chips');\n\n if (chipsContainer) {\n // Force reflow if necessary\n chipsContainer.offsetWidth;\n\n const containerWidth = chipsContainer.getBoundingClientRect().width;\n let totalChipWidth = 0;\n const chipWidths = Array.from(chipsContainer.querySelectorAll('stencil-chip')).map(chip => chip.getBoundingClientRect().width);\n let maxVisible = 1;\n\n for (let width of chipWidths) {\n if (totalChipWidth + width + 400 > containerWidth) break;\n if (maxVisible >= this.maxChipsAllowed) break; // Limit the number of visible chips to 7, but only after width check\n totalChipWidth += width;\n maxVisible++;\n }\n this.allFilters = this.filterObjectsWithGroups.reduce((acc, curr) => {\n return acc.concat(this.collectAllFilters(curr));\n }, []);\n\n if (this.hideDefaultSearchFilterChips) {\n this.allFilters = this.allFilters.filter(f => !f.isInitialFilterElement);\n }\n this.refreshChips = false;\n } else {\n console.warn('Chips container not found');\n }\n });\n };\n\n // Fetch recentSearches from local storage\n getRecentSearches = () => {\n const recentSearchesString = localStorage.getItem('recentSearches');\n if (recentSearchesString == null) {\n return;\n }\n const recentSearches: any[] = JSON.parse(recentSearchesString);\n var currentGridSearchHistoryObj = recentSearches.find(item => item.gridUID === this.gridUID);\n if (!currentGridSearchHistoryObj) {\n this.recentSearches = [];\n } else {\n this.recentSearches = recentSearches.length > 0 ? currentGridSearchHistoryObj.searchHistory : [];\n }\n this.recentSearchesOptions = this.recentSearches.map(item => ({\n label: item.timestamp,\n value: item.searchObj,\n }));\n };\n // Handle selecting a recent search from the drop down udp-selector\n selectRecentSearch = e => {\n this.fullClearSearch(); // Clear previous searches first\n var selectedSearchObj = e.detail.value;\n this.updateFilterObject(filterObject => {\n filterObject[0] = selectedSearchObj;\n });\n this.filterRenderList[0] = selectedSearchObj;\n this.isRecentSearch = true;\n this.updateServerSideDatasource('', 'advanced grouped search');\n // this.customSearchDrawerOpen = false; // uncomment if want advanced search sidesheet to close after clicking\n\n var filterObjectsWithGroupsTemp = this.filterObjectsWithGroups;\n selectedSearchObj.filterElements.map((tempFilter, index) => {\n filterObjectsWithGroupsTemp[0].filters[index] = { ...tempFilter };\n });\n this.filterObjectsWithGroups = filterObjectsWithGroupsTemp;\n };\n\n @Watch('allFilters')\n allFiltersChanged() {\n if (this.refreshChips) {\n this.updateChipLayout();\n }\n }\n\n // BULK ACTIONS FUNCTIONS\n fetchAvailableGridActions = () => {\n if (this.restrictedGridFeatures?.BulkActions && !this.userPermissions.some(permission => permission.name === this.restrictedGridFeatures.BulkActions)) {\n localStorage.setItem('bulkActions', JSON.stringify([]));\n return;\n }\n const callback = data => {\n // Will send to grid to update view\n localStorage.setItem('bulkActions', JSON.stringify(data));\n this.bulkActions = data;\n };\n\n\n getAvailableGridActions(this.gridId, this.restrictBulkActionsPermissions, this.userPermissions, callback);\n\n this.updateServerSideDatasource('', 'configuredColumnDefs');\n };\n\n async handleSelectedBulkOption(event: CustomEvent) {\n // Assuming `event.detail` includes the selected option's identifier, like `value`\n const { value } = event.detail; // You might need to adjust based on the actual structure\n // Find the index of the selected option based on its value\n\n if (this.gridOptions && this.agGrid) {\n const selectedNodes = this.agGrid.api.getSelectedNodes();\n\n // Extract the data from selected nodes\n let selectedData = selectedNodes.map(node => node.data);\n\n // Extract just the ids from the selectedData\n const selectedIds = selectedData.map(data => data.id);\n\n // Emit the selectedIds array so parent components can listen to it\n this.selectedIdsChanged.emit(selectedIds);\n\n let actionData;\n\n if (this.bulkActionFunctions[value.value]) {\n //There exists a bulk action function corresponding to the actions value. Passing the function as the actionData to the action executor\n const selectedBulkActionFunction = this.bulkActionFunctions[value.value];\n actionData = { execute: () => selectedBulkActionFunction(selectedData) };\n } else {\n actionData = selectedData;\n }\n\n await this.executeBulkAction(value.actionId, actionData);\n }\n }\n\n @Watch('bulkActions')\n transformBulkActions() {\n if (this.bulkActions) {\n this.formattedBulkActions = this.bulkActions.map(action => ({\n label: action.name,\n value: action,\n }));\n }\n }\n\n getSelectedRows() {\n return Object.values(this.selectedRowMap);\n }\n\n getHeaderFieldLabel = (fieldName: string) => {\n const columnDef = this.configuredColumnDefs.find(col => col.field.toLowerCase() === fieldName.toLowerCase());\n if (columnDef) {\n return columnDef.headerName || fieldName;\n }\n return fieldName;\n };\n\n render() {\n const filterPanelWidth = this.filterPanelOpen ? '200px' : 'initial';\n const shouldShowSecondRow =\n (this.setSearchStart && this.filterObjectsWithGroups?.[0]?.filters?.[0]?.searchValue) ||\n this.filterChips.length > 0 ||\n this.loadedViewTitle.length > 0 ||\n this.hotListActive ||\n this.kpiValues.length > 0 ||\n this.selectedRowCount > 0;\n\n const shouldHideSecondRow = !shouldShowSecondRow;\n if (shouldShowSecondRow) {\n this.gridHeight = 'calc(100vh - 245px)';\n } else {\n this.gridHeight = 'calc(100vh - 200px)';\n }\n\n const actionMenuItems = this.getOverflowActionList(this.overflowActionMenuItems, this.selectedRowParams);\n return (\n <div>\n {this.openActionPopoverMenu && (\n <udp-pop-over\n isOpen={this.openActionPopoverMenu}\n anchorElement={this.actionMenuAnchorElement}\n popoverWidth=\"170px\"\n popoverMaxHeight=\"250px\"\n handleOnClose={event => {\n this.handleOnCloseActionPopover(event);\n }}\n >\n <div class=\"overflowActionButtons\">{actionMenuItems}</div>\n </udp-pop-over>\n )}\n <div>\n {this.showNotification && (\n <udp-notification\n active={this.showNotification}\n message={this.notificationMessage}\n status={this.notificationStatus}\n userCancel\n style={{ zIndex: '999991', transform: 'translateY(20px)' }}\n ></udp-notification>\n )}\n </div>\n <style>\n {`:host ::slotted(.ag-side-bar) {\n width: ${filterPanelWidth} !important;\n }`}\n </style>\n\n <grid-primary-bar\n title={this.gridBarTitle}\n customSaveViewClick={() => this.showViewSave()}\n customShowViewClick={() => this.showViews()}\n customShowHotlistClick={() => this.showHotlist()}\n customShowCustomSearchClick={() => this.showCustomSearch()}\n customClearClick={() => this.clearFilters()}\n customRefreshClick={() => this.refreshGrid()}\n customExpandClick={() => this.expandColumns()}\n customExportClick={this.exportFunction ? () => this.exportFunction(this.entityName, this.filterRenderList[0]) : () => this.exportToCsv()}\n customInsightsClick={e => {\n this.insightsActionOnClick(e);\n }}\n showInsightsAction={this.showInsightsAction}\n hiddenActionButtons={this.hiddenActionButtons}\n primaryActionLabel={this.primaryActionLabel}\n primaryActionClick={e => {\n this.primaryActionOnClick(e);\n }}\n primaryActionIcon={this.primaryActionIcon}\n customColumnViewClick={() => this.togglePanel('columns')}\n customFitColumnClick={() => this.fitColumns()}\n customFilterViewClick={() => this.togglePanel('filters')}\n customToggleServerClientClick={() => this.toggleServerSide()}\n customAdvancedSearchClick={() => this.showAdvancedSearch()}\n customShowGridOptionsClick={() => this.showGridOptions()}\n showAdvancedSearchFeature={this.showAdvancedSearchFeature}\n showFilterColumnFeature={this.showFilterColumnFeature}\n showHotlistButton={\n this.showHotlistButton && !(this.restrictedGridFeatures?.Hotlist && !this.userPermissions.some(permission => permission.name === this.restrictedGridFeatures.Hotlist))\n }\n hideExport={this.restrictedGridFeatures?.Export && !this.userPermissions.some(permission => permission.name === this.restrictedGridFeatures.Export)}\n enableAdvancedSearch={this.enableAdvancedSearch}\n ></grid-primary-bar>\n\n <udp-pop-over-grid-action-header\n isOpen={this.gridOptionsDrawerOpen}\n anchorElement={document.querySelector('grid-primary-bar') as unknown as HTMLElement}\n >\n <stencil-icon-button-grid-action-header\n onClick={() => {\n this.togglePanel('columns');\n this.showGridOptions();\n }}\n tooltip=\"Show/Hide Columns\"\n >\n <unity-typography variant=\"button\">Show/Hide Columns</unity-typography>\n </stencil-icon-button-grid-action-header>\n <udp-divider size=\"100%\"></udp-divider>\n <stencil-icon-button-grid-action-header\n onClick={() => {\n this.fitColumns();\n this.showGridOptions();\n }}\n tooltip=\"Fit to Column\"\n >\n <unity-typography variant=\"button\">Fit to Column</unity-typography>\n </stencil-icon-button-grid-action-header>\n <udp-divider size=\"0px\"></udp-divider>\n <stencil-icon-button-grid-action-header\n onClick={() => {\n this.expandColumns();\n this.showGridOptions();\n }}\n tooltip=\"Expand Grid\"\n >\n <unity-typography variant=\"button\">Expand Grid</unity-typography>\n </stencil-icon-button-grid-action-header>\n <udp-divider size=\"0px\"></udp-divider>\n {!this.disableSearchSwitch && (\n <stencil-icon-button-grid-action-header\n onClick={() => {\n this.handleSearchModeToggle();\n this.showGridOptions();\n }}\n tooltip={this.enableAdvancedSearch ? 'Standard Search' : 'Advanced Search'}\n >\n <unity-typography variant=\"button\">{this.enableAdvancedSearch ? 'Standard Search' : 'Advanced Search'}</unity-typography>\n </stencil-icon-button-grid-action-header>\n )}\n </udp-pop-over-grid-action-header>\n\n <div class=\"second-row\" style={{ display: shouldHideSecondRow ? 'none' : '' }}>\n {!this.hideBulkActions && this.rowsSelected && (\n <div class=\"bulk-select\">\n <udp-badge content={this.selectedRowCount}>\n <udp-selector options={this.bulkActions.length > 0 ? this.formattedBulkActions : []} onChange={(e: CustomEvent) => this.handleSelectedBulkOption(e)}></udp-selector>\n </udp-badge>\n </div>\n )}\n\n {this.loadedViewTitle?.length !== 0 && (\n <div class=\"chip-wrapper\">\n <stencil-chip\n text={this.loadedViewTitle}\n // onOnDelete={this.handleDelete as any}\n onOnDelete={this.handleViewChipDelete}\n color=\"secondary\"\n defaultToggled={true}\n leftIcon={Star16}\n showLeftIcon={this.selectedViewIsDefault}\n ></stencil-chip>\n <udp-divider variant=\"vertical\" size=\"30px\"></udp-divider>\n </div>\n )}\n\n {this.hotListActive && (\n <div class=\"chip-wrapper\">\n <stencil-chip text={this.hotListActive} color=\"secondary\" onOnDelete={this.handleRemoveHotlist} defaultToggled={true} leftIcon={List16}></stencil-chip>\n <udp-divider variant=\"vertical\" size=\"30px\"></udp-divider>\n </div>\n )}\n\n <div class=\"chip-section\">\n {this.filterChips.length > 0 && (\n <udp-dynamic-container-with-menu\n id=\"filterChipsContainer\"\n externalToggle={this.externalToggle}\n onUdpChipClicked={(event: CustomEvent) => this.setFilterFromChips(event.detail)}\n menuItems={this.filterChips}\n ></udp-dynamic-container-with-menu>\n )}\n </div>\n <div class=\"kpi\">\n <kpi-list kpiValues={this.kpiValues}></kpi-list>\n </div>\n </div>\n\n {this.gridError && (\n <div>\n <upd-alert-banner type=\"error\" message={`An error occurred with loading the grid with data.`}></upd-alert-banner>\n </div>\n )}\n\n <div style={{ height: '4px', backgroundColor: shouldHideSecondRow ? 'var(--accent-color)' : 'rgb(247, 245, 243)', overflow: 'hidden' }}>\n {this.linearLoading && <udp-linear-loader />}\n </div>\n\n {this.noResults && (\n <div>\n <upd-alert-banner onClick={() => this.refreshOnNoResults()} type=\"info\" message=\"Sorry, no records meet your search criteria\"></upd-alert-banner>\n </div>\n )}\n\n <div>\n <ag-table gridOptions={this.gridOptions} licensekey={LicenseKey} height={this.gridHeight}></ag-table>\n </div>\n\n <side-sheet\n sideSheetButtonLabel=\"Search\"\n handleSideSheetButton={() => this.updateServerSideDatasource('', 'advanced search sheet')}\n title=\"Advanced Search\"\n open={this.advancedDrawerOpen}\n toggleDrawer={() => this.primaryActionClick('advancedSearch')}\n position=\"right\"\n >\n <div style={{ width: '1200px' }}>\n <advanced-search\n handleDelete={filter => this.removeFilterItem(filter)}\n filterRenderList={this.filterRenderList}\n filterList={this.extendedSearchFilterList} // list that shows available filters\n handleItemClick={headerName => this.setFilterSelections(headerName)}\n onAdvancedSearchItemChange={(event: CustomEvent) => this.updateSearchObject(event.detail)}\n handleValueChanged={this.changeOperator}\n fetchFilters={() => this.getExtendedAdvancedSearchFilterList()}\n getHeaderFieldLabel={this.getHeaderFieldLabel}\n />\n </div>\n </side-sheet>\n\n <side-sheet widthOption=\"short\" title=\"Views\" open={this.viewDrawerOpen} toggleDrawer={() => this.primaryActionClick('views')} position=\"right\">\n <div>\n <div style={{ width: '450px', marginBottom: '8px' }}>\n <hint-panel\n hint=\"Quickly access and manage your pre-configured table/grid views. These views are designed to help you focus on specific sets of data and streamline your workflow.\"\n hideHintText=\"Hide Hint\"\n ></hint-panel>\n </div>\n\n <div style={{ width: '446px' }}>\n {this.viewListRowData &&\n this.viewListRowData.map(item => {\n if (item.gridViewVisibilityTypeId === 2 || item.userId.toLowerCase() === this.userId.toLocaleLowerCase()) {\n return (\n <tree-list-item\n // key={index}\n showEditOption\n showDeleteOption\n label={item.name}\n fieldName={item.name}\n onClick={() => {\n this.handleLoadView(item.gridViewId);\n this.setCurrentViewData(item.name, item.isDefault, item.gridViewVisibilityTypeId, item.gridViewId);\n }}\n editHandler={() => this.openViewEdit(item.gridViewId, item.name, item.isDefault, item.gridViewVisibilityTypeId)}\n deleteHandler={() => this.openDeleteViewConfirmation(item.gridViewId)}\n showUpdateDefaultOption={true}\n updateDefaultHandler={() => this.updateDefaultView(item)}\n isDefault={item.isDefault}\n gridViewVisibilityTypeId={item.gridViewVisibilityTypeId}\n showAdd={false}\n showViewOption={false}\n ></tree-list-item>\n );\n }\n })}\n </div>\n </div>\n </side-sheet>\n\n <side-sheet\n title=\"Search\"\n sideSheetButtonLabel=\"Search\"\n handleSideSheetButton={this.handleSideSheetButtonClick}\n open={this.customSearchDrawerOpen}\n toggleDrawer={() => this.primaryActionClick('customSearch')}\n position=\"right\"\n buttonTransform={this.buttonTransform}\n >\n <advanced-search-grouped\n getLogicalOperatorValue={this.getLogicalOperatorValue}\n getLogicalOperatorCode={this.getLogicalOperatorCode}\n handleAddNewFilter={this.handleAddNewFilter}\n handleAddNewGroup={this.handleAddNewGroup}\n handleDelete={filter => this.removeFilterItem(filter)}\n filterRenderList={this.filterRenderList}\n filterList={this.extendedSearchFilterList} // list that shows available filters\n handleItemClick={headerName => this.setGroupedFilterSelections(headerName)}\n onAdvancedSearchItemChange={(event: CustomEvent) => this.updateSearchObject(event.detail)}\n handleValueChanged={this.changeOperator}\n filterObjectsWithGroups={this.filterObjectsWithGroups}\n fetchFilters={() => this.getExtendedAdvancedSearchFilterList()}\n // onSearchItemChanged={() => this.handleSearchItemChange()}\n updateLogicalOperator={this.updateLogicalOperator?.bind(this)}\n handleGroupDelete={groupId => this.handleGroupDelete(groupId)}\n recentSearchesOptions={this.recentSearchesOptions}\n selectRecentSearch={this.selectRecentSearch}\n fullClearSearch={this.fullClearSearch}\n findGroupById={this.findGroupById}\n getHeaderFieldLabel={this.getHeaderFieldLabel}\n />\n </side-sheet>\n\n <side-sheet\n disabled={this.showHotlistForm}\n widthOption=\"short\"\n sideSheetButtonLabel=\"Create New Hotlist\"\n handleSideSheetButton={() => this.toggleHotlistForm()}\n title=\"Hot Lists\"\n open={this.hotlistDrawerOpen}\n toggleDrawer={() => this.primaryActionClick('hotlists')}\n position=\"right\"\n >\n <div>\n {this.showHotlistForm && <udp-hotlist-form handleFormSubmit={this.handleSaveHotlist} handleCancelClick={() => this.toggleHotlistForm()}></udp-hotlist-form>}\n\n <div style={{ width: '446px' }}>\n {this.allHotlists &&\n this.allHotlists.map(item => {\n if (item.domain === this.entityName) {\n return (\n <tree-list-item\n label={item.name}\n fieldName={item.name}\n showViewOption={true}\n showAdd={this.businessObjectKey ? true : false}\n showDeleteOption={true}\n viewHandler={() => this.handleRequestHotlist(item.hotListId)}\n deleteHandler={() => this.confirmRequestDelete(item.hotListId)}\n onClick={() => this.handleSetSingleHotlistItem(item.hotListId)}\n statusValue={item.isPrivate}\n statusClasses={{\n true: 'default',\n false: 'neutral',\n }}\n statusLabel={item.isPrivate ? 'Private' : 'Shared'}\n ></tree-list-item>\n );\n }\n })}\n </div>\n </div>\n </side-sheet>\n\n <save-view-form-dialog\n open={this.saveDialogOpen}\n title={this.selectedViewName ? 'Current View' : 'New View'}\n closeDialog={() => this.showViewSave()}\n currentGridViewId={this.selectedGridId}\n currentName={this.selectedViewName}\n currentIsPrivate={this.selectedViewGridViewVisibilityTypeId}\n currentIsDefault={this.selectedViewIsDefault}\n handleFormSubmit={(name: string, isPrivate: number, isDefault: boolean) => {\n // Assuming this.columnState exists in this component's scope\n this.handleViewFormSubmit(name, isPrivate, isDefault, this.gridState);\n }}\n handleViewAndConfigurationSubmit={(name: string, isPrivate: number, isDefault: boolean) => {\n if (this.selectedGridId) {\n if (this.selectedViewGridViewVisibilityTypeId === 2) {\n this.openViewEditConfirmation(name, isPrivate, isDefault);\n } else {\n this.setCurrentViewData(name, isDefault, isPrivate);\n this.handleViewAndConfigurationsUpdate(this.selectedViewName, this.selectedViewGridViewVisibilityTypeId, this.selectedViewIsDefault, this.gridState);\n }\n }\n }}\n />\n\n <edit-view-form-dialog\n open={this.editDialogOpen}\n title=\"Edit View\"\n closeDialog={() => this.closeViewEdit()}\n currentGridId={this.selectedGridId}\n currentName={this.selectedViewName}\n currentGridViewVisibilityTypeId={this.selectedViewGridViewVisibilityTypeId}\n currentIsDefault={this.selectedViewIsDefault}\n handleFormSubmit={(gridId: any, name: string, isPrivate: number, isDefault: boolean) => {\n this.handleViewUpdate(gridId, name, isPrivate, isDefault);\n }}\n />\n\n <div />\n <fluent-dialog\n title=\"Delete Hotlist\"\n message=\"Are you sure you want to delete this hotlist?\"\n actionOne={() => this.handleRequestDeleteHotlist()}\n actionTwo={() => this.toggleDeleteDialog('hotlist')}\n labelOne=\"Confirm\"\n labelTwo=\"Cancel\"\n open={this.confirmDialog} // Use state to control dialog visibility\n >\n <div>\n This will not delete any of the data but only the records <br />\n from the hotlist and the hotlist itself.{' '}\n </div>\n </fluent-dialog>\n\n <fluent-dialog\n title=\"Delete View\"\n message=\"Are you sure you want to delete this view?\"\n actionOne={() => this.handleDeleteView()}\n actionTwo={() => this.toggleDeleteDialog('View')}\n labelOne=\"Confirm\"\n labelTwo=\"Cancel\"\n open={this.confirmDialogDeleteView} // Use state to control dialog visibility\n >\n <div>\n This will not delete any of the data but only the settings <br />\n saved to display this view.{' '}\n </div>\n </fluent-dialog>\n\n <fluent-dialog\n title=\"Update View\"\n message=\"Are you sure you want to update this view?\"\n actionOne={() => this.handleViewAndConfigurationsUpdate(this.selectedViewName, this.selectedViewGridViewVisibilityTypeId, this.selectedViewIsDefault, this.gridState)}\n actionTwo={() => this.showViewEditConfirmation(false)}\n labelOne=\"Confirm\"\n labelTwo=\"Cancel\"\n open={this.editViewConfirmationDialogOpen}\n >\n <div>This is a public view. Any changes made to it will be seen by others when they load this view. </div>\n </fluent-dialog>\n\n <fluent-dialog\n title={'Toggle Search Mode to ' + (this.enableAdvancedSearch ? 'Standard' : 'Advanced') + ' Search'}\n message={\n this.enableAdvancedSearch\n ? `Are you sure you want to toggle the search mode to standard search?`\n : `Are you sure you want to toggle the search mode to advanced search?`\n }\n actionOne={() => this.confirmSearchModeToggle()}\n actionTwo={() => this.toggleSearchModeConfirmation(false)}\n labelOne=\"Confirm\"\n labelTwo=\"Cancel\"\n open={this.toggleSearchModeConfirmationDialogOpen}\n >\n <div>\n {this.enableAdvancedSearch\n ? 'The advanced search functionality will be disabled, all advanced search filters will be cleared and the grid will be reset to its default state.'\n : 'The standard search functionality will be disabled and any existing standard filters will persist to the advanced search.'}\n </div>\n </fluent-dialog>\n </div>\n );\n }\n}\n"],"names":["uuid"],"mappings":"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"}